Como configurar um firewall com iptables no Ubuntu e CentOS

Como configurar um firewall com iptables no Ubuntu e CentOS

Neste tutorial, vamos mostrar-lhe como configurar um firewall com iptables em um VPS Linux com o Ubuntu ou o CentOS como um sistema operacional. Iptables é uma ferramenta de administração para filtragem de pacotes IPv4 e NAT e é usada para configurar e gerenciar as tabelas de regras de filtro de pacotes IPv4 no kernel do Linux.

Configurar e configurar adequadamente um firewall é uma das coisas mais importantes e cruciais que você precisa fazer para proteger seu servidor .

Com o iptables, várias tabelas de correspondência de pacotes diferentes são definidas e cada tabela pode conter um número de cadeias incorporadas, bem como algumas cadeias definidas pelo usuário. As cadeias são, na verdade, listas de regras que combinam o conjunto de pacotes e cada regra especifica o que fazer com o pacote correspondente.

A tabela padrão é a filter tabela e contém as cadeias incorporadas INPUT, FORWARD e OUTPUT. A cadeia INPUT é usada para pacotes destinados a sockets locais, a cadeia FORWARD é usada para pacotes roteados através da caixa, enquanto a cadeia OUTPUT é usada para pacotes gerados localmente.

Conecte-se ao seu servidor via SSH e liste as regras definidas em uma cadeia específica usando a seguinte sintaxe:

sudo iptables -L CHAIN

Substitua CHAIN ​​por uma das cadeias incorporadas para ver as regras definidas. Se nenhuma corrente for selecionada, todas as cadeias serão listadas na saída.

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

As regras de firewall especificam o que fazer com um determinado pacote se corresponderem a certos critérios e no caso de o pacote não corresponder aos critérios, a próxima regra de firewall definida na cadeia será examinada. Este é um aspecto muito importante a ser conhecido ao definir as regras de firewall porque você pode facilmente se bloquear fora do seu servidor se você definir a regra que aceita pacotes do seu endereço IP local após a regra de bloqueio.

Os objetivos que você pode usar para as regras de firewall são ACEITAR, DROP, QUEUE e RETURN. ACEITAR deixará o pacote, o DROP irá soltar o pacote, QUEUE passará o pacote para o espaço do usuário, enquanto RETURN irá interromper o deslocamento do pacote da corrente atual e retomará na próxima regra na cadeia anterior. A política de cadeia padrão definirá o que fazer com um pacote se ele não corresponder a determinada regra de firewall. Como você pode ver na saída do primeiro comando, a política padrão para todas as cadeias embutidas está configurada para ACEITAR. ACEITE deixará o pacote passar, então, basicamente, não há proteção.

Antes de adicionar quaisquer regras específicas, adicione a seguinte:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Isso evitará que as conexões que já estão estabelecidas sejam descartadas e sua sessão SSH atual permanecerá ativa.

Em seguida, adicione regras para permitir o tráfego em sua interface de loopback:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

Em seguida, permita o acesso ao seu servidor via SSH para o seu endereço IP local para que apenas você possa acessar o servidor:

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

Onde 111.111.111.111está o seu endereço IP local e 22é a porta de escuta do seu daemon SSH. Caso o seu endereço IP local mude dinamicamente, é melhor omitir a -s 111.111.111.111peça e usar um método diferente para proteger o serviço SSH do tráfego indesejado.

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

Em seguida, permita o acesso aos seus serviços importantes, como o servidor HTTP / HTTPS:

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

Agora, liste as regras atuais e verifique se tudo está OK. Para uma saída detalhada, você pode usar o seguinte comando:

sudo iptables -nvL

Se você tiver outros serviços que deseja permitir o acesso, é melhor fazer isso agora. Depois de concluir, você pode definir a política padrão para a cadeia incorporada INPUT para DROP.

sudo iptables -P INPUT DROP

Isso eliminará qualquer pacote que não corresponda aos critérios das regras de firewall. O resultado final deve ser semelhante ao seguinte:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

No entanto, se você reiniciar o servidor, você perderá todas as regras de firewall que você definiu, de modo que é realmente importante tornar as regras permanentes.

Caso você esteja usando um  Ubuntu VPS, você precisa instalar um pacote adicional para esse propósito. Vá em frente e instale o pacote necessário usando o seguinte comando:

sudo apt-get install iptables-persistent

No Ubutnu 14.04, você pode salvar e recarregar as regras de firewall usando os seguintes comandos:

sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload

No Ubuntu 16.04, use os seguintes comandos em vez disso:

sudo netfilter-persistent save
sudo netfilter-persistent reload

Se você estiver usando um  CentOS VPS, você pode salvar as regras de firewall usando o comando abaixo:

service iptables save

Claro, você não precisa fazer nada disso se você usar um dos nossos serviços de hospedagem VPS Linux , caso em que você simplesmente pode perguntar aos nossos administradores Linux especializados para ajudá-lo a configurar seu iptables em seu servidor. Eles estão disponíveis 24 × 7 e cuidarão seu pedido imediatamente.

Leave a Reply

Your email address will not be published.