Configurando iptables para Haproxy

Configurando iptables para Haproxy

Máquina Ubuntu rodando haproxy com 2 placas de rede, 1 conectada à WAN (chamada wan0) e outra conectada à LAN (chamada lan0). Todas as cadeias definidas para tráfego DROP.

# Masquerade traffic from LAN to WAN
-A POSTROUTING -o wan0 -s 192.168.x.x/24 -j MASQUERADE

# Allow traffic from LAN to WAN
iptables -I FORWARD -i lan0 -o wan0 -j ACCEPT

# Allow HTTP traffic in/out both interfaces
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT

*** Is below rule needed? ***
# -A FORWARD -i wan0 -o lan0 -p tcp –dport 80 -j ACCEPT

Quero permitir o tráfego HTTP (porta 80) da WAN para a LAN, onde o haproxy o encaminhará para servidores back-end. A documentação que li afirma:

"INPUT, FORWARD e OUTPUT são separados. Um pacote atingirá apenas uma das três cadeias."

Estou faltando alguma regra de iptable que roteia o tráfego HTTP (porta 80) entre interfaces?

Responder1

Como você disse, você tem a política de cadeia padrão definida como DROP. Portanto, você precisa ter ACCEPTregras explícitas para cada tipo de tráfego que deseja permitir.

A regra a seguir permitirá que o tráfego passe pela sua caixa vindo de lan0interface e saindo de interface wan0.

iptables -I FORWARD -i lan0 -o wan0 -j ACCEPT

Além disso, é uma boa ideia permitir outros tipos de tráfego como RELATED e ESTABLISHED usando uma regra como:

iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Isso é necessário para permitir a passagem do tráfego de resposta. Você faz o mesmo para INPUTe OUTPUTcadeias.

Realmente depende de suas necessidades e do que você deseja permitir e negar.

Quanto à frase:

"INPUT, FORWARD e OUTPUT são separados. Um pacote atingirá apenas uma das três cadeias."

Sim isso é verdade. Um pacote atingirá:

  1. INPUTcadeia quando é destinado à máquina local.
  2. OUTPUTcadeia quando é originada da máquina local.
  3. FORWARDcaso contrário, cadeia (recebida de outra máquina e precisa ser encaminhada para alguma outra máquina).

informação relacionada