25 Regras úteis de firewall iptable

25 Regras úteis de firewall iptable

Gerenciar o tráfego de rede é um dos empregos mais difíceis com os quais os administradores do sistema tem que lidar. Ele deve configurar o firewall de tal maneira que atenda aos requisitos do sistema e dos usuários para conexões de entrada e saída, sem deixar o sistema vulnerável a ataques.

25 Regras de firewall iptables para Linux

É aqui que iptables Venha em mãos. Iptables é um firewall da linha de comando Linux que permite que os administradores do sistema gerenciem o tráfego de entrada e saída por meio de um conjunto de regras de tabela configuráveis.

Iptables usa um conjunto de tabelas que possuem cadeias que contêm conjunto de regras internas ou definidas pelo usuário. Graças a eles, um administrador do sistema pode filtrar adequadamente o tráfego de rede de seu sistema.

De acordo com o Manual Iptables, atualmente existem 3 tipos de tabelas:

    1. FILTRO - Esta é a tabela padrão, que contém as correntes embutidas para:
      1. ENTRADA  - Pacotes destinados a soquetes locais
      2. AVANÇAR - pacotes roteados através do sistema
      3. SAÍDA - pacotes gerados localmente
    2. Nat - Uma tabela que é consultada quando um pacote tenta criar uma nova conexão. Tem o seguinte interno:
      1. Pré -rotulando - usado para alterar um pacote assim que é recebido
      2. SAÍDA - usado para alterar pacotes gerados localmente
      3. Pós -trouting - usado para alterar os pacotes enquanto eles estão prestes a sair
    3. Mangle - Esta tabela é usada para alteração de pacotes. Até a versão do kernel 2.4 Esta tabela tinha apenas duas correntes, mas agora são 5:
      1. Pré -rotulando - Para alterar as conexões de entrada
      2. SAÍDA - Para alterar pacotes gerados localmente
      3. ENTRADA - para pacotes de entrada
      4. Pós -trouting - para alterar os pacotes enquanto eles estão prestes a sair
      5. AVANÇAR - Para pacotes roteados através da caixa

Neste artigo, você verá alguns comandos úteis que o ajudarão. Para os fins deste artigo, começarei com comandos mais simples e vou para mais complexo até o fim.

1. Iniciar/Stop/Reiniciar Iptables Firewall

Primeiro, você deve saber como gerenciar o serviço iptables em diferentes distribuições Linux. Isso é bastante fácil:

Nas distribuições Linux baseadas em Systemd

------------ Em Cent/Rhel 7 e Fedora 22+ ------------ # SystemCtl Iniciar iptables # SystemCtl Stop iptables # SystemCtl Reiniciar iptables 

Nas distribuições Linux baseadas em Sysvinit

------------ Em Cent/Rhel 6/5 e Fedora ------------ # /etc /init.d/iptables inicia #/etc/init.d/iptables Stop #/etc/init.reiniciar d/iptables 

2. Verifique todas as regras do firewall iptables

Se você deseja verificar suas regras existentes, use o seguinte comando:

# iptables -l -n -v 

Isso deve retornar a saída semelhante à abaixo:

Entrada de cadeia (Política aceita 1129k pacotes, 415m bytes).0.0.0/0 0.0.0.0/0 TCP DPT: 53 0 0 Aceite UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 53 0 0 Aceite TCP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 67 0 0 Aceite UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 67
Cadeia para a frente (Política Aceite 0 pacotes, 0 bytes).0.0.0/0 0.0.0.0/0 0 0 Aceite todos - LXCBR0 * 0.0.0.0/0 0.0.0.0/0
Saída da cadeia (Política aceita 354k pacotes, 185m bytes) pkts bytes alvo prote opt no destino de origem

Se você preferir verificar as regras para uma tabela específica, você pode usar o -t opção seguida pela tabela que você deseja verificar. Por exemplo, para verificar as regras no Nat Tabela, você pode usar:

