Отключите порт прослушивания EPMD (4369) в Ubuntu / RabbitMQ
Я пытаюсь обеспечить установку RabbitMQ и не уверен, как защитить порт Erlang EPMD. У меня есть только одна машина, на которой запущено что-либо, поэтому я бы хотел, чтобы она прослушивалась только на устройстве обратной связи. В соответствии с документами, я добавил:
ERL_EPMD_ADDRESS=127.0.0.1
в /etc/rabbitmq/rabbitmq-env.conf
, но это не имеет никакого эффекта, так как порт все еще показывает открытый в nmap
из удаленной системы.
Есть ли способ заблокировать этот порт, который я не буду использовать?
1 ответ
Этот порт уже безопасен. Доступ к этому порту контролируется Cookie, который в основном является ключом разработчика, который уникален для этого конкретного сервера и создается во время установки. Вероятно, он находится в /var/lib/rabbitmq/.erlang.cookie, хотя дистрибутив может изменить это местоположение. Вы заметите, что файл cookie доступен для чтения только пользователю root.
Если удаленный узел (другой сервер) или локальный узел (еще один экземпляр Erlang на этом сервере) хочет установить связь с вашим сервером RabbitMQ, он должен представить файл cookie при обмене данными через EPMD, иначе запросы будут проигнорированы.
Если вы следуете передовым методам RabbitMQ, то RabbitMQ будет работать на своем собственном сервере, а два или три других сервера RabbitMQ будут сгруппированы с ним. В этом контексте "кластеризованный" означает совместное использование одного и того же файла cookie и обмен данными через один и тот же порт EPMD. Блокировка этого порта - это плохо.
Однако обычно хорошо иметь периметр вокруг кластера, который управляется межсетевым экраном, чтобы порт EPMD мог использоваться только изнутри периметра. Это подразумевает, что блокировка выполняется на устройстве брандмауэра, либо на сервере, выполняющем роль брандмауэра, либо на брандмауэре EC2 или аналогичном.