RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
linux:dante


Установка SOCKS5 сервера Dante

Я очень огорчен очередным абсурдным и вредным шагом со стороны органов власти РФ в попытке ввести цензуру в сети.

Короткая инструкция по установке socks-сервера для обхода блокировок (в первую очередь Telegram).

В данном примере используется Debian 9.

Также можно воспользоваться скриптом для автоматической установки

Dante это только SOCKS сервер. Если дополнительна нужна поддержка HTTP-прокси, то используйте 3proxy

Далеко не все программы имеют поддержку SOCKS. Для перенаправления трафика ваших приложений на socks-сервер понадобится установка дополнительной программы (проксификатор). Для Windows это Freecap/Widecap.

Шаг 1. Установка Dante

# apt-get install dante-server

Версия 1.4.1+dfsg-5 содержит ошибку (подробности в багтрекере Debian)

При старте будет что-то такое

warning: checkconfig(): no socks authentication methods enabled.  This means all socks requests will be blocked
error: checkconfig(): no internal address given for server to listen for clients

Можно смело пропустить эту ошибку

Примечание для Ubuntu

Свежая версия Dante в Ubuntu появилась только в версии 18.04. Если у вас 16.04, то вам пригодится статья по самостоятельной сборке deb пакета - https://bvn13.tk/posts/dante-server-on-ubuntu-16-04-lts

Шаг 2. Основные настройки

Конфигурационный файл /etc/danted.conf

Ниже представлена типовая конфигурация

# Путь к лог файлу
logoutput: /var/log/socks.log
# Можно задать отдельный лог файл для ошибок
# errorlog: /var/log/socks_error.log

internal: eth0 port = 1080
external: eth0

# Авторизация по локальным/системным пользователям
socksmethod: username

# Мы используем системных пользователей, поэтому нужны права на чтение passwd
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody

# Разрешить подключения с любых IP всем пользователям прошедшим авторизацию
client pass {
        from: 0/0 to: 0/0
        log: connect disconnect error ioop
}

socks pass {
        from: 0/0 to: 0/0
        log: connect disconnect error ioop
}

Подробнее об уровнях логированиях на сайте Dante смотрите в разделе Server logging

Шаг 3. Логины/пароли

Добавим нового пользователя rootwelt для работы с socks сервером.

# useradd --shell /usr/sbin/nologin rootwelt
# passwd rootwelt

При этом у пользователя не будет доступа к SSH, т.к. в качестве шелла указан nologin.

Шаг 4.

Добавляем сервис в автозагрузку и запускаем его

# systemctl enable danted
# systemctl start danted

Проверка (с локального Linux хоста; A.C.A.B здесь это IP адрес VPS)

curl --socks5 rootwelt:password@A.C.A.B:1080 check-host.net/ip
curl --socks5 rootwelt:password@A.C.A.B:1080 ident.me; echo

Хабр подсказал, что можно создать для удобства ~/.curlrc

socks5 = A.C.A.B:1080
proxy-user = rootwelt:password
user-agent = "Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

Немного о безопасности

Вместо системных пользователей можно использовать PAM файл с логинами и паролями (похоже на htpasswd).

Для этого необходимо дополнительно установить пакет libpam-pwdfile, а также заменить строку

socksmethod: username

на эту

socksmethod: pam.username

В файл /etc/pam.d/sockd добавляем

auth required pam_pwdfile.so pwdfile /etc/dante.passwd
account required pam_permit.so

В некоторых howto также советуют установить apache2-utils и создавать логин/пароль через утилиту htpasswd

htpasswd -b -d -c /etc/dante.passwd username password

Но лучше использовать mkpasswd (входит в состав пакета whois)

mkpasswd --method=md5 password

Логин и зашифрованный пароль следует теперь добавить в файле /etc/dante.passwd

rootwelt:$1$3fg9NXcJ$tw3x1l8XepEcAdKtkMDyA0

Подробнее в статье на Habr'е - Использование libpam при настройке SOCKS сервера Dante

Веб-интерфейс для администрирования

Плагин для браузера

Так как браузеры не поддерживают авторизацию на socks-сервере, то необходима установка дополнительных плагинов. Для Firefox рекомендуем FoxyProxy.

Для Google Chrome в сети рекомендуют использовать Proxy Helper, но к сожалению он не работает - SOCKS Authentication is not implemented in Chrome.

Тест скорости через socks-сервер в браузере

Делимся ссылкой в Telegram

БОНУС

Можно использовать socks только для доступа к Telegram. Для этого необходимо изменить конфиг следующим образом (via)

Список подсетей Telegram лучше всего смотреть на сайте https://bgp.he.net/

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: 149.154.160.0/20
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 149.154.164.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.4.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.8.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.56.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: ::/0 to: 2001:67c:4e8::/48
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.20.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.36.0/23
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.38.0/23
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: ::/0 to: 2001:b28:f23c::/48
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 149.154.168.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.16.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.56.0/23
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: ::/0 to: 2001:b28:f23f::/48
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 149.154.172.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 91.108.12.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: ::/0 to: 2001:b28:f23d::/48
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 149.154.167.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: 149.154.174.0/22
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .telegram.org
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .stel.com
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .t.me
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .telegram.me
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .telegram.dog
 log: connect disconnect error
 socksmethod: username
}
socks pass {
 from: 0.0.0.0/0 to: .telegra.ph
 log: connect disconnect error
 socksmethod: username
}
socks block {
 from: 0.0.0.0/0 to: 0.0.0.0/0
 log: connect disconnect error
 socksmethod: username
}
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
linux/dante.txt · Последнее изменение: 2019/01/30 14:50 (внешнее изменение)