UFW bloqueando a porta 80 quando não deveria

3

Eu tenho essas regras no UFW (negação padrão):

80                         ALLOW       10.0.0.0/8
443                        ALLOW       10.0.0.0/8
80                         DENY        Anywhere
443                        DENY        Anywhere

Estou conectando de uma máquina em 10.0.0.0/8 ao Apache ouvindo na porta 80. Percebemos que o nginx em execução em outra máquina (um balanceador de carga na frente dessa máquina do apache) ocasionalmente emitia erros de "tempo limite de conexão". Eu sou capaz de recriar o tempo limite simplesmente executando um loop for em um script bash que atinge a porta 80 daquela máquina nginx. Eu recebo talvez 3 ou 4 timeouts em um lote de 1000 testes.

Em / var / log / messages vejo estes quando os tempos limite acontecem:

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

Por que o UFW estaria bloqueando isso? Se eu desabilitar o UFW, esses tempos limite de conexão desaparecerão completamente e tudo funcionará como esperado. Outras portas (como 22) não tem esse problema, eu posso rodar scripts que martelam os infinitamente sem problemas, mesmo com o ufw ativado.

    
por gtuhl 07.12.2011 / 02:34

1 resposta

5

Passei um tempo significativo tentando solucionar esse problema. O envolvimento do UFW foi um sintoma do problema real e não da causa. Eu encontrei uma solução, então não queria deixar a pergunta sem resposta.

Descobri que por um motivo ainda não consigo explicar que os syncookies foram desativados nos servidores apache atrás do balanceador de carga:

# sysctl -a | grep syncookies
net.ipv4.tcp_syncookies = 0

O motivo pelo qual não consigo explicar isso é que ele está configurado para 1 no arquivo padrão Centos6 /etc/sysctl.conf. Essa é uma questão separada para eu descobrir.

Você pode ler mais sobre cookies syn aqui:

link

Estes são servidores relativamente ocupados que lidam com muitas conexões. Meu melhor palpite é que a habilitação do UFW (e, portanto, a habilitação do iptables) diminuiu o ritmo apenas o suficiente para o preenchimento da fila de sin e sem que os syncookies nas conexões começassem a ser recusados.

    
por 07.12.2011 / 14:39

Tags