Adicionar o Serviço http à Zona public e Testar com um Servidor Web
Nesta etapa, você adicionará uma regra ao seu firewall para permitir tráfego web e, em seguida, demonstrará o impacto prático executando um servidor web simples. Por padrão, o firewalld bloqueia a maior parte do tráfego de entrada para proteger seu sistema. Para permitir conexões específicas, você deve adicionar regras para os serviços que deseja expor. O firewalld usa "serviços" predefinidos, que são nomes fáceis de lembrar para portas de rede padrão. Por exemplo, o serviço http corresponde à porta TCP 80, a porta padrão para tráfego web não criptografado.
Primeiro, vamos verificar o status atual do firewall para a zona pública antes de fazer alterações:
sudo firewall-cmd --zone=public --list-services
Você notará que o http não está na lista inicialmente, o que significa que as conexões externas para a porta 80 estão bloqueadas.
Agora, vamos adicionar o serviço http à zona public. Você usará o comando firewall-cmd com a opção --add-service, especificando a zona que deseja modificar:
sudo firewall-cmd --zone=public --add-service=http
Este comando instrui o firewalld a modificar a zona public adicionando a regra do serviço http. A alteração é aplicada à configuração de tempo de execução (runtime), o que significa que entra em vigor imediatamente. Você deverá ver uma mensagem de confirmação:
success
Vamos verificar se o serviço foi adicionado consultando a lista de serviços novamente:
sudo firewall-cmd --zone=public --list-services
Agora você deve ver http na lista de serviços permitidos.
Para demonstrar o impacto prático, vamos iniciar um servidor web simples. Usaremos o servidor HTTP integrado do Python na porta 80:
cd /tmp
echo "<h1>Welcome to LabEx Firewall Demo</h1><p>This server is running on port 80</p>" > index.html
sudo python3 -m http.server 80
Observe que precisamos de sudo porque a porta 80 é uma porta privilegiada (abaixo de 1024). Mantenha este servidor em execução em um terminal separado.
Agora, em outro terminal, teste a conexão:
curl http://localhost
A conexão funciona porque o serviço http agora é permitido pelo firewall. Note que conexões via localhost podem ignorar as regras do firewall, mas o ponto principal é que conexões externas para a porta 80 agora seriam permitidas pelo firewall.
Para ilustrar ainda mais as capacidades de gerenciamento do firewall, vamos remover temporariamente o serviço HTTP:
sudo firewall-cmd --zone=public --remove-service=http
Verifique a lista de serviços para confirmar que foi removido:
sudo firewall-cmd --zone=public --list-services
Você notará que o http não está mais na lista. Agora, adicione o serviço de volta:
sudo firewall-cmd --zone=public --add-service=http
Verifique se ele foi adicionado novamente:
sudo firewall-cmd --zone=public --list-services
Você aprendeu com sucesso como gerenciar o serviço HTTP no firewall e demonstrou as mudanças de configuração. O conceito fundamental é que, sem a regra do serviço http, as conexões externas para a porta 80 seriam bloqueadas pelo firewall, mesmo que um servidor web estivesse em execução. Você pode parar o servidor web com Ctrl+C quando terminar a demonstração.