Introdução
Neste laboratório, você aprenderá as etapas essenciais para configurar o firewalld em um sistema Linux para permitir o tráfego web por meio de prática direta com servidores reais. Você utilizará o utilitário de linha de comando firewall-cmd para gerenciar zonas e serviços de firewall, uma habilidade fundamental para qualquer administrador de sistemas responsável pela segurança de servidores. O objetivo principal é abrir as portas padrão para HTTP e HTTPS, tornando um servidor web acessível externamente enquanto mantém uma postura de segurança padrão robusta.
Você começará verificando o status do serviço firewalld, garantindo que ele esteja instalado, em execução e habilitado para iniciar no boot. Em seguida, você definirá a zona padrão do firewall como public e experimentará o impacto prático das regras de firewall executando um servidor web simples em Python. Ao adicionar e remover regras de firewall para os serviços http e https, você testemunhará em primeira mão como essas configurações afetam a conectividade real da rede. O laboratório termina mostrando como verificar suas configurações e explorar outras opções do firewall-cmd para aprendizado contínuo.
Verificar o Status e a Zona Padrão do firewalld
Nesta etapa, você começará a trabalhar com o firewalld, uma ferramenta de gerenciamento de firewall poderosa e flexível para Linux. Antes de fazer qualquer alteração na configuração, é essencial verificar se o serviço está instalado e em execução, além de identificar suas configurações padrão atuais. Isso garante que você tenha uma base clara para trabalhar.
Primeiro, vamos garantir que o firewalld esteja instalado em seu sistema. Embora ele possa já estar presente, executar o comando de instalação é uma forma segura de confirmar. Abra seu terminal e execute os seguintes comandos para atualizar sua lista de pacotes e instalar o firewalld:
sudo apt-get update && sudo apt-get install -y firewalld
Assim que a instalação for concluída, o firewalld deve estar ativo por padrão. Para verificar isso, consulte o status do serviço firewalld usando o comando systemctl, que é utilizado para gerenciar serviços em distribuições Linux modernas.
Execute este comando para ver se o firewalld está ativo:
sudo systemctl status firewalld
A saída deve mostrar active (running), indicando que o firewall está operacional.
Com o serviço em execução, você pode agora inspecionar sua configuração. O firewalld utiliza "zonas" para gerenciar níveis de confiança para conexões de rede. Uma zona é um conjunto predefinido de regras. Vamos descobrir qual zona está definida atualmente como padrão.
Use o utilitário firewall-cmd, a principal interface de linha de comando do firewalld, para obter a zona padrão:
sudo firewall-cmd --get-default-zone
O comando provavelmente retornará public, que é a zona padrão para novas instalações.
public
Você verificou com sucesso o status do firewalld e identificou sua zona padrão. Nas próximas etapas, você aprenderá como modificar essa configuração.
Definir a Zona Padrão como public
Nesta etapa, você aprenderá como definir a zona padrão para o firewalld. A zona padrão é aplicada a qualquer interface de rede que não esteja explicitamente atribuída a outra zona. Embora a zona padrão seja frequentemente public em uma nova instalação, saber como defini-la é uma habilidade fundamental para gerenciar seu firewall. A zona public é tipicamente usada para redes públicas e não confiáveis, onde você não confia que outros computadores na rede não prejudicarão sua máquina.
Para alterar a zona padrão, você usará o comando firewall-cmd com a opção --set-default-zone. Esta alteração é persistente e será aplicada imediatamente.
No seu terminal, execute o seguinte comando para definir a zona padrão como public:
sudo firewall-cmd --set-default-zone=public
Após executar o comando, o firewalld confirmará que a alteração foi bem-sucedida.
success
É sempre uma boa prática verificar se suas alterações foram aplicadas corretamente. Você pode fazer isso executando o comando --get-default-zone novamente, assim como fez na etapa anterior.
sudo firewall-cmd --get-default-zone
A saída deve confirmar que a zona padrão agora é public.
public
Você definiu e verificou com sucesso a zona padrão do seu firewall. Isso garante uma postura de segurança básica para quaisquer conexões de rede. Nas etapas seguintes, você adicionará regras a esta zona para permitir tipos específicos de tráfego.
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.
Adicionar o Serviço https à Zona public e Testar a Configuração HTTPS
Nesta etapa, você continuará configurando seu firewall adicionando o serviço https. Enquanto o http permite o tráfego web padrão, a comunicação web moderna depende do https (HTTP Seguro) para criptografia e segurança. O serviço https corresponde à porta TCP 443 e é essencial para qualquer servidor que lide com informações sensíveis.
Antes de adicionar o serviço HTTPS, vamos verificar o que acontece quando tentamos testar a conectividade HTTPS sem a regra do firewall. Execute o seguinte comando para verificar os serviços atuais do firewall:
sudo firewall-cmd --zone=public --list-services
Você deve ver http na lista, mas não https.
Agora, vamos adicionar o serviço https à zona public. Você usará o comando firewall-cmd --add-service para permitir o tráfego https através da zona public. Isso garante que seu servidor possa aceitar conexões seguras de usuários externos.
No seu terminal, execute o seguinte comando para adicionar o serviço https:
sudo firewall-cmd --zone=public --add-service=https
Este comando modifica a configuração de tempo de execução da zona public para incluir uma regra para o serviço https. O firewalld confirmará a adição bem-sucedida da regra.
success
Agora vamos verificar se o serviço HTTPS foi adicionado consultando a lista de serviços novamente:
sudo firewall-cmd --zone=public --list-services
Agora você deve ver tanto http quanto https na saída, confirmando que seu firewall está configurado para permitir ambos os tipos de tráfego web.
Para demonstrar a diferença prática, você também pode verificar quais portas estão abertas agora:
sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --list-services
O comando --list-services mostra os serviços pelo nome, enquanto você pode observar que o serviço http corresponde à porta 80 e o https à porta 443.
Você configurou seu firewall para permitir tráfego web padrão (http) e seguro (https). Esta é uma configuração comum e necessária para hospedar sites que lidam com informações sensíveis ou exigem conexões seguras.
Verificar se os Serviços Web foram Adicionados à Zona public
Nesta etapa, você confirmará que os serviços http e https foram adicionados com sucesso à zona public. Após realizar alterações de configuração, é uma prática recomendada crítica verificar se elas foram aplicadas conforme o esperado. Isso garante que seu firewall esteja no estado desejado e auxilia na resolução de problemas.
Para ver a lista de todos os serviços permitidos atualmente em uma zona, você pode usar o comando firewall-cmd com a opção --list-services. Como você adicionou os serviços à zona public, deve especificá-la no comando.
Execute o seguinte comando no seu terminal para listar os serviços ativos para a zona public:
sudo firewall-cmd --list-services --zone=public
A saída exibirá uma lista de nomes de serviços. Você deve ver http e https nesta lista, juntamente com outros serviços que podem estar habilitados por padrão, como dhcpv6-client e ssh.
dhcpv6-client ssh http https
Ver http e https na saída confirma que você configurou com sucesso o firewall para permitir o tráfego web de entrada. Seu sistema está agora pronto para servir conteúdo web tanto em portas padrão quanto seguras.
Explorar Comandos Disponíveis com firewall-cmd --help
Nesta etapa final, você aprenderá como explorar as capacidades do firewall-cmd por conta própria. Ferramentas de linha de comando geralmente possuem muitas opções e recursos, e saber como acessar sua documentação integrada é uma habilidade crucial para qualquer usuário Linux. A opção --help é uma forma universal de obter uma visão rápida da sintaxe de um comando e das opções disponíveis.
Para ver todos os comandos e opções disponíveis para o firewall-cmd, execute o seguinte no seu terminal. Note que este comando não requer sudo, pois apenas exibe informações.
firewall-cmd --help
Este comando imprimirá uma longa lista de opções no seu terminal. Você pode rolar para cima para ver tudo. A saída começará algo como isto:
Usage: firewall-cmd [OPTIONS...]
General Options
-h, --help Prints a short help text and exists
-V, --version Print the version string of firewalld
-q, --quiet Do not print status messages
Status Options
--state Get state of firewalld
--reload Reload firewall rules and keep state information
--complete-reload Reload firewall rules and lose state information
--runtime-to-permanent
Save runtime configuration to permanent
...
Reserve um momento para examinar a saída. Você verá seções para "Zone Options", "Service Options", "Port Options" e muitas outras. Este é um excelente recurso para descobrir novos recursos ou lembrar-se da sintaxe de um comando que você não usa com frequência. Por exemplo, você pode ver a opção --remove-service, que é a contraparte do comando --add-service que você usou anteriormente.
Parabéns! Você concluiu este laboratório e aprendeu as operações básicas do firewalld. Agora você sabe verificar seu status, gerenciar zonas e adicionar serviços para permitir tráfego específico.
Resumo
Neste laboratório, você aprendeu as etapas fundamentais para gerenciar e configurar o firewalld em um sistema Linux com demonstrações práticas de seu impacto. Você começou garantindo que o serviço firewalld estivesse instalado e, em seguida, usou comandos systemctl para iniciar, habilitar e verificar seu status. Você também identificou a zona padrão ativa e aprendeu como alterá-la para public usando o firewall-cmd, estabelecendo uma base clara para as regras do firewall.
O destaque deste laboratório foi a demonstração prática dos efeitos do firewall usando um servidor web real. Você configurou um servidor HTTP simples em Python e experimentou em primeira mão como as regras do firewall controlam o acesso à rede. Ao adicionar e remover o serviço http da zona public, você testemunhou o impacto imediato na conectividade web, tornando o conceito abstrato de regras de firewall algo tangível e prático.
Com base nessa fundação, você configurou o firewall para permitir tanto o tráfego web padrão quanto o seguro, adicionando os serviços http e https à zona public. Você aprendeu a verificar suas alterações usando várias opções do firewall-cmd e explorou a relação entre os nomes dos serviços e seus respectivos números de porta. Por fim, você descobriu como acessar a documentação de ajuda abrangente do firewall-cmd, capacitando-o a explorar recursos avançados de forma independente.



