Перейти к содержимому
Гайды 6 мин чтения 2 просмотров

Dante

Пошаговое руководство по установке и настройке SOCKS5 прокси-сервера Dante на Linux. Узнайте, как обеспечить анонимность и безопасность ваших соединений.

SOCKS5

Dante — это высокопроизводительный, гибкий и безопасный SOCKS-сервер и клиент, который позволяет настроить SOCKS5 прокси-сервер на Linux для маршрутизации сетевого трафика через промежуточный узел. Dante поддерживает SOCKS версии 4, SOCKS версии 5, а также расширенные методы аутентификации, что делает его подходящим решением для широкого круга задач, от обхода сетевых ограничений до обеспечения анонимности и безопасности соединений.

Предварительные требования

Для настройки Dante-сервера необходимы:

  • Сервер на базе Linux: Поддерживаются большинство дистрибутивов (Ubuntu, Debian, CentOS, RHEL, Fedora и др.).
  • Root-доступ или пользователь с sudo-правами: Для установки пакетов и редактирования системных конфигурационных файлов.
  • Базовые знания работы с командной строкой Linux: Понимание основных команд для навигации, редактирования файлов и управления службами.
  • Открытый порт: Для входящих соединений к прокси-серверу (по умолчанию 1080/TCP).

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

Процесс установки Dante-сервера различается в зависимости от используемого дистрибутива Linux.

Установка на Debian/Ubuntu

Обновите список пакетов и установите dante-server:

sudo apt update
sudo apt install dante-server -y

Установка на CentOS/RHEL/Fedora

На CentOS/RHEL может потребоваться включить репозиторий EPEL, если он еще не активен:

sudo yum install epel-release -y # Для CentOS/RHEL 7
sudo dnf install epel-release -y # Для CentOS/RHEL 8/9, Fedora
sudo yum install dante-server -y # Для CentOS/RHEL 7
sudo dnf install dante-server -y # Для CentOS/RHEL 8/9, Fedora

После установки служба dante-server будет добавлена, но не запущена до настройки.

Настройка Dante-сервера

Основной конфигурационный файл Dante находится по адресу /etc/dante.conf. Перед внесением изменений рекомендуется создать резервную копию оригинального файла.

sudo cp /etc/dante.conf /etc/dante.conf.bak

Откройте файл dante.conf для редактирования с помощью текстового редактора, например nano или vim:

sudo nano /etc/dante.conf

Ниже представлен пример минимальной конфигурации SOCKS5 прокси с аутентификацией по имени пользователя и паролю.

# Путь для логов. Можно использовать syslog или указать файл.
logoutput: syslog

# Внутренний интерфейс и порт, на котором Dante будет слушать входящие соединения.
# Замените 'eth0' на имя вашего внутреннего сетевого интерфейса (например, ens33, enp0s3).
# Порт 1080 - стандартный для SOCKS, но можно использовать любой свободный порт.
internal: eth0 port=1080

# Внешний интерфейс, через который Dante будет отправлять исходящие соединения.
# Замените 'eth0' на имя вашего внешнего сетевого интерфейса.
external: eth0

# Методы аутентификации для SOCKS-соединений.
# 'username' означает аутентификацию по имени пользователя/паролю.
# 'none' означает отсутствие аутентификации (не рекомендуется для публичных серверов).
socksmethod: username

# Привилегированный пользователь, под которым работает часть Dante.
user.privileged: root

# Непривилегированный пользователь, под которым работает основная часть Dante.
# Рекомендуется использовать непривилегированного пользователя для безопасности.
user.unprivileged: nobody

# Правила для клиентов
# Разрешает всем клиентам (0.0.0.0/0) подключаться к прокси.
# Ведет логи ошибок, подключений и отключений.
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

# Блокирует все остальные клиентские соединения (по сути, не требуется при наличии client pass all).
client block {
    from: all to: all
    log: connect error
}

# Правила для SOCKS-соединений
# Разрешает SOCKS-соединения от всех источников (0.0.0.0/0) ко всем назначениям (0.0.0.0/0).
# Требует аутентификации по имени пользователя/паролю ('username').
# Ведет логи ошибок, подключений и отключений.
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username
    log: error connect disconnect
}

# Блокирует все остальные SOCKS-соединения.
socks block {
    from: all to: all
    log: connect error
}

Пояснения к параметрам конфигурации

  • logoutput: Определяет, куда будут записываться логи Dante. syslog — отправка в системный журнал.
  • internal: Указывает IP-адрес или сетевой интерфейс, на котором Dante будет принимать входящие клиентские соединения, и порт. Например, internal: eth0 port=1080 или internal: 192.168.1.100 port=1080.
  • external: Указывает IP-адрес или сетевой интерфейс, через который Dante будет устанавливать исходящие соединения с целевыми серверами. Например, external: eth0.
  • socksmethod: Определяет методы аутентификации для SOCKS-соединений.
    • username: Требует аутентификации по имени пользователя и паролю. Dante использует PAM для проверки системных пользователей.
    • none: Не требует аутентификации (используйте с осторожностью).
  • user.privileged / user.unprivileged: Определяют системных пользователей, под которыми работают различные части демона Dante. Рекомендуется запускать непривилегированную часть под пользователем с минимальными правами (например, nobody).
  • client pass: Правила, определяющие, каким клиентам разрешено подключаться к прокси-серверу.
  • socks pass: Правила, определяющие, какие SOCKS-соединения разрешены через прокси (т.е., к каким внешним ресурсам разрешено подключаться).

