J'ai ces règles dans UFW (default deny) :
80 ALLOW 10.0.0.0/8
443 ALLOW 10.0.0.0/8
80 DENY Anywhere
443 DENY Anywhere
Je me connecte depuis une machine sur 10.0.0.0/8 à Apache qui écoute sur le port 80. Nous avons remarqué que nginx fonctionnant sur une autre machine (un équilibreur de charge en face de cette machine Apache) envoyait occasionnellement des erreurs "connect timeout". Je suis en mesure de recréer le délai d'attente en exécutant simplement un boucle for dans un boucle for bash qui accède au port 80 à partir de cette machine nginx. J'obtiens peut-être 3 ou 4 dépassements de délai dans un lot de 1000 tests.
Dans /var/log/messages, je vois ceci lorsque les délais sont dépassés :
Dec 1 01:01:01 webserver.mydomain.com kernel : [UFW BLOCK] IN=eth0 OUT= MAC=00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd SRC=10.0.0.5 DST=10.0.0.2 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=16923 DF PROTO=TCP SPT=60064 DPT=80 WINDOW=5792 RES=0x00 SYN URGP=0
Pourquoi l'UFW les bloquerait-il ? Si je désactive l'UFW, ces délais de connexion disparaissent complètement et tout fonctionne comme prévu. D'autres ports (comme le 22) n'ont pas ce problème, je peux exécuter des scripts qui les martèlent sans fin sans aucun problème, même avec ufw activé.