Embora às vezes eu ainda toque no Windows sozinho e em muitas outras eles me obriguem (marditoh rodoreh) quando tenho que fazer coisas longe dos meus computadores, para mim falar do Windows é como algo que fica muito para trás no tempo. Quando o usei como meu sistema principal (não tinha outro), tentei protegê-lo com softwares como o antivírus da Kaspersky e o eventual firewall, entre muitas outras ferramentas de segurança. No Linux nunca estivemos tão expostos como no Windows, mas também existem softwares que nos ajudam a ficar mais tranquilos, como IPtables, um firewall ou firewall.
O firewall é um sistema de segurança responsável por controlar o tráfego de rede que entra e sai de um sistema operacional. Um dos mais difundidos no Linux é o mencionado IPtables, a ponto de, provavelmente e sem você saber, já estar instalado em seu sistema operacional desde que você o lançou. O que vamos tentar fazer neste artigo é explicar como configurar firewall no linux com IPtables.
IPtables no Linux, o que você precisa saber
Configurando um firewall pode ser complicado, e muito mais em um sistema operacional como o Linux, no qual o melhor é alcançado com o toque de um terminal. Antes de começar, convém saber um pouco sobre questões de rede e segurança, ou pelo menos entender que, quando estamos conectados, estamos nos comunicando com outros equipamentos, e esses aparelhos ou seus donos podem ter boas ou más intenções. Por isso, dependendo do uso que fazemos do nosso PC, vale a pena controlar tudo o que sai e tudo o que entra.
Além disso, e pelo que pode acontecer, se tivermos outro firewall em nosso sistema Linux e vamos começar a mexer no IPtables, vale a pena fazer uma cópia de backup da configuração atual do firewall. Com tudo isso claro, começamos a falar detalhadamente sobre a configuração do IPtables.
- A primeira coisa que temos que fazer é instalar o pacote. A maioria das distribuições Linux o possui instalado por padrão, mas isso nem sempre é o caso. Para saber se temos IPtables instalados em nosso sistema operacional, abrimos um terminal e escrevemos
iptables -v
. No meu caso e no momento de escrever este artigo, meu terminal me retorna iptable v1.8.8. Caso não esteja instalado, pode ser instalado com:
Ubuntu/Debian ou derivados:
sudo apt instalar iptables
Fedora/Redhat ou derivados:
sudo yum instalar iptables
Arch Linux e derivados
sudo pacman -Siptables
Após a instalação, ele será habilitado com:
sudo systemctl ativar iptables sudo systemctl iniciar iptables
E você pode ver seu status com:
sudo systemctl status iptables
- Com o firewall já instalado, você deve configurar suas regras. As regras do IPtables são divididas em tabelas (sobre as quais falaremos com mais detalhes posteriormente neste artigo): filter, nat e mangle, às quais devemos adicionar raw e security. A tabela de filtro é usada para controlar o tráfego de entrada e saída, a tabela nat é usada para fazer NAT (Network Address Translation) e a tabela mangle é usada para modificar o pacote IP. Para configurar as regras da tabela de filtros, são utilizados os seguintes comandos:
- iptables -A INPUT -j ACCEPT (permitir todo o tráfego de entrada).
- iptables -A OUTPUT -j ACCEPT (permitir todo o tráfego de saída).
- iptables -A FORWARD -j ACCEPT (permitir todo o tráfego de roteamento). No entanto, essa configuração permite todo o tráfego e não é recomendada para um sistema de produção. É importante especificar as regras de firewall com base nas necessidades específicas do sistema. Por exemplo, se você deseja bloquear o tráfego de entrada na porta 22 (SSH), pode usar o comando:
iptables -A INPUT -p tcp --dport 22 -j DROP
- Outra coisa importante é salvar as configurações, para não perdê-las ao reiniciar o sistema. No Ubuntu e Debian, o comando "iptables-save" é usado para salvar as configurações atuais em um arquivo. No Red Hat e Fedora, o comando "service iptables save" é usado para salvar as configurações. Se você está em dúvida sobre qual usar, os comandos do Ubuntu/Debian tendem a funcionar em mais distribuições.
Carregar configurações após uma reinicialização
Pára carregar configurações salvas, são usados os mesmos comandos usados para salvá-los, mas com a ação "restaurar" em vez de "salvar". No Ubuntu e no Debian, o comando "iptables-restore" é usado para carregar as configurações salvas de um arquivo. No Red Hat e Fedora, o comando "service iptables restore" é usado para carregar as configurações salvas. Mais uma vez, se você estiver em dúvida sobre qual comando usar, os comandos do Ubuntu/Debian geralmente funcionam melhor.
É importante observar que, se forem feitas alterações nas configurações do firewall, elas precisam ser salvas e recarregadas para que as alterações entrem em vigor. É uma forma de sobrescrever o arquivo de configuração com os novos dados, e se não for feito desta forma, as alterações não serão salvas.
Tabelas em IPtables
Existem tipos 5 de desenhar no IPTables e cada um tem regras diferentes aplicadas:
- filtro : Esta é a tabela principal e padrão ao usar o IPTables. Isso significa que, se nenhuma tabela específica for mencionada ao aplicar as regras, as regras serão aplicadas à tabela de filtro. Como o próprio nome sugere, o papel da tabela de filtro é decidir se permite que os pacotes cheguem ao seu destino ou nega sua solicitação.
- nat (Network Address Translation): Como o nome sugere, esta tabela permite que os usuários determinem a tradução dos endereços de rede. A função desta tabela é determinar se e como modificar o endereço do pacote de origem e destino.
- mangle: Esta tabela nos permite modificar os cabeçalhos IP dos pacotes. Por exemplo, o TTL pode ser ajustado para aumentar ou diminuir os saltos de rede que o pacote pode suportar. De maneira semelhante, outros cabeçalhos IP também podem ser modificados de acordo com sua preferência.
- cru: o principal uso desta tabela é rastrear conexões, pois fornece um mecanismo para marcar pacotes para visualizar pacotes como parte de uma sessão em andamento.
- segurança: Usando a tabela de segurança, os usuários podem aplicar sinalizadores de contexto de segurança SELinux internos aos pacotes de rede.
As duas últimas tabelas são pouco utilizadas, a ponto de a maior parte da documentação falar apenas sobre filter, nat e mangle.
No arquivo de ajuda podemos encontrar exemplos de como gerenciar IPtables. Para vê-lo, abriremos um terminal e digitaremos iptables -h
.
Embora o iptables seja uma das melhores opções existentes para Linux, se você preferir algo mais simples com uma interface gráfica, pode dar uma olhada em Firewalld.