sábado, janeiro 17, 2009

Algumas anotações sobre IPTABLES

-> Tabela FILTER
-> INPUT: pacotes que entram no host.
-> FORWARD: pacotes que entram, mas que devem ser direcionados à um host secundário ou outra interface de rede.
-> OUTPUT: todos os pacotes que saem do host.

-> Tabela NAT
-> PREROUTING: é utilizada quando há necessidade de se fazer alterações em pacotes antes que os mesmos sejam roteados.
-> OUTPUT: trata pacotes emitidos pelo host firewall (D-NAT).
-> POSTROUTING: utilizado quando há necessidade de se fazer alterações em pacotes após o tratamento de roteamento.

-> Tabela MANGLE
-> PREROUTING: modifica pacotes dando-lhes um tratamento especial antes que os mesmos sejam roteados.
-> OUTPUT: altera pacotes de forma especial gerados localmente antes que os mesmos sejam roteados.

Sintaxe:
iptables [-t tabela] -[comando] [situação(chain)] especificacao-da-regra [alvo]

Comandos:
iptables -A INPUT #(adiciona regra no final da lista à chain INPUT)
iptables -D INPUT #(apaga regra à chain INPUT)
iptables -L INPUT #(lista todas as regras)
iptables -P INPUT #(altera a política padrão das chains)
iptables -F INPUT #(remove todas as regras referentes a chain INPUT)
iptables -I INPUT #(adiciona regra no início da lista da chain INPUT)
iptables -R FORWARD 2 regra #(substitui uma regra, no caso, FORWARD 2)
iptables -t filter -N internet #(cria uma nova chain na tabela filter)
iptables -E internet INTERNET #(renomeia a chain internet para INTERNET)
iptables -X INTERNET #(apaga uma chain criada pelo admin)

Alvos:
-> ACCEPT
-> DROP: ignora, não avisa a quem enviou o pacote.
-> QUEUE: coloca na fila, se alguma aplicação quiser (ex. Snort Inline), tudo bem! Caso contrário, é descartado.
-> REJECT: ignora, avisa a que enviou o pacote (com um pacote de erro).
-> LOG: faz log da passagem do pacote na rede.
-> SNAT: faz com que o pacote tenha seu endereço de origem alterado. Usa-se a flag "--to-source" para indicar o novo endereço de origem do pacote. Este alvo só é válido para situações de POSTROUTING dentro da tabela NAT.
-> DNAT: faz com que o pacote tenha seu endereço de destino alterado. Utiliza-se a flag "--to-destination" para indicar o novo endereço de destino do pacote. Este alvo é válido apenas para situações alvos de OUTPUT e PREROUTING dentro da tabela NAT.
-> MASQUERADE: este alvo é uma forma especial restrita ao SNAT para conexões com IPs dinâmicos. Ao invés de ter que alterar a um alvo SNAT toda vez que o IP for alterado, este alvo calcula o endereço IP de origem para fazer o NAT analizando o endereço IP de interface de saída quando um pacote encontra essa regra.
-> REDIRECT: é responsável pelo redirecionamento de portas. Utiliza-se a flag "--to-port" para a qual o tráfego da regra será redirecionado.

Exemplo:
iptables -t filter -A INPUT -i eth0 -p tcp --dport 6881 -j ACCEPT

-j (--jump) alvo: especifica o alvo dos pacotes que casarem com a regra.
-p (--protocol): casa pacotes cujo protocolo utilizado seja o especificado.
-s (--source): casa pacotes cuja origem seja o endereço especificado.
-d (--destination): casa pacotes cujo destino seja especificado.
--dport (--destination-port): casa pacotes cuja porta de destino seja a especificada.
--sport (--source-port): casa pacotes cuja porta de origem seja a especificada.


Nenhum comentário: