Наработки по развёртыванию прокси сервера при помощи Danted на Debian 9.
wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb apt-get install gdebi-core gdebi dante-server_1.4.1-1_amd64.deb nano /etc/danted.conf
Конфиг «пускать всех»
# /etc/danted.conf logoutput: syslog user.privileged: proxy user.unprivileged: nobody internal: venet0:0 port = 55555 external: venet0:0 socksmethod: none clientmethod: none client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error }
#Конфиг «вход по логину и паролю»
Для доступа к прокси серверу только определённых пользователей создаёт непривелигированного пользователя, добавляем его в групп proxy. Пользователь создаётся без доступа к серверу по ssh. Устанавливаем пароль.
Чтобы не наступать на мои грабли, рекомендую делать пароль без спец. символов типа # ? & @ и т.д. Если пароль будет передаваться по http, то это может пройти некорректно.
useradd --shell /usr/sbin/nologin proxyuser usermod -a -G proxy proxyuser passwd proxyuser
Конфигурационный файл для доступа по логину и паролю будет выглядеть вот так:
# /etc/danted.conf logoutput: syslog stdout /var/log/danted.log #debug: 2 user.privileged: root user.unprivileged: nobody internal: venet0:0 port = 55800 external: venet0:0 socksmethod: username clientmethod: none client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error session.max: 100 group: proxy }
#Ошибки
Столкнулся с ошибкой вида:
danted[3797]: info: block(1): tcp/accept ]: <ip xx.xx.xx.xx.port.xxxx ip.xx.xx.xx.xx.port> error after reading 37 bytes in 0 seconds: system password authentication failed for user
Ошибка была вызвана тем, что по http ссылке неверно передавался пароль, т.к. в нём содержались спец символы.
Другие возможные причины:
- danted запущен не от root
- пользователь, под которым хотят получить доступ к proxy не входит в группу proxy
- закрыт установленный порт на подключению (можно проверить по telnet)
- выбран один из зарезервированных портов (лучше выбрать что-то из диапазона 50000-60000, например)