# iptables -t nat -l -v -n 

3. Bloqueie o endereço IP específico no firewall iptables

Se você encontrar uma atividade incomum ou abusiva de um endereço IP, poderá bloquear esse endereço IP com a seguinte regra:

# iptables -uma entrada -s xxx.xxx.xxx.XXX -J DROP 

Onde você precisa mudar "XXX.xxx.xxx.xxx " com o endereço IP real. Tenha muito cuidado ao executar este comando, pois você pode bloquear acidentalmente seu próprio endereço IP. O -A a opção anexa a regra no final da cadeia selecionada.

Caso você queira bloquear apenas TCP tráfego desse endereço IP, você pode usar o -p opção que especifica o protocolo. Dessa forma, o comando ficará assim:

# iptables -a input -p tcp -s xxx.xxx.xxx.xxx -j gota 

4. Desbloquear endereço IP no firewall iptables

Se você decidiu que não deseja mais bloquear solicitações de endereço IP específico, pode excluir a regra de bloqueio com o seguinte comando:

# iptables -d entrada -s xxx.xxx.xxx.xxx -j gota 

O -D Opção exclui uma ou mais regras da cadeia selecionada. Se você preferir usar a opção mais longa que você pode usar --excluir.

5. Bloqueie a porta específica no firewall iptables

Às vezes, você pode querer bloquear conexões de entrada ou saída em uma porta específica. É uma boa medida de segurança e você realmente deve pensar sobre esse assunto ao configurar seu firewall.

Para bloquear as conexões de saída em um uso específico da porta:

# iptables -a output -p tcp - -dport xxx -j gota 

Para permitir o uso de conexões de entrada:

# iptables -a input -p tcp - -dport xxx -j aceita 

Nos dois exemplos mudam "xxx" com a porta real que você deseja permitir. Se você quiser bloquear UDP tráfego em vez de TCP, Simplesmente mude "TCP" com "UDP" Na regra iptables acima.

6. Permitir várias portas em iptables usando multitor

Você pode permitir várias portas de uma só vez, usando Multiporta, Abaixo, você pode encontrar essa regra para conexões de entrada e saída:

# iptables -a input -p tcp -m multiport -dports 22,80.443 -j Aceitar # iptables -a output -p tcp -m multiport -sports 22,80.443 -j aceitar 

7. Permitir um intervalo de rede específico em uma porta específica em iptables

Você pode limitar determinadas conexões em porta específica a uma determinada rede. Digamos que você queira permitir conexões de saída na porta 22 para rede 192.168.100.0/24.

Você pode fazer isso com este comando:

# iptables -a saída -p tcp -d 192.168.100.0/24 -Dport 22 -j Aceitar 

8. Bloqueie o Facebook no Firewall iptables

Alguns empregadores gostam de bloquear o acesso a Facebook para seus funcionários. Abaixo está um exemplo de como bloquear o tráfego para o Facebook.

Observação: Se você é um administrador do sistema e precisa aplicar essas regras, lembre -se de que seus colegas podem parar de falar com você :)

Primeiro encontre os endereços IP usados ​​pelo Facebook:

# Host Facebook.com o Facebook.com tem endereço 66.220.156.68 
# whois 66.220.156.68 | Grep Cidr Cidr: 66.220.144.0/20 

Você pode bloquear essa rede do Facebook com:

# iptables -a saída -p tcp -d 66.220.144.0/20 -J Drop 

Lembre -se de que o intervalo de endereços IP usado pelo Facebook pode variar em seu país.

9. Configuração do encaminhamento da porta em iptables

Às vezes você pode querer encaminhar o tráfego de um serviço para outra porta. Você pode conseguir isso com o seguinte comando:

# iptables -t nat -a pré -excluindo -i eth0 -p tcp - -dport 25 -j redirect - -to -port 2525 

