Запрос SOCKS v5 отправляет текущего пользователя, а не пользователя
Мои вопросы:
1) Как я могу использовать dante в качестве прокси-сервера SOCKS v5, без аутентификации для отправки сообщений amqp от производителя в RabbitMQ в сети docker-compose?
2) Я никогда раньше не пользовался SOCKS, поэтому понятия не имею, глупо ли то, что я пытаюсь сделать, или это не должно работать, не так ли?
В настоящее время я пытаюсь настроить сеть из трех частей:
- Прокси-сервер (Данте)
- Сервер RabbitMQ.
- Производитель сообщений.
Я хочу передать мои сообщения через 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.