0. Разрешаем подключаться к порту сервера:
sudo ufw allow proto tcp from any to any port 99800
1. Ставим сервер:
aptitude install dante-server
2. Сервер попытается запуститься и упадет, так и задумано, меняем конфиг:
sudo vim /etc/danted.conf
logoutput: stdout
internal: eth0 port = 99800
external: eth0
socksmethod: username
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
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
}
3. Интерфейс можно подсмотреть через ip addr
4. Далее создаем пользователя без оболочки (нельзя подключиться через ssh).
Вместо имени использовать можно парольную фразу, только без спецсимволов.
adduser --shell=/sbin/nologin bob
Используя логин и пароль этого пользователя можно подключаться к серверу.
5. Тестируем:
curl -v -x 'socks5://bob:password@99.99.99.99:99800' http://www.google.com/
Пример создания демона systemd:
[Unit] Description=ss5 After=network.target [Service] Type=notify ExecStart=/usr/bin/bash -c '/opt/ss5/ss5-3.8.9/src/ss5 -u ss5 -b 0.0.0.0:1080' ExecReload=/bin/kill -HUP $MAINPID KillMode=process [Install] WantedBy=multi-user.target
added 2022.01.21
Dante docker
docker pull dijedodol/simple-socks5-server docker run -it --rm -p 1080:1080 -e 'SSS_USERNAME=your_username' -e 'SSS_PASSWORD=your_password' dijedodol/simple-socks5-server
Dante свой велосипед на debian \ ubuntu
0. Ставим пакеты:
apt-get update
apt-get upgrade
apt-get install build-essential libwrap0-dev libpam0g-dev libkrb5-dev libsasl2-dev
apt-get install libwrap0 libwrap0-dev
apt-get install gcc make
apt-get install cron
1. Качаем dante
cd /opt
wget https://www.inet.no/dante/files/dante-1.4.1.tar.gz
tar -xvf dante-1.4.1.tar.gz
cd dante-1.4.1
2. Ставим
mkdir /home/dante
./configure --prefix=/home/dante
make
make install
3. Создаем конфиг
vim /home/dante/danted.conf
----------------------------
logoutput: syslog /var/log/danted.log
internal: eth0 port = 1080
external: eth0
socksmethod: username
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: connect
log: error
method: username
}
----------------------------
4. Пример настройки автозапуска (Лучше рассмотреть запуск через systemd)
# нам нужно удостовериться, что сервис запустится при перезагрузке
crontab -e
# вставьте в crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=your_email@some_mail.com
# запуск сервера как демона
/home/dante/sbin/sockd -f /home/dante/danted.conf -D
5. Создаем пользователя для socks proxy
sudo useradd --shell /usr/sbin/nologin -m sockduser && sudo passwd sockduser
6. Пример простого firewall ufw на ubuntu (В принципе можно настроить iptables)
# - Инструкция - # https://wiki.dieg.info/socks
sudo apt install ufw
sudo ufw status
sudo ufw allow ssh
sudo ufw allow proto tcp from any to any port 1080
sudo ufw status numbered
sudo ufw enable