Iptables

Após muito tempo, finalmente tive um tempo, pra voltar a escrever, e dessa vez pretendo manter uma periodicidade. O motivo da minha ausencia? Bom agora eu tenho Dom

Sem mais delongas, vamos ao que interessa, o que é Iptables, pra que server, e onde vou usar isso?

O que é Iptables?

De acordo com a singela descrição do criador desse pacote ( NetFilter), O Iptables é uma ferramenta para criar e administrar regras e assim filtrar pacotes de redes.

O iptables pode funcionar baseado no endereço, porta de origem, destino do pacote, prioridade. Ele funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar. Em firewalls mais restritivos, o pacote é bloqueado e registrado para que o administrador do sistema tenha conhecimento sobre o que está acontecendo em seu sistema.

Para que serve?

Com o Iptables, você pode redirecionar portas, trocar um protocolo(como ssl3 para tls1), Redirecionar servidores, e serviços. Pode criar regras, para bloquear usuários na rede, bloquear serviços, de acesso por determinados ips, entre outros muitos serviços.

Modo de usar

A forma mais comum de se usar o comando é:

iptables [-t table] <opção> chain rule-specification

Entre as opções você pode usar:

  • -P = Define uma regra padrão;
  • -A = Adiciona uma nova regra as existentes. Este tem prioridade sobre a -P;
  • -D = Apaga uma regra;
  • -L = Lista as regras existentes;
  • -S = Lista as regras existentes, da forma como foi salvo pelo iptables;
  • -E = Renomeia uma cadeia(chain)
  • -F = Limpa todas as regras;
  • -I = Insere uma nova regra;
  • -h = Exibe a ajuda;
  • -R = Substitui uma regra;
  • -C = Faz a checagem das regras existentes;
  • -Z = Zera uma regra específica;
  • -N = Cria uma nova regra com um nome;
  • -X = Exclui uma regra específica pelo seu nome.

Cada um tem o seu uso específico, e uma forma de usar. Para consultar todas basta utilizar:

man iptables

Comandos comuns do Iptables

Deletar regra

iptables -F

Bloquear um IP

iptables -A INPUT -s "192.168.254.10" -j DROP

Se desejar bloquear para uma interface específica, basta passar o parâmetro -i , fincando assim:

iptables -A INPUT -i eth0 -s "192.168.254.10" -j DROP

Abrir porta para ips específicos

Neste exemplo usei a porta do ssh como exemplo, mas poderia ser usada qualquer uma

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

Balanceamento

Balanceando a porta 443 entre 3 diferentes ips


iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443

Habilitar Acesso ao mysql pela rede local

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

Bloqueando ataques DDOS

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

Redirecionando porta

iptables -t nat -A PREROUTING -p tcp -d 192.168.254.136 --dport 422 -j DNAT --to 192.168.254.136:22

Referências

The Geek Stuff
Server Fault

 

Written by vinicius