Sys Admin (ep. 01, parte 5) - Firewall (iptables - gestão de regras)

Permitir tráfego na entrada e na saída

Para fornecer uma compreensão prática de como o iptables controla o tráfego, iremos explorar agora vários exemplos concretos de regras para as cadeias INPUT e OUTPUT. Esses exemplos demonstram como controlar o acesso a serviços e protocolos comuns, como permitir conexões SSH seguras para administração remota, permitir tráfego da Web nas portas HTTP e HTTPS e gerir solicitações de resolução de DNS. Regras bem personalizadas podem construir uma política de segurança que determina precisamente como um sistema se comunica pela rede, bloqueando acessos desnecessários e garantindo que serviços essenciais permaneçam disponíveis.

Por exemplo, para permitir o tráfego na entrada para conexões SSH para um endereço IP em específico, o comando pode ser parecido como o da imagem abaixo.

Na imagem abaixo corremos o mesmo comando acima na nossa maquina virtual e logo a seguir corremos o comando iptables -L -n -v para verificar regras de firewall existentes.

O exemplo a seguir consiste em permitir tráfego na entrada para conexões HTTP (porta 80) e HTTPS (porta 443).


Permitir tráfego para conexões FTP (porta 21 por padrão) e DNS (porta 53 por padrão).


Permitir tráfego na saida para conexões SSH, HTTP e HTTPS.


Uma nota importante aqui: repare que usamos portas para criar regras, e não nomes dos serviços (protocols). Mas, como estas portas são de serviços já conhecidos e são configurados por padrão, o sistemas já atribui as regras aos devidos serviços. Na imagem abaixo usamos os comandos iptables -L INPUT --line-numbers e iptables -L OUTPUT --line-numbers que ajuda a listar e enumerar as regras já criadas, sendo possivel verificar para que serviço certa regra foi aplicada.

Permitir tudo que é conexão estabalecida (para entrada assim como para saída).
 

Bloquear tráfego 

Para bloquer tráfego, os comando são os mesmos excepto que ao invés de ACCEPT usamos o DROP para informar que tal regra bloqueia certo tráfego especificado. Por exemplo, para bloquer tráfego SSH para um certo endereço IP em específico, usamos o comando iptables -A INPUT -p tcp --dport 22 -s <endereço IP> -j DROP.
 
Vejá a imagem abaixo, onde é bloqueado o acesso SSH para o endereço IP 192.168.1.120.
 

Bloquear todas solicitações (tráfego de entrada) ICMP (ping). 


Bloquear requisições (tráfego de saída) aos sites do Instagram e Facebook.

Bloquear todo tráfego (de entrada assim como de saída).

Apagar regras: algumas regras podem não ser mais úteis sendo necessário apagar, e para isso precisamos de dois comandos, o primeiro é para listar regras de forma enumerada e o segundo para apagar a regra de acordo com o número correspondente a regra.

Regras devem ser gravadas (sempre que se adicionar, apagar ou modificar) para manter a consistência depois de uma reinicialização do sistema.

Regras também podem ser restauradas usando o comando abaixo.

Outros comando importantes.

Comentários