Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-25 Por tôpico Luiz Souza
Nenhum _de_Nos wrote:
> hail,
>
> estou tentando fazer um sistema para ver trafego nat ( contar bytes de
> e/s de cada cliente ) para mandar via snmp para cacti/mrtg e estou
> tendo problemas ( nao sou eximio programador C ) em tratar a estrutura
> **mbuf que recebo ( quase resolvida, via mtod virando struct ip ),
> probemas em acessar essa struct ip e por final com problemas em
> mostrar estes dados.
>   
Que trabalho pra pegar essas informacões hein ?
> o exemplo que temla cria um arquivo em /dev onde se faz cat e se le o
> conteudo. no meu caso, nao to conseguindo isso. o cat nao acaba ...
>
> estou salvando um array com os valores s_addr que recebo da (struct
> ip).src_ip.s_addr. mas nao sei ainda transformar este valor em ip
> legivel :(
>   
inet_ntoa(3)
> queria saber se alguem sabe onde vejo mais sobre isso. faco buscas no
> codigo do kernel, mas isso nao eh o ideal. nao eh eficiente pra mim e
> nem didatico heheh :)
>
> a ideia era isso ficar algo decente para ser um
> natmonitor.souceforge.net para o FreeBSD.
>   
Além das ideias que já lhe passaram (prontas por sinal), pra quem gosta 
de sofrer (mas não tanto), seria mais facil escrever um daemon pra rodar 
no espaco usuario e não no kernel atachado (hehe) a interface via bpf 
(ou libpcap).

Quem faz isso é o /usr/ports/net-mgmt/bandwidthd (outra solucão pronta).

Luiz
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-19 Por tôpico Christopher Giese - iRapida
msn: [EMAIL PROTECTED]

anota ae. posso lhe dar uma mao ;)


Nenhum _de_Nos wrote:
> algo de errado nas regras ou na consulta do pfctl ?
>
> matheus
>
>   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-19 Por tôpico Nenhum _de_Nos
algo de errado nas regras ou na consulta do pfctl ?

matheus

-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-19 Por tôpico Christopher Giese - iRapida
Nenhum _de_Nos wrote:
> On 7/19/06, Christopher Giese - iRapida <[EMAIL PROTECTED]> wrote:
>   
>> Nao entendi sua duvida
>>
>> seja + especifico
>>
>>
>> 
>
> o comando q vc me passou nao retorna nada
>
> matheus
>
>   
Kra

vc deve estar fazendo algo errado ae

pq aki funciona 100% ;)   e em varios amigos meus ... que eu passei a 
dica... funciona tb

;)


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-19 Por tôpico Nenhum _de_Nos
On 7/19/06, Christopher Giese - iRapida <[EMAIL PROTECTED]> wrote:
> Nao entendi sua duvida
>
> seja + especifico
>
>

o comando q vc me passou nao retorna nada

matheus

-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-19 Por tôpico Christopher Giese - iRapida
Nao entendi sua duvida

seja + especifico


