Você está na página 1de 74

TuxFrw 3.

0 MSPF
Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

TuxFrw uma ferramenta modular, criada em linguagem shell script, que permite o admistrador configurar de forma fcil e segura as regras de filtro de pacotes do Firewall, utilizando o IPTables como interface de configurao. O Projeto foi iniciado em 01/10/2001 e comeou baseado em um simples script da Conectiva chamado CFTK (Conectiva Firewall Tool Kit). Na poca considerei o script muito complexo, de difcil manuteno e sem suporte a NAT. O shell script era composto de diversas funes em um arquivo de grandes propores. Como a Conectiva no aceitava os argumentos de melhoria e este era GPL resolvi criar o projeto TuxFrw.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Fluxo de dados do Netfilter/IPTables kernels 2.4 e 2.6:

POSTROUTING

FORWARD

PREROUTING

INPUT

Firewall Local Process

OUTPUT

FORWARD

Fluxo de dados do IPChains kernel 2.2:


Firewall

INPUT

FORWARD

OUTPUT

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Estrutura modular do TuxFrw IPv4:


tuxfrw
tuxfrw.conf tf_MANGLE.mod tf_BASE.mod

tf_INPUT.mod tf_KERNEL.mod

tf_OUTPUT.mod

tf_NAT-IN.mod tf_INT-EXT.mod tf_DMZ-INT.mod tf_INT-DMZ.mod tf_EXT-INT.mod tf_INT-VPN.mod tf_VPN-EXT.mod

tf_NAT-OUT.mod tf_FORWARD.mod tf_DMZ-EXT.mod tf_EXT-DMZ.mod tf_VPN-INT.mod tf_DMZ-VPN.mod tf_VPN-DMZ.mod tf_EXT-VPN.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Estrutura modular do TuxFrw IPv6:


tuxfrw
tuxfrw.conf tf_MANGLE.mod tf_BASE.mod

tf_INPUT.mod tf_KERNEL.mod

tf_OUTPUT.mod

tf_FORWARD.mod tf_INT-EXT.mod tf_DMZ-INT.mod tf_INT-DMZ.mod tf_EXT-INT.mod tf_INT-VPN.mod tf_VPN-EXT.mod tf_DMZ-EXT.mod tf_EXT-DMZ.mod tf_VPN-INT.mod tf_DMZ-VPN.mod tf_VPN-DMZ.mod tf_EXT-VPN.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Entendendo o funcionamento dos mdulos: Os mdulos de regras representam o sentido de sada do trfego do pacote. tf_XXX-YYY.mod - neste caso, XXX representa de onde o pacote est vindo, ou seja, de qual interface de rede e YYY seria o destino do pacote, ou seja, por qual interface de rede est saindo o pacote. Desta maneira possvel obter mais clareza e facilidade na administrao das regras.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Entendendo o funcionamento dos mdulos: tf_KERNEL.mod aqui encontram-se optimizaes de kernel e carregamento de mdulos do Netfilter. Qualquer mdulo do Netfilter que se deseja utilizar, precisa ser includo aqui para ser carregado no momento da execuo do TuxFrw. tf_BASE.mod mdulo que contm todas as funes de chamadas para os mdulos do TuxFrw. Quando adicionamos uma nova interface de rede ao Firewall, inserimos aqui todas as chamadas para os novos mdulos.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Entendendo o funcionamento dos mdulos:

