Configurar o iptables num servidor dedicado Linux
Proteja o seu servidor dedicado configurando regras de firewall iptables para filtrar o tráfego de rede em Linux
Objetivo
O seu servidor dedicado está equipado com uma firewall. As firewalls criam uma barreira entre uma rede de confiança e uma rede não fiável. As firewalls funcionam através da definição de regras que determinam o tráfego autorizado e o tráfego bloqueado. O utilitário de firewall desenvolvido para os sistemas Linux é o Iptables.
Aprenda a proteger o seu servidor dedicado com o Iptables.
A OVHcloud oferece-lhe serviços cuja configuração e gestão são da sua responsabilidade. Por isso, é da responsabilidade do cliente assegurar o seu bom funcionamento.
Disponibilizamos-lhe este guia para o ajudar da melhor forma possível nas tarefas mais comuns. No entanto, recomendamos que recorra a um prestador de serviços especializado e/ou que fale com a nossa comunidade de utilizadores se tiver dificuldades ou dúvidas relativamente à administração, à utilização ou à segurança de um servidor. Encontrará mais informações na secção "Quer saber mais?" deste guia.
Requisitos
- Dispor de um servidor dedicado na sua conta OVHcloud
- Dispor de um acesso de administrador (root/sudo) ao seu servidor através de SSH
Instruções
Este guia indica os comandos para uma distribuição Ubuntu Server.
Este guia é de utilização geral. Poderá ter de adaptar alguns comandos em função da distribuição e/ou do sistema operativo que utiliza. Alguns conselhos poderão sugerir-lhe a utilização de ferramentas de terceiros. Em caso de dúvidas quanto à sua utilização, consulte a respetiva documentação oficial.
A maioria das regras descritas neste guia pressupõe que o seu iptables está configurado por predefinição para fazer DROP do tráfego de entrada e que autoriza seletivamente o tráfego de entrada. Se pretender implementar outro tipo de configuração, recomendamos que consulte a documentação complementar.
Etapa 1: atualizar o seu sistema
Os programadores de distribuições e de sistemas operativos propõem atualizações frequentes dos pacotes de software, muitas vezes por razões de segurança. Manter a sua distribuição ou o seu sistema operativo atualizado é fundamental para a segurança do seu servidor.
Consulte o nosso guia sobre a proteção de um servidor dedicado para mais informações.
Etapa 2: instalar a firewall Iptables em Ubuntu
Existem duas versões diferentes do iptables, para IPv4 e IPv6. As regras abordadas neste tutorial sobre o Iptables em Linux dizem respeito ao IPv4. Para configurar o Iptables para IPv6, deve utilizar o utilitário ip6tables. Estes dois protocolos diferentes não funcionam em conjunto e devem ser configurados de forma independente.
O Iptables está instalado por predefinição na maioria dos sistemas Linux. Para garantir que o Iptables está instalado, utilize o seguinte comando:
Em geral, um comando Iptables apresenta-se da seguinte forma:
Eis uma lista de algumas opções comuns do Iptables:
- -A --append: Adiciona uma regra a uma cadeia (no fim).
- -C --check: Procura uma regra que corresponda aos requisitos da cadeia.
- -D --delete: Elimina as regras especificadas de uma cadeia.
- -F --flush: Elimina todas as regras.
- -I --insert: Adiciona uma regra a uma cadeia numa determinada posição.
- -L --list: Apresenta todas as regras de uma cadeia.
- -N --new-chain: Cria uma nova cadeia.
- -v --verbose: Apresenta mais informações ao utilizar uma opção de listagem.
- -X --delete-chain: Elimina a cadeia indicada.
Etapa 3: verificar o estado atual do iptables
Para apresentar o conjunto das regras atuais no seu servidor, introduza o seguinte comando na janela do terminal:
O sistema apresenta o estado das suas cadeias.
A saída listará três cadeias:
Etapa 4: autorizar o tráfego no localhost
Para autorizar o tráfego do seu próprio sistema (o localhost), adicione uma regra à cadeia INPUT introduzindo o seguinte:
Este comando configura a firewall para aceitar o tráfego para a interface localhost (lo) (-i). A partir de agora, tudo o que provém do seu sistema passará pela sua firewall. Deve definir esta regra para permitir que as aplicações comuniquem com a interface localhost.
Etapa 5: autorizar o tráfego em portas específicas
Estas regras autorizam o tráfego nas diferentes portas que especificar através dos comandos indicados abaixo. Uma porta é um ponto terminal de comunicação especificado para um tipo específico de dados.
Para autorizar o tráfego web HTTP, introduza o seguinte comando:
Para autorizar apenas o tráfego SSH (Secure Shell) de entrada, introduza o seguinte (tenha em conta que utilizamos a porta 22, que é o número da porta SSH predefinida. Se o seu número de porta for diferente, ajuste os comandos seguintes em conformidade):
Para autorizar o tráfego HTTPS da Internet, introduza o seguinte comando:
As opções funcionam da seguinte forma:
- -p: Verifica o protocolo especificado (tcp).
- --dport: Especifica a porta de destino.
- -j jump: Executa a ação.
Em caso de perda de acesso ao seu servidor, pode sempre utilizar a ferramenta KVM/IPMI para voltar a aceder ao servidor e modificar a sua configuração ou eliminar as suas regras.
Para mais informações sobre o acesso a esta ferramenta, consulte o nosso guia Como utilizar a consola IPMI com um servidor dedicado.
Etapa 6: controlar o tráfego por endereço IP
Utilize o seguinte comando para aceitar o tráfego a partir de um endereço IP específico.
Substitua o endereço IP no comando pelo endereço IP que pretende autorizar.
Também pode bloquear o tráfego a partir de um endereço IP:
Substitua o endereço IP no comando pelo endereço IP que pretende bloquear.
Pode rejeitar o tráfego a partir de um intervalo de endereços IP com o seguinte comando:
As opções do iptables que utilizámos nos exemplos funcionam da seguinte forma:
- -m: Carrega um módulo de correspondência, neste caso iprange.
- iprange: Corresponde a um intervalo de endereços IP em vez de um único endereço.
- --src-range: Identifica o intervalo de endereços IP.
Etapa 7: eliminar o tráfego indesejado
Antes de bloquear o resto do tráfego, autorize as respostas às ligações que o seu servidor estabelece por si próprio (atualizações de pacotes, consultas DNS, etc.). Sem esta regra, estas respostas também seriam bloqueadas:
Se definir regras de firewall Iptables, deve impedir os acessos não autorizados eliminando todo o tráfego proveniente de outras portas:
A opção -A adiciona uma nova regra à cadeia. Se uma ligação passar por portas diferentes das que definiu, será descartada.
Atenção: se introduzir este comando antes de efetuar a etapa 5, bloqueará todos os acessos, incluindo o acesso em curso, o acesso SSH. Isto é particularmente problemático numa máquina à qual acede remotamente.
Etapa 8: eliminar uma regra
Para eliminar uma regra, utilize o respetivo número de linha.
Em primeiro lugar, liste todas as regras introduzindo o seguinte:
Procure a linha da regra de firewall que pretende eliminar e execute este comando:
Substitua Number pelo número de linha da regra que pretende eliminar.
Etapa 9: guardar as suas alterações
Quando o sistema é reiniciado, o Iptables não conserva as regras que tinha criado. Sempre que configurar o Iptables em Linux, todas as alterações que efetuar aplicam-se apenas até ao próximo reinício.
Nos sistemas baseados em Ubuntu, o pacote iptables-persistent encarrega-se de restaurar as suas regras no arranque. Instale-o com o seguinte comando:
Durante a instalação, é-lhe perguntado se pretende guardar as regras IPv4 e IPv6 atuais. Responda Yes para conservar as regras que acabou de criar.
Em seguida, pode guardar as suas regras a qualquer momento com o seguinte comando:
As suas regras IPv4 são escritas no ficheiro /etc/iptables/rules.v4 (e as suas regras IPv6 no ficheiro /etc/iptables/rules.v6).
No próximo arranque do seu sistema, o Iptables recarregará automaticamente as regras da firewall.
A partir de agora, pode configurar regras de firewall Iptables básicas para o seu servidor Linux. Não hesite em experimentar, pois pode sempre eliminar as regras de que não precisa ou limpar todas as regras e recomeçar.
Quer saber mais?
Ativar e configurar o Edge Network Firewall
Monitorizar os ataques DDoS com o painel Anti-DDoS
Fale com a nossa comunidade de utilizadores.