Script1
#!/usr/bin/perl
#
# ---------------------------------------------------------------------------
# ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox
# Por Fabio Vilan aka/nick Duwde, fabio -arroba- isec -ponto- com -ponto- br
# ---------------------------------------------------------------------------
#
# [-=> Alteracoes <=-]
#
# v2.00 - [01/11/2003]
#
# - Versao totalmente rescrita do script, agora em perl, totalmente
# independentenao do sh, fetch, lynx ou ping !!
#
# - Suporta o novo esquema de autenticacao do Velox da Telemar
# tanto no modo comercial, como residencial, via o metodo CGI POST,
# e permite mais flexibilidade nas futuras *inesperadas* mudancas
#
# - Lista dos provedores residenciais atualizada.
#
# -------------
# Configuracao
# -------------
# Define se seu velox e' residencial ou comercial, se for residencial,
# voce precisa de um login/senha em um provedor, se for comercial,
# acessa diretamente pela telemar.
#
# Valores : 'RES' = Residencial
# 'COM' = Comercial
$VELOX = 'COM';
# Caso use o sistema comercial, pode ser necessario alterar a string
# abaixo de acordo com a sua regiao (esta e' a string de conexao
# para a regiao da Bahia, outras opcoes comentadas abaixo, veja no codigo
# fonte html da autenticacao velox de sua regiao, caso tenha duvidas)
#
# Somente uma das opcoes deve estar descomentada ! Essa opcao so eh
# util se voce estiver usando o modo COMERCIAL, caso esteja no modo
# residencial, nao surtira qualquer efeito, pode ignorar esta opcao.
#
$COMERCIAL='AABA';
# $COMERCIAL='AARJ';
# $COMERCIAL='AAMG';
# $COMERCIAL='AABA';
# $COMERCIAL='AARJ';
# Caso use o sistema residencial, voce precisa definir
# o nome do seu provedor, o nome tem que ser EXATAMENTE como
# esta na pagina de autenticacao no velox, aqui estao alguns
# exemplos, (aparentemente agora varia o final, por regiao,
# em alguns provedores com o TERRA)
#
# Somente uma das opcoes deve estar descomentada ! Essa opcao so eh
# util se vc estiver usando o modo RESIDENCIAL, caso esteja no modo
# comercial, nao surtira qualquer efeito, pode ignorar esta opcao.
#
$PROVEDOR='TELEMAR';
# $PROVEDOR='TERRAMG2';
# $PROVEDOR='AOL';
# $PROVEDOR='ATARDE';
# $PROVEDOR='ATT';
# $PROVEDOR='BIOHARD';
# $PROVEDOR='BITNET';
# $PROVEDOR='BRFAST';
# $PROVEDOR='BRIDGE';
# $PROVEDOR='BRTURBO';
# $PROVEDOR='CPUNET';
# $PROVEDOR='DDN';
# $PROVEDOR='DH';
# $PROVEDOR='DIGIZAP';
# $PROVEDOR='FACILINTERNET';
# $PROVEDOR='GD';
# $PROVEDOR='GLOBO';
# $PROVEDOR='HOTLINK';
# $PROVEDOR='INTERCALL';
# $PROVEDOR='INTERDOTNET';
# $PROVEDOR='INTERNETRJ';
# $PROVEDOR='INTERNETT';
# $PROVEDOR='MICROECIANET';
# $PROVEDOR='NUXNET';
# $PROVEDOR='OLIMPO';
# $PROVEDOR='OXENTENET';
# $PROVEDOR='POWERTRIX';
# $PROVEDOR='PRODASAL';
# $PROVEDOR='SEVEN';
# $PROVEDOR='SKNET';
# $PROVEDOR='STL';
# $PROVEDOR='SUPERIG';
# $PROVEDOR='SUPRANET';
# $PROVEDOR='TERRAMG2';
# $PROVEDOR='TERRAMG4';
# $PROVEDOR='WAVENET';
# Seu Login no Provedor (!! somente se for residencial !!)
# $LOGIN = '792466097';
$LOGIN = 'seulogin';
# Sua Senha no Provedor (!! somente se for residencial !!)
# $SENHA = '792466097';
$SENHA = 'suasenha';
# ----------------------------------------
# -=*=- FIM DA SECAO DE CONFIGURACAO -=*=-
# ----------------------------------------
# Nao altere mais nada abaixo, toda configuracao pode ser feita,
# alterando as variaveis acima, qualquer alteracao abaixo pode
# tornar seu script nao funcional.
$HOST = 'www.veloxzone.com.br';
$PORTA = 80;
@HOSTS =('mx.uol.com.br','mx.terra.com.br','mail.telemar.net.br');
$HOSTPORTA = 25;
$HOSTTIMEOUT = 2;
$RES_URL="/serviceLogon";
$RES_POST="service=internet_$PROVEDOR&fcn=serviceLogon&ac=home&usr=&username=$LOGIN&password=$SENHA&OK=OK";
$COM_URL="/serviceStart?service=internet_$COMERCIAL";
$COM_POST="confirmed=true";
print "-----------------------------------------------------------------------------\n";
print " ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox\n";
print " Por Fabio Vilan aka/nick Duwde, fabio -arroba- isec -ponto- com -ponto- br\n";
print "-----------------------------------------------------------------------------\n";
if ($VELOX eq 'RES')
{
print "!CONFIG! Modo Residencial\n";
print "!CONFIG! Provedor : $PROVEDOR\n";
print "!CONFIG! Login : $LOGIN\n";
$URL=$RES_URL;
$POST=$RES_POST;
}
elsif ($VELOX eq 'COM')
{
print "!CONFIG! Modo Comercial\n";
print "!CONFIG! Regiao : $COMERCIAL\n";
$URL=$COM_URL;
$POST=$COM_POST;
}
else
{
print "!ERRO! Tipo do velox mal configurado, edite o script !!\n";
print "!ERRO! Somente as opcoes \"RES\" ou \"COM\" sao possiveis!!\n";
exit 2;
}
use IO::Socket;
sub autentica()
{
$sock = new IO::Socket::INET ( PeerAddr => $HOST, PeerPort => $PORTA, Proto => 'tcp');
die("!ERRO! Nao e' possivel conectar em $HOST !!\n") unless $sock;
print "!OK! Conexao estabelecida com $HOST.\n";
$sock->print("POST $URL HTTP/1.0\r\n");
$sock->print("Content-Type: application/x-www-form-urlencoded\r\n");
$sock->print("Host: $HOST\r\n");
$sock->print("Content-Length: " . length($POST) . "\r\n");
$sock->print("\r\n$POST\r\n\r\n\r\n");
print "!OK! Aguardando resposta do servidor....\n";
while ($sock->getline()) {}
$sock->close();
}
sub ping($)
{
$x=0;
foreach (@HOSTS)
{
if (($_[0] eq 'rapido') && ($x>0))
{ return 0; }
$c = new IO::Socket::INET ( PeerAddr => "$_" , PeerPort => $HOSTPORTA, Proto => 'tcp', Timeout => $HOSTTIMEOUT);
if ($c)
{
$c->close();
return 1;
}
$x++;
}
}
print "-----------------------------------------------------------------------------\n";
print "!OK! Verificando se voce ja esta autenticado...\n";
if ( ping('rapido') )
{
print "!OK! Voce JA esta autenticado !\n";
exit 0;
}
print "!OK! Voce ainda nao esta autenticado.\n";
autentica();
while ( not ping('completo') )
{
print "!ERRO! Servidor nao liberou acesso, possivel senha ou configuracao incorreta...\n";
print "!OK! Tentando novamente...\n";
autentica();
}
print "!OK! Autenticado com sucesso !!\n";
# EOF
Script2
#!/usr/local/bin/python
import os,sys,string
t=os.system("/usr/local/sbin/fping 200.187.144.26")
u=os.system("/usr/local/sbin/fping 200.165.164.250")
if t == 0 and u == 0:
pass
print "ADSL esta ativo para endereco 200.187.144.26"
if t == 256 and u == 0:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 0 and u == 256:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 256 and u == 256:
os.system("/usr/bin/killall -9 ppp")
os.system("/sbin/ifconfig tun0 delete")
os.system("/sbin/ifconfig tun0 down")
os.system("/sbin/ifconfig tun1 delete")
os.system("/sbin/ifconfig tun1 down")
os.system("/usr/sbin/ppp -ddial pppoe")
os.system("/bin/sleep 20")
os.system("/etc/ppp/id-velox.sh")
os.system("/bin/echo 'Link Parou as ' `date` >> /etc/ppp/conexao.log")
print "ADSL esta parado"
sexta-feira, 27 de maio de 2011
quarta-feira, 25 de maio de 2011
FreeBSD - Proxy paralelo
### Proxy em paralelo com FreeBSD+IPFW
### No firewall
- ipfw add 10 skipto 100 tcp from any to any 80 # Nao deixa que a porta 80 passe pelo NAT
- ipfw add 30 divert 8668 ip from 192.168.0.0/24 to any via le0 # NAT na porta externa le0
- ipfw add 500 fwd 10.1.0.111 tcp from any to any dst-port 80 via le1 # Port Forwardind porta interna le1
### No Proxy
- ipfw add 600 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via le0
PS: Tentar fazer um port forwarding no firewall antes de chegar no proxy, não da certo.
Faça somente no proxy a mudança da porta 80 para 3128.
### No firewall
- ipfw add 10 skipto 100 tcp from any to any 80 # Nao deixa que a porta 80 passe pelo NAT
- ipfw add 30 divert 8668 ip from 192.168.0.0/24 to any via le0 # NAT na porta externa le0
- ipfw add 500 fwd 10.1.0.111 tcp from any to any dst-port 80 via le1 # Port Forwardind porta interna le1
### No Proxy
- ipfw add 600 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via le0
PS: Tentar fazer um port forwarding no firewall antes de chegar no proxy, não da certo.
Faça somente no proxy a mudança da porta 80 para 3128.
segunda-feira, 23 de maio de 2011
PHP: Fatal error: Unknown: apc_fcntl_unlock failed
Fatal error: Unknown: apc_fcntl_unlock failed
------------------------------
Ive confirm this problem. As workaround you can switch on this version
APC to alternative lock method (make config in
/usr/ports/www/pecl-APC)
------------------------------
It works with SPINLOCKS=on.
------------------------------
Ive confirm this problem. As workaround you can switch on this version
APC to alternative lock method (make config in
/usr/ports/www/pecl-APC)
------------------------------
It works with SPINLOCKS=on.
quinta-feira, 19 de maio de 2011
Mikrotik - Walled Garden
/ip hotspot walled-garden
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=443
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=80
add action=allow comment="" disabled=no dst-host=*seusite* dst-port=80
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=443
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=80
add action=allow comment="" disabled=no dst-host=*seusite* dst-port=80
quarta-feira, 11 de maio de 2011
FreeBSD - rate - Swiss-Army-knife traffic analyzer
/usr/ports/net-mgmt/rate
EXAMPLES
To determine overall traffic on eth3:
# rate -i eth3 -R
To estimate bandwidth consumed by WWW traffic on ppp0, bit units:
# rate -i ppp0 -f 'port 80' -Rb
To print top 20 nodes from 10.0.0.0/8 that are receiving the highest
number of bytes (including transfers between hosts inside the
10.0.0.0/8 network) every 5 seconds:
# rate -i eth0 -r 5 -Aa 20 -lc 10.0.0.0/8
Same as above, but w/color output and screen clearing:
# rate -i eth0 -r 5 -w -c -Aa 20 -lc 10.0.0.0/8
Show 10 nodes from 10.0.0.0/8 and 192.168.0.0/16 that generated the
largest overall number of packets, generate reports on a keypress
(RETURN), ANSI color output:
# rate -i eth0 -ck -Ac 10.0.0.0/8 -c 192.168.0.0/16 -a 10 -OPT
Estimate ICMP traffic exchanged with the 10.0.0.0/8 subnet, wait for
SIGUSR1, then dump the counters for each host in 192.168.0.0/24 to a
file named FILE, then quit.
# rate -i eth1 -f 'icmp and net 10.0.0.0/8' -q 1 -gl -A -c
192.168.0.0/24 -d > FILE
Show most active (considering transferred bytes) conversations detected
on eth3, color output on keypress; save the option set under the name
'streams':
# rate -S streams -i eth3 -ckTrs 25 -MB
Recall the 'streams' operation mode:
# rate -L streams
On a keypress, show a list of 3 nodes that have sent the highest amount
of packets since the application started; color output:
# rate -i eth3 -ckTrvn 3 -SOP
Show currently visited web pages:
# rate -f 'dst port 80' -E -o 'Host: \2 Browser: \1' -ie 'User-Agent:
\([^\r\n]+\)\r\n.*Host: \([^\r\n]+\)\r\n'
View addresses e-mails are being sent from:
# rate -i eth1 -f 'dst port 25' -E -ie 'MAIL FROM: \([^\r\n]+\)'
EXAMPLES
To determine overall traffic on eth3:
# rate -i eth3 -R
To estimate bandwidth consumed by WWW traffic on ppp0, bit units:
# rate -i ppp0 -f 'port 80' -Rb
To print top 20 nodes from 10.0.0.0/8 that are receiving the highest
number of bytes (including transfers between hosts inside the
10.0.0.0/8 network) every 5 seconds:
# rate -i eth0 -r 5 -Aa 20 -lc 10.0.0.0/8
Same as above, but w/color output and screen clearing:
# rate -i eth0 -r 5 -w -c -Aa 20 -lc 10.0.0.0/8
Show 10 nodes from 10.0.0.0/8 and 192.168.0.0/16 that generated the
largest overall number of packets, generate reports on a keypress
(RETURN), ANSI color output:
# rate -i eth0 -ck -Ac 10.0.0.0/8 -c 192.168.0.0/16 -a 10 -OPT
Estimate ICMP traffic exchanged with the 10.0.0.0/8 subnet, wait for
SIGUSR1, then dump the counters for each host in 192.168.0.0/24 to a
file named FILE, then quit.
# rate -i eth1 -f 'icmp and net 10.0.0.0/8' -q 1 -gl -A -c
192.168.0.0/24 -d > FILE
Show most active (considering transferred bytes) conversations detected
on eth3, color output on keypress; save the option set under the name
'streams':
# rate -S streams -i eth3 -ckTrs 25 -MB
Recall the 'streams' operation mode:
# rate -L streams
On a keypress, show a list of 3 nodes that have sent the highest amount
of packets since the application started; color output:
# rate -i eth3 -ckTrvn 3 -SOP
Show currently visited web pages:
# rate -f 'dst port 80' -E -o 'Host: \2 Browser: \1' -ie 'User-Agent:
\([^\r\n]+\)\r\n.*Host: \([^\r\n]+\)\r\n'
View addresses e-mails are being sent from:
# rate -i eth1 -f 'dst port 25' -E -ie 'MAIL FROM: \([^\r\n]+\)'
terça-feira, 10 de maio de 2011
segunda-feira, 9 de maio de 2011
FreeBSD - Dummynet (Exemplo nao testado)
Configuração de UPLOAD tirada de forum. A unica forma que testei e funcionou foi com tabelas e skipto.
# UPLOAD - usuários privilegiados =) - vr0-wan (incluir ip na table 5)
ipfw add 900 pipe 2020 src-ip "table(5)" xmit vr0
ipfw pipe 2020 config mask src-ip 0x000000ff bw 1024Kbit/s queue 10KBytes
# UPLOAD - usuários LASCADOS =) - vr0-wan
ipfw add 1000 pipe 2030 src-ip 192.168.0.0/24 xmit vr0
ipfw pipe 2030 config mask src-ip 0xffffff00 bw 256Kbit/s queue 10KBytes
# UPLOAD - usuários privilegiados =) - vr0-wan (incluir ip na table 5)
ipfw add 900 pipe 2020 src-ip "table(5)" xmit vr0
ipfw pipe 2020 config mask src-ip 0x000000ff bw 1024Kbit/s queue 10KBytes
# UPLOAD - usuários LASCADOS =) - vr0-wan
ipfw add 1000 pipe 2030 src-ip 192.168.0.0/24 xmit vr0
ipfw pipe 2030 config mask src-ip 0xffffff00 bw 256Kbit/s queue 10KBytes
FreeBSD - OpenVPN
Neste artigo será apresentado a facilidade em que podemos criar redes virtuais privadas (VPN), utilizando o OpenVPN em vários sistemas Operacionais distintos. O OpenVPN se destaca pelo seu suporte a conexões atrás de NAT ou Firewall. Se o servidor se encontra em um ambiente desses é apenas necessário o redirecionamento da porta em que ele esta ouvindo, por padrão na 1194. Já no ambiente do cliente, se o mesmo se encontra em algum dos ambientes mencionados a única exigência é ter pelo menos sua conexão entre ele e o servidor de VPN liberada para que o cliente o servidor troquem informações e levantem a VPN. Instalando o OpenVPN
Bom, a instalação do OpenVPN no FreeBSD é simples, podemos utilizar o pkg_add ou então a arvore Ports. Aqui utilizaremos o Ports e de preferência atualizado.
(matheus@internet1)~# cd /usr/ports/security/openvpn
(matheus@internet1)~# make install clean
Será apresentado um Dialog sobre o PW_SAVE, não precisaremos desta opção então apenas confirmamos pressionando ENTER.
Após a compilação e instalação podemos iniciar a configuração dos arquivos do OpenVPN.
Configurando o OpenVPN
Primeiramente adicionamos a linha openvpn_enable="YES" e gateway_enable=”YES” no nosso arquivo rc.conf
(matheus@internet1)~# echo openvpn_enable="YES" >> /etc/rc.conf
(matheus@internet1)~# echo gateway_enable="YES" >> /etc/rc.conf
Depois de instalado vamos alterar o nome do script de inicialização do OpenVPN no diretório /usr/local/etc/rc.d
(matheus@internet1)~# cd /usr/local/etc/rc.d
(matheus@internet1)~# mv openvpn openvpn.sh
Agora criaremos o diretório de arquivos de configuração do OpenVPN:
(matheus@internet1)~# mkdir -p /usr/local/etc/openvpn
(matheus@internet1)~# cd /usr/local/etc/openvpn
Criada a pasta vamos criar o arquivo openvpn.conf e preenche-lo com as configurações necessárias.
(matheus@internet1)~# ee openvpn.conf
-------------DADOS DO ARQUIVO-----------
# Interface da VPN
dev tun
# Ouvir em que endereço (Esta comentado ouvirá em todos os ips)
;local a.b.c.d
# Ouvir em que porta
port 1194
# Protocolo TCP ou UDP
proto udp
# Tornar o servidor de VPN seu gateway padráo para a internet
# Rede e Classe de Rede entre Clientes e Servidor
server 10.8.0.0 255.255.255.0
# Arquivo aonde fica armazenado os ips dos clientes
ifconfig-pool-persist ipp.txt
# Certificados para a autenticação da VPN
ca /usr/local/etc/openvpn/easy-rsa/keys/ca.crt
cert /usr/local/etc/openvpn/easy-rsa/keys/servidorvpn.crt
key /usr/local/etc/openvpn/easy-rsa/keys/servidorvpn.key
dh /usr/local/etc/openvpn/easy-rsa/keys/dh1024.pem
# As rotas que o cliente deve pegar
push "route 192.168.0.0 255.255.255.0"
# Usar compressão na VPN
comp-lzo
# Reestabelece a conexão se por ventura a mesma falhar
ping-timer-rem
persist-tun
persist-key
# Rodar o OpenVPN como Daemon mas com privilégios de usuario nobody
group nobody
daemon
# não repetir muitas vezes o mesmo erro
mute 20
-------------DADOS DO ARQUIVO-----------
Criando os arquivos de Certificação
Quando instalamos o OpenVPN é criado no diretório /usr/local/share/doc/openvpn/ arquivos de exemplos vamos copiar deste local o diretório easy-rsa. Nesta pasta existe scripts que tornam a criação das chaves SSL facíl.
(matheus@internet1)~# cd /usr/local/share/doc/openvpn
(matheus@internet1)~# cp -r easy-rsa /usr/local/etc/openvpn/
(matheus@internet1)~# cd /usr/local/etc/openvpn/easy-rsa
Bom, para quem não usa o shell SH, vai ter que usar pelo menos nesta parte para usar os scripts, pois os mesmos foram feitos para o SH e necessitam da shell ativa, para criar variáveis e coisas afins.
(matheus@internet1)~# sh
Vamos editar algumas variáveis contidos no arquivo vars.
# ee vars
As variáveis que nos interessa estão no final do arquivo e são as seguintes:
export KEY_COUNTRY=BR -> Pais;
export KEY_PROVINCE=PR -> Estado;
export KEY_CITY=CASCAVEL -> Cidade;
export KEY_ORG="VPN-BACKUP" -> Organização, empresa;
export KEY_EMAIL=" matheuscucoloto@gmail.com"
Alterando as mesmas evitamos repetir varias vezes a mesma informação. Agora podemos carregar as variáveis:
# . vars
# ./clean-all
Criando a CA, nesta parte será feita perguntas referentes as variáveis que editamos anteriormente e outras como “Organizational Unit Name” = comentário referente a empresa e “Common Name” = FQDN da maquina ex: srv-vpn2.dominio.com.br:
# ./build-ca
Criar chaves do Servidor, nesta parte será feito as mesmas perguntas do comando anterior mas adicionando mais 2 variáveis as mesmas não precisam necessariamente de informação:
# ./build-key-server servidorvpn
Criando as chaves do(s) cliente(s), neste caso criamos apenas 1, mas nada impede depois de você crie outras chaves, apenas deve diferenciar a variável “Common Name” de cada chave, para evitar problemas. “filialbh” é o nome que sera dado para a chave criada, altere conforme o seu ambiente.
# ./build-key filialbh
Gerando parâmetros Diffie Hellman para o OpenVPN:
# ./build-dh
Feito todo este procedimento, podemos voltar ao nosso shell de preferência:
# return
Iniciando o servidor OpenVPN
Para tornar nossa administração mais fácíl vamos informar ao syslog para ele logar todos os eventos do OpenVPN em um arquivo /var/log/openvpn.log
(matheus@internet1)~# ee /etc/syslog.conf
Adicione as seguintes informações neste arquivo:
-------------DADOS DO ARQUIVO-----------
!openvpn
*.* /var/log/openvpn.log
-------------DADOS DO ARQUIVO-----------
Criamos o arquivo:
(matheus@internet1)~# touch /var/log/openvpn.log
Agora vamos reiniciar o syslog:
(matheus@internet1)~# /etc/rc.d/syslogd restart
E iniciamos o OpenVPN:
(matheus@internet1)~# /usr/local/etc/rc.d/openvpn.sh start
Vamos verificar se o serviço levantou:
(matheus@internet1)~# sockstat -4l | grep openvpn
Por Padrão o OpenVPN escuta na porta 1194 no protocolo UDP, mas nada impede que você use outra porta ou o protocolo TCP, apenas especifique no arquivo de configuração, mais informações você pode conseguir nos arquivos de exemplo na pasta /usr/local/share/doc/openvpn.
Configurando o lado Cliente da coisa
Cliente FreeBSD
Supondo que a maquina que ira se conectar ao nosso servidor de VPN seja um FreeBSD, instalamos o OpenVPN como fizemos anteriormente usando o Ports. Feita a instalação vamos seguir os passos seguintes:
Criaremos o diretório de arquivos de configuração do OpenVPN:
(matheus@internet1-filialbh)~# mkdir -p /usr/local/etc/openvpn
(matheus@internet1-filialbh)~# cd /usr/local/etc/openvpn
Criada a pasta vamos criar o arquivo openvpn.conf e preenche-lo com as configurações necessárias.
(matheus@internet1-filialbh)~# ee openvpn.conf
-------------DADOS DO ARQUIVO-----------
client
remote ipdoservidorvpn 1194
dev tun
comp-lzo
ca ca.crt
cert filialbh.crt
key filialbh.key
group nobody
daemon
verb 3
mute-replay-warnings
mute 20
-------------DADOS DO ARQUIVO-----------
Feito o arquivo de configuração agora devemos buscar os arquivos de chave para fazer a autenticação da VPN. Necessitamos do arquivofilialbh.crt filialbh.key e ca.crt que foram criados anteriormente e estão em /usr/local/etc/openvpn/easy-rsa/keys no servidor que acabamos de criar.
Estes arquivos devem ser copiados para a pasta /usr/local/etc/openvpn da máquina da filial. Cabe a você a forma de transportar o arquivo (scp, www, ftp, samba, disquete, cd, dvd e afins...), tenha certeza que esses arquivos estejam seguros, pois quem tiver essa chave poderá se autenticar na VPN.
Adicionamos a linha openvpn_enable="YES" e gateway_enable=”YES” no nosso arquivo rc.conf
(matheus@internet1-filialbh)~# echo openvpn_enable="YES" >> /etc/rc.conf
(matheus@internet1-filialbh)~# echo gateway_enable="YES" >> /etc/rc.conf
Alteramos o nome do script de inicialização do OpenVPN no diretório /usr/local/etc/rc.d
(matheus@internet1-filialbh)~# cd /usr/local/etc/rc.d
(matheus@internet1-filialbh)~# mv openvpn openvpn.sh
E iniciamos o OpenVPN:
(matheus@internet1-filialbh)~# /usr/local/etc/rc.d/openvpn.sh start
Agora verificaremos se existe a interface e faremos um teste de ping em um host do outro lado:
(matheus@internet1-filialbh)~# ifconfig tun0
tun0: flags=8051 mtu 1500
inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff
Opened by PID 56202
(matheus@internet1-filialbh)~# ping 192.168.254.254
64 bytes from 192.168.254.254: icmp_seq=0 ttl=64 time=1.665 ms
64 bytes from 192.168.254.254: icmp_seq=1 ttl=64 time=1.448 ms
64 bytes from 192.168.254.254: icmp_seq=2 ttl=64 time=1.379 ms
Cliente Windows
Se temos do outro lado uma maquina com Windows, precisaremos baixar o OpenVPN para windows no seguinte endereço:
http://openvpn.net/download.html
Feita a instalação, vamos ao Windows Explorer (ctrl+e), e navegamos até a pasta C:\Arquivos de programas\OpenVPN\config. Lá iremos criar um arquivo chamado openvpn.ovpn e preencheremos ele com o seguinte conteúdo:
-------------DADOS DO ARQUIVO-----------
client
remote ipdoservidorvpn 1194
dev tun
comp-lzo
ca ca.crt
cert filialbh.crt
key filialbh.key
group nobody
daemon
verb 3
mute-replay-warnings
mute 20
-------------DADOS DO ARQUIVO-----------
Feito o arquivo de configuração agora devemos buscar os arquivos de chave para fazer a autenticação da VPN. Necessitamos do arquivofilialbh.crt filialbh.key e ca.crt que foram criadas anteriormente estão em /usr/local/etc/openvpn/easy-rsa/keys no servidor que acabamos de criar.
Estes arquivos devem estar presentes na pasta C:\Arquivos de programas\OpenVPN\config da maquina Windows da filial. Cabe a você a forma de transportar o arquivo (scp, www, ftp, samba, disquete, cd, dvd e afins...), tenha certeza que esses arquivos estejam seguros, pois quem tiver essa chave poderá se autenticar na VPN.
Depois disso já podemos levantar a VPN, clique com o botão direito do Mouse e selecione a opção “Start OpenVPN on this config file”. É possível também levantar a VPN utilizando o GUI que vem junto com a instalação, ele cria um ícone no canto do relógio, apenas 2 cliques e estará conectado.
Para testarmos entre no DOS e digite ipconfig, lá ira aparecer uma nova conexão local ou um novo dispositivo com endereço IP e tudo mais, ai é só pingar o outro lado para verificar se a conexão esta OK.
FONTE: http://www.fug.com.br/content/view/173/60/
Bom, a instalação do OpenVPN no FreeBSD é simples, podemos utilizar o pkg_add ou então a arvore Ports. Aqui utilizaremos o Ports e de preferência atualizado.
(matheus@internet1)~# cd /usr/ports/security/openvpn
(matheus@internet1)~# make install clean
Será apresentado um Dialog sobre o PW_SAVE, não precisaremos desta opção então apenas confirmamos pressionando ENTER.
Após a compilação e instalação podemos iniciar a configuração dos arquivos do OpenVPN.
Configurando o OpenVPN
Primeiramente adicionamos a linha openvpn_enable="YES" e gateway_enable=”YES” no nosso arquivo rc.conf
(matheus@internet1)~# echo openvpn_enable="YES" >> /etc/rc.conf
(matheus@internet1)~# echo gateway_enable="YES" >> /etc/rc.conf
Depois de instalado vamos alterar o nome do script de inicialização do OpenVPN no diretório /usr/local/etc/rc.d
(matheus@internet1)~# cd /usr/local/etc/rc.d
(matheus@internet1)~# mv openvpn openvpn.sh
Agora criaremos o diretório de arquivos de configuração do OpenVPN:
(matheus@internet1)~# mkdir -p /usr/local/etc/openvpn
(matheus@internet1)~# cd /usr/local/etc/openvpn
Criada a pasta vamos criar o arquivo openvpn.conf e preenche-lo com as configurações necessárias.
(matheus@internet1)~# ee openvpn.conf
-------------DADOS DO ARQUIVO-----------
# Interface da VPN
dev tun
# Ouvir em que endereço (Esta comentado ouvirá em todos os ips)
;local a.b.c.d
# Ouvir em que porta
port 1194
# Protocolo TCP ou UDP
proto udp
# Tornar o servidor de VPN seu gateway padráo para a internet
# Rede e Classe de Rede entre Clientes e Servidor
server 10.8.0.0 255.255.255.0
# Arquivo aonde fica armazenado os ips dos clientes
ifconfig-pool-persist ipp.txt
# Certificados para a autenticação da VPN
ca /usr/local/etc/openvpn/easy-rsa/keys/ca.crt
cert /usr/local/etc/openvpn/easy-rsa/keys/servidorvpn.crt
key /usr/local/etc/openvpn/easy-rsa/keys/servidorvpn.key
dh /usr/local/etc/openvpn/easy-rsa/keys/dh1024.pem
# As rotas que o cliente deve pegar
push "route 192.168.0.0 255.255.255.0"
# Usar compressão na VPN
comp-lzo
# Reestabelece a conexão se por ventura a mesma falhar
ping-timer-rem
persist-tun
persist-key
# Rodar o OpenVPN como Daemon mas com privilégios de usuario nobody
group nobody
daemon
# não repetir muitas vezes o mesmo erro
mute 20
-------------DADOS DO ARQUIVO-----------
Criando os arquivos de Certificação
Quando instalamos o OpenVPN é criado no diretório /usr/local/share/doc/openvpn/ arquivos de exemplos vamos copiar deste local o diretório easy-rsa. Nesta pasta existe scripts que tornam a criação das chaves SSL facíl.
(matheus@internet1)~# cd /usr/local/share/doc/openvpn
(matheus@internet1)~# cp -r easy-rsa /usr/local/etc/openvpn/
(matheus@internet1)~# cd /usr/local/etc/openvpn/easy-rsa
Bom, para quem não usa o shell SH, vai ter que usar pelo menos nesta parte para usar os scripts, pois os mesmos foram feitos para o SH e necessitam da shell ativa, para criar variáveis e coisas afins.
(matheus@internet1)~# sh
Vamos editar algumas variáveis contidos no arquivo vars.
# ee vars
As variáveis que nos interessa estão no final do arquivo e são as seguintes:
export KEY_COUNTRY=BR -> Pais;
export KEY_PROVINCE=PR -> Estado;
export KEY_CITY=CASCAVEL -> Cidade;
export KEY_ORG="VPN-BACKUP" -> Organização, empresa;
export KEY_EMAIL=" matheuscucoloto@gmail.com"
Alterando as mesmas evitamos repetir varias vezes a mesma informação. Agora podemos carregar as variáveis:
# . vars
# ./clean-all
Criando a CA, nesta parte será feita perguntas referentes as variáveis que editamos anteriormente e outras como “Organizational Unit Name” = comentário referente a empresa e “Common Name” = FQDN da maquina ex: srv-vpn2.dominio.com.br:
# ./build-ca
Criar chaves do Servidor, nesta parte será feito as mesmas perguntas do comando anterior mas adicionando mais 2 variáveis as mesmas não precisam necessariamente de informação:
# ./build-key-server servidorvpn
Criando as chaves do(s) cliente(s), neste caso criamos apenas 1, mas nada impede depois de você crie outras chaves, apenas deve diferenciar a variável “Common Name” de cada chave, para evitar problemas. “filialbh” é o nome que sera dado para a chave criada, altere conforme o seu ambiente.
# ./build-key filialbh
Gerando parâmetros Diffie Hellman para o OpenVPN:
# ./build-dh
Feito todo este procedimento, podemos voltar ao nosso shell de preferência:
# return
Iniciando o servidor OpenVPN
Para tornar nossa administração mais fácíl vamos informar ao syslog para ele logar todos os eventos do OpenVPN em um arquivo /var/log/openvpn.log
(matheus@internet1)~# ee /etc/syslog.conf
Adicione as seguintes informações neste arquivo:
-------------DADOS DO ARQUIVO-----------
!openvpn
*.* /var/log/openvpn.log
-------------DADOS DO ARQUIVO-----------
Criamos o arquivo:
(matheus@internet1)~# touch /var/log/openvpn.log
Agora vamos reiniciar o syslog:
(matheus@internet1)~# /etc/rc.d/syslogd restart
E iniciamos o OpenVPN:
(matheus@internet1)~# /usr/local/etc/rc.d/openvpn.sh start
Vamos verificar se o serviço levantou:
(matheus@internet1)~# sockstat -4l | grep openvpn
Por Padrão o OpenVPN escuta na porta 1194 no protocolo UDP, mas nada impede que você use outra porta ou o protocolo TCP, apenas especifique no arquivo de configuração, mais informações você pode conseguir nos arquivos de exemplo na pasta /usr/local/share/doc/openvpn.
Configurando o lado Cliente da coisa
Cliente FreeBSD
Supondo que a maquina que ira se conectar ao nosso servidor de VPN seja um FreeBSD, instalamos o OpenVPN como fizemos anteriormente usando o Ports. Feita a instalação vamos seguir os passos seguintes:
Criaremos o diretório de arquivos de configuração do OpenVPN:
(matheus@internet1-filialbh)~# mkdir -p /usr/local/etc/openvpn
(matheus@internet1-filialbh)~# cd /usr/local/etc/openvpn
Criada a pasta vamos criar o arquivo openvpn.conf e preenche-lo com as configurações necessárias.
(matheus@internet1-filialbh)~# ee openvpn.conf
-------------DADOS DO ARQUIVO-----------
client
remote ipdoservidorvpn 1194
dev tun
comp-lzo
ca ca.crt
cert filialbh.crt
key filialbh.key
group nobody
daemon
verb 3
mute-replay-warnings
mute 20
-------------DADOS DO ARQUIVO-----------
Feito o arquivo de configuração agora devemos buscar os arquivos de chave para fazer a autenticação da VPN. Necessitamos do arquivofilialbh.crt filialbh.key e ca.crt que foram criados anteriormente e estão em /usr/local/etc/openvpn/easy-rsa/keys no servidor que acabamos de criar.
Estes arquivos devem ser copiados para a pasta /usr/local/etc/openvpn da máquina da filial. Cabe a você a forma de transportar o arquivo (scp, www, ftp, samba, disquete, cd, dvd e afins...), tenha certeza que esses arquivos estejam seguros, pois quem tiver essa chave poderá se autenticar na VPN.
Adicionamos a linha openvpn_enable="YES" e gateway_enable=”YES” no nosso arquivo rc.conf
(matheus@internet1-filialbh)~# echo openvpn_enable="YES" >> /etc/rc.conf
(matheus@internet1-filialbh)~# echo gateway_enable="YES" >> /etc/rc.conf
Alteramos o nome do script de inicialização do OpenVPN no diretório /usr/local/etc/rc.d
(matheus@internet1-filialbh)~# cd /usr/local/etc/rc.d
(matheus@internet1-filialbh)~# mv openvpn openvpn.sh
E iniciamos o OpenVPN:
(matheus@internet1-filialbh)~# /usr/local/etc/rc.d/openvpn.sh start
Agora verificaremos se existe a interface e faremos um teste de ping em um host do outro lado:
(matheus@internet1-filialbh)~# ifconfig tun0
tun0: flags=8051
inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff
Opened by PID 56202
(matheus@internet1-filialbh)~# ping 192.168.254.254
64 bytes from 192.168.254.254: icmp_seq=0 ttl=64 time=1.665 ms
64 bytes from 192.168.254.254: icmp_seq=1 ttl=64 time=1.448 ms
64 bytes from 192.168.254.254: icmp_seq=2 ttl=64 time=1.379 ms
Cliente Windows
Se temos do outro lado uma maquina com Windows, precisaremos baixar o OpenVPN para windows no seguinte endereço:
http://openvpn.net/download.html
Feita a instalação, vamos ao Windows Explorer (ctrl+e), e navegamos até a pasta C:\Arquivos de programas\OpenVPN\config. Lá iremos criar um arquivo chamado openvpn.ovpn e preencheremos ele com o seguinte conteúdo:
-------------DADOS DO ARQUIVO-----------
client
remote ipdoservidorvpn 1194
dev tun
comp-lzo
ca ca.crt
cert filialbh.crt
key filialbh.key
group nobody
daemon
verb 3
mute-replay-warnings
mute 20
-------------DADOS DO ARQUIVO-----------
Feito o arquivo de configuração agora devemos buscar os arquivos de chave para fazer a autenticação da VPN. Necessitamos do arquivofilialbh.crt filialbh.key e ca.crt que foram criadas anteriormente estão em /usr/local/etc/openvpn/easy-rsa/keys no servidor que acabamos de criar.
Estes arquivos devem estar presentes na pasta C:\Arquivos de programas\OpenVPN\config da maquina Windows da filial. Cabe a você a forma de transportar o arquivo (scp, www, ftp, samba, disquete, cd, dvd e afins...), tenha certeza que esses arquivos estejam seguros, pois quem tiver essa chave poderá se autenticar na VPN.
Depois disso já podemos levantar a VPN, clique com o botão direito do Mouse e selecione a opção “Start OpenVPN on this config file”. É possível também levantar a VPN utilizando o GUI que vem junto com a instalação, ele cria um ícone no canto do relógio, apenas 2 cliques e estará conectado.
Para testarmos entre no DOS e digite ipconfig, lá ira aparecer uma nova conexão local ou um novo dispositivo com endereço IP e tudo mais, ai é só pingar o outro lado para verificar se a conexão esta OK.
FONTE: http://www.fug.com.br/content/view/173/60/
sexta-feira, 6 de maio de 2011
Squid - Rodar duas instancias
Additionally, you should check your configuration by calling
'squid -f /path/to/squid.conf -k parse' before starting Lusca.
'squid -f /path/to/squid.conf -k parse' before starting Lusca.
quinta-feira, 5 de maio de 2011
Trafshow - Analise de trafego
Fazer o download do Trafshow (139k);
Instalar;
Executar e verificar alguns argumentos que podemos utilizar.
O download do Trafshow pode ser feito com o wget:
# wget http://gentoo.osuosl.org/distfiles/trafshow-5.2.3.tgz
Após o download vamos descompactar:
# tar -zxvf trafshow-5.2.3.tgz
Será criada a pasta trafshow-5.2.3, vamos entrar nela:
# cd trafshow-5.2.3
Gerando o script de configuração:
# ./configure
Compilando os fontes:
# make
Instalando os binários:
# make install
Já temos o Trafshow instalado.
Algumas opções dele são:
-i (interface. ex: -i eth0, ele lista somente a interface);
-n (para não resolver nomes e exibir IPs e portas);
-R (tempo em segundos para atualizar).
PS: Ele também aceita expressões, vou citar um exemplo:
# trafshow -i eth0 -n host 200.1.1.1 and tcp and not tcp port 1863
Aí você me pergunta: "qual a função desse comando?"
Simples, chamei o trafshow com as opções -i (somente essa interface), -n (para exibir IPs e portas) e inserir a expressão "host 200.1.1.1" (exiba somente esse IP), o argumento "and tcp" (como o protocolo tcp), "and not tcp port 1863" (não quero a porta 1863 tcp). Como resultado ele vai me exibir todas as conexões tcp do IP 200.1.1.1 menos a porta do MSN (1863).
Se você quiser pode chamar o trafshow puro mesmo sem nenhum argumento.
# trafshow
Aqui ele exibe todas as conexões. Utilize as teclas direcionais do teclado, para retornar ao menu principal pressione ESC, para configurar a velocidade de atualização pressione F e depois passe um valor em segundos.
Qualquer dúvida chame o man:
# man trafshow
FONTE: vivaolinux.com.br
Instalar;
Executar e verificar alguns argumentos que podemos utilizar.
O download do Trafshow pode ser feito com o wget:
# wget http://gentoo.osuosl.org/distfiles/trafshow-5.2.3.tgz
Após o download vamos descompactar:
# tar -zxvf trafshow-5.2.3.tgz
Será criada a pasta trafshow-5.2.3, vamos entrar nela:
# cd trafshow-5.2.3
Gerando o script de configuração:
# ./configure
Compilando os fontes:
# make
Instalando os binários:
# make install
Já temos o Trafshow instalado.
Algumas opções dele são:
-i (interface. ex: -i eth0, ele lista somente a interface);
-n (para não resolver nomes e exibir IPs e portas);
-R (tempo em segundos para atualizar).
PS: Ele também aceita expressões, vou citar um exemplo:
# trafshow -i eth0 -n host 200.1.1.1 and tcp and not tcp port 1863
Aí você me pergunta: "qual a função desse comando?"
Simples, chamei o trafshow com as opções -i (somente essa interface), -n (para exibir IPs e portas) e inserir a expressão "host 200.1.1.1" (exiba somente esse IP), o argumento "and tcp" (como o protocolo tcp), "and not tcp port 1863" (não quero a porta 1863 tcp). Como resultado ele vai me exibir todas as conexões tcp do IP 200.1.1.1 menos a porta do MSN (1863).
Se você quiser pode chamar o trafshow puro mesmo sem nenhum argumento.
# trafshow
Aqui ele exibe todas as conexões. Utilize as teclas direcionais do teclado, para retornar ao menu principal pressione ESC, para configurar a velocidade de atualização pressione F e depois passe um valor em segundos.
Qualquer dúvida chame o man:
# man trafshow
FONTE: vivaolinux.com.br
segunda-feira, 2 de maio de 2011
FreeBSD: Firewall Stateful
#!/bin/sh
###########################################################################
# Delete todas as regras do IPFW, zera toda tabela de regras.
###########################################################################
/sbin/ipfw -f flush
###########################################################################
# Carregar duas instâncias do NATD, uma para cada interface WAN.
###########################################################################
/sbin/natd -u -dynamic -interface re0 -p 8668
/sbin/natd -u -dynamic -interface re1 -p 8669
###########################################################################
# Regra number 0001: De acordo com o pacote que estiver passando no momento pelo
# gateway, o IPFW primeiramente checará a tabela de sessão(que é criada
# dinamicamente se você adicionar o parâmetro keep-state na regra que queira
# torna-la dinâmica, veremos abaixo) dessa forma ele verifica se já não existe uma
# regra dinâmica que se aplique ao pacote passante, ou seja, aqui estamos utlizando
# o firewall no modo stateful.
###########################################################################
ipfw add 0001 check-state
###########################################################################
# Regra number 2000 e 2050: Definem as rotas para as intâncias do NATD
# criadas acima. Ou seja, aqui setamos para que ocorra NAT nos pacotes
# que passarem tanto pela interface re0 quanto pela interface re1.
###########################################################################
ipfw add 2000 divert 8668 ip from any to any in via re0
ipfw add 2050 divert 8669 ip from any to any in via re1
###########################################################################
# Regra number 2100: A palavra-chave desta regra é o cara que tem maior
# responsabilidade sobre todo o balanceamento de tráfego, este cara é o parâmetro
# prob, o seu valor varia de 0 a 1 e diz qual a probabilidade de executar tal regra.
# No caso da regra number 2100, informamos que 50%(0.5) do tráfego utilizando
# qualquer protocolo que seja IP(ip) de origem(from) 192.168.33.0/24 com destino(to)
# a qualquer lugar saindo (out) por alguma interface do gateway será pulada (skipto)
# para ser executada a partir da regra number 2200 em diante e além disso
# colocaremos esta regra na tabela de sessão com o parametro keep-state. Resumindo,
# estaremos colocando 50% do tráfego para ser roteado pelo NAT na interface re0 que
# corresponde a instância de porta 8668.
############################################################################
ipfw add 2100 prob 0.5 skipto 2200 ip from 192.168.33.0/24 to any out keep-state
###########################################################################
# Regra number 2150: Como 50% do tráfego será jogado para o NAT da interface re0, os
# outros 50% do tráfego será ignorado pela regra prob, e adivinha aonde o tráfego
# ignorado irá parar? Ele será executado pela regra number 2150, que diz que:
# Qualquer protocolo que seja IP(ip) de origem(from) 192.168.33.0/24 com destino(to)
# a qualquer lugar saindo (out) por alguma interface do gateway será pulada (skipto)
# para ser executada a partir da regra number 2300 em diante e além disso
# colocaremos esta regra na tabela de sessão com o parametro keep-state. Resumindo,
# estaremos colocando esse tráfego que não foi executado pela regra prob será
# roteado pelo NAT na interface re1 que corresponde a instância de porta
# 8669.
###########################################################################
ipfw add 2150 skipto 2300 ip from 192.168.33.0/24 to any out keep-state
############################################################################
# Regras utilizadas pelos skipto acima.
############################################################################
ipfw add 2200 divert 8668 ip from 192.168.33.0/24 to any in
ipfw add 2250 divert 8668 ip from 192.168.33.0/24 to any out
ipfw add 2300 divert 8669 ip from 192.168.33.0/24 to any out
ipfw add 2350 divert 8669 ip from 192.168.33.0/24 to any in
############################################################################
# Aqui eu encaminho(fwd) o tráfego que o gateway estar fazendo(192.168.1.222 e
# 192.168.4.222) para os gateways de rede 192.168.1.1 e 192.168.4.1.
############################################################################
ipfw add 2400 fwd 192.168.1.1 ip from 192.168.1.222 to any
ipfw add 2500 fwd 192.168.4.1 ip from 192.168.4.222 to any
############################################################################
# Aqui defina as regras allow e deny de seu firewall. Como este firewall é de
# teste estou permitindo todo tráfego de qualquer canto para qualquer canto
############################################################################
ipfw add 65000 allow ip from any to any
FONTE: http://softwarelivre.org/projeto-software-livre-bahia/blog/leonardo-couto-conrado-ipfw-balanceamento-de-trafego-com-dois-links-wan-usando-o-ipfw-freebsd
###########################################################################
# Delete todas as regras do IPFW, zera toda tabela de regras.
###########################################################################
/sbin/ipfw -f flush
###########################################################################
# Carregar duas instâncias do NATD, uma para cada interface WAN.
###########################################################################
/sbin/natd -u -dynamic -interface re0 -p 8668
/sbin/natd -u -dynamic -interface re1 -p 8669
###########################################################################
# Regra number 0001: De acordo com o pacote que estiver passando no momento pelo
# gateway, o IPFW primeiramente checará a tabela de sessão(que é criada
# dinamicamente se você adicionar o parâmetro keep-state na regra que queira
# torna-la dinâmica, veremos abaixo) dessa forma ele verifica se já não existe uma
# regra dinâmica que se aplique ao pacote passante, ou seja, aqui estamos utlizando
# o firewall no modo stateful.
###########################################################################
ipfw add 0001 check-state
###########################################################################
# Regra number 2000 e 2050: Definem as rotas para as intâncias do NATD
# criadas acima. Ou seja, aqui setamos para que ocorra NAT nos pacotes
# que passarem tanto pela interface re0 quanto pela interface re1.
###########################################################################
ipfw add 2000 divert 8668 ip from any to any in via re0
ipfw add 2050 divert 8669 ip from any to any in via re1
###########################################################################
# Regra number 2100: A palavra-chave desta regra é o cara que tem maior
# responsabilidade sobre todo o balanceamento de tráfego, este cara é o parâmetro
# prob, o seu valor varia de 0 a 1 e diz qual a probabilidade de executar tal regra.
# No caso da regra number 2100, informamos que 50%(0.5) do tráfego utilizando
# qualquer protocolo que seja IP(ip) de origem(from) 192.168.33.0/24 com destino(to)
# a qualquer lugar saindo (out) por alguma interface do gateway será pulada (skipto)
# para ser executada a partir da regra number 2200 em diante e além disso
# colocaremos esta regra na tabela de sessão com o parametro keep-state. Resumindo,
# estaremos colocando 50% do tráfego para ser roteado pelo NAT na interface re0 que
# corresponde a instância de porta 8668.
############################################################################
ipfw add 2100 prob 0.5 skipto 2200 ip from 192.168.33.0/24 to any out keep-state
###########################################################################
# Regra number 2150: Como 50% do tráfego será jogado para o NAT da interface re0, os
# outros 50% do tráfego será ignorado pela regra prob, e adivinha aonde o tráfego
# ignorado irá parar? Ele será executado pela regra number 2150, que diz que:
# Qualquer protocolo que seja IP(ip) de origem(from) 192.168.33.0/24 com destino(to)
# a qualquer lugar saindo (out) por alguma interface do gateway será pulada (skipto)
# para ser executada a partir da regra number 2300 em diante e além disso
# colocaremos esta regra na tabela de sessão com o parametro keep-state. Resumindo,
# estaremos colocando esse tráfego que não foi executado pela regra prob será
# roteado pelo NAT na interface re1 que corresponde a instância de porta
# 8669.
###########################################################################
ipfw add 2150 skipto 2300 ip from 192.168.33.0/24 to any out keep-state
############################################################################
# Regras utilizadas pelos skipto acima.
############################################################################
ipfw add 2200 divert 8668 ip from 192.168.33.0/24 to any in
ipfw add 2250 divert 8668 ip from 192.168.33.0/24 to any out
ipfw add 2300 divert 8669 ip from 192.168.33.0/24 to any out
ipfw add 2350 divert 8669 ip from 192.168.33.0/24 to any in
############################################################################
# Aqui eu encaminho(fwd) o tráfego que o gateway estar fazendo(192.168.1.222 e
# 192.168.4.222) para os gateways de rede 192.168.1.1 e 192.168.4.1.
############################################################################
ipfw add 2400 fwd 192.168.1.1 ip from 192.168.1.222 to any
ipfw add 2500 fwd 192.168.4.1 ip from 192.168.4.222 to any
############################################################################
# Aqui defina as regras allow e deny de seu firewall. Como este firewall é de
# teste estou permitindo todo tráfego de qualquer canto para qualquer canto
############################################################################
ipfw add 65000 allow ip from any to any
FONTE: http://softwarelivre.org/projeto-software-livre-bahia/blog/leonardo-couto-conrado-ipfw-balanceamento-de-trafego-com-dois-links-wan-usando-o-ipfw-freebsd
Assinar:
Postagens (Atom)