Настройка аутентификации пользователей

Если в socksmethod указано username, необходимо создать системных пользователей, которые будут использоваться для аутентификации. Dante использует систему PAM (Pluggable Authentication Modules) для проверки этих пользователей.

Создайте нового пользователя (например, danteuser) и установите для него пароль:

sudo useradd -r -s /bin/false danteuser
sudo passwd danteuser
  • useradd -r: Создает системного пользователя.
  • -s /bin/false: Запрещает пользователю вход в систему через оболочку, повышая безопасность.

При запросе прокси-сервером пользователь danteuser должен будет ввести установленный пароль.

Запуск и управление Dante-сервером

После сохранения конфигурационного файла (Ctrl+X, Y, Enter для nano) необходимо перезапустить службу Dante.

Проверка конфигурации

Перед перезапуском можно проверить синтаксис конфигурационного файла:

sudo /usr/sbin/sockd -V 2

Если ошибок нет, команда вернет Configuration file /etc/dante.conf is ok.

Перезапуск службы

sudo systemctl restart dante-server

Включение автозапуска

Чтобы Dante запускался автоматически при загрузке системы:

sudo systemctl enable dante-server

Проверка статуса службы

sudo systemctl status dante-server

Вывод должен показать, что служба активна (active (running)).

Просмотр логов

Для отладки или мониторинга можно просмотреть логи Dante:

sudo journalctl -u dante-server -f

Или, если logoutput настроен на syslog:

tail -f /var/log/syslog # Для Debian/Ubuntu
tail -f /var/log/messages # Для CentOS/RHEL

Настройка файрвола

Для того чтобы клиенты могли подключаться к SOCKS5 прокси-серверу, необходимо разрешить входящие соединения на выбранном порту (по умолчанию 1080) в файрволе.

Для UFW (Ubuntu/Debian)

sudo ufw allow 1080/tcp
sudo ufw enable # Если UFW не включен

Для FirewallD (CentOS/RHEL/Fedora)

sudo firewall-cmd --permanent --add-port=1080/tcp
sudo firewall-cmd --reload

Тестирование SOCKS5 прокси

После настройки Dante и файрвола можно проверить работу прокси-сервера.

Тестирование с помощью curl

Используйте curl для проверки соединения через SOCKS5 прокси. Замените YOUR_SERVER_IP, danteuser и password на ваши данные.

curl -x socks5://danteuser:password@YOUR_SERVER_IP:1080 https://api.ipify.org?format=json

Если прокси работает корректно, в ответ вы получите JSON-объект с внешним IP-адресом вашего Dante-сервера.

Тестирование в браузере

  • Firefox:

    1. Откройте "Настройки" -> "Общие" -> "Параметры сети" -> "Настроить".
    2. Выберите "Ручная настройка прокси".
    3. В поле "SOCKS-хост" введите IP-адрес вашего сервера и порт (например, YOUR_SERVER_IP, 1080).
    4. Выберите "SOCKS v5" и поставьте галочку "Удаленный DNS".
    5. Нажмите "ОК". При первом запросе браузер запросит имя пользователя и пароль.
  • Google Chrome (использует системные настройки):
    На Linux Chrome обычно использует системные настройки прокси. Для явной настройки можно запустить Chrome с флагами:
    bash google-chrome --proxy-server="socks5://danteuser:password@YOUR_SERVER_IP:1080"
    Или настроить системные переменные среды (например, ALL_PROXY).

Дополнительные параметры и расширенные настройки

Dante предлагает множество опций для более тонкой настройки:

  • Привязка к конкретному IP-адресу: Если у сервера несколько сетевых интерфейсов или IP-адресов, можно явно указать, какой из них использовать:
    conf internal: 192.168.1.100 port=1080 external: 10.0.0.5

  • Несколько внешних IP-адресов (ротация): Для исходящих соединений можно использовать несколько внешних IP-адресов в режиме ротации:
    conf external.rotation: route external: eth0 # IP 1 external: eth0 # IP 2 # ... можно указать несколько раз один и тот же интерфейс, если на нем настроены алиасы IP

  • Ограничение доступа по IP-адресам клиентов: Чтобы разрешить подключение только с определенных подсетей:
    conf client pass { from: 192.168.1.0/24 to: 0.0.0.0/0 log: error connect disconnect } client block { from: all to: all log: connect error }

  • Без аутентификации (для доверенных сетей): Для использования в полностью доверенных внутренних сетях можно отключить аутентификацию, изменив socksmethod:
    conf socksmethod: none
    Это не рекомендуется для серверов, доступных из интернета.

  • Ограничение доступа к внешним ресурсам: Можно разрешить SOCKS-соединения только к определенным доменам или IP-адресам:
    conf socks pass { from: 0.0.0.0/0 to: example.com socksmethod: username log: error connect disconnect } socks pass { from: 0.0.0.0/0 to: 192.168.10.0/24 socksmethod: username log: error connect disconnect } socks block { from: all to: all log: connect error }

Обновлено: 04.03.2026
Назад к категории

Попробуйте наши прокси

20,000+ прокси в 100+ странах мира