Configurar o firewalld para Permitir Tráfego Web no Linux

CompTIABeginner
Pratique Agora

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.

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para concluir cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 90%. Ele recebeu uma taxa de avaliação positiva de 92% dos alunos.

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.