Установка Dante SOCKS Proxy на Ubuntu 24.04
Добавлено: 15 мар 2026, 14:33
1. Обновление системы
Установка Dante SOCKS Proxy
Конфигурация Dante (sockd.conf)
Базовый конфиг для старта
Приведу пример конфигурации, которая:
Слушает на всех интерфейсах порт 3334
Разрешает подключения только с локальной сети
Использует аутентификацию по логину/паролю (PAM)
Логирует ошибки и успешные подключения
Вариант без аутентификации (для тестов)
Опасно! Такую конфигурацию используй только в закрытых тестовых сетях. В интернете это приведёт к созданию открытого прокси.
Создание пользователей для аутентификации
Dante использует системную PAM-аутентификацию. Проще всего создать отдельного пользователя ОС:
Теперь можно подключаться к прокси с логином proxyuser и указанным паролем.
Запуск и управление службой Dante
# Проверка синтаксиса конфигурации
# Запуск службы
# Автозагрузка при старте системы
# Проверка статуса
# Просмотр логов в реальном времени
# Перезагрузка конфигурации без разрыва соединений
sudo systemctl reload danted
Тестирование подключения
Протестируем наш SOCKS5 proxy с разных клиентов.
1. Через cURL (командная строка)
# Без аутентификации
# С аутентификацией
2. Настройка в браузере (Firefox)
Зайди в Настройки → Прокси-сервер → Ручная настройка прокси:
3. Через SSH туннель (если нужно)
Продвинутая настройка и оптимизация
Ограничение по IP-адресам
Допустим, мы хотим разрешить подключение к прокси только с определенной подсети:
Настройка таймаутов и производительности
Мониторинг и диагностика
# Проверка открытых портов
# Количество активных подключений
# Детальные логи (анализ проблем)
# Проверка конфигурации на ошибки
Ошибка «could not open or create logfile "/var/log/danted.log" for writing: Read-only file system» возникает при настройке прокси-сервера Danted :
Ошибка может быть связана с неправильной конфигурацией службы запуска демона Danted. Например, в файле
/lib/systemd/system/danted.service
не указана строка ReadWriteDirectories=/var/log, которая разрешает запись в директорию /var/log/
Решение:
Остановить службу
Изменить конфигурацию службы. В файле /lib/systemd/system/danted.service
Например, файл может выглядеть так:
InaccessibleDirectories=/boot /home /media /mnt /opt /root
ReadOnlyDirectories=/bin /etc /lib -/lib64 /sbin /usr /var
ReadWriteDirectories=/var/log
...
Применить изменения. Для этого нужно выполнить команды:
Производительность и оптимизация
Для высоконагруженных систем стоит настроить несколько параметров. Добавим в конфиг:
Также стоит увеличить системные лимиты:
# В /etc/security/limits.conf
# В
Код: Выделить всё
apt update && sudo apt upgrade -y
apt install -y wget curl net-tools
Код: Выделить всё
apt install -y dante-serverКод: Выделить всё
mv /etc/danted.conf /etc/danted.conf.backup
nano /etc/danted.confПриведу пример конфигурации, которая:
Слушает на всех интерфейсах порт 3334
Разрешает подключения только с локальной сети
Использует аутентификацию по логину/паролю (PAM)
Логирует ошибки и успешные подключения
Код: Выделить всё
# Логгирование: syslog или указать файл
logoutput: /var/log/danted.log
# Интерфейсы и порты для входящих подключений
internal: 0.0.0.0 port = 3334
# Внешний интерфейс (через который идёт исходящий трафик)
external: ens3
# Методы аутентификации
# none — без аутентификации (не рекомендуется)
# username — аутентификация по логину/паролю
socksmethod: username
# Метод аутентификации для отдельных правил (если нужно)
clientmethod: none
# Пользователи, которым разрешено подключаться
# Можно указать конкретных пользователей или всех аутентифицированных
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
# Правила для SOCKS-запросов
# Разрешаем проходить трафик только аутентифицированным пользователям
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bind connect udpassociate
log: connect disconnect error
socksmethod: username
}
# Блокируем всё остальное
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
Вариант без аутентификации (для тестов)
Опасно! Такую конфигурацию используй только в закрытых тестовых сетях. В интернете это приведёт к созданию открытого прокси.
Код: Выделить всё
logoutput: /var/log/danted.log
internal: 0.0.0.0 port = 3334
external: ens3
# Отключаем аутентификацию
socksmethod: none
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bind connect udpassociate
}Dante использует системную PAM-аутентификацию. Проще всего создать отдельного пользователя ОС:
Код: Выделить всё
sudo useradd -r -s /bin/false proxyuser
sudo passwd proxyuser
# Задай надежный парольЗапуск и управление службой Dante
# Проверка синтаксиса конфигурации
Код: Выделить всё
sudo danted -f /etc/danted.conf -VКод: Выделить всё
sudo systemctl start dantedКод: Выделить всё
sudo systemctl enable dantedКод: Выделить всё
sudo systemctl status dantedКод: Выделить всё
sudo tail -f /var/log/danted.logsudo systemctl reload danted
Тестирование подключения
Протестируем наш SOCKS5 proxy с разных клиентов.
1. Через cURL (командная строка)
# Без аутентификации
Код: Выделить всё
curl --socks5-hostname 127.0.0.1:3334 https://drivesource.ru/Код: Выделить всё
curl --proxy socks5://proxyuser:пароль@127.0.0.1:3334 https://drivesource.ruЗайди в Настройки → Прокси-сервер → Ручная настройка прокси:
Код: Выделить всё
SOCKS Хост: IP твоего сервера
Порт: 3334
Тип: SOCKS v5
Отметь «Использовать этот прокси-сервер для всех протоколов»
Код: Выделить всё
ssh -D 3334 -N -f user@your-dante-server.comОграничение по IP-адресам
Допустим, мы хотим разрешить подключение к прокси только с определенной подсети:
Код: Выделить всё
client pass {
from: 192.168.1.0/24 to: 0.0.0.0/0
log: connect disconnect error
}
client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}Код: Выделить всё
# Таймаут подключения клиента (секунды)
clienttimeout: 30
# Таймаут операции ввода-вывода
iottimeout: 30
# Лимит одновременных подключений
# user.privileged: root
# user.notprivileged: nobody
# Максимальное количество клиентов
client limit: 1000# Проверка открытых портов
Код: Выделить всё
sudo netstat -tlnp | grep 3334Код: Выделить всё
sudo ss -tpn | grep dantedКод: Выделить всё
sudo journalctl -u danted -fКод: Выделить всё
sudo danted -f /etc/danted.conf -V -NОшибка «could not open or create logfile "/var/log/danted.log" for writing: Read-only file system» возникает при настройке прокси-сервера Danted :
Ошибка может быть связана с неправильной конфигурацией службы запуска демона Danted. Например, в файле
/lib/systemd/system/danted.service
не указана строка ReadWriteDirectories=/var/log, которая разрешает запись в директорию /var/log/
Решение:
Остановить службу
Изменить конфигурацию службы. В файле /lib/systemd/system/danted.service
Код: Выделить всё
добавить строку ReadWriteDirectories=/var/logInaccessibleDirectories=/boot /home /media /mnt /opt /root
ReadOnlyDirectories=/bin /etc /lib -/lib64 /sbin /usr /var
ReadWriteDirectories=/var/log
...
Применить изменения. Для этого нужно выполнить команды:
Код: Выделить всё
systemctl daemon-reload
systemctl restart danted
Для высоконагруженных систем стоит настроить несколько параметров. Добавим в конфиг:
Код: Выделить всё
# Настройки производительности
child.maxrequests: 0
child.maxlifetime: 0
# Буферизация
resolveprotocol: tcp# В /etc/security/limits.conf
Код: Выделить всё
nobody soft nofile 65536
nobody hard nofile 65536Код: Выделить всё
vim /lib/systemd/system/danted.serviceКод: Выделить всё
[Service]
LimitNOFILE=65536