Настройка простого SOCKS5 прокси-сервера для личного использования

Статья последний раз была обновлена 07.06.2023

Устанавливаем SOCKS5-прокси Dante

За основу взяты Debian 9 и Dante в виду его невероятно простой настройки. Ставим dante-server:

sudo apt install dante-server

Бывает, что сходу демон Dante, danted, почему-то падает. Видимо косяк мейнтейнера пакета. Так что сразу лезем в конфиг:

sudo nano /etc/danted.conf

Перед вами откроется подробный конфиг с множеством комментариев. В принципе вы можете просто все удалить и вставить туда мой вариант, представленный ниже. Но можно изучить его, раскомментировать и исправить нужные параметры.

logoutput: stderr
internal: eth0 port = 1080
external: eth0
socksmethod: username
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
client pass {
    from: 0/0 to: 0/0
    log: error
}
socks pass {
    from: 0/0 to: 0/0
    log: error
}

Подробнее о параметрах

socksmethod: username — для авторизации по системному пользователю. Разумеется можно вообще написать none, но тогда ваш сервер рискует попасть в публичные «бесплатные списки». Можно использовать хитрый механизм pam c целым RADIUS-сервером, который будет авторизировать сотни пользователей. Но все же моей целью был личный сервер для себя и друзей, а не высоконагруженный продакшен-сервер на тысячи пользователей.

user.privileged: root — вместо дефолтного proxy ставим root, потому что нам нужно читать файл /etc/passwd для авторизации по системному пользователю.

А вот блоки client pass и socks pass и мутят всю магию прокси. Разумеется, можно покурить матчасть и поставить гору различных умных правил, но мне нужен был простой прокси.

Ctrl^O — сохраняем конфиг, Ctrl^X — выходим из редактора nano (ну мало ли).

Создаем отдельного системного пользователя для прокси

Теперь будет разумным сделать отдельного пользователя, особенно если вы не хотите чтобы пароль от вашего VPS узнали друзья, подключаясь к вашему прокси.

sudo useradd proxy
sudo passwd proxy
[вводим дважды пароль]

Готово, пользователь создан. Осталось только перезапустить службу:

sudo systemctl restart danted

Всего нужно будет помнить 4 настройки: IP-адрес вашего сервера, порт (в моем конфиге 1080), логин (в моем примере proxy) и пароль, который вы этому пользователю указали. Коннект должен пройти удачно.

Решение проблемы с IPv6

Я решила сделать субдомен для прокси, чтобы моим знакомым и друзьям не нужно было запоминать странный IP-адрес. Однако столкнулась с забавной сложностью. Дело в том, что в домене я прописала A- и AAAA-записи сразу, так как сервер поддерживал IPv6. Однако изначально я настроила сервер Dante без поддержки IPv6. В итоге мой ПК пытался подключится по умолчанию через IPv6, но не получал ответа. Возможно кому-то это пригодится, потому что я потратила на это время.

Губарь Маргарита Александровна

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *