[FUG-BR] Ipfw - Natd, de novo !!!

Marcelo Gondim gondim em bsdinfo.com.br
Quinta Janeiro 12 15:31:23 BRST 2012


Em 12/01/2012 14:32, Adiel de Lima Ribeiro escreveu:
> Não sei se é uma boa idéia, mas vou migrar pro PF, vou ter que aprender
> as regras, mas tudo bem, ele me parece melhor que o IPFW.
> O que vocês tem a me dizer ?

Você precisaria aprender 2. rsrsrsrsr
Não importa qual você vai usar o problema que está tendo parece mais de 
conceito sobre Firewalls que dá própria aplicação.
Confesso que quando saí do Netfilter/IPTables e vi o ipfw e o pf quase 
pirei nas regras mas o que ajuda mesmo é o conceito, graças à ele hoje 
já tenho todos os meus Firewalls convertidos para pf e ipfw.

Vou fazer algo que não deveria pois acertos e erros levam à aprendizagem 
e mais que tudo aumento da experiência. Como o Irado dizia... melhor 
ensinar à pescar que já dar o peixe pronto.

Ps: gosto até de pescar mas limpar o peixe não é nada legal. 
ahahahahahah Fazer o que?

Vou fazer o seguinte ambiente imaginário:

Firewall com 2 interfaces de rede: em0 para a Internet e em1 para a rede 
Interna.
Rede Interna: 192.168.0.0/24

estação                                                                
Firewall
======
192.168.0.2 <=======>  192.168.0.1/24(em1)      10.0.0.1/24(em0) 
<===========> INTERNET

No seu Kernel compilado:

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         IPFIREWALL_NAT
options         LIBALIAS
options         DUMMYNET
options         IPDIVERT

No script de Firewall:

##############################################
#!/bin/sh
fw="/sbin/ipfw"

ext_if="em0"
int_if="em1"

$fw disable one_pass
$fw -f flush
$fw zero
$fw table all flush

# Estacoes
$fw table 1 add 192.168.0.2
$fw table 1 add 192.168.0.3
$fw table 1 add 192.168.0.4

$fw add allow all from any to any via lo0
$fw add deny all from 127.0.0.0/8 to any
$fw add deny all from any to 127.0.0.0/8

$fw add deny all from any to any not antispoof

# Redireciona para o natd
$fw add divert 8668 ip from 192.168.0.0/24 to any out via $ext_if
$fw add divert 8668 ip from any to me in via $ext_if

# Permite IPs na table 2 o acesso à DNS externo
$fw add allow udp from "table(2)" to any 53 keep-state
$fw add allow tcp from "table(2)" to any 53 setup keep-state

# Permite IPs para acesso web
$fw add allow tcp from "table(2)" to any 80 setup keep-state

$fw add allow tcp from me to any out setup keep-state
$fw add allow all from me to any out keep-state
$fw add 65534 deny all from any to any

###########################################################

# natd.conf
instance default
interface em0
dynamic no
same_ports yes
use_sockets yes
unregistered_only yes

Bem esse é um script bem simples, tem que funcionar aí. Basta agora você 
adaptar para a sua realidade.

Melhor não consigo fazer pra vc entender rsrsrsr

>
>
> -----Original Message-----
> From: Lucas Dias<lucasmcz em gmail.com>
> Reply-to: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
> <freebsd em fug.com.br>
> To: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
> <freebsd em fug.com.br>
> Subject: Re: [FUG-BR] Ipfw - Natd, de novo !!!
> Date: Thu, 12 Jan 2012 13:06:35 -0300
>
>
> Adiel
>
> Então você deve estar esquecendo de algum detalhe.
> Reveja o que os colegas Marcelo Gondim e Luiz Gustavo falaram.
>
> Se for possível, e resolver seu problema, usa o pf, pois ele é cheio de
> recursos interessantes para NAT.
> Agora, se for questão de honra colocar pra funcionar o NAT com o IPFW,
> reveja com calma as regras e as ordens das mesmas
>
> Vale ressaltar que nat from any to any não é muito legal...
> entendo any, como 0.0.0.0/0, eu acredito que você quer fazer nat sua rede,
> algo como 192.168.10.0/24.
>
> Seja um pouco mais seletivo na criação das regras.
>
> Os Scripts do Patrick e a apostila do treinamento (que lembra a história do
> livro horrivel hehehe) estão com muito conteúdo que vão lhe ajudar.
>
> Abraços e espero ter ajudado...
>
> # flames>  /dev/null (by irado, o furioso com tudo)
> RIP Irado
>
>



Mais detalhes sobre a lista de discussão freebsd