Reduza as regras de firewall pela metade - uma regra iptables para tcp e udp

10

Eu tenho várias regras do iptables no meu firewall que se parecem com isso:

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT

Existe um atalho para ter duas regras - uma para tcp e outra para udp - para cada endereço? Quero dizer, posso fazer algo assim:

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
    
por David Kennedy 17.05.2013 / 18:02

2 respostas

20

Crie uma nova cadeia que aceite qualquer pacote TCP e UDP e salte para essa cadeia a partir das regras permissivas de IP / porta individuais:

iptables -N ACCEPT_TCP_UDP
iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT
iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT

iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP

Isso adiciona a sobrecarga de algumas linhas extras, mas reduz o número de regras TCP / UDP.

Eu não omitiria o argumento -p , porque você não está apenas abrindo o firewall para o ICMP, mas também qualquer outro protocolo. Na página man do iptables em -p :

The specified protocol can be one of tcp, udp, icmp, or all, or it can be a numeric value, representing one of these protocols or a different one. A protocol name from /etc/protocols is also allowed.

Você pode não estar ouvindo em nenhum protocolo, exceto TCP, UDP e ICMP agora , mas quem sabe o que o futuro pode conter. Seria uma má prática deixar o firewall aberto desnecessariamente.

Disclaimer: Os comandos iptables estão fora de minha cabeça; Eu não tenho acesso a uma caixa na qual testá-los ATM.

    
por 17.05.2013 / 18:29
2

Se você realmente não se importa com o tráfego ICMP (que você pode bloquear globalmente com uma regra), você pode simplesmente omitir o sinalizador -p e ele cobrirá todos os protocolos.

    
por 17.05.2013 / 18:06