O comando acima encaminha todo o tráfego de entrada na interface de rede eth0, da porta 25 para porta 2525. Você pode alterar as portas com as que você precisa.

10. Bloco de rede inundação na porta Apache com iptables

Às vezes, os endereços IP podem solicitar muitas conexões em direção a portas da web em seu site. Isso pode causar número de problemas e evitar esses problemas, você pode usar a seguinte regra:

# iptables -a input -p tcp - -dport 80 -m limite -limite 100/minuto -limit -burst 200 -j aceita 

O comando acima limita as conexões de entrada de por minuto a 100 e define um limite estourado para 200. Você pode editar o limite e limitar os seus próprios requisitos específicos.

11. Bloqueie os pedidos de Ping recebidos em iptables

Alguns administradores de sistema gostam de bloquear solicitações de ping de entrada devido a preocupações de segurança. Embora a ameaça não seja tão grande, é bom saber como bloquear essa solicitação:

# iptables -a input -p icmp -i eth0 -j gota 

12. Permitir acesso ao loopback

Acesso em loopback (acesso de 127.0.0.1) é importante e você sempre deve deixá -lo ativo:

# iptables -a input -i lo -j Aceitar # iptables -a saída -o lo -j aceitar 

13. Mantenha um tronco de pacotes de rede descartados em iptables

Se você deseja registrar os pacotes caídos na interface de rede eth0, Você pode usar o seguinte comando:

# iptables -a input -i eth0 -j log ---refix -prefixo "Iptables lançados pacotes:" 

Você pode alterar o valor depois "-Log-Prefix" Com algo pela sua escolha. As mensagens estão conectadas /var/log/mensagens E você pode procurá -los com:

# Grep "Iptables lançados pacotes:"/var/log/mensagens 

14. Bloqueie o acesso a um endereço MAC específico em iptables

Você pode bloquear o acesso ao seu sistema a partir de um endereço MAC específico usando:

# iptables -a input -m Mac - -MAC -SOURCE 00: 00: 00: 00: 00: 00 -J Drop 

Claro, você precisará mudar "00: 00: 00: 00: 00: 00" com o endereço MAC real que você deseja bloquear.

15. Limite o número de conexões simultâneas por endereço IP

Se você não deseja ter muita conexão simultânea estabelecida a partir do endereço IP único na porta dada, você pode usar o comando abaixo:

# iptables -a input -p tcp - -syn - -dport 22 -m Connlimit - -CONNLIMIT -ABOVE 3 -J Rejeitar 

O comando acima não permite mais do que 3 conexões por cliente. Obviamente, você pode alterar o número da porta para corresponder ao serviço diferente. Também o --Connlimit-Above deve ser alterado para atender a sua exigência.

16. Pesquise na regra iptables

Depois de definir suas regras iptables, você deve pesquisar de tempos em tempos e pode precisar alterá -las. Uma maneira fácil de pesquisar em suas regras é usar:

# iptables -l $ tabela -v -n | grep $ string 

No exemplo acima, você precisará mudar $ tabela com a tabela real na qual você deseja pesquisar e $ string com a string real para a qual você está procurando.

Aqui está um exemplo:

# iptables -l input -v -n | Grep 192.168.0.100 

17. Defina nova cadeia iptables

Com iptables, você pode definir sua própria cadeia e armazenar regras personalizadas nela. Para definir uma corrente, use:

# iptables -n Custom -Filter 

Agora você pode verificar se seu novo filtro está lá:

# iptables -l 
Saída de amostra
Entrada de cadeia (Acepção da política) Destino de origem do alvo Opt Opt 
Cadeia para a frente (Acesso Política) Destino de fonte Opt Prot Opt
Saída da cadeia (Política aceita) Destino de fonte de opt de meta
Corrente filtro customizado (0 referências) Destino de fonte de opt de alvo

18. Ligue as correntes ou regras de firewall iptables

