Различия
Показаны различия между двумя версиями страницы.
| 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> | ||