Dante proxy с несколькими айпи
Сначала подключим айпи к VPS. У меня это было так, создал файл /etc/netplan/60-secondary.yaml с таким содержимим:
network:
version: 2
ethernets:
eth0:
addresses:
- 10.11.0.4/24
- 10.11.0.5/24
Далее выполнил команду
netplan apply
Установка Dante
Ставим сам Danted:
sudo apt update
sudo apt install dante-server
Разрешаем порты в ufw:
ufw allow 1080
ufw allow 1081
ufw allow 1082
Конфиг Dante
Правим файл /etc/danted.conf
logoutput: /var/log/sockd.log
user.privileged: root
user.unprivileged: nobody
# The listening network interface or address.
internal: 0.0.0.0 port=1080
# The proxying network interface or address.
external.rotation: same-same
external: 10.11.0.3
external: 10.11.0.4
internal: 10.11.0.4 port = 1081
external: 10.11.0.5
internal: 10.11.0.5 port = 1082
# socks-rules determine what is proxied through the external interface.
socksmethod: username
# client-rules determine who can connect to the internal interface.
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 10.11.0.3/32
log: connect disconnect error
}
client pass {
from: 0.0.0.0/0 to: 10.11.0.4/32
log: connect disconnect error
}
client pass {
from: 0.0.0.0/0 to: 10.11.0.5/32
log: connect disconnect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
Настройка логина и пароля
Добавим в систему нового пользователя.
sudo useradd -r -s /bin/false your_dante_user
sudo passwd your_dante_user
Настройка нескольких айпи
#!/bin/bash
ip route add 10.10.0.0/24 dev eth0 table ip39
ip route add default via 10.10.0.1 dev eth0 table ip39
ip rule add from 10.11.0.4 lookup ip39
ip route add 10.10.0.0/24 dev eth0 table ip40
ip route add default via 10.10.0.1 dev eth0 table ip40
ip rule add from 10.11.0.5 lookup ip40
И ложим это в файл /etc/network/if-up.d/setup-routes
chmod +x /etc/network/if-up.d/setup-routes
Вставляем сюда /etc/iproute2/rt_tables такие строчки:
100 ip39
101 ip40
Проверяем, что наш айпи в списке правил: ip rule list
Настройка логов
Далее добавляем ротацию логов:
Создаем файл /etc/logrotate.d/danted с таким содержимым
/var/log/sockd.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 nobody nogroup # Права и владелец
sharedscripts
postrotate
systemctl reload danted 2>/dev/null || true
endscript
}
Добавляем права на запись /lib/systemd/system/danted.service
InaccessibleDirectories=...
ReadOnlyDirectories=...
ReadWriteDirectories=/var/log
Перезапускаем сервис
systemctl daemon-reload
service danted restart
Проверяем, что ошибок нет: systemctl status danted.service
Проверяем, айпи: curl --socks5 your_dante_user:[email protected]:1081 ifconfig.me
Установка на Debian 13
На Debian 13 нет готового пакета. Поэтому придется собирать из исходников. Ставим зависимости:
sudo apt update
sudo apt install build-essential libwrap0-dev libpam0g-dev libkrb5-dev libssl-dev wget tar
Собираем:
wget https://www.inet.no/dante/files/dante-1.4.3.tar.gz
tar xvf dante-1.4.3.tar.gz
cd dante-1.4.3
./configure
make
sudo make install
После установки бинарник sockd будет в /usr/local/sbin/sockd.
Файл /etc/systemd/system/danted.service:
[Unit]
Description=Dante SOCKS5 Server
After=network.target
[Service]
ExecStart=/usr/local/sbin/sockd -f /etc/danted.conf
Restart=on-failure
User=root
LimitNOFILE=65535
ReadWritePaths=/var/log
[Install]
WantedBy=multi-user.target
Включаем:
sudo systemctl daemon-reexec
sudo systemctl enable danted
sudo systemctl start danted
sudo systemctl status danted
Файл /etc/iproute2/rt_tables придется создать с таким содержимым:
#
# reserved values
255 local
254 main
253 default
0 unspec
100 ip39
101 ip40
И создать файл /etc/pam.d/sockd (если его нет) с таким содержимым:
auth required pam_unix.so
account required pam_unix.so
Dante Proxy Системное администрирование