Быстрая установка и настройка 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

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

Настройка сервера печати CUPS и интеграция с FreeIPA

В проекте по внедрению RedOS для замены Windows-инфраструктуры вопрос с CUPS я оттягивал до последнего. Я прекрасно знаю какой это глюкодром, но выбора у меня особо нет да и тема…

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

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

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

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

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

Настройка сервера печати CUPS и интеграция с FreeIPA

Настройка сервера печати CUPS и интеграция с FreeIPA

Эволюция приложения в облаке: как запустить микросервисы в Managed Kubernetes

Эволюция приложения в облаке: как запустить микросервисы в Managed Kubernetes

Подтвердил свой уровень на Хабр-карьере

Подтвердил свой уровень на Хабр-карьере

Введение в VibeCode — навайбкодим сайт-визитку-резюме

Введение в VibeCode — навайбкодим сайт-визитку-резюме

Установка 1С Предприятие в REDOS 8.0

Установка 1С Предприятие в REDOS 8.0