Como abrir portas e listar portas abertas no Linux
Ao trabalhar com redes no Linux, pode ser necessário abrir ou fechar uma porta de rede. O gerenciamento de portas é essencial para a segurança: quanto menos portas abertas houver em um sistema, menos vetores de ataque potenciais existirão. Além disso, se uma porta estiver fechada, um invasor não poderá obter informações sobre o serviço em execução naquela porta específica.
Este guia explica como abrir ou fechar portas e como verificar portas abertas em distribuições Linux como Ubuntu/Debian e CentOS/RHEL, utilizando firewalls como ufw, firewalld e iptables.
Vamos demonstrar esse processo em duas distribuições Linux: Ubuntu 22.04 e CentOS 9, executadas em um VPS Hostman. Todos os comandos fornecidos aqui funcionam em qualquer distribuição baseada em Debian ou RHEL.
O que é uma porta de rede? Copiar link
As portas são usadas para acessar aplicações e protocolos específicos. Por exemplo, um servidor pode hospedar simultaneamente um servidor web e um banco de dados — as portas direcionam o tráfego para o serviço apropriado. Tecnicamente, uma porta de rede é um número inteiro não negativo entre 0 e 65535.
-
Portas reservadas (0–1023): usadas por protocolos e serviços de rede conhecidos como SSH (porta 22), FTP (porta 21), HTTP (porta 80) e HTTPS (porta 443).
-
Portas registradas (1024–49151): podem ser usadas por aplicações específicas para comunicação.
- Portas dinâmicas (49152–65535): usadas para conexões temporárias e podem ser atribuídas dinamicamente a aplicações.
Como abrir portas em distribuições Linux baseadas em Debian Copiar link
Em sistemas baseados em Debian (Ubuntu, Debian, Linux Mint, etc.), você pode usar o ufw (Uncomplicated Firewall).
ufw vem pré-instalado na maioria das distribuições baseadas em APT. Para verificar se está instalado:
ufw versionSe for exibida uma versão, ufw está instalado. Caso contrário, instale com:
apt update && apt -y install ufwPor padrão, ufw está inativo, o que significa que todas as portas estão abertas. Você pode verificar seu status com:
ufw statusPara ativá-lo:
ufw enableSerá necessário confirmar com y. Observe que ativar o ufw pode interromper conexões SSH ativas. Por padrão, ufw bloqueia todo o tráfego de entrada e permite todo o tráfego de saída.
Para verificar a política padrão:
cat /etc/default/ufw
Abrindo portas com ufw Copiar link
Para abrir uma porta:
ufw allow <port_number>Exemplo — abrir a porta 22 para SSH:
ufw allow 22Você pode abrir várias portas separando-as por vírgulas e especificando o protocolo (tcp ou udp):
ufw allow 80,443,8081,8443/tcp
ufw allow 80,443,8081,8443/udpEm vez de números de porta, você pode usar o nome do serviço (definido em /etc/services).

Exemplo — abrir Telnet (porta 23):
ufw allow telnetObservação: Não é possível especificar vários nomes de serviço ao mesmo tempo; caso contrário, o ufw exibirá um erro:

Para abrir um intervalo de portas:
ufw allow <start_port>:<end_port>/<protocol>Exemplo:
ufw allow 8000:8080/tcpFechando portas com ufw Copiar link
Para fechar uma porta:
ufw deny <port_number>Exemplo — fechar a porta 80:
ufw deny 80Você também pode usar o nome do serviço. Exemplo — fechar FTP (porta 21):
ufw deny ftpVerificando portas abertas com ufw Copiar link
Para listar todas as portas abertas e fechadas:
ufw status
Ou para uma visão mais detalhada:
ufw status verboseComo abrir uma porta em distribuições Linux baseadas em RHEL Copiar link
Distribuições baseadas em RHEL (CentOS 7+, RHEL 7+, Fedora 18+, OpenSUSE 15+) usam firewalld por padrão.
Abrindo portas com firewalld Copiar link
Verifique se o firewalld está instalado:
firewall-offline-cmd -VSe uma versão for exibida, firewalld está instalado. Caso contrário, instale-o:
dnf install firewalldPor padrão, firewalld está desativado. Verifique seu status:
firewall-cmd --statePara ativá-lo:
systemctl start firewalldAbrir a porta 8080 para TCP:
firewall-cmd --zone=public --add-port=8080/tcp --permanent--zone=public: especifica a zona da regra.--add-port=8080/tcp: especifica a porta e o protocolo.--permanent: salva a regra permanentemente.

Você também pode abrir um serviço usando seu nome, por exemplo HTTP (porta 80):
firewall-cmd --zone=public --add-service=http --permanentAplicar as alterações:
firewall-cmd --reloadFechando portas com firewalld Copiar link
Para fechar uma porta por número:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
Ou por nome do serviço:
firewall-cmd --zone=public --remove-service=http --permanentSempre recarregue após as alterações:
firewall-cmd --reloadListando portas abertas com firewalld Copiar link
Para listar todas as portas abertas:
firewall-cmd --list-portsGerenciando portas com iptables Copiar link
Ao contrário do ufw e do firewalld, o iptables vem pré-instalado em muitas distribuições (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux).
Abrindo portas com iptables Copiar link
Para abrir a porta 8182 para conexões de entrada:
iptables -A INPUT -p tcp --dport 8182 -j ACCEPT-A INPUT: adiciona uma regra à cadeia INPUT.-p tcp: especifica o protocolo.--dport 8182: especifica a porta a ser aberta.-j ACCEPT: permite o tráfego através da porta.
Para conexões de saída:
iptables -A OUTPUT -p tcp --dport 8182 -j ACCEPTPara abrir um intervalo de portas:
iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j ACCEPTFechando portas com iptables Copiar link
Para fechar uma porta:
iptables -A INPUT -p tcp --dport 8182 -j DROPFechar um intervalo de portas:
iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j DROPSalvando regras do iptables Copiar link
Por padrão, as regras do iptables são válidas apenas até o próximo reinício do servidor. Para salvá-las permanentemente, instale o iptables-persistent:
Para sistemas baseados em APT:
apt update && apt -y install iptables-persistentPara sistemas baseados em DNF:
dnf -y install iptables-persistentSalvar as regras atuais:
iptables-saveAs regras serão automaticamente recarregadas na próxima reinicialização.
Visualizando portas abertas com iptables Copiar link
Listar todas as regras e portas abertas:
iptables -L -v -nListar apenas regras IPv4:
iptables -SListar regras IPv6:
ip6tables -SConclusão Copiar link
Neste guia, mostramos como abrir e fechar portas de rede no Linux e como verificar as portas atualmente abertas usando três ferramentas diferentes: ufw, firewalld e iptables. Um bom gerenciamento de portas reduz o risco de ataques de rede e ajuda a ocultar informações sobre os serviços que utilizam essas portas.