Se você deseja lavar suas correntes de firewall, pode usar:

# iptables -f 

Você pode lavar correntes da tabela específica com:

# iptables -t nat -f 

Você pode mudar "Nat" com a tabela real que cadeias você deseja liberar.

19. Salvar regras iptables em um arquivo

Se você deseja salvar suas regras de firewall, você pode usar o iptables-save comando. Você pode usar o seguinte para salvar e armazenar suas regras em um arquivo:

# iptables-save> ~/iptables.regras 

Depende de você onde você armazenará o arquivo e como você o nomeará.

20. Restaurar regras iptables de um arquivo

Se você deseja restaurar uma lista de regras iptables, você pode usar iptables-Restore. O comando se parece com o seguinte:

# iptables-Restore < ~/iptables.rules 

Claro que o caminho para o seu arquivo de regras pode ser diferente.

21. Configurar regras iptables para conformidade com PCI

Alguns administradores de sistema podem ser obrigados a configurar seus servidores para serem compilantes PCI. Existem muitos requisitos por diferentes fornecedores de conformidade com PCI, mas existem poucos comuns.

Em muitos casos, você precisará ter mais de um endereço IP. Você precisará aplicar as regras abaixo para o endereço IP do site. Tenha cuidado ao usar as regras abaixo e use -as apenas se tiver certeza do que está fazendo:

# iptables -i input -d site -p tcp -m multitort -dports 21,25.110.143.465.587.993.995 -J Drop 

Se você usar cpanel ou painel de controle semelhante, pode ser necessário bloquear suas portas também. Aqui está um exemplo:

# iptables -i in_sg -d Dedi_ip -p TCP -M Multiport - -Dports 2082.2083.2095.2096.2525.2086.2087 -J Drop 

Observação: Para garantir que você atenda aos requisitos do seu fornecedor de PCI, verifique o relatório deles com cuidado e aplique as regras necessárias. Em alguns casos, você pode precisar bloquear o tráfego UDP em determinadas portas também.

22. Permitir conexões estabelecidas e relacionadas

Como o tráfego da rede é separado de entrada e saída, você deseja permitir o tráfego de entrada estabelecido e relacionado. Para conexões de entrada, faça isso com:

# iptables -a input -m Conntrack -Ctstate estabelecido, relacionado -j aceita 

Para uso extrovertido:

# iptables -a output -m Conntrack -CtState estabelecido -j Aceitar 

23. Solte pacotes inválidos em iptables

É possível ter alguns pacotes de rede marcados como inválidos. Algumas pessoas podem preferir registrar esses pacotes, mas outros preferem soltá -los. Para soltar os pacotes inválidos, você pode usar:

# iptables -a input -m Conntrack -Ctstate inválido -j gota 

24. Bloquear a conexão na interface de rede

Alguns sistemas podem ter mais de uma interface de rede. Você pode limitar o acesso a essa interface de rede ou bloquear conexões de determinado endereço IP.

Por exemplo:

# iptables -a input -i eth0 -s xxx.xxx.xxx.xxx -j gota 

Mudar “XXX.xxx.xxx.xxx ” com o endereço IP (ou rede) IP real que você deseja bloquear.

25. Desative e -mails de saída através de iptables

Se o seu sistema não estiver enviando e -mails, você poderá bloquear as portas de saída nas portas SMTP. Por exemplo, você pode usar isso:

# iptables -a saída -p tcp -dports 25.465.587 -j rejeitar 

Conclusão

Iptables é um firewall poderoso que você pode se beneficiar facilmente. É vital para todo administrador do sistema aprender pelo menos o básico dos iptables. Se você deseja encontrar informações mais detalhadas sobre iptables e suas opções, é altamente recomendável ler seu manual:

# homem iptables 

Se você acha que devemos adicionar mais comandos a esta lista, compartilhe -os conosco, enviando -os na seção de comentários abaixo.