segunda-feira, 31 de maio de 2010

IPFW - Instalação do IPFW com suporte ao IPFW2(+IPv6) sobre FreeBSD

Se ainda não conhece o IPFW leia o artigo com a introdução do mesmo no link abaixo:
http://conteudoopensource.blogspot.com/2010/05/introducao-ao-ipfw-instalando.html

Dica:
Esse processo do make para recompilar e instalar o novo kernel modificado, exige um pouco de memória RAM em torno de 292 MB, para não acabar utilizando o swap, se não houver memória suficiente o processo será morto pelo kernel e lançará uma excessão ocasionando na parada da instalação do novo kernel. Outro ponto importante é do espaço livre em disco utilize pelo menos 5 GB para a participação do seu FreeBSD.

O IPFW2 já vem nativo apartir da versão 5x do FreeBSD, não sendo necessária nenhuma modificação no kernel(inclusão do options IPFW2 no kernel) do sistema para utilizar o mesmo. A inclusão desse aopção acontecia apenas na versão 4x e anteriores do FreeBSD.

Utilizando para este artigo o FreeBSD 7.2


# cd /usr/src/sbin/ipfw

se o diretorio acima não existir você precisará instalar esses src's através do comando sysintall:

# sysinstall

Navegue pelo menu do sysinstall configure > distributions e marque a opção:

[ X ] ports

depois em configure > distributions > src maque as opções:

[ X ] base
[ X ] lib
[ X ] sbin
[ X ] sys

# vi /etc/make.conf

---> Insira:
IPFW2=true

Voltando ao userland :

# cd /usr/src/sbin/ipfw/

Recompile o ipfw:

# make clean


# make -DIPFW2


# make -DIPFW2 install

Recompile a libalias:

# cd /usr/src/lib/libalias/


# make clean


# make -DIPFW2


# make -DIPFW2 install

Vamos agora modificar o nosso kernel padrão(GENERIC) fazendo uma cópia do kernel default:

# cd /usr/src/sys/i386/conf/
# cp GENERIC NOME_DO_SEU_SERVIDOR


# vi NOME_DO_SEU_SERVIDOR

---> Procure a linha ident no kernel que foi copiado(NOME_DO_SEU_SERVIDOR) e modique-a colocando ao invés de:

ident GENERIC

para:

ident NOME_DO_SEU_SERVIDOR

Coloque essas linhas no final do kernel copiado(NOME_DO_SEU_SERVIDOR):

options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPDIVERT
options DUMMYNET

-->salve e saia.

Vamos agora compilar e instalar o novo kernel(este passo é bastante demorado):

# cd /usr/src/

Compilando o kernel.

# make buildkernel KERNCONF=NOME_DO_SEU_SERVIDOR

Instalando o novo kernel.

# make installkernel KERNCONF=NOME_DO_SEU_SERVIDOR

Se tudo ocorreu bem, já temos o nosso kernel modificado bastando apenas reiniciar a máquina para utiliza-lo:

# reboot

Depois de reiniciar verifique que já estamos usando o novo kernel:

# uname -a

Instale um outro aplicativo que irá ajudar o ipfw a calcular os endereços de rede e host que são definidos no arquivo de regras do ipfirewall na forma "Ciderizada"(CIDR ex.: 189.87.34.2/21). Com isso você irá obter uma melhor perfomance no firewall:

# cd /usr/ports/net-mgmt/ipcalc/ && make install clean

Iremos configurar o rc.conf, para iniciar o firewall no boot e suas regras que serão pre-definidas por você, para isso basta editar /etc/rc.conf:

# vi /etc/rc.conf

-->Insira as seguintes linhas:

#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# FIREWALL IPFW COM SUPORTE AO IPFW2 E IPV6
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
firewall_enable="YES"
firewall_type="/tools/firewall/ipfw.rules"
firewall_quiet="NO"
firewall_logging="YES"

--> Onde firewall_type é seu arquivo de regras, falerei mais sobre as regras em outra postagem...

Iremos agora ativar o log
Crie os aquivo de log:

# mkdir /var/log/ipfw && touch /var/log/ipfw/ipfw.log

Depois configure o syslog:

# vi /etc/syslog.conf

--> Insira no final deste arquivo as linhas:
!ipfw
*.* /var/log/ipfw/ipfw.log

salve e saia e depois na shell enviei um hungup para o syslog:

# killall -HUP syslogd

Nenhum comentário:

Postar um comentário

Seguidores