Содержание
debian
Установка SOCKS5 сервера Dante
Я очень огорчен очередным абсурдным и вредным шагом со стороны органов власти РФ в попытке ввести цензуру в сети.
Короткая инструкция по установке socks-сервера для обхода блокировок (в первую очередь Telegram).
В данном примере используется Debian 9.
Также можно воспользоваться скриптом для автоматической установки
- github - CentOS 6, CentOS 7, Debian 7, Debian 8, Ubuntu 14.04, Ubuntu 16.10,
- https://selivan.github.io/socks/ - CentOS 7, Ubuntu 16.04, Ubuntu 18.04 U+1F44D
Далеко не все программы имеют поддержку 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
Можно смело пропустить эту ошибку
Свежая версия 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:[email protected]:1080 check-host.net/ip curl --socks5 rootwelt:[email protected]: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
Веб-интерфейс для администрирования
Код на Github - https://github.com/IvanDanilov/dante-gui
Плагин для браузера
Так как браузеры не поддерживают авторизацию на socks-сервере, то необходима установка дополнительных плагинов. Для Firefox рекомендуем FoxyProxy.
Для Google Chrome в сети рекомендуют использовать Proxy Helper, но к сожалению он не работает - SOCKS Authentication is not implemented in Chrome.
Тест скорости через socks-сервер в браузере
Делимся ссылкой в Telegram
Формат следующий - https://t.me/socks?server=IP&port=PORT&user=USERNAME&pass=PASSWORD
БОНУС
Можно использовать 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 }
Обсуждение
Здравствуйте! очень заинтересовало ,но сам начинающий ,и не совсем ясно с чего начать установку, вот на впс установил Debian 9. а что дальше ,куда и что делать могли бы вы подсказать , нужно это мне ,а вот чтоб кто -то подсказал по действиям такой помощи нету у меня! заранее благодарен и признателен за помощь!