Nenhum _de_Nos escreveu:
> On 7/18/06, Christopher Giese - iRapida <[EMAIL PROTECTED]> wrote:
>   
>> opa
>>
>> um count para pf:
>>
>> ##
>> Upload pfctl -v -sr|grep "from ipqueVOCEquer" -A 1|grep Bytes|awk
>> '{print $7}'
>>
>> Download pfctl -v -sr|grep "to ipqueVOCEquer" -A 1|grep Bytes|awk
>> '{print $7}'
>> ##
>>
>> usar os 2 ao mesmo tempo sem problemas. (claro desde que vc nao
>> tenha 2000 regras em cada um - rs)
>>
>> estou trabalhando na ideia do Diego ipfw + snmp.. deu uma
>> googleada e achei como montar.
>>
>> a ideia
>> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp.html
>>
>> o script
>> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp
>>
>> Funcionou 100% muito legal mesmo
>>
>> mas para mim nao pode ser com ipfw... tem que ser com pf. entaum
>> estou portando o ipfwsnmp  para pf assim que estiver funcional eu
>> distribui na net
>>
>> :)
>>
>> t+
>>
>> 
>
> nao retornou nada aqui estas consultas :(
>
> na minha solucao:
>
> DSL --bridge-- FreeBSD ( NAT )  FreeBSD ( lim trafego ) - Rede
>
> em nenhum dos dois tem resultado ... :(
>
> ha saida, mas nada nos ips da rede 192.168.254.0/24.
>
> saida: ( FreeBSD com NAT )
>
> [EMAIL PROTECTED] ~]# pfctl -v -sr
> block drop in on tun0 inet from 201.x.x.x to any
>   [ Evaluations: 11735803  Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.xxxo any port 1:11000
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 11001:11600
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 8000:8100
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 5010:5019
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 5020:5029
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 15000:15500
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 1:11000
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 11001:11600
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 8000:8100
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 5010:5019
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 5020:5029
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on tun0 inet proto udp from 201.x.x.x.x to any port 15000:15500
>   [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0
>  ]
> pass in on rl0 all
>   [ Evaluations: 10378505  Packets: 5080445   Bytes: 1233312838  States: 0
>  ]
>
> e ha regras de nat:
>
> nat on tun0 inet from 192.168.254.10 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.100 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.251 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.12 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.101 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.103 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.102 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.1 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.2 to any -> (tun0) round-robin
> nat on tun0 inet from 192.168.254.3 to any -> (tun0) round-robin
> rdr on tun0 inet proto tcp from any to any port 1:11000 -> 192.168.254.10
> rdr on tun0 inet proto udp from any to any port 1:11000 -> 192.168.254.10
> rdr on tun0 inet proto tcp from any to any port 11001:11600 -> 192.168.254.100
> rdr on tun0 inet proto udp from any to any port 11001:11600 -> 192.168.254.100
> rdr on tun0 inet proto tcp from any to any port 8000:8100 -> 192.168.254.12
> rdr on tun0 inet proto udp from any to any port 8000:8100 -> 192.168.254.12
> rdr on tun0 inet proto tcp from any to any port 5010:5019 -> 192.168.254.101
> rdr on tun0 inet proto udp from any to any port 5010:5019 -> 192.168.254.101
> rdr on tun0 inet proto tcp from any to any port 5020:5029 -> 192.168.254.103
> rdr on tun0 inet proto udp from any to any port 5020:5029 -> 192.168.254.103
> rdr on tun0 inet proto tcp from any

Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nenhum _de_Nos
On 7/18/06, Christopher Giese - iRapida <[EMAIL PROTECTED]> wrote:
> opa
>
> um count para pf:
>
> ##
> Upload pfctl -v -sr|grep "from ipqueVOCEquer" -A 1|grep Bytes|awk
> '{print $7}'
>
> Download pfctl -v -sr|grep "to ipqueVOCEquer" -A 1|grep Bytes|awk
> '{print $7}'
> ##
>
> usar os 2 ao mesmo tempo sem problemas. (claro desde que vc nao
> tenha 2000 regras em cada um - rs)
>
> estou trabalhando na ideia do Diego ipfw + snmp.. deu uma
> googleada e achei como montar.
>
> a ideia
> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp.html
>
> o script
> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp
>
> Funcionou 100% muito legal mesmo
>
> mas para mim nao pode ser com ipfw... tem que ser com pf. entaum
> estou portando o ipfwsnmp  para pf assim que estiver funcional eu
> distribui na net
>
> :)
>
> t+
>

nao retornou nada aqui estas consultas :(

na minha solucao:

DSL --bridge-- FreeBSD ( NAT )  FreeBSD ( lim trafego ) - Rede

em nenhum dos dois tem resultado ... :(

ha saida, mas nada nos ips da rede 192.168.254.0/24.

saida: ( FreeBSD com NAT )

[EMAIL PROTECTED] ~]# pfctl -v -sr
block drop in on tun0 inet from 201.x.x.x to any
  [ Evaluations: 11735803  Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.xxxo any port 1:11000
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 11001:11600
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 8000:8100
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 5010:5019
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 5020:5029
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto tcp from 201.x.x.x.x to any port 15000:15500
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 1:11000
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 11001:11600
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 8000:8100
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 5010:5019
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 5020:5029
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on tun0 inet proto udp from 201.x.x.x.x to any port 15000:15500
  [ Evaluations: 0 Packets: 0 Bytes: 0   States: 0 ]
pass in on rl0 all
  [ Evaluations: 10378505  Packets: 5080445   Bytes: 1233312838  States: 0 ]

e ha regras de nat:

nat on tun0 inet from 192.168.254.10 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.100 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.251 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.12 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.101 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.103 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.102 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.1 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.2 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.254.3 to any -> (tun0) round-robin
rdr on tun0 inet proto tcp from any to any port 1:11000 -> 192.168.254.10
rdr on tun0 inet proto udp from any to any port 1:11000 -> 192.168.254.10
rdr on tun0 inet proto tcp from any to any port 11001:11600 -> 192.168.254.100
rdr on tun0 inet proto udp from any to any port 11001:11600 -> 192.168.254.100
rdr on tun0 inet proto tcp from any to any port 8000:8100 -> 192.168.254.12
rdr on tun0 inet proto udp from any to any port 8000:8100 -> 192.168.254.12
rdr on tun0 inet proto tcp from any to any port 5010:5019 -> 192.168.254.101
rdr on tun0 inet proto udp from any to any port 5010:5019 -> 192.168.254.101
rdr on tun0 inet proto tcp from any to any port 5020:5029 -> 192.168.254.103
rdr on tun0 inet proto udp from any to any port 5020:5029 -> 192.168.254.103
rdr on tun0 inet proto tcp from any to any port 15000:15500 -> 192.168.254.1
rdr on tun0 inet proto udp from any to any port 15000:15500 -> 192.168.254.1


faco as regras separadas para poder controlar quem pode ou nao usar o
FreeBSD como roteador :)

valeu

matheus
-- 
We will call you cygnus,
The God of balance you

Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nenhum _de_Nos
massa !!!

hj agressivo pra cimadisso ;)

valeuz mesmo :)

