--table filter -A INPUT
. Além disso, o dport para https é 443 (provavelmente um erro de digitação, mas vale a pena apontar)
O que você precisa fazer é descartar as regras INPUT na parte inferior do seu script. A cadeia INPUT
é usada apenas por pacotes que estão vinculados a um processo local no próprio servidor. Assim, essas regras permitirão que o cliente na LAN se conecte diretamente aos serviços que atendem na porta 80 + 443 no servidor. Isso está correto para suas regras iniciais de SSH e HTTP, mas não para o encaminhamento de pacotes. Use a cadeia FORWARD
em vez disso:
#http
iptables --table filter -A FORWARD -p tcp -dport 80 --in-interface eth1 -j ACCEPT
#https
iptables --table filter -A FORWARD -p tcp -dport 443 --in-interface eth1 -j ACCEPT
Além disso, você precisará ativar o encaminhamento de IP no kernel. Adicione isto ao topo do script:
echo 1 > /proc/sys/net/ipv4/ip_forward
Uma recomendação adicional: em vez de regras que descartam pacotes no final das cadeias, considere o uso das configurações de política:
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
Para referência futura, há um bom diagrama de fluxo de pacotes através do netfilter, aqui: link