Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:dante
Различия
Показаны различия между двумя версиями страницы.
linux:dante [2019/01/30 14:50] – внешнее изменение 127.0.0.1 | linux:dante [2021/06/23 15:32] (текущий) – dx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | {{fl> | ||
+ | ====== Установка SOCKS5 сервера Dante ====== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | Я очень огорчен очередным абсурдным и вредным шагом со стороны органов власти РФ в попытке ввести цензуру в сети. | ||
+ | |||
+ | Короткая инструкция по установке socks-сервера для обхода блокировок (в первую очередь Telegram). | ||
+ | |||
+ | В данном примере используется Debian 9. | ||
+ | |||
+ | Также можно воспользоваться скриптом для автоматической установки | ||
+ | * [[https:// | ||
+ | * https:// | ||
+ | |||
+ | < | ||
+ | Dante это только SOCKS сервер. Если дополнительна нужна поддержка HTTP-прокси, | ||
+ | \\ | ||
+ | Далеко не все программы имеют поддержку SOCKS. Для перенаправления трафика ваших приложений на socks-сервер понадобится установка дополнительной программы (проксификатор). Для Windows это Freecap/ | ||
+ | </ | ||
+ | |||
+ | **Шаг 1. Установка Dante** | ||
+ | |||
+ | <code cli># apt-get install dante-server</ | ||
+ | |||
+ | Версия **1.4.1+dfsg-5** содержит ошибку (подробности в [[https:// | ||
+ | |||
+ | При старте будет что-то такое | ||
+ | |||
+ | < | ||
+ | warning: checkconfig(): | ||
+ | error: checkconfig(): | ||
+ | </ | ||
+ | |||
+ | Можно смело пропустить эту ошибку | ||
+ | |||
+ | < | ||
+ | Примечание для Ubuntu\\ | ||
+ | \\ | ||
+ | Свежая версия Dante в Ubuntu появилась только в версии 18.04. Если у вас 16.04, то вам пригодится статья по самостоятельной сборке deb пакета - [[https:// | ||
+ | </ | ||
+ | |||
+ | **Шаг 2. Основные настройки** | ||
+ | |||
+ | Конфигурационный файл ''/ | ||
+ | |||
+ | Ниже представлена типовая конфигурация | ||
+ | |||
+ | < | ||
+ | # Путь к лог файлу | ||
+ | logoutput: / | ||
+ | # Можно задать отдельный лог файл для ошибок | ||
+ | # errorlog: / | ||
+ | |||
+ | internal: eth0 port = 1080 | ||
+ | external: eth0 | ||
+ | |||
+ | # Авторизация по локальным/ | ||
+ | socksmethod: | ||
+ | |||
+ | # Мы используем системных пользователей, | ||
+ | user.privileged: | ||
+ | user.unprivileged: | ||
+ | user.libwrap: | ||
+ | |||
+ | # Разрешить подключения с любых 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 смотрите в разделе [[https:// | ||
+ | |||
+ | **Шаг 3. Логины/ | ||
+ | |||
+ | Добавим нового пользователя **rootwelt** для работы с socks сервером. | ||
+ | |||
+ | < | ||
+ | # useradd --shell / | ||
+ | # passwd rootwelt | ||
+ | </ | ||
+ | |||
+ | При этом у пользователя не будет доступа к SSH, т.к. в качестве шелла указан nologin. | ||
+ | |||
+ | **Шаг 4.** | ||
+ | |||
+ | Добавляем сервис в автозагрузку и запускаем его | ||
+ | |||
+ | < | ||
+ | # systemctl enable danted | ||
+ | # systemctl start danted | ||
+ | </ | ||
+ | |||
+ | Проверка (с локального Linux хоста; A.C.A.B здесь это IP адрес VPS) | ||
+ | |||
+ | < | ||
+ | curl --socks5 rootwelt: | ||
+ | curl --socks5 rootwelt: | ||
+ | </ | ||
+ | |||
+ | Хабр подсказал, | ||
+ | |||
+ | < | ||
+ | socks5 = A.C.A.B: | ||
+ | proxy-user = rootwelt: | ||
+ | user-agent = " | ||
+ | </ | ||
+ | |||
+ | ===== Немного о безопасности ===== | ||
+ | |||
+ | Вместо системных пользователей можно использовать [[https:// | ||
+ | |||
+ | Для этого необходимо дополнительно установить пакет **libpam-pwdfile**, | ||
+ | |||
+ | < | ||
+ | |||
+ | на эту | ||
+ | |||
+ | < | ||
+ | |||
+ | В файл ''/ | ||
+ | |||
+ | < | ||
+ | auth required pam_pwdfile.so pwdfile / | ||
+ | account required pam_permit.so | ||
+ | </ | ||
+ | |||
+ | В некоторых howto также советуют установить **apache2-utils** и создавать логин/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Но лучше использовать **mkpasswd** (входит в состав пакета **whois**) | ||
+ | |||
+ | < | ||
+ | |||
+ | Логин и зашифрованный пароль следует теперь добавить в файле ''/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Подробнее в статье на Habr' | ||
+ | |||
+ | ===== Веб-интерфейс для администрирования ===== | ||
+ | |||
+ | Код на Github - https:// | ||
+ | |||
+ | ===== Плагин для браузера ===== | ||
+ | |||
+ | Так как браузеры не поддерживают авторизацию на socks-сервере, | ||
+ | |||
+ | Для Google Chrome в сети рекомендуют использовать [[https:// | ||
+ | |||
+ | ===== Тест скорости через socks-сервер в браузере ===== | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | ===== Делимся ссылкой в Telegram ===== | ||
+ | |||
+ | Формат следующий - https:// | ||
+ | |||
+ | ===== БОНУС ===== | ||
+ | |||
+ | Можно использовать socks **только** для доступа к Telegram. Для этого необходимо изменить конфиг следующим образом ([[https:// | ||
+ | |||
+ | Список подсетей Telegram лучше всего смотреть на сайте https:// | ||
+ | |||
+ | < | ||
+ | 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/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 149.154.164.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.4.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.8.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.56.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: ::/0 to: 2001: | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.20.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.36.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.38.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: ::/0 to: 2001: | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 149.154.168.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.16.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.56.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: ::/0 to: 2001: | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 149.154.172.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 91.108.12.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: ::/0 to: 2001: | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 149.154.167.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: 149.154.174.0/ | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .telegram.org | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .stel.com | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .t.me | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .telegram.me | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .telegram.dog | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks pass { | ||
+ | from: 0.0.0.0/0 to: .telegra.ph | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | socks block { | ||
+ | from: 0.0.0.0/0 to: 0.0.0.0/0 | ||
+ | log: connect disconnect error | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | {{tag> |