mas, isso pega so o nat ?

tenho:

DSL - Roteador ( NAT ) --- Roteador ( Limite de Banda ) --- REDE

obs: como nao consegui limitar banda de saida depois de passar pro
nat, coloquei duas maquinas para o servico. elas estavam paradas mesmo
e eu queria usar PF

posso colocar el qualquer um, pois quem passa do primeiro vai pra internet :)

matheus
On 7/18/06, Christopher Giese - iRapida <[EMAIL PROTECTED]> wrote:
> opa
>
> um count para pf:
>
> ##
> Upload pfctl -v -sr|grep "from ipqueVOCEquer" -A 1|grep Bytes|awk
> '{print $7}'
>
> Download pfctl -v -sr|grep "to ipqueVOCEquer" -A 1|grep Bytes|awk
> '{print $7}'
> ##
>
> usar os 2 ao mesmo tempo sem problemas. (claro desde que vc nao
> tenha 2000 regras em cada um - rs)
>
> estou trabalhando na ideia do Diego ipfw + snmp.. deu uma
> googleada e achei como montar.
>
> a ideia
> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp.html
>
> o script
> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp
>
> Funcionou 100% muito legal mesmo
>
> mas para mim nao pode ser com ipfw... tem que ser com pf. entaum
> estou portando o ipfwsnmp  para pf assim que estiver funcional eu
> distribui na net
>
> :)
>
> t+
>
> Christopher Giese 
> [EMAIL PROTECTED]
>
>
> Nenhum _de_Nos wrote:
> > hmmm, entao me restao duas saidas.
> >
> > ou eu uso nat+firewall com pf e faco ipfw so para count ( como dito,
> > sem bloquear nem interferir em nada )
> >
> > ou eu procuro algo como count para pf
> >
> > eu posso ter pf e ipfw rodando ao mesmo tempo ?
> >
> > e obrigado pelas respostas :)
> >
> > matheus
> >
> >
>
> -
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Diego Linke
Chris,

Idéia melhor ainda!!!

Deixa separado em sets diferentes.
Set 1 para os counts e set 2 para os pipes/queues ...

Quando for zerar com o script de limitação de banda:
ipfw delete set 1
ipfw pipe flush (ou ipfw pipe delete (não me recordo)).


O esquema de sets diferentes é a melhor maneira com certeza, eu estou
sem nenhum FreeBSD aqui para testar mas na documentação do IPFW é bem
facil verificar como usar os sets com IPFW.

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Christopher Giese - iRapida
Blz

vou testar isto.

mas vou portar para PF de qq jeito (risos)

afinal... ja comecei... e parar no meio agora ...tiraria todo o tchan da 
coisa (risos)

;)


Diego Linke wrote:
> Chris,
>
>   
>> mas isto tb estaria zerando os pipes / queues / etc...etc..etc ???
>>
>> 
>
> Ele apagaria os pipes e queues, mas não todas as regras do firewall.
> Acho que seria a melhor opção!
>
> Abraços
>
>   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Diego Linke
Chris,

> 
> mas isto tb estaria zerando os pipes / queues / etc...etc..etc ???
> 

Ele apagaria os pipes e queues, mas não todas as regras do firewall.
Acho que seria a melhor opção!

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Christopher Giese - iRapida
Blz

