Configuração de firewall no Kali com iptables

LinuxBeginner
Pratique Agora

Introdução

Uma regra de firewall só é útil quando produz o limite de acesso pretendido e preserva o serviço necessário. Adicionar apenas uma regra de permissão sob uma política padrão ACCEPT não prova que alguém tenha sido restringido.

Este laboratório fornece um serviço Kali dedicado e dois clientes de prática. Você inspecionará o acesso inicial deles, aplicará regras ordenadas com base na origem no Kali, salvará e restaurará a política do exercício e testará os dois caminhos de cliente.

Observe a rede de treinamento antes de restringir o acesso

Nesta etapa, você testará duas perspectivas de clientes fornecidas e inspecionará o firewall que protege seu serviço de treinamento.

Este laboratório fornece uma pequena rede dedicada dentro da VM. O serviço de treinamento Kali está em 172.30.77.10:8080; o cliente permitido usa 172.30.77.20 e o cliente a bloquear usa 172.30.77.30. Ambos têm acesso inicialmente. Esses são endereços da rede de prática, não alvos públicos.

Comece no Terminal inicial do host Ubuntu. O comando preparado training-client faz uma solicitação a partir de um cliente de prática nomeado. Ele é executado no host, enquanto a administração do firewall ocorrerá dentro do Kali. Escolha o espaço de trabalho compartilhado:

cd /home/labex/project

Salve o estado HTTP inicial do cliente permitido:

training-client allowed > allowed-before.txt
cat allowed-before.txt

A linha de estado deve conter 200 OK. Registre o acesso inicial do outro cliente:

training-client blocked > blocked-before.txt
cat blocked-before.txt

Ele também deve informar 200 OK; o rótulo nomeia o cliente que você bloqueará, não seu estado inicial.

Agora entre no Kali para inspecionar seu firewall:

kali

Iptables avalia regras de filtragem de pacotes em cadeias. INPUT trata pacotes destinados a este ambiente, OUTPUT trata pacotes gerados localmente e FORWARD trata pacotes roteados. -L INPUT lista a cadeia de entrada; -n mantém endereços e portas numéricos, enquanto -v inclui contadores:

sudo iptables -L INPUT -n -v

A cadeia de prática tem inicialmente a política ACCEPT. Uma política de cadeia se aplica quando nenhuma regra já decidiu o destino do pacote. Neste laboratório, você adicionará regras restritas para o serviço dedicado, deixando inalteradas as políticas padrão e o firewall do host.

Aplique e salve uma política ordenada de serviço

Nesta etapa, você permitirá o cliente atribuído antes de rejeitar outras origens da rede de prática para o mesmo serviço.

Permaneça no Kali. -A INPUT acrescenta uma regra à cadeia de entrada, -p tcp corresponde a TCP, -s corresponde a um endereço de origem, --dport seleciona a porta de destino e -j escolhe a ação. Adicione primeiro a regra restrita de permissão:

sudo iptables -A INPUT -p tcp -s 172.30.77.20 --dport 8080 -j ACCEPT

Em seguida, rejeite outras origens da sub-rede dedicada de prática para essa mesma porta. O prefixo /24 identifica a faixa de rede 172.30.77.0:

sudo iptables -A INPUT -p tcp -s 172.30.77.0/24 --dport 8080 -j REJECT

As regras são avaliadas em ordem. A origem permitida corresponde à primeira regra ACCEPT que encerra a avaliação; o outro cliente de prática chega à regra REJECT posterior. Inverter essas regras rejeitaria também o cliente permitido. Outras portas e origens continuam seguindo a política padrão inalterada.

Mostre a ordem das regras e os contadores. --line-numbers inclui a posição de cada regra:

sudo iptables -L INPUT -n -v --line-numbers

A primeira regra deve permitir o cliente atribuído no TCP 8080, e a regra posterior deve rejeitar o tráfego restante da sub-rede de prática para esse serviço.

iptables-save exibe as regras ativas em um formato que pode ser restaurado. Salve a configuração deste exercício no espaço de trabalho compartilhado:

sudo iptables-save > /home/labex/project/training.rules

O operador < do shell fornece um arquivo como entrada padrão de um comando. iptables-restore lê essa configuração salva; aqui você restaura exatamente as regras do exercício que acabou de salvar:

sudo iptables-restore < /home/labex/project/training.rules

Isso opera somente no ambiente de rede Kali dedicado. Não limpe o firewall do host nem substitua políticas padrão para realizar uma restrição específica de serviço.

Verifique o acesso permitido e negado dos clientes

Nesta etapa, você testará a política a partir das duas origens de clientes e confirmará que o serviço de treinamento permanece disponível.

Retorne do Kali ao Terminal do host Ubuntu para usar as perspectivas de clientes fornecidas:

exit

O prompt do host mostra labex. Registre o novo resultado do cliente permitido:

training-client allowed > /home/labex/project/allowed-after.txt
cat /home/labex/project/allowed-after.txt

Ele ainda deve informar 200 OK.

Espera-se que o próximo comando falhe com uma conexão recusada ou outro erro de conexão: este é o cliente que você bloqueou deliberadamente. Continue após a falha intencional:

training-client blocked

Uma solicitação malsucedida do cliente bloqueado só é significativa enquanto o caminho permitido ainda funciona. Interromper o serviço web quebraria os dois caminhos e não demonstraria a política exigida.

Retorne ao Kali e inspecione os contadores após os testes:

kali
sudo iptables -L INPUT -n -v --line-numbers

Os contadores das regras relevantes devem ter aumentado. Você verificou o comportamento real do tráfego além do texto das regras, e o Terminal do host LabEx permanece disponível durante todo o exercício.

Resumo

Você inspecionou políticas de cadeias, adicionou regras ordenadas com base na origem para um serviço, salvou e restaurou a configuração do exercício e testou o acesso real de dois clientes. A origem permitida e o serviço permaneceram disponíveis, enquanto o acesso da origem designada foi negado.