iptables, ordem das regras - entendi certo?

17

Gostaria de configurar meu VPS da maneira que SOMENTE aceita conexões externas na porta 22 (onde o sshd escuta) e solicitações de ICMP. Tudo o resto do lado de fora deve ser rejeitado. Dentro do servidor, tudo deve ser permitido. As regras a seguir criam o comportamento desejado?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

Não tenho certeza absoluta se as regras de ACEITAR "vencerão" a última REJEIÇÃO geral

Xpector
fonte
11
Você não deve usar --source 127.0.0.1para determinar se um pacote é seguro para aceitar. Veja serverfault.com/a/825231/4131
Bruno Bronosky

Respostas:

20

Você está certo.

As regras serão processadas na ordem de linha do arquivo. Se houver uma correspondência para uma regra, nenhuma outra regra será processada para esse pacote IP no seu caso.

http://en.wikipedia.org/wiki/Iptables

Cada regra em uma cadeia contém a especificação de quais pacotes corresponde. Também pode conter um destino (usado para extensões) ou veredicto (uma das decisões internas). À medida que um pacote atravessa uma cadeia, cada regra é examinada. Se uma regra não corresponder ao pacote, o pacote será passado para a próxima regra. Se uma regra corresponder ao pacote, a regra executará a ação indicada pelo alvo / veredicto, o que pode resultar na permissão do pacote continuar ao longo da cadeia ou pode não ser

NGRhodes
fonte