Firewall iptables no Linux – Parte 02: Criar e Visualizar uma regra básica
Firewall iptables no Linux
Podemos visualizar as regras atuais de uma cadeia por meio do comando iptables -L (ou iptables –list):
# iptables -L
Perceba que não há nenhuma regra criada, além da regra padrão (policy), que está configurada para aceitar todos os pacotes em todas as cadeias. Como não especificamos a tabela, a saída mostrada é a da tabela padrão, que é a FILTER. Para especificarmos uma outra tabela, usamos a opção -t.
Veja no exemplo abaixo a listagem da tabela nat:
# iptables -t nat -L
Perceba que neste caso aparecem também as cadeias específicas PREROUTING e POSTROUTING.
Os campos mostrados na saída do comando de listagem de regras são os seguintes:
- target – Ação a ser realizada no pacote
- prot – Protocolo especificado
- opt – Opções especiais da regra
- source – Endereço IP de origem do pacote
- destination – Endereço IP de destino do pacote.
- num – Exibido com a opção –line-numbers. Mostra o número da regra dentro da cadeia.
Exemplo de regra
Vamos analisar um exemplo típico de uma regra do iptables:
iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT
Decodificando a regra acima, temos:
- iptables – Comando iptables
- -A INPUT – Anexar a regra no final da cadeia INPUT
- -s 0/0 – Endereço IP de origem: qualquer um
- -i eth0 – Interface de entrada a ser monitorada: eth0
- -d 192.168.1.1 – Endereço IP de destino do pacote: 192.168.1.1
- -p TCP – Protocolo a ser verificado: TCP
- -j ACCEPT – Ação a ser aplicada no pacote: ACCEPT (permitir)
Limpando as regras de uma cadeia
Podemos apagar todas as regras de uma cadeia (exceto a regra padrão) com a opção -F:
# iptables -F INPUT
Ou ainda limpar todas as regras de todas as cadeias da tabela especificada:
# iptables -F
Como configurar a regra padrão de uma cadeia
Usamos a opção -P para configurar a regra padrão de uma cadeia. Veja os exemplos:
# iptables -P INPUT DROP # iptables -P OUTPUT ACCEPT # iptables -L
Rastreamento de conexões (Connection Tracking)
O iptables associa os pacotes com as conexões lógicas às quais eles pertencem. Para isso, ele segue o progresso das conexões através de seu ciclo de vida, e essa informação de rastreamento é disponibilizada por meio da extensão de equivalência conntrack.
A tabela a seguir mostra os estados de rastreamento de conexão mais comuns:
Estado | Descrição |
ESTABLISHED | A conexão já viu pacotes trafegando em ambas as direções. |
INVALID | O pacote não pertence a nenhuma conexão rastreada |
NEW | O pacote está iniciando uma nova conexão ou é parte de uma conexão que ainda não teve pacotes trafegados em ambas as direções. |
RELATED | O pacote está iniciando uma nova conexão, mas a nova conexão é relacionada a uma conexão já existente (como a conexão de dados em uma transferência FTP). |
Na próxima seção veremos diversos exemplos de regras em ação, como liberação de portas e serviços, bloqueio de ping, regras de IP e MAC address, entre outras.
Muito bom, material de primeira
Obrigado Geraldo!