Eu tenho uma topologia onde existe um Linux como roteador que conecta dois Linux, e quero usar iptables para filtrar ssh e HTTP em uma direção. Usei o código abaixo mas não funcionou! Eu realmente aprecio qualquer ajuda que você possa fornecer.
iptables -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --dport 80 -j DROP
Responder1
seu script deve funcionar para http, mas não é muito legal. Eu usaria algo assim:
IPTABLE=/sbin/iptables
$IPTABLE -P INPUT ACCEPT
$IPTABLE -P FORWARD DROP
$IPTABLE -P OUTPUT ACCEPT
$IPTABLE -F
$IPTABLE -X
$IPTABLE -F -t nat
$IPTABLE -X -t nat
$IPTABLE -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#http
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
#https
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 443 -j ACCEPT
# ssh
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 22 -j ACCEPT
# icmp
$IPTABLE -A FORWARD -p icmp -j ACCEPT
Assim que as regras estiverem funcionando, recomendo fazer um arquivo iptables-save > /etc/iptables/rules.v4
. Com o iptables-persistent
pacote as regras são carregadas na inicialização.
Além das regras do iptables que você precisa
- Encaminhamento de IP habilitado em seu Gateway.
- uma rota para a rede externa em seu host interno
- uma rota para a rede interna em seu host externo