Dante
В этом посте, будет описание настройки прокси-сервера Dante на VPS c Ubuntu 22.04.
Предполагается, что на настраиваемой системе, уже настроен доступ по SSH, а так же на VPS используется UFW, в качестве фаервола.
Устанавливаем Dante.
$ sudo apt install dante-server
Создаем новый или раскомментируем следующие строчки в базовом конфиге.
$ sudo vim /etc/danted.conf
logoutput: syslog
user.privileged: proxy
user.unprivileged: nobody
# wg0 must exists - vpn started
internal: wg0 port = 3128
external: eth0
socksmethod: none
clientmethod: none
client pass {
from: 192.168.99.0/0 to: 0.0.0.0/0
log: error
}
socks pass {
from: 192.168.99.0/0 to: 0.0.0.0/0
log: error
}
Здесь:
internal: wg0 port = 3128
- это сетевой интерфейс и порт, на которых Dante будет висеть (принимать запросы).
external: eth0
- внешний интерфейс, куда Dante будет перекидывать трафик.
from: 192.168.99.0/0 to: 0.0.0.0/0
- это с какой подсети принимать пакеты и в какую перебрасывать.
Добавляем правило в фаервол.
$ sudo ufw allow in on wg0 to any port 3128
Запускаем сервис Dante.
$ sudo systemctl start dented.service
Готово.
Если нужен прокси socks5 с аутентификацией, то нужно выполнить следующее:
- Добавить пользователя, с паролем, но без возможности логина.
$ sudo adduser --system --no-create-home --disabled-login proxy_auth $ sudo passwd proxy_auth
- Поменять в конфиге следующие строчки:
$ sudo vim /etc/danted.conf
user.privileged: root socksmethod: username
На клиенте, указываем такую строку: socks://proxy_auth:user_password@192.168.99.1:3128
Update 30.12.2024.
У хостера VPS, поменялись настройки, что-ли, из-за чего dante перестал работать. В ходе отладки выяснилось, что при резолве адреса (hostname resolve), в приоритете используется IPv6. А dante, не настроен на работу с ним. В итоге, проблема решилась так:
socks pass {
#from: 192.168.99.0/0 to: 0.0.0.0/0
from: 192.168.99.0/0 to: 0/0
log: error
}
0/0
разрешает работать как с IPv4 так и с IPv6.
Так же в ходе поиска решения, добавил логов:
logoutput: syslog stdout /var/log/sockd.log
errorlog: syslog stdout /var/log/sockd_err.log
Потом запускал dante прямо из шела и смотрел вывод в консоль:
sudo danted
Для проверки запросов, использовал curl:
curl --socks5 192.168.88.1:3128 ifconfig.me/all -v
Такие дела. С Наступающим! :)