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. Перевірте конфігурацію встановленою командою до запуску служби. Застосуйте відповідні обмеження джерела на міжмережевому екрані, а тоді перевірте дозволену ціль і контрольовану ціль, яку має бути заборонено.