Configurar a firewall em Linux com iptables

Ver como Markdown

Saiba como proteger um servidor com iptables

Objetivo

O seu VPS 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 definindo regras que regulem o tráfego autorizado e o que está bloqueado. A firewall comercial desenvolvida para os sistemas Linux é iptables.

Aprenda a proteger o seu servidor graças ao iptables.

Informações sobre a administração dos serviços OVHcloud e como encontrar a assistência adequada

Ao utilizar os guias da OVHcloud, tenha em conta as seguintes condições:

  • As instruções procuram fornecer o máximo de detalhes possível, mas não podem abranger todos os casos de utilização individuais. Poderá ser necessário adaptar as ações descritas às suas necessidades.
  • O ecossistema OVHcloud foi concebido para oferecer flexibilidade e liberdade de escolha. Os clientes são, por isso, responsáveis pela configuração correta e segura dos seus serviços. Para evitar a perda de dados, recomendamos vivamente a aplicação de estratégias de cópia de segurança a todos os seus dados importantes.
  • Os nossos guias e tutoriais podem fazer referência a software ou serviços de terceiros em combinação com as soluções OVHcloud. O suporte técnico fornecido pela OVHcloud não inclui a configuração de sistemas ou produtos fora da nossa responsabilidade. Isto inclui, entre outros:
    • Sistemas operativos e interfaces de utilizador (Windows, Debian, Plesk, etc.).
    • Qualquer outro software de terceiros (clientes FTP, software de e-mail, etc.).
    • Serviços oferecidos por outros fornecedores (DNS, API, interfaces de utilizador, etc.).

Para receber a assistência adequada em caso de problemas, siga estas orientações:

  • Procura aconselhamento personalizado ou pretende discutir um tema que não é abordado em detalhe na nossa documentação?
    Junte-se à comunidade OVHcloud para pesquisar o seu tema e falar com outros utilizadores.
  • Precisa de comunicar um incidente relativo ao seu serviço OVHcloud ou tem dificuldades na Área de Cliente OVHcloud?
    Crie um pedido de suporte no nosso Centro de Ajuda.
  • Necessita de assistência profissional para o seu projeto ou de ajuda com tarefas fora do âmbito do nosso suporte?
    Visite o nosso portal de parceiros para encontrar especialistas familiarizados com as soluções OVHcloud.
  • Procura informações mais detalhadas sobre os nossos níveis de suporte e Professional Services?
    Visite as nossas páginas web sobre os níveis de suporte OVHcloud e os OVHcloud Professional Services.

Pode participar na melhoria da nossa documentação:

  • Pretende partilhar comentários para melhorar uma página de guia ou comunicar informações insuficientes numa página específica?
    Utilize os botões «Esta página foi útil?» no final da página para nos informar.
  • Pretende propor uma atualização concreta da documentação?
    Utilize a função «Editar esta página», disponível no final da página e na barra lateral.

Requisitos

  • Dispor de um VPS na sua conta OVHcloud
  • Dispor de um acesso administrador (root/sudo) ao seu servidor através de SSH

Instruções

Info

Este guia indica os comandos para uma distribuição Ubuntu Server.

Manual para utilização geral. Poderá ter de adaptar alguns comandos consoante a distribuição e/ou o sistema operativo que utiliza. Poderá ser-lhe sugerida a utilização de ferramentas de terceiros. Em caso de dúvidas relacionadas com a sua utilização, consulte a documentação oficial.

A maioria das regras descritas neste guia assume que o seu iptables está configurado por defeito para DROP o tráfego de entrada, e que permite seletivamente o tráfego de entrada. Caso pretenda efetuar outro tipo de configuração, recomendamos que consulte a documentação adicional.

Etapa 1: atualizar o sistema

Os programadores de sistemas operativos e de sistemas de distribuição propõem atualizações do software frequentes, muitas vezes por razões de segurança. Atualizar a sua distribuição e o seu sistema operativo é essencial para proteger o seu servidor.

Para mais informações, consulte o nosso manual sobre a segurança de um VPS.

Etapa 2: instalar a firewall iptables em Ubuntu

Info

Existem duas versões diferentes de iptables para IPv4 e IPv6. As regras que estamos a cobrir neste tutorial Linux iptables dizem respeito ao IPv4. Para configurar iptables para IPv6, deve utilizar o utilitário iptables6. Estes dois protocolos diferentes não funcionam em conjunto e devem ser configurados de forma independente.

O iptables é instalado de forma padrão na maior parte dos sistemas Linux. Para confirmar que o iptables está instalado, utilize o seguinte comando:

sudo apt install iptables

O exemplo de saída em Ubuntu confirma que a última versão do iptables já está presente:

versão-iptables

Geralmente, um comando iptables é o seguinte:

sudo iptables [option] CHAIN_rule [-j target]

Eis uma lista de algumas opções iptables comuns:

  • -A --append: Adiciona uma regra a uma cadeia (no fim).
  • -C --check: Procura uma regra que corresponda às exigências da cadeia.
  • -D --delete: Eliminar 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: Indica todas as regras de um canal.
  • -N -new-chain: Crie uma nova cadeia.
  • -v --verbose: Afixar mais informações aquando da utilização de uma opção de lista.
  • -X --delete-chain: Eliminar a cadeia fornecida.

