Páginas

segunda-feira, 14 de fevereiro de 2011

FreeBSD: Firewall Bridge

Modelo:

Internet
|
roteador (ip: 200.0.0.1/24)
|
|
(ip: 10.7.7.1) bridge (ip: 200.0.0.2/24)
| (gw: 200.0.0.1)
|
------+------
| |
Rede Interna DMZ
| +---> WWW (ip: 200.0.0.5/24)
(ip: 10.7.7.50/24) | (gw: 200.0.0.1)
|
+---> FTP (ip: 200.0.0.6/24)
(gw: 200.0.0.1)

Neste artigo será apresentado uma forma simples de criar uma interface bridge. Com uma bridge (Ponte), é possível ligar redes de segmentos ou protocolos distintos e até mesmo criar um sistema de Firewall transparente (sem endereço IP) o que torna o acesso ao mesmo, se não tiver IP impossível remotamente.

Até então utilizávamos a opção “OPTIONS BRIDGE” em nosso Kernel FreeBSD, lendo o NOTES (arquivo com as opções disponíveis para o Kernel com seus devidos comentários), ela hoje já é considerada obsoleta e em seu lugar usa a opção if_bridge(4).
Bom, colocando a mão na massa, vamos personalizar nosso Kernel com a seguinte opção:

device if_bridge

Ou então levantamos o módulo dinamicamente usando o kldload:

(matheus@internet1)~# kldload if_bridge

Após compilar o Kernel e reiniciar a maquina ou então carregado o modulo dinamicamente criaremos a interface Bridge.

(matheus@internet1)~# ifconfig bridge0 create

Criada a interface, vamos informar quais interfaces serão membros desta bridge, neste caso a placa fxp0 e fxp1.

(matheus@internet1)~# ifconfig bridge0 addm fxp0 addm fxp1 up
Por fim é necessário levantar as interfaces para que a bridge funcione:

(matheus@internet1)~# ifconfig fxp0 up
(matheus@internet1)~# ifconfig fxp1 up

Neste momento a bridge esta em ação, com um simples tcpdump podemos ver o trafego passando.

# tcpdump -npi bridge0
Vamos verificar agora opções de filtros, vejamos as opções em nossa sysctl.
(matheus@internet1)~# sysctl net.link.bridge
net.link.bridge.pfil_onlyip: 1
net.link.bridge.pfil_bridge: 1
net.link.bridge.pfil_member: 1
net.link.bridge.ipfw: 0
net.link.bridge.pfil_onlyip: Com valor 1 habilita a passagem nesta bridge de apenas pacotes IP's.
net.link.bridge.pfil_bridge: Com valor 1 habilita o filtro de pacotes na interface bridge.
net.link.bridge.pfil_member: Com valor 1 habilita o filtro de in e out das interfaces membras da bridge.
net.link.bridge.ipfw: Com valor 1 habilita o filtros de pacotes na camada 2 (Layer 2) com o ipfw.

Vale lembrar que o valor de MTU da interface bridge dependerá do MTU do primeira interface membro.

Para que a bridge levante após um reboot adicione o seguinte no seu rc.conf (configure conforme suas interfaces).

#REDE BRIDGE 1
ifconfig_fxp0="up"
#REDE BRIDGE 2
ifconfig_fxp1="up"
#INTERFACE BRIDGE
cloned_interfaces="bridge0"
#MEMBROS DA BRIDGE0
ifconfig_bridge0="addm fxp0 addm fxp1 up"
Esta nova opção de bridge tornou a criação e administração de uma bridge facil, simples e muito flexivel, maiores informações leia o man if_bridge.

Fonte: http://www.fug.com.br/content/view/160/60/

quinta-feira, 10 de fevereiro de 2011

FreeBSD: Atualizar 8.0 para 8.1

# csup -g -L2 -h cvsup2.freebsd.org /usr/share/examples/etc/stable-supfile

# Make buildkernel
# Make buildworld
# Make kernel
# Make installworld
# Mergemaster -a

sexta-feira, 4 de fevereiro de 2011

FreeBSD: Zabbix Server

Durante a configuração do Zabbix Server em um servidor FreeBSD 8.0 RELEASE, encontrei uma falha na inicialização do daemon.

A compilação do zabbix server via ports ocorreu sem erros.

# cd /usr/ports/net-mgmt/zabbix-server
# make install clean

# /usr/local/etc/rc.d/zabbix_server start

depois de iniciar o zabbix o log mostrou o seguinte erro:

# cat /tmp/zabbix_server.log

12293:20110205:030847.571 Cannot allocate shared memory of size 16777479 [Invalid argument]
12293:20110205:030847.571 Could not allocate shared memory for history text cache.


Depois de pesquisar encontrei a solução abaixo:

Em /etc/sysctl.conf adicionei as opções:

kern.ipc.shmall=2097152
kern.ipc.shmmax=2147483648
kern.ipc.semmsl=250
kern.ipc.semopm=100

e em /boot/loader.conf

kern.ipc.semmni=128
kern.ipc.semmns=32000
kern.ipc.shmmni=4096

depois de adicionado, reiniciei o servidor e o zabbix rodou normalmente.

quinta-feira, 3 de fevereiro de 2011

FreeBSD: MySQL pós-install

cd /usr/ports/databases/mysql41-server/
make install clean
/usr/local/bin/mysql_install_db
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
/usr/local/bin/mysqld_safe –user=mysql &
/usr/local/bin/mysqladmin -u root password newpassword
/usr/local/bin/mysqladmin -u root -h srv.dominio.com.br password 'new-password'

Edit 8/17:
{edit /etc/rc.conf and add}
mysql_enable="YES"

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h srv.dominio.com.br password 'new-password'

Alternatively you can run:
/usr/local/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/bin/mysqlbug script!