Рубрики
squid

dante-server \ socks5 \ debian \ ubuntu

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