tuxfrw.conf aqui encontramos todas as variveis utilizadas nos mdulos do TuxFrw. Novas variveis podem ser criadas aqui e lidas em qualquer outro mdulo do projeto. Facilita a manuteno das regras porque permite ao administrador alterar o valor de uma varivel em um nico lugar e no em cada mdulo. Ex.: o IP do DNS foi alterado, basta alterar aqui e reiniciar o TuxFrw.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Entendendo o funcionamento dos mdulos: kernel.orig aqui so gravados os parmetros originais do kernel, antes do TuxFrw ser executado pela primeira vez. Isso porque em caso de dvida, quando paramos o TuxFrw, este volta o kernel ao seu estado original. tf_FORWARD.mod nesse mdulo redirecionamos qualquer FORWARD para outros mdulos conforme suas interfaces de entrada e sada. tf_INPUT.mod aqui liberamos acessos ao Firewall. Por padro qualquer acesso ao Firewall negado e devemos ter muito cuidado com o que liberamos nesse mdulo. Firewalls no devem conter servios abertos desnecessariamente.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Entendendo o funcionamento dos mdulos: tf_OUTPUT neste mdulo liberamos qualquer acesso do Firewall para qualquer rede. tf_NAT-IN.mod aqui colocamos as regras de criao dos NATs de entrada no Firewall. Onde associamos os IPs pblicos aos no pblicos na entrada do Firewall. tf_NAT-OUT.mod aqui fazemos o inverso do citado acima, ou seja, associamos os IPs no pblicos aos pblicos na sada do Firewall. tf_MANGLE.mod mdulo utilizado para configuraes na tabela mangle, como marcao de pacotes para roteamento avanado e outros.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Instalando o TuxFrw

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Feito! Nesse momento aps o comando: tuxfrw start se no houver erro algum nas regras nosso Firewall estar rodando perfeitamente como mostrado no diagrama. Aps o primeiro start do TuxFrw o mesmo cria um arquivo em /etc/tuxfrw chamado: kernel.orig. Nele so gravadas todos os valores default das variveis do sysctl antes da alterao do TuxFrw. Dessa forma basta o comando: tuxfrw stop para parar o TuxFrw e voltar os valores padres do sysctl.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

O TuxFrw tambm possui instrues que podem ser passadas em linha de comando para facilitar uma implatao de um Firewall e ajudar resolver problemas com regras mal configuradas. Um exemplo tpico: voc configurou o TuxFrw mas o cliente diz que no consegue acessar determinado servio externo. Nesse caso uma regra pode estar errada no filtro ou no NAT. Executando na linha de comando: tuxfrw natopen voc diz ao TuxFrw para remover toda a filtragem e deixar apenas o NAT habilitado, ou seja, um router simples e sem bloqueios. Nos prximos slides mostrarei outros comandos.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Por trs dos bastidores:

O segredo de como o TuxFrw consegue trabalhar com mdulos est no uso das chains com as interfaces de rede. Para cada conjunto de interface de entrada e de sada na chain FORWARD, criada uma chain temporria responsvel que chamo de mdulo.
Exemplo de cdigo do tf_FORWARD.mod:
if [ "$INT_IFACE" != "" -a "$EXT_IFACE" != "" ]; then $IPTABLES -A FORWARD -i $INT_IFACE -o $EXT_IFACE -j INT2EXT $IPTABLES -A FORWARD -i $EXT_IFACE -o $INT_IFACE -j EXT2INT fi Esse trecho acima direciona as regras de FORWARD das interfaces INT e EXT para os mdulos: tf_INT-EXT.mod e tf_EXT-INT.mod.

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Olhando o mdulo tf_FORWARD.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Olhando o mdulo tf_INPUT.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Olhando o mdulo tf_OUTPUT.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Olhando o mdulo tf_MANGLE.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Comentando o mdulo tf_KERNEL.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Comentando o mdulo tf_BASE.mod

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

Dvidas???

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

10.1.1.1 255.0.0.0 switch

10.1.1.3 255.255.255.0

a) b) c) d) e)

A pinga B e B pinga C A no pinga B mas B pinga C A pinga B, A pinga C e B no pinga C A pinga B, A pinga C e B pinga C Ningum se pinga.

10.1.2.2 255.255.0.0

TuxFrw 3.0 MSPF


Modular Stateful Packet Filter http://tuxfrw.linuxinfo.com.br

FIM e obrigado todos


Contato: Marcelo Gondim <gondim@linuxinfo.com.br> Site: http://www.linuxinfo.com.br

Você também pode gostar