Come posso fare RabbitMQ ascoltare solo localhost?

Ho installato RabbitMQ su una macchina Debian Linux Squeeze e vorrei solo ascoltare l'interface localhost. ho aggiunto

RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 

al mio file /etc/rabbitmq/rabbitmq.conf e che lo lega solo all'interface localhost quando ascolta la port amqp (5672). Comunque, esso si lega ancora a tutte le interfacce durante l'ascolto su porte epmd (4369) e 43380:

  • Come riavviare il rabbitmq dopo le macchine di commutazione?
  • Errore durante l'installazione del server rabbitMQ su Ubuntu 10.10
  • Rabbitmq -> rapporti epmd: nodo 'rabbitmq' non funziona affatto?
  • Il cluster RabbitMQ rottura non sarà riavviato
  • Rabbitmq - ragionevoli performance / aspettative di scala
  • Perché Uchiwa non è in grado di monitorare il datacenter su CentOS7?
  •  # lsof -n -a -i -urabbitmq COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME epmd 7353 rabbitmq 3u IPv4 1177662 0t0 TCP *:epmd (LISTEN) epmd 7353 rabbitmq 5u IPv4 1177714 0t0 TCP 127.0.0.1:epmd->127.0.0.1:50877 (ESTABLISHED) beam.smp 7365 rabbitmq 10u IPv4 1177711 0t0 TCP *:43380 (LISTEN) beam.smp 7365 rabbitmq 11u IPv4 1177713 0t0 TCP 127.0.0.1:50877->127.0.0.1:epmd (ESTABLISHED) beam.smp 7365 rabbitmq 19u IPv4 1177728 0t0 TCP 127.0.0.1:amqp (LISTEN) 

    Come posso evitare questo? Devo impostare iptables, o ci sono altre opzioni di configuration RabbitMQ che lo faranno fare quello che voglio?

  • Errore durante l'installazione del server rabbitMQ su Ubuntu 10.10
  • Il cluster RabbitMQ rottura non sarà riavviato
  • Sensu alternativa (?) Dove le soglie di allarme definite sul server (client non monitorato)
  • Imansible avviare server rabbitmq su Ubuntu 12.04
  • Rabbitmq - ragionevoli performance / aspettative di scala
  • RabbitMQ - Come faccio a configurare i server per gli aggiornamenti zero-downtime?
  • 4 Solutions collect form web for “Come posso fare RabbitMQ ascoltare solo localhost?”

    Mettendo le seguenti in /etc/rabbitmq/rabbitmq-env.conf farà RabbitMQ e epmd ascoltare solo localhost:

     export RABBITMQ_NODENAME=rabbit@localhost export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 export ERL_EPMD_ADDRESS=127.0.0.1 

    Ci vuole un po 'più lavoro per configurare Erlang per utilizzare solo localhost per la port più numerata (che viene utilizzata per i cluster di nodes per quanto posso dire). Se non ti interessa il clustering e vuoi solo che il rabbitmq venga eseguito completamente a livello locale, puoi passare ad Erlang un'opzione del kernel per utilizzare l'interface di loopback.

    A tal fine, crea un nuovo file in /etc/rabbitmq/ – lo chiamerò rabbit.config . In questo file metteremo l'opzione Erlang che dobbiamo caricare nel tempo di esecuzione.

     [{kernel,[{inet_dist_use_interface,{127,0,0,1}}]}]. 

    Se stai usando il plugin di gestione e desideri limitarlo a localhost, dovrai configurare separatamente le porte, facendo in modo che il rabbit.config includa questo:

    [ {rabbitmq_management, [ {listener, [{port, 15672}, {ip, "127.0.0.1"}]} ]}, {kernel, [ {inet_dist_use_interface,{127,0,0,1}} ]} ].

    (Nota RabbitMQ lascia epmd in esecuzione quando si spegne, quindi se si desidera bloccare la port di cluster Erlang, è necessario riavviare l'epmd separatamente dal rabbitmq.)

    Avanti dobbiamo avere RabbitMQ caricati questo all'avvio. Aprire nuovamente /etc/rabbitmq/rabbitmq.conf e mettere in alto la seguente:

     export RABBITMQ_CONFIG_FILE="/etc/rabbitmq/rabbit" 

    Questo carica quel file di configuration quando il server rabbitmq viene avviato e passerà le opzioni a Erlang.

    Ora dovresti avere tutti i processi Erlang / RabbitMQ ascoltando solo su localhost! Questo può essere verificato con netstat -ntlap

    EDIT: nelle versioni precedenti di RabbitMQ, il file di configuration è: /etc/rabbitmq/rabbitmq.conf . Tuttavia, questo file è stato sostituito dal file rabbit-env.conf .

    Per eseguire l'ascolto di RabbitMQ su localhost / bind solo a localhost:

    3 modi diversi (tutti equivalenti):

    • Inserisci NODE_IP_ADDRESS = 127.0.0.1 nel file delle variables di ambiente (vedere http://www.rabbitmq.com/configure.html#define-environment-variables )

    • Mettere le properties; tcp_listeners e ssl_listeners nel file di configuration: le voci di configuration tcp_listeners e ssl_listeners governano le interfacce che RabbitMQ ascolta. Ad esempio, {tcp_listeners, [{'127.0.0.1', 5672}]} (la syntax potrebbe non essere corretta, controllarlo) http://www.rabbitmq.com/configure.html# config-file

    • esportre l'env. variabile nello script di avvio (/etc/init.d/rabbitmq-server) esport RABBITMQ_NODE_IP_ADDRESS = 127.0.0.1

    Quest'ultima ha lavorato per me.

    EPMD:

    Il programma Epmd rende parti distribuite del lavoro di runtime di Erlang. Se si sta costruendo un cluster multi-macchina è necessario lasciarli accessibili ad altri nodes e certamente localhost. Ma ha protezione integrata tramite file cookie.

    Non richiede mai alcuna attenzione. Basta tenere a mente che i programmi erlang (tra cui il rabbitmq, per esempio) devono accedere a tale port per contattare altri programmi erlang.

    Ma, se si tratta di dati finanziari o di dati sanitari, la protezione dell'epmd può essere una buona idea. L'utilizzo di epmd di port predefinito è 4369, altri programmi si connettono tramite tcp.

    Vedi anche: http://www.erlang.org/doc/man/epmd.html#environment_variables

    Se è necessario proteggere RabbitMQ ulteriormente,

    1. Distriggers l'account guest incorporato http://www.rabbitmq.com/admin-guide.html#default-state

    2. Considerate l'utilizzo di SSL e l'authentication utilizzando la catena del certificato

    Ho ricevuto queste risposte dal canale IRC di community RabbitMQ.

    Desidero ringraziarli.

    http://dev.rabbitmq.com/irclog/index.php?date=2011-06-14

    Spero che quanto sopra salva un po 'di tempo per te (ci sono voluti 6 ore per trovare una risposta).

    Se si specifica le variables di ambiente nel file rabbitmq.conf si deve disdire il prefisso RABBITMQ_, quindi provare:

    NODE_IP_ADDRESS = 127.0.0.1

    AFAIK non è ansible configurare le interfacce epmd. È ansible impostare solo la port epmd: http://www.erlang.org/faq/how_do_i.html#id55132

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.