Firewall invisível com Proxy ARP

Como construir um firewall com apenas um endereço IP na mesma sub-rede, desaparecer com esta dos demais computadores e não criar um possível obstáculo no caso de uma falha do mesmo.

[ Hits: 27.710 ]

Por: Paulo Mauricio da Conceição Jr. RHCI, RHCE, RHCVA em 13/06/2008


Instalação e configuração



Os pacotes necessários para instalação deste firewall basicamente já vem instalados por padrão na maioria das distribuições, embora eu relacione logo abaixo:
  • Iptables;
  • Iproute2.

No Debian, basta executar o comando:

# apt-get install iptables iproute2

No Fedora, execute este:

# yum install iptables iproute

Assegure-se que em ambos os arquivos de configuração você tenha colocado o mesmo endereço IP, mesmo endereço de rede e a mesma sub-rede.

No Debian, os arquivos de configuração residem em:

/etc/network/interfaces

No Fedora, eles residem neste caminho:

/etc/sysconfig/network-scripts/ifcfg-eth0
e
/etc/sysconfig/network-scripts/ifcfg-eth1;

Adicione as seguintes linhas nos scripts de inicialização de seu sistema para habilitar as características de proxy-arp, para ambas interfaces de rede de seu Firewall:

echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp

ou:

/sbin/sysctl net.ipv4.conf.eth0.proxy_arp=1
/sbin/sysctl net.ipv4.conf.eth1.proxy_arp=1

No Debian:

Insira as linhas anteriormente apresentadas no arquivo /etc/rc2.d/rc.local ou crie seu próprio script, tendo cuidado para que este não tenha prioridade de execução (Ex.: use este padrão S99script);

No Fedora:

Idem ao anterior, pois eles usam o mesmo padrão SysVInit.

Abaixo das linhas atualmente inseridas adicione também esta para habilitar o IP Forwarding entre as interfaces:

echo 1 > /proc/sys/net/ipv4/conf/all/ip_forward

ou

/sbin/sysctl net.ipv4.conf.all.forwarding=1

Adicione estas linhas abaixo no mesmo arquivo ainda aberto, não esquecendo de substituir os endereços fictícios x.y.z.32/27 e x.y.z.35 com seus endereços de rede apropriados:

/sbin/ip route del x.y.z.32/27 dev eth0
/sbin/ip route add default gw x.y.z.35 dev eth0
/sbin/ip route add x.y.z.32/27 dev eth1

Isto diz ao kernel que pacotes direcionados para o endereço x.y.z.35 (que é o endereço do router) são roteados na interface eth0 e o resto da rede está disponível na interface eth1. Desde o momento que você tenha habilitado o IP Forwarding entre as interfaces, qualquer pacote de origem externa destinado a um host interno da sua LAN serão vistos pela eth0 e roteados para eth1.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração
   3. Conclusão
Outros artigos deste autor

Docker - Da virtualização a aplicações distribuídas

Leitura recomendada

Mandrake Firewall - Firewall com interface amigável

Addon URL Filter - Filtrando URLs no seu firewall

Gerenciando regras de Iptables com Firewall Builder

Como criar um firewall de baixo custo para sua empresa

Bloqueando o UltraSurf e o WebMessenger do Hotmail com Proxy Transparente

  
Comentários
[1] Comentário enviado por elgio em 13/06/2008 - 13:42h

Desculpa, mas...

Porque não fazer firewall transparente pela técnica de Bridge? É ainda mais transparente pois eth0 e eth1 nem precisam ter ips (terão para possibilitar o login e gerenciamento).

Assim tu coloca ela entre a rede e o verdadeiro roteador, ou entre a saída do roteador e a Internet.

Ela atua como se fosse um Switch (bridge), apenas repassando quadros de um dominio de colisão para outro (nem o MAC address de suas placas sao expostos), porém podem filtrar (sempre com DROP, pois se ela não tiver IP como responderia com um ICMP?)

Pra mim isto sim é firewall transparente.

Pacote bridge-utils:

ifconfig eth0 down
ifconfig eth1 up

brctl addbr br0

brctl addif br0 eth0
brctl addif br0 eth1

ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0

# Opcionalemente, colocando um IP para poder se logar
#ifconfig br0 10.1.0.4
#route add default gw 10.1.0.1

Depois, segue o mesmo de sempre no iptables, com regras na chain FORWARD da tabela filter!

[2] Comentário enviado por pmcj21 em 15/06/2008 - 22:30h

?comentario=Resposta ao Elgio.

Entendo perfeitamente sua questão, porém, minha intenção é trazer opções a comunidade, até porque a teoria que compreendo sobre software livre é a valorização do profissional e a divulgação do conhecimento, você realmente parece entender do assunto, mas acho melhor divulgar meu conhecimento baseado em alternativas, para que todos entendam tanto o roteamento de pacotes quanto o repasse de quadros, porém valeu pela colocação. Espero em breve criar artigos citando todas as opções possíveis, valeu, fui...

[3] Comentário enviado por removido em 18/06/2008 - 14:54h

muito bom, mas ainda não testei.
mas achei otimo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts