SOCKS5-сервер с ограниченным доступом на Dante
Настройте Dante 1.4.4 с конкретным слушателем, одним разрешённым клиентом и одним назначением, различая два этапа правил.
Dante выполняет две проверки доступа: правило client допускает входящий источник, а правило SOCKS разрешает запрошенные назначение и команду. Этот пример для Dante 1.4.4 позволяет одному клиенту обращаться к одному контролируемому назначению на порту 443.
Учётная запись службы и адреса
Создайте отдельную учётную запись с низкими привилегиями, если установка её не предоставляет:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteproxy
Обе рабочие идентичности могут использовать эту учётную запись в приведённой ниже конфигурации с высоким портом и списком разрешённых источников. Парольная аутентификация или привилегированные функции требуют пересмотра этих настроек. До использования замените все документационные адреса.
logoutput: stderr
internal: 192.0.2.10 port = 1080
external: 192.0.2.10
clientmethod: none
socksmethod: none
user.privileged: danteproxy
user.unprivileged: danteproxy
client pass {
from: 198.51.100.27/32 to: 192.0.2.10/32 port = 1080
log: connect error
}
socks pass {
from: 198.51.100.27/32 to: 203.0.113.20/32 port = 443
command: connect
log: connect error
}
internal выбирает слушателя для клиентов, external — исходящий адрес. Сервер с одним интерфейсом может использовать один назначенный адрес для обоих. При необходимости можно указать имя интерфейса; проверьте, в какие адреса оно разворачивается.
Что разрешает эта политика
Первое правило допускает указанный источник к слушателю. Второе разрешает только CONNECT к указанной цели. Несовпавшие запросы остаются заблокированными, включая BIND и UDP ASSOCIATE.
Настройки методов не дают аутентификации по имени пользователя. Доступ зависит от узкого правила источника и его сетевой границы. Такая схема подходит лишь там, где этот источник идентифицирует авторизованного клиента.
sockd -V -f /path/to/sockd.conf
В некоторых дистрибутивах исполняемый файл называется danted. Проверьте конфигурацию установленной командой до запуска службы. Примените соответствующие ограничения источника на межсетевом экране и затем проверьте разрешённую цель и контролируемую цель, которая должна быть запрещена.