mas isto tb estaria zerando os pipes / queues / etc...etc..etc ???


Diego Linke wrote:
> Christopher,
>
>   
>> calma homi
>>
>> 
>
> Eu estou calmo :D
>
>   
>> assim tenho um LIMITADOR de banda rodando com ipfw + dummynet. 
>> onde tenho varios funcionarios que o alimentam atravez de .txt e scripts
>>
>> quando os funcionarios rodam os scripts... ZERA O IPFW e realizmenta 
>> o mesmo
>>
>> ou seja.. o contador VAI PRO PAU
>>
>> por isso pensei em usar pf... pois nesta maquina nao uso pf... e ninguem 
>> ZERARIA situacoes do mesmo (rs)
>>
>> fragou ???
>> 
>
> Entendi!!!
> Solução:
> As regras de count ficariam entre os números 0-1000 e as de limitação de
> banda de 10001 a 2000, dai na hora do script "zerar" o ipfw ao invez de
> ele executar um "ipfw -qf flush" ele executaria "ipfw del 10001-2000".
>
> Abraços
>
>   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Diego Linke
Christopher,

> calma homi
> 

Eu estou calmo :D

> assim tenho um LIMITADOR de banda rodando com ipfw + dummynet. 
> onde tenho varios funcionarios que o alimentam atravez de .txt e scripts
> 
> quando os funcionarios rodam os scripts... ZERA O IPFW e realizmenta 
> o mesmo
> 
> ou seja.. o contador VAI PRO PAU
> 
> por isso pensei em usar pf... pois nesta maquina nao uso pf... e ninguem 
> ZERARIA situacoes do mesmo (rs)
> 
> fragou ???

Entendi!!!
Solução:
As regras de count ficariam entre os números 0-1000 e as de limitação de
banda de 10001 a 2000, dai na hora do script "zerar" o ipfw ao invez de
ele executar um "ipfw -qf flush" ele executaria "ipfw del 10001-2000".

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Christopher Giese - iRapida
Risos

calma homi

assim tenho um LIMITADOR de banda rodando com ipfw + dummynet. 
onde tenho varios funcionarios que o alimentam atravez de .txt e scripts

quando os funcionarios rodam os scripts... ZERA O IPFW e realizmenta 
o mesmo

ou seja.. o contador VAI PRO PAU

por isso pensei em usar pf... pois nesta maquina nao uso pf... e ninguem 
ZERARIA situacoes do mesmo (rs)

fragou ???

Diego Linke wrote:
> Christopher,
>
>   
>> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp
>>
>> Funcionou 100% muito legal mesmo
>>
>> mas para mim nao pode ser com ipfw... tem que ser com pf. entaum 
>> estou portando o ipfwsnmp  para pf assim que estiver funcional eu 
>> distribui na net
>>
>> 
>
> Porque não pode ser com IPFW ?
> Não vejo problemas de você manter o seu Firewall com PF+CARP+ALTQ e
> deixar a parte de accouting para o IPFW+SNMP.
>
> Abraços
>
>   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Diego Linke
Christopher,

> http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp
> 
> Funcionou 100% muito legal mesmo
> 
> mas para mim nao pode ser com ipfw... tem que ser com pf. entaum 
> estou portando o ipfwsnmp  para pf assim que estiver funcional eu 
> distribui na net
> 

Porque não pode ser com IPFW ?
Não vejo problemas de você manter o seu Firewall com PF+CARP+ALTQ e
deixar a parte de accouting para o IPFW+SNMP.

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Christopher Giese - iRapida
opa

um count para pf:

##
Upload pfctl -v -sr|grep "from ipqueVOCEquer" -A 1|grep Bytes|awk 
'{print $7}'

Download pfctl -v -sr|grep "to ipqueVOCEquer" -A 1|grep Bytes|awk 
'{print $7}'
##

usar os 2 ao mesmo tempo sem problemas. (claro desde que vc nao 
tenha 2000 regras em cada um - rs)

estou trabalhando na ideia do Diego ipfw + snmp.. deu uma 
googleada e achei como montar.

a ideia
http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp.html

o script
http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp

Funcionou 100% muito legal mesmo

mas para mim nao pode ser com ipfw... tem que ser com pf. entaum 
estou portando o ipfwsnmp  para pf assim que estiver funcional eu 
distribui na net

:)

t+

Christopher Giese 
[EMAIL PROTECTED]