Etapa 3: verificar o estado atual dos itens

Para apresentar o conjunto das regras atuais no seu servidor, introduza o seguinte comando na janela do terminal:

sudo iptables -L

O sistema apresenta o estado das suas cadeias.
A saída irá listar três canais:

Check-Current-iptables

Etapa 4: autorizar o tráfego no localhost

Para autorizar o tráfego do seu próprio sistema (o localhost), adicione a cadeia de entrada ao introduzir o seguinte:

sudo iptables -A INPUT -i lo -j ACCEPT

Este comando configura a firewall para aceitar o tráfego para a interface localhost (lo) (-i). Agora, tudo o que vem do seu sistema passará pela sua firewall. Deve definir esta regra para que as aplicações possam comunicar com a interface localhost.

Etapa 5: autorizar o tráfego em portos específicos

Estas regras autorizam o tráfego nas diferentes portas que especifica através dos comandos indicados abaixo. Uma porta é um ponto de terminação de comunicação especificado para um tipo específico de dados.

Para autorizar o tráfego Web HTTP, introduza o seguinte comando:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Para autorizar apenas o tráfego SSH (Secure Shell) de entrada, introduza o seguinte (note que utilizamos a porta 22, que é o número padrão da porta SSH. Se o seu número de porta for diferente, certifique-se de ajustar os seguintes comandos em conformidade):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Para autorizar o tráfego Internet HTTPS, introduza o seguinte comando:

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

As opções funcionam da seguinte forma:

  • -p: Verifique o protocolo especificado (tcp).
  • --dport: Especifica o porto de destino.
  • -j jump: Efetua a ação
Warning

Em caso de perda de acesso ao seu servidor, poderá sempre utilizar a ferramenta KVM/IPMI para aceder novamente e modificar a sua configuração ou eliminar as suas regras.

Para mais informações sobre o acesso a esta ferramenta, consulte este guia.

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.

sudo iptables -A INPUT -s o_seu_endereço_IP_a_autorizar -j ACCEPT

Substitua o endereço IP na encomenda pelo endereço IP que pretende autorizar.

Também pode bloquear o tráfego a partir de um endereço IP:

sudo iptables -A INPUT -s o_seu_endereço_IP_ao_bloquear -j DROP

Substitua o endereço IP na encomenda 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:

sudo iptables -A INPUT -m iprange --src-range o seu_endereço_IP_inicio-o_o_endereço_IP_fin -j REJECT

As opções essenciais que utilizámos nos exemplos funcionam da seguinte forma:

  • -m: Corresponde à opção especificada.
  • -iprange: Indica ao sistema esperar um intervalo de endereços de IP em vez de um só.
  • --src-range: Identifique o intervalo de endereços IP.

Etapa 7: eliminar o tráfego indesejável

Se definir regras de firewall iptables, deve impedir os acessos não autorizados eliminando todo o tráfego proveniente de outras portas:

sudo iptables -A INPUT -j DROP

A opção -A acrescenta uma nova regra à cadeia. Se uma ligação passa por portas diferentes das que definiu, ela será abandonada.

Warning

Atenção, se introduzir este comando antes de efetuar o passo 5, bloqueará todos os acessos, incluindo o que está em curso, e o acesso SSH. Isto é particularmente problemático numa máquina na qual se pode aceder remotamente.

Etapa 8: eliminar uma regra

Um método mais preciso consiste em eliminar o número de linha de uma regra.

sudo iptables -P INPUT DROP 

Em primeiro lugar, liste todas as regras e introduza o seguinte:

sudo iptables -L --line-numbers
line-numbers

Procure a linha da regra da firewall que deseja eliminar e execute este comando:

sudo iptables -D INPUT <Number>

Substitua o Number pelo número de linha de regra que pretende eliminar.

Etapa 9: registar as suas alterações

Ao reiniciar o sistema, o iptables não mantém as regras que criou. Cada vez que configura o iptables sob Linux, todas as modificações que efetuar aplicam-se apenas até ao próximo reboot.

Nos sistemas baseados em Ubuntu, o pacote iptables-persistent encarrega-se de restaurar as suas regras no arranque. Instale-o com o seguinte comando:

sudo apt install iptables-persistent
Info

Durante a instalação, é-lhe perguntado se deseja guardar as regras IPv4 e IPv6 atuais. Responda Yes para conservar as regras que acabou de criar.

Em seguida, pode guardar as suas regras em qualquer momento com o seguinte comando:

sudo netfilter-persistent save

As suas regras IPv4 são escritas no ficheiro /etc/iptables/rules.v4 (e as suas regras IPv6 no ficheiro /etc/iptables/rules.v6).

Quando iniciar o seu sistema, iptables recarregará automaticamente as regras da firewall.

Pode desde já configurar regras de firewall iptables para o seu servidor Linux. Não hesite em experimentar, pois pode sempre eliminar as regras de que não precisa, esvaziar todas as regras e recomeçar.

Saiba mais

Fale com nossa comunidade de utilizadores.

Esta página foi útil?