Portas abertas são uma das principais vulnerabilidades de um servidor. Se você não as gerencia corretamente, corre o risco de deixar a “porta aberta” para invasores. Neste artigo, vamos ver como fechar portas no Linux usando iptables e UFW, além de como verificar quais portas já estão abertas.
Você também aprenderá como fechar a porta 80, bloquear todas as portas exceto as necessárias e entender como isso se relaciona com a segurança de servidores e clientes HTTP.
Como visualizar as portas abertas no servidor?
Antes de fechar portas, é importante identificar quais estão abertas no momento e quais serviços estão utilizando cada uma delas.
sudo ss -tulnou:
sudo netstat -tulnSignificado das opções (flags):
- t — TCP;
- u — UDP;
- l — mostrar apenas portas em estado de escuta (LISTEN);
- n — exibir portas em formato numérico.
Como fechar/abrir uma porta usando o iptables?
Para fechar uma porta (por exemplo, a porta 80), você pode utilizar o iptables, que é uma ferramenta de gerenciamento de firewall no Linux.
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
Essa regra irá bloquear conexões de entrada na porta 80 usando o protocolo TCP.
Para verificar:
sudo iptables -L -n --line-numbersPara remover essa regra:
sudo iptables -D INPUT Se você fechou a porta anteriormente e quer permitir as conexões novamente:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Como fechar ou abrir uma porta usando o UFW
O UFW (Uncomplicated Firewall) é uma ferramenta simples para configurar o firewall no Linux, sendo especialmente prática no Ubuntu.
Para fechar uma porta, por exemplo a porta 80, use o comando:
sudo ufw deny 80Este comando irá bloquear conexões de entrada na porta TCP especificada por padrão.
Você pode verificar as regras atuais com o comando:
sudo ufw status numberedSe você quiser remover uma das regras, encontre o número correspondente na lista e use o comando para deletá-la:
sudo ufw delete rule numberPara reabrir a porta 80 para conexões de entrada:
sudo ufw allow 80Dessa forma, você pode controlar facilmente o acesso a qualquer porta: fechar as desnecessárias e abrir apenas as necessárias, garantindo a segurança do servidor sem precisar lidar com regras complexas do iptables.
Script para configuração de portas
Para o gerenciamento de portas, você pode usar ferramentas de configuração automatizadas e scripts, que permitirão bloquear todas as conexões, exceto aquelas permitidas.
#!/bin/bash
# Check for UFW
if ! command -v ufw /dev/null; then
echo "UFW is not installed. Installing..."
sudo apt update && sudo apt install -y ufw
fi
echo "Disabling ufw if it has already been enabled..."
sudo ufw disable
echo "Reset all rules..."
sudo ufw reset
echo "I'm setting the default policy: prohibit incoming, allow outgoing..."
sudo ufw default deny incoming
sudo ufw default allow outgoing
echo "I allow HTTPS (port 443)..."
sudo ufw allow 443/tcp
echo "Enabling ufw..."
sudo ufw enable
echo "Current ufw status:"
sudo ufw status verbose
Como desativar o serviço que abre a porta
Às vezes, as portas estão abertas porque algum serviço está em execução (por exemplo, Apache ou Nginx). Se você não estiver usando, desative-o.
Desativando o Apache:
sudo systemctl stop apache2
sudo systemctl disable apache2Desativando o Nginx:
sudo systemctl stop nginx
sudo systemctl disable nginxDicas de segurança:
- Feche todas as portas não utilizadas;
- Permita apenas as portas específicas que você precisa (por exemplo, 22 e 443);
- Use o fail2ban para se proteger contra ataques de força bruta em senhas;
- Configure o firewall (UFW, firewalld ou iptables) imediatamente após instalar o servidor.
O gerenciamento de portas é uma parte essencial da proteção de um servidor Linux. Agora você sabe como fechar portas no Linux, visualizar portas abertas, bloquear a porta 80 e permitir apenas as conexões necessárias.