Запрос SOCKS v5 отправляет текущего пользователя, а не пользователя

Мои вопросы:

1) Как я могу использовать dante в качестве прокси-сервера SOCKS v5, без аутентификации для отправки сообщений amqp от производителя в RabbitMQ в сети docker-compose?

2) Я никогда раньше не пользовался SOCKS, поэтому понятия не имею, глупо ли то, что я пытаюсь сделать, или это не должно работать, не так ли?

В настоящее время я пытаюсь настроить сеть из трех частей:

  1. Прокси-сервер (Данте)
  2. Сервер RabbitMQ.
  3. Производитель сообщений.

Я хочу передать мои сообщения через Dante на rabbitMQ.

Чтобы добиться этого, я начал моего продюсера со следующей опцией: -DsocksProxyHost=dante

Я запускаю приложения с помощью сценария создания докера, и я могу убедиться, что мой производитель подключается к хосту dante, Однако мой производитель всегда пытается соединиться с учетными данными текущих пользователей, то есть root (или socksuser, если я изменяю пользователя), игнорируя параметры: -Djava.net.socks.username=socksuser -Djava.net.socks.password=sockspass

То, что я могу проверить, установлено следующим выводом из docker compose:

    app_1     | Подключение к прокси-хосту: dante
    app_1     | Пользователь: socksuser с паролем: sockspass
    app_1     |
    dante_1   | 24 января 15:01:41 (1516806101.263639) sockd[7]: информация: pass(1): 
                  tcp/accept [: 172.19.0.4.40910 172.19.0.3.1080
    dante_1   | 24 января 15:01:41 (1516806101.265226) sockd[7]: информация: блок (1): 
                  tcp/accept ]: 172.19.0.4.40910 172.19.0.3.1080: 
                  ошибка после чтения 11 байт за 0 секунд: 
                  аутентификация по системному паролю 
                  не удалось для пользователя "root"

    app_1     | java.net.SocketException: SOCKS: аутентификация не удалась
    app_1     | в java.net.SocksSocketImpl.connect(SocksSocketImpl.java:473)

Образ докера dante, который я использую, это wernight / dante, с конфигурацией по умолчанию, которая гласит, что каждый может использовать прокси.

1 ответ

Метод, используемый для аутентификации SOCKS5, согласовывается путем согласования между клиентом SOCKS5 и сервером SOCKS5 до фактической аутентификации.

Так что, если клиент инициирует аутентификацию, которая указывает на то, что сервер требует ее, я бы проверил конфигурацию сервера SOCKS5.

Другие вопросы по тегам