Быстрая установка и настройка SOCKS5-прокси Dante в Ubuntu Linux

Оцените статью

Понадобилось мне быстро и как говорится «на коленке» поднять SOCKS5-прокси с авторизацией, что бы трафик отправить до ЕСИА от разработчика через сервер где тестовый доступ открыт и в итоге я потратил час вспоминая как это настраивать.

Собственно я думаю, что эта инструкция еще не раз понадобится.

Установка необходимых пакетов

Устанавливаем собственно сам пакет и набор сетевых утилит.

# apt-get install -y curl wget net-tools
# apt-get install dante-server

Настраеваем автозапуск и запускаем.

# systemctl enable danted
# systemctl start danted

Сборка из исходных кодов

  1. Установите зависимости для сборки:
    # sudo apt install -y build-essential libpam0g-dev libssl-dev
  2. Скачайте последнюю версию Dante с официального сайта (проверьте актуальную на Dante Download).
    # cd /tmp wget https://www.inet.no/dante/files/dante-1.5.1.tar.gz
  3. Сконфигурируйте, соберите и установите.
    # ./configure --prefix=/usr --sysconfdir=/etc && make && make install
  4. Проверьте установку.
    # which sockd # Должно вывести: /usr/sbin/sockd

Создание пользователя и группы для Dante

Для безопасности запускать будем sockd от непривилегированного пользователя.

# groupadd dante
# useradd -r -s /bin/false -g dante dante

Создание системного сервиса 

Файл сервиса /etc/systemd/system/dante.service.

[Unit]
Description=Dante SOCKS server
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/sockd
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=dante
Group=dante
LimitNOFILE=32768

[Install]
WantedBy=multi-user.target

Настройка простейшей конфигурации SOCKS5-сервера

Файл конфигурации /etc/danted.conf в минимально работоспособном виде без поддержки авторизации выглядит следующим образом.

logoutput: syslog
user.privileged: proxy
user.unprivileged: nobody
user.libwrap: nobody

internal: eth0 port = 11087
external: ppp0

socksmethod: none
clientmethod: none

client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}

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

Перезапускаем.

# systemctl restart danted

Проверяем работу сервиса.

# curl --socks5 10.101.5.10:11087 http://check-host.net/ip
31.44.7.59

Настройка SOCKS5-сервера с авторизацией по логину и паролю

Без авторизации SOCS5-сервер в интернет лучше не выводить и настроим типовую pam-авторизацию (логин пароль и включение пользователя в группу).

  • Устанавливаем — socksmethod: username
  • В socks pass добавляем ограничение для группы — group: socks
  • Меняем группу — user.privileged: root

Создаем пользователя и группу, после чего добавляем пользователя в группу.

# useradd chernousov
# passwd chernousov
# groupadd socks
# usermod -aG socks chernousov

Перезапускаем сервис.

# systemctl start danted

Проверяем авторизацию.

Первый тест, авторизация без логин-пароль.

# curl --socks5 10.101.5.10:11087 http://check-host.net/ip
curl: (97) No authentication method was acceptable.

Второй тест авторизация с некорректным паролем.

# curl --socks5 chernousov:WrongPassword@10.101.5.10:11087 http://check-host.net/ip
curl: (97) User was rejected by the SOCKS5 server (1 1).

И наконец авторизация с правильным паролем.

Устранение ошибок

Для логирования в конфигурационном файле измените параметр.

logoutput: /var/log/dante/dante.log

Создайте каталог для логов и назначьте права.

# mkdir /var/log/dante
# chown nobody /var/log/dante

Уровень логирования задается параметром.

debug: 10

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования