Migrando para controle de banda no FreeBSD
Olá pessoal,
Aqui na empresa, tinhamos "2 servidores" para controle de banda, na verdade uma das torres fazia o controle de banda de 3 AP´s, e o restante era feito aqui no provedor mesmo, querem centralizar isto, e eu quero migrar do HTB do Fedorento, para o FreeBSD, qual a melhor opção, seria ipfw+dummynet mesmo ?
Por favor, se obtiverem textos/tutoriais, principalmente em pt-br, mas pode ser em en_US também, eu aceito.
Obrigado! :D
Re: Migrando para controle de banda no FreeBSD
Re: Migrando para controle de banda no FreeBSD
Sim amigo Schneider, mas eu utilizo de um script para as regras de firewall e o NAT, entre outros. E um arquivo SOMENTE com os ips de clientes, na seguinte formação de linhas: ip|download|upload|Liberado/Bloqueado.
Se alguém puder me ajudar, obrigado! :D
Re: Migrando para controle de banda no FreeBSD
vc pode usa ipfw+wf2q+ e fazendo controle de mac e ip +ou- assim um exemplo
# limpando as chains existentes
/sbin/ipfw -f flush
#Bloqueando NetBios
/sbin/ipfw add 100 deny log all from any 135-139,445 to any
/sbin/ipfw add 101 deny log all from any to any 135-139,445
#Limitando a velocidade de down e up do rede 192.168.10 toda. (todos os ips vao ter upload de 64 e download de 128.
/sbin/ipfw pipe 1 mask src-ip 0x000000ff bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 mask dst-ip 0x000000ff bw 128Kbps queue 10.6
# controle de banda por cliente
ipfw -q pipe 30009 config bw 512Kbit/s queue 8Kbytes # IN
ipfw -q pipe 30010 config bw 512Kbit/s queue 8Kbytes # OUT
ipfw -q add pipe 30009 all from IP_CLIENTE to any in via IF_Y
ipfw -q add pipe 30010 all from any to IP_CLIENTE out via IF_Y
#Definindo os pipes para a rede.
add 100 pipe 1 all from 192.168.10.0/24 to any in layer2
add 101 pipe 2 all from any to 192.168.10.0/24 out layer2
#Definindo quem pode trafegar ( IP X MAC )
## 192.168.10.5
add 200 allow all from any to 192.168.10.5 MAC 00:01:02:03:04:05 any layer2
add 201 allow all from 192.168.10.5 to any MAC any 00:01:02:03:04:05 layer2
## 192.168.10.8
add 202 allow all from any to 192.168.10.8 MAC 00:05:04:03:02:01 any layer2
add 203 allow all from 192.168.10.8 to any MAC any 00:05:04:03:02:01 layer2
#fechando tudo
add 65000 deny all from any to any layer2
Re: Migrando para controle de banda no FreeBSD
Obrigado amigos, mas eu utilizei-me de uma solução embarcada, obtida dentro de uma compact flash, e com ela, faço meu controle de banda e firewall. :D Se alguém quiser saber, pode me enviar uma msg.
Re: Migrando para controle de banda no FreeBSD
Me diz uma coisa essa regra ta certa ??? Estou tendo problemas ao subir as regras, e um erro relacionado a MASK.
/sbin/ipfw pipe 1 mask src-ip 0x000000ff bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 mask dst-ip 0x000000ff bw 128Kbps queue 10.6
Abraçao
Re: Migrando para controle de banda no FreeBSD
cara para vc saber qual mascara vc esta usando simplesmente roda
%ifconfig
sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::206:4fff:fe0b:158e%sis0 prefixlen 64 scopeid 0x1
ether 00:06:4f:0b:15:8e
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
ai vc vai saber qual mascara a minha 0xffffff00 vai ficar assim no controle de banda
/sbin/ipfw pipe 1 mask src-ip 0xffffff00 bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 mask dst-ip 0xffffff00 bw 128Kbps queue 10.6
entendeu agora...
Re: Migrando para controle de banda no FreeBSD
Sim agora ficou mais claro, na verdade ja tinha notado isso mas achei melhor confirmar.
Obrigado
Abraçao
Re: Migrando para controle de banda no FreeBSD
A ideia nao está certa. Na verdade quando voce deu o ifconfig e apareceu o 0xffffff00, essa é a mascara em hexadecimal.
O "0x" significa o inicio de um numero hexadecimal.
Exemplo:
Em C, se voce colocar o numero 13, o compilador ira entender que é um numero decimal 13.
Mas se colocar 013, irá entender que seria um numero octal.
Mas se colocar "0x", esse 0x eh o inicio de um numero hexadecimal.
Entao, simplificando tudo, os f ali de começo, está sendo setado o bit como 1, fechando as casas.
Os ultimos 00, seriam como a rede aberta em .0
Quando tiver um tempinho, explico melhor pra entenderem....
:evil:
Re: Migrando para controle de banda no FreeBSD
Li muito o man do ipfw e descobri que o erro ta no seguinte:
/sbin/ipfw pipe 1 config mask src-ip 0xffffff00 bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 config mask dst-ip 0xffffff00 bw 128Kbps queue 10.6
So que o bloqueio por mac/ip nao ta funcionando e o controle de banda tambem nao ta muito certo, vou postar meu firewall.sh:
#!/bin/sh
#
#desativando passagem unica
/sbin/ipfw disable one_pass
# limpando as chains existentes
/sbin/ipfw -f flush
# Ativando repasse dos pacotes
/sbin/ipfw add 00010 divert natd all from any to any via vr0
/sbin/natd -l -f /etc/natd.conf
#Bloqueando NetBios
/sbin/ipfw add 100 deny log all from any 135-139,445 to any
/sbin/ipfw add 101 deny log all from any to any 135-139,445
#Limitando a velocidade da rede 192.168.0.0/24
/sbin/ipfw pipe 1 config mask src-ip 0xffffff00 bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 config mask dst-ip 0xffffff00 bw 128Kbps queue 10.6
#Definindo os pipes para a rede
/sbin/ipfw add 100 pipe 1 all from 192.168.0.0/24 to any in layer2
/sbin/ipfw add 101 pipe 2 all from any to 192.168.0.0/24 out layer2
#Definindo quem pode trafegar
## 192.168.0.2 gatoseco
/sbin/ipfw add 200 allow all from any to 192.168.0.2 MAC 00:01:02:03:04:05 any layer2
/sbin/ipfw add 201 allow all from 192.168.0.2 to any MAC any 00:01:02:03:04:05 layer2
#fechando tudo
/sbin/ipfw add 65000 deny all from any to any layer2
Tambem adicionei no sysctl.conf a linha sysctl net.link.ether.ipfw=1, Se algum dos nossos feras em freebsd puder dar uma mao agradeço, estou usando o freebsd 5.4 !!!
Abraçao
Re: Migrando para controle de banda no FreeBSD
vc nao adicionou no final da regra a interface da sua rede local ficando assim
#Definindo quem pode trafegar
## 192.168.0.2 gatoseco
/sbin/ipfw add 200 allow all from any to 192.168.0.2 MAC 00:01:02:03:04:05 any layer2
/sbin/ipfw add 201 allow all from 192.168.0.2 to any MAC any 00:01:02:03:04:05 layer2
#fechando tudo
/sbin/ipfw add 65000 deny all from any to any layer2 in via rl0
desta forma a galera de sua rede interna so vai ter acesso depois que vc liberar so isso
testa ai de depois nos avise.
Re: Migrando para controle de banda no FreeBSD
blz vou testar !!!
Obrigado
Abraçao
Re: Migrando para controle de banda no FreeBSD
To com um errinho aqui que na verdade nao ta fazendo com que a internet nao funcione, apenas ela aparece quando levanto as regras,mas gostaria de saber se o pessoal tem ideia do que seja, segue abaixo a mensagem:
NATD:unable to bind divert socket.:address already in use
Obrigado a todos
Abraçao
Re: Migrando para controle de banda no FreeBSD
vc compilou o kernel com a opcao
options IPDIVERT para habilitar o natd.
qualquer coisa usa o pf para fazer natd.
Re: Migrando para controle de banda no FreeBSD
Provavelmente voce está tentando levantar o daemon com outro já rodando.
Se quiser deixar 2 daemons rodando, nao esqueça de trocar a porta que o natd vai dar o bind.
Exemplo:
bash# /sbin/natd -p 8668 -s -m -n rl0
bash# /sbin/natd -p 8669 -s -m -n rl1
E outra coisinha, pra corrigir, o pf pode fazer "nat" e nao fazer "natd".
A conotaçao seria Network Address Translation.
Saudações
:evil:
Re: Migrando para controle de banda no FreeBSD
Olá amigo Gatoseco....
Eu estou com esse problema tambem..
NATD:unable to bind divert socket.:address already in use
vc conseguiu resolver de qual forma? poderia citar os passos? Desde ja agradeço.
Re: Migrando para controle de banda no FreeBSD
Ola, gostei muito do sistema do bandlimit, aqui em meu provedor uso o ipfw para controle dos clientes, mas crei que seria interessante de se gerar um arquivo a partir do php contendo os dados como ip:up:down do que um arquivo com todo o script, agora preciso saber se existe algum script no formato do bandlimit ou ateh mesmo o proprio bandlimit para IPFW, se ainda nao tiver estou disposto a ajudar no desenvolvimento de um, pois aqui o tecnico que desenvolveu os script do meu servidor (nao deixou os fontes claro) mas deixou uma configuracao legal, onde tenhos os seguintes arquivos:
- clientes.ip (onde tenho o cadastro dos clientes da seguinte forma (mac|ip|down|up|se o ip eh valido ou nao|nome cliente)
- clientes.adm (onde cadastro os ips com acesso a alguns serviços do meu servidor, como ssh, que eh o caso dos ips do escritorio)
- sites.sp (onde tenho os ips de sites onde nao passarao pelo proxy, como caixa, bradesco)
ficou muito bom, mas gostaria de desenvolver algo semelhante e aprimorar para uso com administracao web e futuro uso em mysql
vlw e t+
Re: Migrando para controle de banda no FreeBSD
claro que usando o FreeBSD, pois quando comecei a usar até estranhava algumas diferencinhas dos comandos do linux, mas depois que acostuma, fica dificil de retornar, nao despresando o linux de forma alguma, pois me ajudou muito e creio que se precisar posso estar retornando a ele.
Re: Migrando para controle de banda no FreeBSD
NATD:unable to bind divert socket.:address already in use
vc conseguiu resolver de qual forma? poderia citar os passos? Desde ja agradeço.
Re: Migrando para controle de banda no FreeBSD
este erro ocorre quando se tenta carregar o nat e ele jah esta eh uso digite
ps ax | grep natd
que vai aparecer se o natd esta em uso se nao aparecer linha nenhuma ele esta desativado