Perché iptables improvvisamente bloccava HAProxy

Ho un server Apache dietro un server HAProxy. All'inizio di oggi, il server è diventato non disponibile e HAProxy ha lanciato 503 errori nella parte anteriore. Dopo aver esaminato, sembra che iptables ha iniziato a bloccare le richieste da HAProxy e riavviando Apache ha risolto il problema. Ho bisogno di aiuto per capire perché iptables inizierebbe in modo random a negare queste richieste in modo da impedirlo che accada in futuro.

HAProxy = 10.xxx.xxx.26
Web1 = 10.xxx.xxx.229

voce del registro iptables:

May 16 22:12:27 web1 kernel: [339449.200414] iptables denied: IN=eth1 OUT= MAC=40:40:e9:0d:29:96:40:40:25:5e:3d:74:08:00 SRC=10.xxx.xxx.26 DST=10.xxx.xxx.229 LEN=80 TOS=0x00 PREC=0xC0 TTL=64 ID=9773 PROTO=ICMP TYPE=3 CODE=3 [SRC=10.xxx.xxx.229 DST=10.xxx.xxx.26 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=15095 DF PROTO=TCP SPT=80 DPT=43176 WINDOW=55 RES=0x00 ACK FIN URGP=0 ] 

iptables config (le regole nagios / ssh rimosse per la leggibilità):

 Web1:/var/log# cat /etc/iptables.test.rules *filter :INPUT ACCEPT [5620:459239] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [4375:4238642] -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 -i ! lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -i lo -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -i lo -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMIT 

  • UFW / IPTables: come consentire l'accesso autenticato di git con github
  • Linux-KVM / iptables: impedisce che spoofing ospiti corrisponda all'indirizzo ip + mac sul ponte?
  • Bloccando permanentemente un dominio in iptables
  • Inoltro di RDP tramite una macchina Linux usando iptables: non funzionante
  • iptables - OK, ** ora ** sto facendo bene?
  • Come disabilitare l'accesso esterno a 127.0.0.1?
  • iptables che bloccano il traffico
  • inoltro di pacchetti iptables a uno dei due gateway in base all'origine
  • One Solution collect form web for “Perché iptables improvvisamente bloccava HAProxy”

    Questa linea è il tuo colpevole per la voce del registro:

     -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 

    Ma la roba reale succosa è nell'output. HAProxy invia i pacchetti ICMP al server Web1, che è quello che stai vedendo nel registro.

    La cosa strana è il tipo … HAProxy sta inviando il tuo server Web ICMP Tipo 3 / Code 3, che è una risposta che afferma che una port è irraggiungibile. Questa è una risposta da un pacchetto precedente originato dal tuo server web (port 80) al server HAProxy (Dyn port 43176). Quello che sembra aver accaduto è che HAProxy ha concluso una session e chiuso la port dynamic prima che Apache ritenesse che la conversazione fosse finita.

    La ragione per cui è accaduto sopra, non lo so. Date un'occhiata a timeouts forse?

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