Introdução ao iptables


O iptables é uma ferramenta de firewall e rede disponível para todos os Linux Distros, que opera por meio da análise de pacotes no núcleo, à medida que são recebidos.


Conteúdo

//

Introdução

Neste artigo, explicarei como usar o iptables como um firewall comum. Este artigo apresentará conceitos super fáceis de entender, para vencer os limites do seu firewall e abrir as portas do conhecimento.

Regras básicas

  • Lista das regras atuais
$ sudo iptables --list

Se você não fez nenhuma alteração, obterá algo parecido com isso:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Ler as regras

Em uma instalação padrão, você verá três cadeias predefinidas que cuidarão das três principais atividades: tráfego de entrada, tráfego transmitido e tráfego de saída. A "política" é provavelmente a informação mais importante da tabela acima. A política é o conjunto de regras padrão para essa cadeia. Em uma instalação padrão, todas as políticas estarão com a opção "Aceitar".

Políticas

Há diversas políticas e opções disponíveis para consulta. Se quiser saber mais sobre elas, confira a 'página man' do IPtables. Neste artigo, falarei apenas das três principais políticas, que são as mais comuns:

  • Aceitar - Utilizada como padrão, desde que não exista uma regra-alvo.
  • Rejeitar - Usado para devolver um erro de pacote, como resposta a um pacote com match, para que ele não seja perdido.
  • Descartar - Esta política interromperá uma conexão a um host automaticamente, a não ser que exista alguma regra-alvo.

Opções disponíveis

Página MAN do IPtables: http://linux.die.net/man/8/iptables

As opções que são reconhecidas pelo iptables podem ser divididas em vários grupos diferentes:

  • Comandos - Essas opções especificam uma ação específica a ser executada.
  • Parâmetros - Especificações de regras estabelecidas para os comandos usados.
  • Outras opções - Outras opções podem ser especificadas, se necessário, para os comandos usados.

Firewall simples

Regras simples

Permitir conexões existentes com o seu servidor.

$ sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Permitir conexões com SSH

OK, neste caso, podemos fazer algumas escolhas diferentes, que podem ser utilizadas em outras portas ou situações para fazer personalizações.

Neste comando, permitiremos conexões para todas as tentativas de conexões tcp em conexões SSH.

$ sudo iptables -I INPUT 1 -p tcp  --dport 22 -j ACCEPT 

Neste comando, vamos permitir apenas conexões provenientes de uma determinado IP de sub-rede, usando a notação CIDR. Neste exemplo, vamos bloquear qualquer endereço IP na faixa de 192.168.1.0 a 192.168.1.255

$ sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

Permitr as conexões com HTTP/HTTPS

As seguintes regras de iptables permitirão conexões de ambas as portas 80 (HTTP) e porta 443 (HTTPS), a partir de qualquer conexão.

$ sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
$ sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT

Permitir conexões com FTP

As seguintes regras de iptables permitirão conexões com servidores FTP na porta 21.

$ sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT

Lista de portas comuns

Com o que aprendeu acima, use a seguinte lista de portas comuns disponível no link para criar regras para qualquer servidor em execução.

Alterar a política padrão

A única mudança de política real que vamos fazer afetará o tráfego de entrada. Como regra geral, vamos descartar todas as conexões e só permitir as que consideramos legítimas.

$ sudo iptables -P INPUT DROP
  • Você deve executar esta regra somente depois de configurar suas regras de acesso para permitir o acesso por SSH.

Sempre salve as suas regras

Se o servidor for reinicializado por qualquer motivo ou se você reiniciar o IPTables, suas alterações serão perdidas. As regras introduzidas manualmente são armazenadas em uma memória volátil. Lembre-se de salvar as regras de IPtables para qualquer alteração que queira tornar permanente. Você precisará de um dos seguintes comandos:

  • para CentOS e Fedora
# /etc/init.d/iptables save
  • para Ubuntu
# iptables-save > /etc/iptables.rules
  • para todos os demais Distros
# iptables-save > /etc/sysconfig/iptables

Os comandos acima criarão um arquivo /etc/sysconfig/iptables, que será um arquivo simples com sintaxe legível e que pode ser editado manualmente, se necessário. Todas as edições a este arquivo estarão ativas, sempre que o iptables for reiniciado.

Resumo

Esperamos que este artigo ajude você a criar um firewall simples para proteger o servidor de ataques básicos. Lembre-se de que o IPTables é uma ferramenta muito poderosa e que seria necessário um livro para abordar todas as suas capacidades. Meu próximo artigo trará alguns truques de rede simples, como encaminhamento de porta e NATing. Se você precisar de ajuda para criar mais regras, aqui está um link para um Gerador de firewall simples para IPTables.

Referências e links

Lista de artigos

Extraído de "/knowledge_center/index.php/Introduction_to_iptables"



Este conteúdo foi útil?




© 2011-2013 Rackspace US, Inc.

Salvo indicação em contrário, o conteúdo deste site está licenciado sob uma licença não adaptada de Creative Commons Attribution-NonCommercial-NoDerivs 3.0


Ver detalhes da licença e o AVISO LEGAL