4.1 - Programação do Netfilter
A sintaxe do Netfilter pode parecer confusa no início. O objetivo da linguagem é permitir implementações robustas. O Netfilter permite a manipulação desde as regras mais simples até as mais complexas, onde é possível reduzir o volume do arquivo de configuração e facilitar o entendimento dos objetivos do(s) filtro(s).
Para compreender a sintaxe do Netfilter, precisamos inicialmente conhecer o significado dos termos e expressões de manipulação de pacotes. Veja a seguir.
- Drop/Deny: quando um pacote sofre Drop ou Deny, é descartado e nenhuma outra ação é realizada; o pacote simplesmente desaparece.
- Reject: quando um pacote sofre a ação Reject, é descartado e uma mensagem é enviada para o host origem informando seu descarte.
- Accept: ação contrária ao Drop ou Reject, indica ao Iptables para aceitar e encaminhar o pacote.
- State: estado específico de um pacote em uma conexão TCP/IP. Por exemplo: o primeiro pacote de uma conexão TCP é o pacote com a opção SYN ligada. O estado da conexão é conhecido através do sistema de rastreamento de conexões, que mantém uma base de dados com o estado de todas as conexões. Essa base fica em uma área dentro do kernel do Linux, sendo controlada automaticamente por ele.
- Cadeia: cadeia de conjuntos de regras que são aplicadas em momentos distintos no kernel do Linux. As três principais cadeias de fluxo são INPUT, OUTPUT e FORWARD. Dessas regras, os fluxos INPUT e OUTPUT protegem o próprio firewall e a cadeia FORWARD protege o que estiver atrás dele.
INPUT
Utilizada quando os pacotes têm como endereço IP de destino o próprio endereço do firewall;
X
OUTPUT
Utilizada quando o pacote é originado pelo firewall e sai por alguma interface de rede;
X
FORWARD
Utilizada quando um pacote atravessa o firewall, com dispositivo de destino após o próprio firewall.
X
Copyright © 2014 AIEC.