Políticas de firewall restritivas versus permissivas
Além da sintaxe que você precisa saber para gerenciar um firewall, você precisará definir as tarefas do firewall para decidir qual política será implementada. Existem 2 políticas principais que definem o comportamento do firewall e diferentes maneiras de implementá-las.
Quando você adiciona regras para aceitar ou recusar pacotes, origens, destinos, portas, etc. específicos. as regras determinarão o que acontecerá com o tráfego ou pacotes que não estão classificados nas suas regras de firewall.
Um exemplo extremamente simples seria: quando você define se deseja colocar na lista branca ou negra o IP x.x.x.x, o que acontece com o resto?.
Digamos que você coloque na lista de permissões o tráfego proveniente do IP x.x.x.x.
UMA permissivo política significaria todos os endereços IP que não são x.x.x.x pode se conectar, portanto, y.y.y.y ou z.z.z.z pode conectar. UMA restritivo política recusa todo o tráfego proveniente de endereços que não sejam x.x.x.x.
Em suma, um firewall segundo o qual todo o tráfego ou pacotes que não estão definidos entre suas regras não pode passar é restritivo. Um firewall segundo o qual todo o tráfego ou pacotes que não estão definidos entre suas regras é permitido é permissivo.
As políticas podem ser diferentes para o tráfego de entrada e saída, muitos usuários tendem a usar uma política restritiva para o tráfego de entrada mantendo uma política permissiva para o tráfego de saída, isso varia dependendo do uso do dispositivo protegido.
Iptables e UFW
Embora o Iptables seja um front-end para os usuários configurarem as regras de firewall do kernel, o UFW é um front-end para configurar o Iptables, eles não são concorrentes reais, o fato é que o UFW trouxe a capacidade de configurar rapidamente um firewall personalizado sem aprender sintaxe hostil, mas algumas regras podem devem ser aplicadas através do UFW, regras específicas para prevenir ataques específicos.
Este tutorial mostrará regras que considero entre as melhores práticas de firewall aplicadas principalmente, mas não apenas com UFW.
Se você não instalou o UFW, instale-o executando:
# apt install ufw
Introdução ao UFW:
Para começar, vamos habilitar o firewall na inicialização, executando:
# sudo ufw enable
Observação: se necessário, você pode desativar o firewall usando a mesma sintaxe, substituindo “ativar” por “desativar” (sudo ufw desativar).
A qualquer momento, você poderá verificar o status do firewall detalhadamente executando:
# sudo ufw status verbose
Como você pode ver na saída, a política padrão para o tráfego de entrada é restritiva, enquanto para o tráfego de saída a política é permissiva, a coluna "desativado (roteado)" significa que o roteamento e o encaminhamento estão desativados.
Para a maioria dos dispositivos que considero uma política restritiva faz parte das melhores práticas de firewall para segurança, portanto, vamos começar recusando todo o tráfego, exceto aquele que definimos como aceitável, um firewall restritivo:
# sudo ufw padrão negar entrada
Como você pode ver, o firewall nos avisa para atualizar nossas regras para evitar falhas ao atender clientes que se conectam a nós. A maneira de fazer o mesmo com Iptables pode ser:
# iptables -A INPUT -j DROPO negar regra no UFW irá interromper a conexão sem informar ao outro lado que a conexão foi recusada, se você quiser que o outro lado saiba que a conexão foi recusada, você pode usar a regra “rejeitar" em vez de.
# sudo ufw default rejeitar entrada
Depois de bloquear todo o tráfego de entrada, independentemente de qualquer condição, vamos começar a definir regras discriminativas para aceitar o que queremos ser aceitos especificamente, por exemplo, se estivermos configurando um servidor web e você quiser aceitar todas as petições que chegam ao seu servidor web, em porta 80, execute:
# sudo ufw allow 80
Você pode especificar um serviço por número de porta ou nome, por exemplo, você pode usar o prot 80 como acima ou o nome http:
Além de um serviço, você também pode definir uma fonte, por exemplo, você pode negar ou rejeitar todas as conexões de entrada, exceto para um IP de origem.
# sudo ufw permitir de
Regras comuns de iptables traduzidas para UFW:
Limitar rate_limit com UFW é muito fácil, isso nos permite evitar abusos, limitando o número que cada host pode estabelecer, com UFW limitando a taxa para ssh seria:
# limite de ufw de sudo de qualquer porta 22# sudo ufw limit ssh / tcp
Para ver como o UFW facilitou a tarefa abaixo, você tem uma tradução da instrução UFW acima para instruí-la:
# sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NOVO-m recente --set --name DEFAULT --mask 255.255.255.0 - rsource
#sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NOVO
-m recente --update --seconds 30 --hitcount 6 --name DEFAULT --mask 255.255.255.255
--rsource -j ufw-user-limit
# sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -j ufw-user-limit-accept
As regras escritas acima com UFW seriam:
Espero que você tenha achado útil este tutorial sobre as Melhores Práticas de Configuração do Firewall Debian para Segurança.