Dante - установка и настройка SOCKS прокси-сервера

Thank you for reading this post, don't forget to subscribe!

1. Установка

Добав­ля­ем репо­зи­то­рий (тут и далее все дей­ствия от root, либо под­став­ляй­те sudo перед командой):

Уста­нав­ли­ва­ем пакет

Созда­ём ката­лог для pid-файла

Бэка­пим  стан­дарт­ный конфиг

 

2. Настройка конфига

В какой-то момент у Dante изме­нил­ся состав опций кон­фи­га. В интер­не­те не понят­но, о какой вер­сии идёт речь. Ста­рые опции не рабо­та­ют на новой вер­сии. Это добав­ля­ет пута­ни­цы. Эта инструк­ция точ­но рабо­та­ет для вер­сии Dante v1.4.1. Узнать вер­сию уже уста­нов­лен­ной про­грам­мы мож­но так:

Вер­сия про­грам­мы и потреб­ле­ние ресур­сов сервера:

Кон­фиг для рабо­ты на пор­ту 443 (стан­дарт­ный порт для HTTPS). Это подой­дёт вам, если на этом же сер­ве­ре у вас не рабо­та­ет какая-нид­удь дру­гая про­грам­ма на этом же пор­ту (напри­мер, web-сер­вер Apache или Nginx или любой другой).

[codesyntax lang="php"]

[/codesyntax]

Этот кон­фиг дела­ет так, что кли­ен­ты смо­гут под­клю­чать­ся к ваше­му прок­си по име­ни и паро­лю поль­зо­ва­те­лей (актив­ных) ваше­го сер­ве­ра. Т.е. нуж­но заве­сти отдель­ных поль­зо­ва­те­лей, кото­рые собой будут являть дан­ные для под­клю­че­ния к прокси.
Для настрой­ки рабо­ты IPv6 есть вот такая стра­ни­ца в помощь - http://www.inet.no/dante/doc/1.4.x/config/ipv6.html. У меня полу­чи­лось доба­вить (но это не точ­но) под­держ­ку IPv6 с помо­щью добавления:

И заме­нить блок

на блок

3. Добавляем пользователей

Добав­ля­ем поль­зо­ва­те­лей акку­рат­но, что­бы им не было раз­ре­ше­но ниче­го лиш­не­го на сер­ве­ре (напри­мер, под­клю­чать­ся по SSH) :

Так мож­но заве­сти обще­го поль­зо­ва­те­ля (в дан­ном слу­чае логин: proxyuser), дан­ные кото­ро­го мож­но исполь­зо­вать само­му и пере­дать близ­ким людям, кото­рым мож­но дове­рить это навсе­гда. Для дру­зей луч­ше заво­дить отдель­ных поль­зо­ва­те­лей ана­ло­гич­ным обра­зом. В буду­щем, если нуж­но будет отлу­чить поль­зо­ва­те­ля от досту­па к прок­си, доста­точ­но будет забло­ки­ро­вать поль­зо­ва­те­ля на сервере.
Мож­но задать пароль поль­зо­ва­те­лю со спе­ци­аль­ным клю­чом для авто­ма­ти­че­ской деак­ти­ва­ции поль­зо­ва­те­ля по про­ше­ствии задан­но­го вре­ме­ни (демо-режим свое­об­раз­ный настроить):

А так мож­но забло­ки­ро­вать опре­де­лён­но­го пользователя:

У коман­ды созда­ния паро­лей мно­го раз­ных полез­ных опций.
Если не потре­бу­ет­ся отсле­жи­вать часто­ту под­клю­че­ний поль­зо­ва­те­лей, то в кон­фи­ге мож­но заме­нить строки:

На

В этом слу­чае в лог /var/log/sockd.log будет скла­ды­вать­ся мень­ше записей.

4. Запуск прокси-сервера

Запуск и управ­ле­ние про­из­во­дит­ся стан­дарт­ным обра­зом с помо­щью systemd. Запуск:

Добав­ле­ние в авто­за­пуск (на слу­чай пере­за­груз­ки сервера):

Пере­за­пуск:

 

5. Прочие разрешения для Dante на сервере

На удив­ле­ние, для SeLinux не потре­бо­ва­лось ника­ких допол­ни­тель­ных действий.
Для фай­ер­во­ла нуж­но раз­ре­шить порт 443:

Если бы порт был дру­гой, то пра­ви­ло выгля­де­ло бы иначе:

В про­цес­се настрой­ки прок­си сер­ве­ра воз­ни­ка­ли слу­чаи, когда пере­за­пус­ка­е­мый сер­вис отва­ли­вал­ся с ошиб­кой "Access denied". Помог­ла ста­тья "systemd in Fedora 22: Failed to restart service: Access Denied", а кон­крет­но, - пере­и­ни­ци­а­ли­за­ция сервисов:

6. Проверка работы

Для нача­ла мож­но про­ве­рить доступ­ность ваше­го прок­си-сер­ве­ра с дру­го­го ком­пью­те­ра так (вме­сто PASS и SERVER_IP под­ста­вить ваши значения):

Если тут соеди­не­ние уда­лось, зна­чит и в дру­гих про­грам­мах рабо­тать будет. Вот, напри­мер, мож­но сде­лать ссыл­ку для авто­ма­ти­че­ской настрой­ки прок­си в Telegram: https://t.me/socks?server=SERVER_IP&port=443&user=proxyuser&pass=PASS (а если домен t.me у ваше­го про­вай­де­ра заба­нен, то мож­но попро­бо­вать http://t-do.ru/socks?server=SERVER_IP&port=443&user=proxyuser&pass=PASS)
Либо тоже самое набрать вруч­ную в настройках: