В настоящее время я работаю над приложением, использующим сельдерей в сочетании с 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 может вызвать проблемы у некоторых приложений.)