Iptables: Introdução ao Iptables, parte1 | Blog do Danilo
Iptables: Introdução ao Iptables, parte1
Por: Danilo M Monteiro firewall, iptables, Linux 3 comments
O firewall normalmente é utilizado como um dispositivo que fica entre o switch em que estão ligados os micros da rede e a internet. Nesta posição é usado um computador com duas placas de rede onde uma é ligada à internet e outra à rede local.
Note que o firewall em si não protege contra vírus e trojans, mas apenas contra tentativas diretas de conexão. Ele cria uma barreira entre os micros da rede local e a internet, fazendo com que os recursos compartilhados na rede não sejam acessíveis de fora.
O iptables é uma ferramenta que pode ser usada para controlar o Netfilter das mais diversas distribuições Linux. O Netfilter é um firewall embutido no kernel do Linux e o iptables é uma ferramenta que permite estabelecer regras para este firewall.
O NETFILTER
A comunicação em uma rede TCP-IP é feita através de pacotes. O Netfilter trata apenas de regras que podem ser aplicadas aos pacotes. As regras pertencem a correntes (chains), que são usadas para agrupar regras.
O iptables é dividido em 3 tabelas, separadas: filter, nat e mangle
Cada uma destas tabelas representam correntes (chains) mostrando os caminhos que devem ser seguidos ou as tarefas que devem ser realizadas.
TABELA FILTER:
Considerada a tabela padrão, contém 3 chains básicas:
INPUT - Consultada para pacotes que chegam na própria máquina;
OUTPUT - Consultada para pacotes que saem da própria máquina;
FORWARD - Consultado para pacotes que são redirecionados para outra interface de rede ou outra estação.
Imagine que você precisará acessar seu servidor de firewall por uma sessão SSH para corrigir problemas. Você pode configurar o firewall para abrir a porta 22 usada pelo SSH adicionando a regra:
Como você precisará acessar a própria máquina do firewall, utiliza-se a chain INPUT para criar a regra, caso o serviço estivesse hospedado em outra máquina, a regra seria criada na chain FORWARD.
TABELA NAT:
Usada para passagem de pacotes que pode gerar outra conexão. Um exemplo clássico é o mascaramento, nat, port forwarding e proxy transparente são alguns. A tabela Nat possui 3 chains básicas:
PREROUTING - Consultado quando os pacotes precisam ser redirecionados logo que chegam.(chain ideal para realização do chamado Destination NAT (DNAT));
OUTPUT - Consultado quando os pacotes gerados localmente precisam ser redirecionados antes de serem roteados. Este chain somente é utilizada para conexões que se originam de IPs de interfaces de rede locais;
POSTROUTING - Consultado quando os pacotes precisam ser modificados após o tratamento de roteamento.
Se você quiser saber se a sua máquina está redirecionando pacotes, chame o iptables com o comando -L -t nat. Se nenhuma regra tiver sido definida, a listagem deve ser a seguinte:
[IMAGEM.png]
NOTA: para listar a tabela NAT, é preciso especificá-la com a diretiva -t (tabela). No caso da tabela de filtragem isto não foi preciso porque o filtro é a tabela padrão do iptables.
TABELA MANGLE:
Utilizada para alterações especiais de pacotes como por exemplo modificar o tipo de serviço (TOS) de um pacote. Ideal para produzir informações falsas para scanners Possui 2 chains padrões:
PREROUTING - Consultado quando os pacotes precisam ser redirecionados logo que chegam;
OUTPUT - Consultado quando os pacotes gerados localmente precisam ser redirecionados antes de serem roteados.