Nenhum _de_Nos wrote:
> hmmm, entao me restao duas saidas.
>
> ou eu uso nat+firewall com pf e faco ipfw so para count ( como dito,
> sem bloquear nem interferir em nada )
>
> ou eu procuro algo como count para pf
>
> eu posso ter pf e ipfw rodando ao mesmo tempo ?
>
> e obrigado pelas respostas :)
>
> matheus
>
>   

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nenhum _de_Nos
hmmm, entao me restao duas saidas.

ou eu uso nat+firewall com pf e faco ipfw so para count ( como dito,
sem bloquear nem interferir em nada )

ou eu procuro algo como count para pf

eu posso ter pf e ipfw rodando ao mesmo tempo ?

e obrigado pelas respostas :)

matheus

-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Evandro Zampieri
Matheus,

Eu uso o modelo que o Diego disse e funciona legal... Pra economizar regras 
eu não utilizei o count propriamente dito, peguei o tráfego direto das 
regras do pipe do IP do usuário.

Fiz algumas alterações e ficou assim:
Você precisará de 2 arquivos, um pra ser o .conf do mrtg e o outro que será 
um script que esse .conf vai chamar.

Exemplo das regras do ipfw do usuário com o IP 192.168.1.185 sendo 64K 
Upload e 128K Download:
ipfw add 11185 pipe 64 ip from 192.168.1.185 to any in via vr1
ipfw add 11185 pipe 192 ip from any to 192.168.1.185 out via vr1

Essa regra após um "ipfw show 11185" gera a saída para os scripts 
trabalharem, a terceira coluna são os bytes trafegados, veja...
# ipfw show 11185
11185   605994 pipe 64 ip from 192.168.1.185 to any in via vr1
11185  137   47824 pipe 192 ip from any to 192.168.1.185 out via vr1


Aqui está o arquivo .conf que deve ser chamado pelo mrtg no cron...
#BOF
#GLOBAL OPTIONS
WorkDir: /usr/local/www/data/mrtg
Language: brazilian
WriteExpires: YES
Refresh: 600
Interval: 5
Options[_]: growright, bits
XSize[_]: 300
YSize[_]: 100
#TOTAL COUNTER
Target[IP185]: `/usr/local/script/ipfw-ip185.sh`
Title[IP185]: Trafego do IP 192.168.1.185
PageTop[IP185]: Trafego do IP 192.168.1.185
#EOF

Aqui está o script que pega os bytes da regra do ipfw do IP em questão...
# cat /usr/local/script/ipfw-ip185.sh
#!/bin/sh
out=`/sbin/ipfw show 11185 | grep in | /usr/bin/awk '{print $3}'`
in=`/sbin/ipfw show 11185 | grep out | /usr/bin/awk '{print $3}'`
echo $in
echo $out
echo 0
echo -n 0
#EOF


[]s
EVANDRO ZAMPIERI
E-COMP Provedor Internet
Afiliado à Rede Global Info
Rua Santos Dumont, 521
Birigüi - SP - 16200-095
FoneFax (18) 3644-6000

- Original Message - 
From: "Diego Linke" <[EMAIL PROTECTED]>
To: ""Lista_Brasileira_de_Discussão_sobre_FreeBSD_(FUG-BR)"" 

Sent: Tuesday, July 18, 2006 11:31 AM
Subject: Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks


Nenhum de nos,

>
> estou tentando fazer um sistema para ver trafego nat ( contar bytes de
> e/s de cada cliente ) para mandar via snmp para cacti/mrtg e estou
> tendo problemas ( nao sou eximio programador C ) em tratar a estrutura
> **mbuf que recebo ( quase resolvida, via mtod virando struct ip ),
> probemas em acessar essa struct ip e por final com problemas em
> mostrar estes dados.
>

Você não precisa fazer um sistema para isso o FreeBSD já faz isso :-)

Crie regras de Count no IPFW  e depois com um patch no isc-snmpd (se não
me engano já está no ports este patch) você consegue pegar tráfego por
regras do IPFW via snmp.

Estas regras de count, apenas contariam o que está passando sem fazer
nenhum espécie de match (allow, deny, divert...), neste caso elas
deverão estar antes da regra divert.

Exemplo:
ipfw add 100 count ip from any to IP via INTERFACE
ipfw add 101 count ip from IP to any via INTERFACE

E depois monitorar via SNMP as regras 100 e 101.
Agora a imaginação pode ir longe pois com count você pode fazer
estatística do que for necessário.

