Назад | Перейти на главную страницу

Невозможно остановить RabbitMQ от прослушивания порта 25672 на всех интерфейсах

В настоящее время я работаю над приложением, использующим сельдерей в сочетании с rabbitmq, из-за проблем безопасности никакие службы, не требующие подключения к Интернету, должны прослушивать только localhost.

Осмотревшись, я обнаружил этот вопрос, который показывает, как я могу сделать большинство порты слушают только локальный хост, но по какой-то причине порт 25672 остается открытым, что я определил как часть rabbitmq:

$ nmap -sV -p25672 -T5 <my server>

Starting Nmap 7.50 ( https://nmap.org ) at 2018-08-04 23:54 CEST
Nmap scan report for <my server> (<my server>)
Host is up (0.011s latency).

PORT      STATE  SERVICE VERSION
25672/tcp open   unknown

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 124.87 seconds

На сервере:

$ lsof -i :25672
COMMAND   PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
beam.smp 4513 rabbitmq   12u  IPv4 473675236      0t0  TCP *:25672 (LISTEN)

В man запись для rabbitmq не указывает, как это изменить, и я не могу узнать, как это сделать в Интернете. Может ли кто-нибудь указать мне в правильном направлении, как заставить его слушать 127.0.0.1 скорее, чем 0.0.0.0?


Изменить: Да пошло оно, iptables.

iptables -A INPUT -p tcp -s localhost --dport 25672 -j ACCEPT
iptables -A INPUT -p tcp --dport 25672 -j DROP

Я нашел это в документация через пять секунд после поиска rabbitmq port...

listeners.tcp.1 = 127.0.0.1:5672
listeners.tcp.2 = ::1:5672

Или в классическом формате конфигурации:

[
  {rabbit, [
    {tcp_listeners, [{"127.0.0.1", 5672},
                     {"::1",       5672}]}
  ]}
].

(Предупреждение: вам, вероятно, понадобится и то, и другое, поскольку localhost разрешается в :: 1 во всех ОС, выпущенных за последнее десятилетие или около того, а привязка только к 127.0.0.1 может вызвать проблемы у некоторых приложений.)