Embora o Linux seja um dos sistemas operacionais mais confiáveis e seguros, graças às suas características, sempre haverá algum tipo de vulnerabilidade, seja ela inerente ao sistema ou não intencionalmente pelo usuário. Para aumentar a segurança do Linux, temos várias ferramentas projetadas para proteger serviços, processos, perfis ou arquivos e hoje vamos nos concentrar em um especial chamado Iptables.
O que é IptablesIptables é uma ferramenta avançada de firewall integrada ao kernel do Linux, que faz parte de um projeto denominado netfilter.
Graças a Iptables seremos capazes de gerenciar com precisão e diretamente todas as conexões de entrada e saída para o servidor. Iptables é desenvolvido para endereçamento IPv4, enquanto para IPv6 temos Ip6tables.
1. Estrutura de iptables no Linux
A estrutura que encontramos em Iptables é a seguinte:
CruÉ responsável por filtrar os pacotes antes de qualquer outra tabela existente
FiltroEsta é a tabela padrão do aplicativo
NatÉ usado para tradução de endereços de rede
MangueÉ usado para a alteração de pacotes de rede especializados
SegurançaPode ser implementado para regras de conexão de rede de Controle de Acesso Obrigatório
2. Estrutura de comando em Iptables no Linux
Em Iptables, cada regra é um comando que indica como o tráfego de pacotes de rede deve ser tratado.
Podemos usar a seguinte estrutura:
-A ENTRADA -i eth0 -p tcp -m estado - ESTABELECIDO, RELACIONADO --esport 80 -j ACEITAROs parâmetros usados são:
- -A: Indica que as regras serão adicionadas aos Iptables
- -i: Indica a interface na qual a regra será aplicada
- -p: Refere-se ao protocolo onde a regra será aplicada
- -m: Refere-se ao fato de que há uma condição que deve ser atendida para aplicar a regra
- --state: permite a aceitação de novas conexões
- --sport: Indica a porta de origem
- -j: (Salto) indica que eles podem aceitar todo o tráfego que atenda às condições fornecidas.
3. Criando regras usando Iptables no Linux
Embora possamos adicionar as regras manualmente, é muito mais prático criar um arquivo de regras e depois importá-lo. Neste caso iremos criar o arquivo no caminho / tmp / iptables-ip4 e podemos utilizar um editor para seu respectivo ajuste:
sudo nano / tmp / iptables-ip4A sintaxe será a seguinte:
* filtro # Regras para adicionar COMMITAgora vamos criar as seguintes regras dentro do referido arquivo:
Loopback = É a interface externa do Linux
-A ENTRADA -i lo -j ACEITAR -A SAÍDA -o lo -j ACEITAR
Ping = nos permite verificar as conexões de rede
-A ENTRADA -i eth0 -p icmp -m estado --state NOVO --icmp-type 8 -j ACEITAR -A ENTRADA -i eth0 -p icmp -m estado --estado ESTABELECIDO, RELACIONADO -j ACEITAR -A SAÍDA - o eth0 -p icmp -j ACEITAR
Web = Por meio dessas regras, controlamos o tráfego de entrada e saída.
-A ENTRADA -i eth0 -p tcp -m estado --estado ESTABELECIDO, RELACIONADO --sport 80 -j ACEITAR -A ENTRADA -i eth0 -p tcp -m estado --estado ESTABELECIDO, RELACIONADO --sport 443 -j ACEITAR -A SAÍDA -o eth0 -p tcp -m tcp --dport 80 -j ACEITAR -A SAÍDA -o eth0 -p tcp -m tcp --dport 443 -j ACEITAR
No caso de adicionar o DNS, usaremos as seguintes linhas:
-A ENTRADA -i ens3 -s 192.168.0.1 -p udp --sport 53 -m estado --estado ESTABELECIDO, RELACIONADO -j ACEITAR -A SAÍDA -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ACEITAR
Observação:Aqui devemos modificar o IP conforme necessário
Tempo = Estas regras permitem a conexão ao NTP para a sincronização de tempo correta
-A ENTRADA -i eth0 -p udp -m estado --estado ESTABELECIDO, RELACIONADO --dport 123 -j ACEITAR -A SAÍDA -o eth0 -p udp -m udp --sport 123 -j ACEITAR
Impressão = permite que as portas USB para conectar impressoras sejam ativadas
-A ENTRADA -p udp -m udp --dport 631 -j ACEITAR -A ENTRADA -p tcp -m tcp --dport 631 -j ACEITAR -A SAÍDA -p udp -m udp --sport 631 -j ACEITAR -A SAÍDA -p tcp -m tcp --sport 631 -j ACEITAR
Email = Podemos habilitar os vários protocolos de e-mail
# IMAP -A ENTRADA -i eth0 -p tcp -m estado --estado ESTABELECIDO, RELACIONADO --sport 993 -j ACEITAR -A SAÍDA -o eth0 -p tcp -m tcp --dport 993 -j ACEITAR
# POP3 -A ENTRADA -i eth0 -p tcp -m estado --estado ESTABELECIDO, RELACIONADO --sport 995 -j ACEITAR -A SAÍDA -o eth0 -p tcp -m tcp --dport 995 -j ACEITAR
# SMTP -A ENTRADA -i eth0 -p tcp -m estado --estado ESTABELECIDO, RELACIONADO --sport 465 -j ACEITAR -A SAÍDA -o eth0 -p tcp -m tcp --dport 465 -j ACEITAR
SSH = Ativar conexões seguras ao computador usando o protocolo SSH
# Input -A ENTRADA -i ens3 -p tcp -m estado --estado NOVO, ESTABELECIDO --dport 22 -j ACEITAR -A SAÍDA -o ens3 -p tcp -m estado --estado ESTABELECIDO --sport 22 -j ACEITAR
# Saída -A SAÍDA -o ens3 -p tcp -m estado --estado NOVO, ESTABELECIDO --dport 22 -j ACEITAR -A ENTRADA -i ens3 -p tcp -m estado --estado ESTABELECIDO --sport 22 -j ACEITAR
DHCP: podemos criar regras para autorizar o endereçamento IP por meio de DHCP
-A ENTRADA -i eth0 -p udp -m estado --estado ESTABELECIDO, RELACIONADO --sport 67:68 -j ACEITAR -A SAÍDA -o eth0 -p udp -m udp --dport 67:68 -j ACEITAR
Rejeitar todas as conexões: podemos adicionar as seguintes linhas para desativar todos os itens acima:
-A ENTRADA -j REJEITAR -A AVANÇAR -j REJEITAR -A SAÍDA -j REJEITAR
Todas essas linhas serão adicionadas no arquivo mencionado:
PROLONGAR
Nós salvamos as mudanças
Ctrl + O
Deixamos o editor usando
Ctrl + X
4. Importando as regras usando Iptables Linux
Assim que o arquivo for editado, podemos importar essas regras para o Iptable executando o seguinte comando:
sudo iptables -F && sudo iptables -XPodemos ver o status das regras usando o comando sudo iptables -S:
PROLONGAR
Caso desejemos restaurar todas as regras, executaremos a seguinte linha:
sudo iptables-restore </ tmp / itpables-ip4Se quisermos que essas regras sejam permanentes, executaremos o seguinte:
sudo apt install iptables-persistentDesta forma, Iptables é nosso melhor aliado na hora de configurar o firewall em ambientes Linux.