Como permitir porta através de firewall no AlmaLinux
firewalld é o programa de firewall padrão que vem pré-instalado no Red Hat Enterprise Linux e suas distribuições Linux derivadas, como AlmaLinux.
Por padrão, o firewall está ativado, o que significa que um número muito limitado de serviços pode receber tráfego de entrada. Este é um ótimo recurso de segurança, mas significa que o usuário deve ter conhecimento suficiente para configurar o firewall sempre que instalar um novo serviço no sistema, como HTTPD ou SSH por exemplo. Caso contrário, as conexões da Internet não conseguirão acessar esses serviços.
Em vez de desabilitar totalmente o firewall do AlmaLinux, podemos permitir certas portas através do firewall, o que permite que as conexões de entrada cheguem aos nossos serviços. Neste guia veremos como permitir uma porta através do firewall no AlmaLinux. Sinta-se à vontade para acompanhar se você instalou o AlmaLinux recentemente ou migrou do CentOS para o AlmaLinux.
Neste tutorial você aprenderá:
Como permitir uma porta ou serviço através do firewall no AlmaLinux
-
Como recarregar o firewall para que as alterações tenham efeito
Como verificar quais portas e serviços estão abertos no firewall
Como fechar uma porta depois de configurá-la como aberta
Exemplos de comandos para permitir as portas mais comuns através do firewall
Permitindo uma porta através do firewall no AlmaLinux
Como permitir uma porta através de firewall no AlmaLinux
Siga as instruções passo a passo abaixo para permitir portas ou serviços através do firewalld no AlmaLinux. Você também verá como verificar as portas abertas que o firewalld configurou.
Ao verificar portas de firewall abertas no RHEL 8/CentOS 8 Linux, é importante saber que as portas de firewall podem ser abertas de duas maneiras principais diferentes. Em primeiro lugar, a porta do firewall pode ser aberta como parte de um serviço pré-configurado. Veja este exemplo onde abrimos a porta
HTTP
para a zonapublic
.# firewall-cmd --zone=public --add-service=http --permanent
Obviamente, adicionar o serviço HTTP ao firewalld equivale a abrir a porta
80
.Em segundo lugar, as portas podem ser abertas diretamente como portas personalizadas predefinidas pelo usuário. Veja este exemplo onde abrimos a porta
8080
.# firewall-cmd --zone=public --add-port 8080/tcp --permanent
Como o 8080 não possui um serviço associado, é necessário especificar o número da porta em vez do nome do serviço se quisermos abrir esta porta.
Para verificar quais portas de serviço estão abertas, execute o seguinte comando.
# firewall-cmd --zone=public --list-services cockpit dhcpv6-client http https ssh
Os serviços acima (cockpit, DHCP, HTTP, HTTPS e SSH) têm seus números de porta relevantes abertos.
Para verificar quais números de porta estão abertos, use este comando.
# firewall-cmd --zone=public --list-ports 20/tcp 8080/tcp
As portas acima,
20
e8080
, estão abertas ao tráfego de entrada.Depois de permitir que suas portas e serviços passem pelo firewall, precisaremos recarregar o firewalld para que as alterações tenham efeito. Todas as regras com a opção
--permanent
agora farão parte da configuração do tempo de execução. Regras sem esta opção serão descartadas.# firewall-cmd --reload
Também podemos ver uma lista de todos os serviços e portas abertas usando a opção
--list-all
.# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Observe que o firewalld funciona com zonas. Dependendo de qual zona suas interfaces de rede estão usando, pode ser necessário adicionar sua porta permitida a essa zona específica. A primeira etapa acima mostra como adicionar uma regra à zona “pública”. Para ver as regras dessa zona especificamente, continue usando a sintaxe
--zone=
.# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Caso precise fechar uma das portas abertas configuradas anteriormente, você pode usar a seguinte sintaxe de comando. Neste exemplo, fechamos a porta para HTTPS.
# firewall-cmd --zone=public --permanent --remove-service=https
Isso é tudo que há para fazer. Para saber mais sobre firewalld e o comando firewall-cmd
Linux, confira nosso guia dedicado sobre introdução ao firewalld e firewall-cmd.
Exemplos de portas comuns
Use os comandos abaixo como um guia de referência fácil para permitir alguns dos serviços mais comuns através do firewall no AlmaLinux.
Permitir HTTP através do firewall.
# firewall-cmd --zone=public --add-service=http --permanent
Permitir HTTPS através do firewall.
# firewall-cmd --zone=public --add-service=https --permanent
Permitir MySQL através do firewall.
# firewall-cmd --zone=public --add-service=mysql --permanent
Permitir SSH através do firewall.
# firewall-cmd --zone=public --add-service=ssh --permanent
Permitir DNS através do firewall.
# firewall-cmd --zone=public --add-service=dns --permanent
Permitir PostgreSQL através do firewall.
# firewall-cmd --zone=public --add-service=postgresql --permanent
Permitir telnet através do firewall.
# firewall-cmd --zone=public --add-service=telnet --permanent
Considerações finais
Neste guia vimos como permitir uma porta ou serviço através do firewall no AlmaLinux. Isso envolveu o uso do comando firewall-cmd associado ao firewalld, o que facilita o processo uma vez que sabemos a sintaxe correta a ser usada. Também vimos vários exemplos de como permitir muitos dos serviços mais comuns através do firewall. Lembre-se de prestar atenção especial em qual zona você aplica suas novas regras.