Espero ter ajudado!

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nilson Debatin
Em Ter, 2006-07-18 às 11:02 -0300, Nenhum _de_Nos escreveu:
> estou salvando um array com os valores s_addr que recebo da (struct
> ip).src_ip.s_addr. mas nao sei ainda transformar este valor em ip
> legivel :(
> 
> queria saber se alguem sabe onde vejo mais sobre isso. faco buscas no
> codigo do kernel, mas isso nao eh o ideal. nao eh eficiente pra mim e
> nem didatico heheh :)

Acho que um lugar interessante pra você encontrar como fazer essa
conversão é no codigo fonte do ifconfig, pois ele vai pegar um ip q
esta na placa de rede de alguma struct e mostrar na tela.

[]s
Nilson


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Diego Linke
Nenhum de nos,

> 
> estou tentando fazer um sistema para ver trafego nat ( contar bytes de
> e/s de cada cliente ) para mandar via snmp para cacti/mrtg e estou
> tendo problemas ( nao sou eximio programador C ) em tratar a estrutura
> **mbuf que recebo ( quase resolvida, via mtod virando struct ip ),
> probemas em acessar essa struct ip e por final com problemas em
> mostrar estes dados.
> 

Você não precisa fazer um sistema para isso o FreeBSD já faz isso :-)

Crie regras de Count no IPFW  e depois com um patch no isc-snmpd (se não
me engano já está no ports este patch) você consegue pegar tráfego por
regras do IPFW via snmp.

Estas regras de count, apenas contariam o que está passando sem fazer
nenhum espécie de match (allow, deny, divert...), neste caso elas
deverão estar antes da regra divert.

Exemplo:
ipfw add 100 count ip from any to IP via INTERFACE
ipfw add 101 count ip from IP to any via INTERFACE

E depois monitorar via SNMP as regras 100 e 101.
Agora a imaginação pode ir longe pois com count você pode fazer
estatística do que for necessário.

Espero ter ajudado!

Abraços

-- 
Diego Linke
Public Key: http://www.gamk.com.br/gamk.asc


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Patrick Tracanelli
Nenhum _de_Nos wrote:
> On 7/18/06, Patrick Tracanelli <[EMAIL PROTECTED]> wrote:
> 
>>Matheus, essa msg eh fora da lista.
> 
> 
> mal entao ... nao sabia ... :(

hehe fora da lista era a minha, pra informar que era em pvt, mas agora 
ja foi pra lista hehe ;-) nao esquenta

> era so isso mesmo ... muito obrigado mesmo velho. como falei, eu nao
> iria notar nunca isso ... :)

Blz tem bastante gente com dificuldades pra enviar email pra lista por 
enviar com HTML.

Valeu :-)

-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
[EMAIL PROTECTED]
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nenhum _de_Nos
On 7/18/06, Patrick Tracanelli <[EMAIL PROTECTED]> wrote:
>
> Matheus, essa msg eh fora da lista.

mal entao ... nao sabia ... :(

> Agora sua msg foi com sucesso pra FUG, voce apenas removeu o uso de HTML
> ou fez mais algo? Era isso entao?

era so isso mesmo ... muito obrigado mesmo velho. como falei, eu nao
iria notar nunca isso ... :)

> Valeu :)

matheus

-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] modulo do kernel - exemplo de pffil_hooks

2006-07-18 Por tôpico Nenhum _de_Nos
hail,

estou tentando fazer um sistema para ver trafego nat ( contar bytes de
e/s de cada cliente ) para mandar via snmp para cacti/mrtg e estou
tendo problemas ( nao sou eximio programador C ) em tratar a estrutura
**mbuf que recebo ( quase resolvida, via mtod virando struct ip ),
probemas em acessar essa struct ip e por final com problemas em
mostrar estes dados.

o exemplo que temla cria um arquivo em /dev onde se faz cat e se le o
conteudo. no meu caso, nao to conseguindo isso. o cat nao acaba ...

estou salvando um array com os valores s_addr que recebo da (struct
ip).src_ip.s_addr. mas nao sei ainda transformar este valor em ip
legivel :(

queria saber se alguem sabe onde vejo mais sobre isso. faco buscas no
codigo do kernel, mas isso nao eh o ideal. nao eh eficiente pra mim e
nem didatico heheh :)

a ideia era isso ficar algo decente para ser um
natmonitor.souceforge.net para o FreeBSD.

:)

matheus

-- 
We will call you cygnus,
The God of balance you shall be
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd