Como encaminhar portas com Iptables no Linux?
Introdução
O encaminhamento de porta é uma técnica que permite que um sistema de rede acesse recursos de fora da rede encaminhando portas específicas. É um processo que envolve um dispositivo intermediário (como um roteador) para aceitar conexões de entrada em portas específicas e, em seguida, redirecionar o tráfego para um dispositivo interno na rede. O resultado final é permitir que dispositivos remotos se conectem e se comuniquem com serviços executados em dispositivos na rede local.
Em termos práticos, isso significa que se você quiser executar um servidor web a partir do seu computador doméstico, qualquer pessoa que tente se conectar de fora da sua rede doméstica precisará saber o seu endereço IP público e enviar solicitações pela porta 80 (HTTP) ou porta 443 (HTTPS). No entanto, sem o encaminhamento de porta configurado corretamente, as solicitações de conexão recebidas não chegariam ao seu computador doméstico porque seriam bloqueadas pelas proteções de firewall do roteador.
Breve visão geral do Iptables
Iptables é uma das várias soluções de firewall disponíveis para sistemas Linux. Ele opera no nível do kernel e fornece recursos robustos de filtragem de pacotes com recursos avançados como inspeção de pacotes com estado, NAT (tradução de endereço de rede), rastreamento de conexão e muito mais.
Iptables é usado principalmente para controlar o tráfego de rede de entrada e saída, incluindo bloquear ou permitir protocolos, portas ou endereços IP específicos. A ferramenta iptables usa um conjunto de cadeias predefinidas para avaliar o tráfego de entrada em relação a um conjunto de regras, com cada regra definindo condições específicas que devem ser atendidas para permitir ou negar o tráfego.
As cadeias são organizadas de forma hierárquica com diferentes tabelas que realizam diversas ações - como filtrar pacotes ou modificá-los para encaminhamento - com base nos critérios especificados nas regras. Na próxima seção, exploraremos como o iptables pode ser usado para configurar o encaminhamento de porta em sistemas Linux.
Compreendendo o Iptables
O que é iptables?
Iptables é um utilitário de firewall poderoso que vem pré-instalado na maioria das distribuições Linux. Funciona examinando pacotes de dados à medida que passam por uma interface de rede e tomando decisões com base nas regras definidas pelo usuário.
Essas regras são usadas para decidir permitir ou bloquear o tráfego ou encaminhar o tráfego de entrada para uma porta ou endereço específico. Em termos simples, o iptables atua como um filtro entre o seu computador e o resto da rede.
Ele pode ser configurado para permitir apenas determinados tipos de tráfego em seu sistema, enquanto bloqueia todos os outros tráfegos indesejados. Isto é especialmente importante para servidores que precisam ser acessíveis ao público, mas também precisam ser protegidos contra ataques maliciosos.
Como funciona?
O Iptables funciona criando diversas cadeias de regras que definem como o tráfego de entrada e saída deve ser tratado. Essas cadeias são essencialmente conjuntos de regras que determinam como os pacotes devem ser processados dependendo de seus atributos, como endereço IP de origem, endereço IP de destino, tipo de protocolo e número da porta.
Quando um pacote de entrada chega à interface de rede, o iptables verifica seus atributos em relação a cada regra em cada cadeia em sequência até encontrar uma correspondência. Se nenhuma correspondência for encontrada, o pacote será descartado ou rejeitado dependendo de como o iptables estiver configurado.
Comandos básicos para iptables
Para começar a usar o iptables, você precisa conhecer alguns comandos básicos para configurar suas regras -
iptables -L - lista todas as cadeias atualmente definidas.
iptables -F - libera (exclui) todas as regras de todas as cadeias.
iptables -Uma regra de cadeia - anexa (adiciona) uma nova regra no final de uma cadeia existente.
iptables -D chain Rule - exclui uma regra de uma cadeia existente.
-
iptables -P chain target - define a política padrão (aceitar, descartar ou rejeitar) para uma determinada cadeia.
Estes são apenas alguns dos muitos comandos disponíveis no iptables. Ao aprender esses princípios básicos, você estará no caminho certo para dominar esse poderoso utilitário de firewall.
Encaminhamento de porta com Iptables
Escolhendo as portas para encaminhar
Antes de configurar o encaminhamento de porta no Linux usando iptables, é importante decidir quais portas você deseja encaminhar. O encaminhamento de porta permite que o tráfego de entrada em uma porta específica seja redirecionado para outro endereço de rede interno.
Isso é útil ao executar um servidor ou hospedar um serviço em sua rede local e você deseja que usuários externos o acessem. As portas comumente encaminhadas incluem 80 para tráfego da Web, 22 para SSH e 3389 para Remote Desktop Protocol (RDP).
Configurando as regras do iptables para encaminhamento de porta
Depois de decidir as portas que deseja encaminhar, você pode começar a configurar regras do iptables para encaminhamento de portas. Para fazer isso, precisamos criar uma nova cadeia na tabela NAT.
Criando uma nova cadeia para encaminhamento de porta
Para criar uma nova cadeia para encaminhamento de porta, use o seguinte comando -
sudo iptables -t nat -N
Isto criará uma nova cadeia na tabela NAT com o nome especificado.
Configurando a tabela NAT
Depois de criar uma nova cadeia, precisamos configurar a tabela NAT adicionando nossa nova cadeia como uma de suas cadeias -
sudo iptables -t nat -A PREROUTING -j
Isso adicionará nossa cadeia recém-criada como uma das cadeias na regra PREROUTING da tabela NAT.
Adicionando regras para encaminhar portas
Agora que configuramos nossa nova cadeia e configuramos a tabela NAT adequadamente, podemos adicionar regras que realmente farão o encaminhamento de porta. Existem três maneiras de fazer isso -
a) Encaminhamento de portas únicas:
Para encaminhar o tráfego de entrada em uma porta específica para um endereço IP e porta internos, use o seguinte comando -
sudo iptables -t nat -A -p --dport -j DNAT --to-destination
b) Faixas de encaminhamento de portas:
Para encaminhar um intervalo de tráfego de entrada em um intervalo específico de portas para um endereço IP interno e uma porta, use o seguinte comando -
sudo iptables -t nat -A -p --dport : -j DNAT --to-destination
c) Encaminhando múltiplas portas ao mesmo tempo:
Para encaminhar o tráfego de entrada em várias portas específicas para um endereço IP e porta internos, use o seguinte comando para cada porta que deseja encaminhar -
sudo iptables -t nat -A -p --dport ,,...-j DNAT --to-destination
Configurar o encaminhamento de porta com iptables no Linux é essencial ao executar servidores ou serviços de hospedagem em sua rede local.
Conclusão
Neste artigo, cobrimos os fundamentos do encaminhamento de porta e como usar iptables no Linux para encaminhar portas. Fornecemos uma visão geral do iptables e seus comandos básicos, seguida por um guia detalhado sobre como configurar o encaminhamento de porta com iptables. Discutimos problemas comuns que podem surgir ao configurar o encaminhamento de porta com iptables e algumas dicas de solução de problemas para ajudá-lo a resolvê-los.
O encaminhamento de porta é um aspecto essencial da rede que permite que o tráfego de entrada da Internet chegue a um dispositivo ou serviço específico na sua rede. Esse processo é crítico para muitos aplicativos críticos, como acesso remoto, jogos, compartilhamento de arquivos e hospedagem na web. Compreender como encaminhar portas com iptables no Linux é vital se você deseja gerenciar sua rede de forma eficaz.
Iptables é uma poderosa ferramenta de firewall que permite definir configurações avançadas para a segurança da sua rede. Ao compreender como ele funciona e sua funcionalidade, você pode melhorar a postura de segurança da sua rede e, ao mesmo tempo, garantir que o tráfego flua sem problemas entre os dispositivos ou serviços da sua rede.
Além disso, lembre-se de que as configurações de encaminhamento de porta devem ser atualizadas sempre que houver alterações na infraestrutura de rede ou nos requisitos do aplicativo. Seguindo as diretrizes descritas neste artigo e colocando-as em prática gradualmente ao longo do tempo, os usuários podem desenvolver as habilidades necessárias para configurar iptables e tornar suas redes mais seguras e confiáveis.