Introdução ao IPTABLES: configurar um Firewall no Linux

iptables

Pára configurar um firewall ou firewall no Linux, podemos fazer uso de iptables, uma ferramenta poderosa que parece esquecida por muitos usuários. Embora existam outros métodos, como ebtables e arptables para filtrar o tráfego no nível do link, ou Squid no nível do aplicativo, o iptables pode ser muito útil na maioria dos casos, implementando boa segurança em nosso sistema no nível de tráfego e transporte da rede.

O kernel Linux implementa iptables, uma parte que cuida da filtragem de pacotes e que neste artigo ensinamos você a configurar de forma simples. Simplificando, o iptables identifica quais informações podem ou não entrar, isolando sua equipe de ameaças potenciais. E embora existam outros projetos como Firehol, Firestarter, etc., muitos desses programas de firewall usam iptables ...

Pois bem, Vamos trabalhar, com exemplos você entenderá tudo melhor (para esses casos é necessário ter privilégios, então use sudo antes do comando ou torne-se root):

A maneira geral de usar iptables criar uma política de filtro é:

IPTABLES -ARGUMENTS I / O ACTION

Onde -ARGUMENT está o argumento que usaremos, normalmente -P para estabelecer a política padrão, embora existam outras como -L para ver as políticas que configuramos, -F para excluir uma política criada, -Z para redefinir os contadores de bytes e pacotes, etc. Outra opção é -A para adicionar uma política (não por padrão), -I para inserir uma regra em uma posição específica e -D para excluir uma determinada regra. Haverá também outros argumentos para apontar para os protocolos -p, –sport source port, –dport para a porta de destino, -i interface de entrada, -o interface de saída, -s endereço IP de origem e -d endereço IP de destino.

entrada-saída iptables

Além disso, I / O representaria se a política aplica-se à entrada INPUT, à saída OUTPUT ou é um redirecionamento de tráfego FORWARD (existem outros como PREROUTING, POSTROUTING, mas não os utilizaremos). Por fim, o que chamei de ACTION pode assumir o valor ACCEPT se aceitarmos, REJECT se rejeitarmos ou DROP se eliminarmos. A diferença entre DROP e REJECT é que quando um pacote é rejeitado com REJECT, a máquina que o originou saberá que foi rejeitado, mas com DROP atua silenciosamente e o invasor ou origem não saberá o que aconteceu, e não saber se temos um firewall ou a conexão falhou. Existem também outros como o LOG, que mandam um follow-up do syslog ...

Para modificar regras, podemos editar o arquivo iptables com nosso editor de texto preferido, nano, gedit, ... ou criar scripts com regras (se quiser substituí-los, você pode fazer isso colocando um # na frente da linha para que seja ignorado como um comentário) por meio do console com comandos, conforme explicaremos aqui. No Debian e derivados, você também pode usar as ferramentas iptables-save e iptables-restore ...

A política mais extrema é bloquear tudo, absolutamente todo o tráfego, mas isso vai nos deixar isolados, com:

iptables -P INPUT DROP

Para aceitar tudo:

iptables -P INPUT ACCEPT

Se quisermos isso todo o tráfego de saída de nossa equipe é aceito:

iptables -P OUTPUT ACEPT

La outra ação radical seria apagar todas as políticas do iptables com:

iptables -F

Vamos para regras mais concretasImagine que você tenha um servidor web e, portanto, o tráfego pela porta 80 deve ser permitido:

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

E se além da regra anterior, queremos uma equipe com iptables ser visto apenas por computadores em nossa sub-rede e isso passa despercebido por uma rede externa:

iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 80 -j ACCEPT

Na linha anterior, o que estamos dizendo ao iptables é adicionar uma regra -A, para que as entradas INPUT, e o protocolo TCP, através da porta 80, sejam aceitos. Agora imagine que você quer que eu navegação na web é rejeitada para máquinas locais passando pela máquina executando iptables:

iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 DROP

Acho que o uso é simples, levando em consideração para que serve cada parâmetro do iptables, podemos adicionar regras simples. Você pode fazer todas as combinações e regras que imaginarmos ... Para não me estender mais, é só acrescentar mais uma coisa, que se a máquina for reiniciada, as políticas criadas serão deletadas. As tabelas são reiniciadas e permanecerão como antes, portanto, uma vez que você tenha bem definido as regras, se você quiser torná-los permanentes, você deve fazê-los iniciar a partir de /etc/rc.local ou se você tiver um Debian ou derivados, use as ferramentas que nos são fornecidas (iptables-save, iptables-restore e iptables-apply).


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Jimmy olano dito

    Este é o primeiro artigo que vejo sobre IPTABLES que, embora denso -requer um nível de conhecimento médio-, VAI DIRETAMENTE PARA O GRÃO.

    Recomendo a todos que o utilizem como um "manual de referência rápida", pois está muito bem condensado e explicado. 8-)

  2.   JESUS dito

    Eu gostaria que você falasse em um artigo futuro sobre se a mudança para o systemd na maioria das distribuições Linux, afeta de alguma forma a segurança do Linux em geral, e se esta mudança é para melhor ou pior no futuro e nas distribuições Linux. Eu também gostaria de saber o que se sabe sobre o futuro do devuan (debian sem systemd).
    Muito obrigado por fazer artigos muito bons.

  3.   Slevin dito

    Você poderia fazer um artigo explicando a mesa de mangle?

  4.   Sebastian dito

    Bloquear apenas o Facebook?