Administração de Redes Firewall IPTables Rafael S. Guimarães IFES - Campus Cachoeiro de Itapemirim
Introdução IPTables é o Firewall padrão do kernel do Linux. Este padrão foi implementado desde a versão 2.4. O iptables é o um firewall de filtragem de pacotes, que se basea pelo IP de origem/destino e portas origem/ destino. Nele podemos criar regras utilizando o estado dos pacotes, tornando mais rico a criação de regras no iptables. O nome iptables faz alusão as regras que são divididas em 3 tabelas: filter, nat e mangle.
Características Especificação de endereços/portas de origem/destino. Suporte a protocolos TCP/UDP/ICMP. Suporte a manipulação de regras baseando-se na interface de entrada e/ou saída. Rápido, estável e seguro. Redirecionamento de portas. NAT ( Network Address Translation ). Possibilidade de expansão das funcionalidades com módulos externos. Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formatados.
Ficha técnica Pacote iptables: iptables: Sistema de controle principal para protocolos IPv4. ip6tables: Sistema de controle principal para protocolos IPv6. iptables-save: Salva as regras atuais. iptables-restore: Restaura regras salvadas pelo utilitário iptables-save.
Instalação Para instalar em sistemas baseados no RedHat Enterprise, precisamos de utilizar o seguinte comando: yum install iptables Para a instalação em sistemas baseados no Debian, como o Ubuntu Linux, utilizamos o seguinte comando: apt-get install iptables
Regras Toda regra no iptables é armazenada em uma cadeia de regras ou chain. Neste local estará diversas regras que serão processadas dependendo de seu fluxo. As chains estão armazenadas nas tabelas, contendo diversas chains. Como mencionado teremos basicamente 3 tabelas ( filter, nat e mangle ).
Tabela Filter Tabela utilizada para realizar a filtragem dos pacotes. Nesta tabela teremos 3 chains ( INPUT, FORWARD e OUTPUT ). INPUT: Cadeia de regras para pacotes que tenham como destino a própria máquina. OUTPUT: Cadeia de regras para pacotes que tenham como origem a própria máquina. FORWARD: Cadeia de regras para pacotes que passam pelo Firewall em direção para outras redes.
Tabela Nat Utilizada para manipular os dados de destino e origem, como o redirecionamento de portas e a aplicação de mascaramento para o endereço de origem. PREROUTING: Cadeia de regras para pacotes que tem como função de manipular o destino dos pacotes. Muito utilizada para aplicar redirecionamento de portas. OUTPUT: Cadeia de regras para pacotes que tem como função manipular endereços de origem e destino localmente. POSTROUTING: Cadeia de regras para pacotes que tem como função de manipular a origem dos pacotes. Muito utilizada para aplicar mascaramento, possibilitando compartilhar com apenas 1 endereço IP válido, o acesso para diversas máquinas.
Tabela Mangle Tabela utilizada para alterações especiais nos pacotes. INPUT: Cadeia de regras para pacotes que precisem ser modificados antes de entrar na chain INPUT da tabela filter. OUTPUT: Cadeia de regras para pacotes que precisem ser modificados antes de entrar na chain OUTPUT da tabela nat. FORWARD: Cadeia de regras para pacotes que precisem ser modificados antes de entrar na chain FORWARD da tabela filter. PREROUTING: adeia de regras para pacotes que precisem ser modificados antes de entrar na chain PREROUTING da tabela nat. POSTROUTING: adeia de regras para pacotes que precisem ser modificados antes de entrar na chain POSTROUTING da tabela nat.
Fluxograma PREROUTING - MANGLE FORWARD - MANGLE POSTROUTING - MANGLE ENTRADA DECISÃO DE ROTEAMENTO DECISÃO DE ROTEAMENTO SAÍDA PREROUTING - NAT FORWARD - FILTER POSTROUTING - NAT DECISÃO DE ROTEAMENTO DECISÃO DE ROTEAMENTO INPUT - MANGLE INPUT - FILTER DECISÃO DE ROTEAMENTO OUTPUT - FILTER OUTPUT - NAT OUTPUT - MANGLE