ÍNDICE

Firewall para uma Rede interna
Firewall com DMZ
Explicações sobre Firewall
Entendimento do Firewal
Firewall Simples para uma rede interna
Repasses da rede interna
Backups

quinta-feira, 2 de setembro de 2010

Entendimento do Firewall

O firewall do linux atulamente é baseado no iptables, é rápido, seguro e estável, possuindo suporte a inúmeros protocolos.

O iptables trabalha com algumas tabelas padrões, que são:

FILTER
  • INPUT
  • FORWARD
  • OUTPUT
NAT
  • PREROUTING
  • OUTPUT
  • POSTROUTING
MANGLE
  • INPUT
  • FORWARD
  • POSTROUTING

Utilizaremos a tabela filter primeiro, onde temos três chains ou fluxos que são INPUT, FORWARD e OUTPUT, sendo estas chains que controlam o fluxo dos dados nas interfaces de rede.

INPUT - controla os fluxo que são destinados á máquina
FORWARD - controla os fluxo que são passados de uma interface a outra na máquina
OUTPUT - controla os fluxo que saem da máquina.

Posteriormente iremos explicar as demais tabelas.

Para entender o funcinamento do firewall vamos fazer um firewall bem simples e ir aprimorando-o.

As opções para o comandos do iptables são:

-P Define a política da chain.
-A Acrescenta uma nova regra a uma chain.
-D Apaga uma regra da chain.
-L Lista as regras existentes em memória.
-F Apaga todas as regras de todas as chains de uma tabela.
-I Insere uma regra nova.
-h Mostra a ajuda.
-R Substitui uma regra.
-Z Zera o contador de uma chain.
-N Cria uma nova chain com um nome.
-X Exclui uma chain criada usuário.

Inicialmente vamos parar o firewall padrão que vem instalado na distribuição.

[root@fw ~]# /etc/init.d/iptables stop

Retire o serviço do firewall da inicialiação do servidor.

[root@fw ~]# chkconfig ip6tables off
[root@fw ~]# chkconfig iptables off

Para que o kernel do linux deixe que os pacotes sejam repassados entre as interfaces devemos alterar o arquivo /etc/sysctl.conf, altere a variável abaixo para o valor 1.

[root@fw ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

Após alterado este valor devemos recarregar os valores deste arquivo.

[root@fw ~]# sysctl -p

Crie um diretório bin no diretório do administrador e entre nele para criarmos o script do firewall

[root@fw ~]# mkdir /root/bin

Edite o arquivo /etc/syslog.conf e inclua ao final do arquivo a linha abaixo.

[root@fw ~]# vim /etc/syslog.conf

*.debug /var/log/debug

Isto irá ajudar a separar os registro do firewall que iremos fazer.

Primeiro firewall

Crie o arquivo abaixo

[root@fw ~]# vim /root/bin/fw1.sh

Coloque o conteúdo a seguir.

#!/bin/bash

# Limpa as regras da tabela NAT
iptables -t nat -F

# Limpa as chains da tabela NAT deixando somente as chains padrão.
iptables -t nat -X

# Irá mascarar todas as requisições como se fosse o IP da interface eth0 que estivesse pedindo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Rode o script.

[root@fw ~]# fw1.sh

Com este script todas as requisições da rede interna serão aceitas.

Para que este firewall seja carregado na inicialização do servidor pode-se colocar a chamada dele no arquivo /etc/rc.local.

[root@fw ~]# vim /etc/rc.local

Acrescentando ao final a linha que irá chamar o script do firewall, neste caso fw1.sh.

/root/bin/fw1.sh

2 comentários:

  1. a ultima linha da listagem do firewall apareceu uma coisa diferente> o que é?

    ***************************
    Chain RH-Firewall-1-INPUT (0 references)
    target prot opt source destination
    ***************************

    [root@firewall bin]# 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

    Chain RH-Firewall-1-INPUT (0 references)
    target prot opt source destination

    ResponderExcluir
  2. Esta última chain aparece porque estava no firewall padrão.
    Esqueci de parar o firewall padrão antes de executar o script.
    Fiz alterações no blog para tirar o serviço de firewall da inicialização do servidor.
    Para remover esta chain basta digitar "iptables -X", que irá apagar todas as chains que não sejam padrão.

    ResponderExcluir