Abrir portas no Linux é uma tarefa essencial que permite que certos serviços ou aplicativos troquem dados pela rede.
As portas funcionam como canais de comunicação, permitindo o acesso a serviços autorizados e bloqueando conexões não autorizadas. O gerenciamento correto de portas é fundamental para garantir segurança, estabilidade e bom desempenho do sistema.
As portas são pontos lógicos de comunicação de rede, por onde os dispositivos enviam e recebem informações.
Exemplos comuns:
HTTP usa a porta 80
HTTPS usa a porta 443
SSH usa a porta 22
Uma porta aberta indica que há um serviço escutando e aceitando conexões por aquele canal. Uma porta fechada bloqueia o tráfego. Gerenciar corretamente as portas abertas no Linux é essencial para manter disponibilidade e segurança.
Antes de abrir uma nova porta, é importante verificar quais portas já estão ativas. Você pode fazer isso com alguns comandos básicos do Linux.
Para listar as portas abertas:
netstat -tuln
A opção -tuln mostra apenas as portas TCP e UDP, sem resolver nomes de host.

Observação: se o netstat não estiver instalado:
sudo apt install net-tools
O comando ss é mais moderno e rápido que o netstat. Execute:
ss -tuln

Ele mostra as portas em uso e informações sobre os sockets.
nmap localhost
O nmap faz uma varredura no host especificado (aqui, o localhost) e exibe as portas abertas — útil para identificar quais serviços estão expostos à rede.

Observação: instale o nmap com:
sudo apt install nmap
Para permitir acesso por uma porta específica, é necessário ajustar as regras do firewall. O Linux oferece várias ferramentas para isso: iptables, ufw e firewalld.
A seguir, veja como usá-las.
O iptables é uma ferramenta poderosa e de baixo nível que permite controle detalhado do tráfego de rede.
Exemplo: liberar a porta 8080 (HTTP):
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Explicação:
sudo: executa o comando com privilégios administrativos
-A INPUT: adiciona a regra à cadeia de entrada (tráfego de entrada)
-p tcp: aplica a regra ao protocolo TCP
--dport 8080: define a porta 8080
-j ACCEPT: permite o tráfego que corresponder à regra
Essas alterações não são permanentes — elas desaparecem após reiniciar o sistema.

Tornar a regra permanente
sudo apt install iptables iptables-persistent
sudo netfilter-persistent save

Esses comandos salvam as regras atuais e garantem que sejam aplicadas novamente ao reiniciar o servidor.
sudo netfilter-persistent reload

O ufw é uma interface simplificada do iptables, ideal para quem quer gerenciar o firewall de forma rápida e intuitiva.
sudo ufw enable
Se o ufw não estiver instalado:

sudo apt install ufw
Exemplo: abrir a porta 22 (SSH):
sudo ufw allow 22/tcp
sudo: Grants superuser privileges.ufw allow: Adds a rule to permit traffic.22/tcp: Sets port 22 for communication while restricting the rule to TCP protocol.Isso permite conexões TCP pela porta 22 — geralmente usada para acesso remoto via SSH.

Verificar o status do firewall
sudo ufw status
Exibe todas as regras ativas e as portas abertas.

O firewalld é um daemon de firewall dinâmico, mais fácil de configurar que o iptables.
Exemplo: liberar a porta 443 (HTTPS):
sudo firewall-cmd --permanent --add-port=443/tcp

Para instalar e ativar o firewalld:
sudo apt install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
Recarregar as regras
sudo firewall-cmd --reload

Verificar se a porta foi aberta
sudo firewall-cmd --list-all
Mostra todas as zonas e regras ativas, incluindo as portas abertas.

Após abrir uma porta, é importante confirmar se ela realmente está acessível.
Com telnet
telnet localhost port_number
Se a conexão for estabelecida, a porta está aberta e funcionando.

nmap -p port_number localhost
Verifica se a porta está acessível no host local.

curl localhost:port_number
Se o serviço estiver em execução, o comando retornará uma resposta bem-sucedida.

Se a porta não abrir corretamente:
Verifique as regras do firewall:
Verifique o status do serviço:
Dependendo do serviço, pode ser necessário usar TCP ou UDP.
Exemplo: liberar a porta 3306 (MySQL):
sudo ufw allow 3306/tcp
Garante comunicação estável para consultas de banco de dados.

Exemplo: liberar a porta 161 (SNMP):
sudo ufw allow 161/udp

O UDP oferece comunicação mais rápida e sem conexão — ideal para ferramentas de monitoramento.
Restringir acesso a um IP específico
sudo ufw allow from 192.168.1.100 to any port 22
Permite o acesso SSH pela porta 22 apenas a partir do IP especificado, aumentando a segurança.

sudo ufw deny 80/tcp
Bloqueia o tráfego de entrada na porta 80 (HTTP).

Verificar e abrir portas no Linux é um passo essencial para otimizar a conectividade de rede e garantir funcionamento seguro dos serviços. Com ferramentas como iptables, ufw e firewalld, é possível controlar o tráfego de forma segura e eficiente. Teste sempre suas configurações com nmap, curl ou telnet para confirmar que tudo está funcionando corretamente.
Um bom gerenciamento de portas é a base para servidores estáveis, conexões seguras e alta performance.