Настройка Proxy/VPN сервера (Часть вторая SOCKS5)

Продолжаем развлекаться настройкой моего Proxy/VPN проекта и в прошлом цикле заметок прошлись по многим аспектам и даже настроили HTTP-сервер на базе Squid и теперь мы плавно пришли к настройке SOCKS5 с авторизацией.

Фактически у нас все готово и есть LXC-контейнер для SOCKS-прокси.

# lxc ls
+----------------+---------+-------------------+------+-----------+-----------+
|      NAME      |  STATE  |       IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
+----------------+---------+-------------------+------+-----------+-----------+
| srv-lxc-socks5 | RUNNING | 10.101.5.3 (eth0) |      | CONTAINER | 0         |
+----------------+---------+-------------------+------+-----------+-----------+
| srv-lxc-squid  | RUNNING | 10.101.5.2 (eth0) |      | CONTAINER | 0         |
+----------------+---------+-------------------+------+-----------+-----------+

Настройка LXC-контейнера проходит аналогично версии с HTTP-прокси и повторяться не будем.

Установка SOCKS5-прокси сервера Dante

Установка стандартная из пакета.

# aptitude install dante-server

Активируем, запускаем и переходим к настройке.

# systemctl enable danted
# systemctl start danted

Настройка SOCKS5-прокси сервера Danted

Конфигурационный файл /etc/danted.conf и мы обработаем его аналогично как сделали со squid.

# cp /etc/danted.conf /etc/danted.conf.source
# cat /etc/danted.conf.source | grep -v "^#" | grep -v "^$" > /etc/danted.conf

Файл конфигурации конечно очень интересный, но не работающий.

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

Минимальная конфигурация для подключения без авторизации откуда угодно выглядит так.

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

internal: eth0 port = 11087
external: eth0

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
}

Проверяем, что все работает.

$ curl --socks5 10.101.5.3:11087 http://check-host.net/ip
92.246.129.81

Прокси без авторизации это так себе идея и давайте настроим доступ по логин-пароль.

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

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

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

Перезапускаем сервис и пробуем с авторизацией, без авторизации и с неверным паролем.

$ curl --socks5 10.101.5.3:11087 http://check-host.net/ip
curl: (97) No authentication method was acceptable.
$ curl --socks5 chernousov:RealPassword@10.101.5.3:11087 http://check-host.net/ip
92.246.129.81
$ curl --socks5 chernousov:WrongPassword@10.101.5.3:11087 http://check-host.net/ip
curl: (97) User was rejected by the SOCKS5 server (1 1).

Все работает, далее прописываем правило в Firewall и радуемся.

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

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Nextcloud — отличное решение для хранения файлов, но управление пользователями вручную становится головной болью при масштабировании. Keycloak позволяет централизовать аутентификацию, обеспечивая безопасность, поддержку MFA (двухфакторной аутентификации) и удобный вход через…

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Пакеты в Ubuntu по умолчанию настроены на работу с серверами, имеющими довольно много оперативной памяти. Нам нужно жёстко ограничить потребление памяти для работы на Mikro VPS. Запускать будем мой блог…

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

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

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

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Интеграция Gitea и Keycloak: пошаговое руководство

Интеграция Gitea и Keycloak: пошаговое руководство

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда