Gå til innhold

Logge mengden av trafikk på en lokal IP


Anbefalte innlegg

Noen som vet om et "program" som logger mengden av trafikk som går fra

internett inn til den enkelte interne IP ?

 

Jeg bor for tiden i Australia i ett bofelleskap , vi deler en internett

oppkobling ,og siden vi kun kan laste ned 20 GB i månden hadde det vært fint

å kunne finne ut hvem av oss som bruker opp 20 GB kreditten..

 

Redhat 7.2

eth0 er koblet på internett

eth1 er koblet på det lokale nettet.

Lenke til kommentar
Videoannonse
Annonse

Ja det suger med 20 GB i mnden.. .

Men det er faktisk ganske mye i forhold til andre ISPer her i OZ..

 

Feks Telstra (Som er i samme posisjon som Telenor) har 3 GB i mnden ..

 

heheh ....

 

Er det noen som kan hjelpe meg med dette problemet , jeg trenger sårt ett program/script som kan finne ut hvor mye hver enkel lokal IP har hentet ned..

 

Iptraf er ikke helt det jeg er ute etter, det logger ikke trafikken på ipen men på selve kortet.

 

Men takker uansett

Lenke til kommentar

Quote:



Hver enkelt regel i firewall oppsettet ditt (hvis du har ett) har byte counters.

Bruk ipchains eller iptables og sett opp en regel for hver maskin

så kan du se på statistikken for hver regel (hvor mange packets og bytes som går igjennom).




 

Kan du forklare litt nermere hvordan dette gjøres ?

Jeg har lagt 2 nye regler med iptables..

 

iptables -N bruker1_bruk

iptables -N bruker2_bruk

Lenke til kommentar

OK. Nå er jeg ingen reser på iptables så jeg bruker ipchains

som eksempel. Du skjønner sikkert tegninga:

 

iptables -N host1_in

iptables -N host1_out

iptables -N host2_in

iptables -N host2_out

 

 

ipchains -A input -s 0/0 -d [bruker1's IP] -j host1_in

ipchains -A input -s [bruker1's IP] -s 0/0 -j host1_out

 

ipchains -A input -s 0/0 -d [bruker2's IP] -j host2_in

ipchains -A input -s [bruker2's IP] -s 0/0 -j host2_out

 

Nå har du altså satt opp regler som gjør at all trafikk

inn til bruker 1 blir filtrert i host1_in. Og all trafikk

ut fra brukeren blir filtrert i host1_out.

 

Nå kan du bruke ipchains -nvxL for å se hvor mye trafikk som

har gått til hver enkelt target.

Og ved dette kan du lage et script som trekker ut hvor mye hver enkelt host

bruker.

 

Tilslutt: Tror dette er ganske likt med iptables, så jeg

tror ikke dette skal være no prob.

 

 

 

 

 

 

Dette er hva jeg har gjort til nå.

 

iptables -N testbruker

iptables -A INPUT -d 192.168.0.2 -j testbruker

iptables -A OUTPUT -s 192.168.02 -j testbruker

 

Dette er noe jeg har fått beskjed om av en bruker på en nyhets gruppe .

 

Men det kommer ingenting under testbruker når jeg skriver iptables -v -L

 

All data kommer opp under OUTPUT og INPUT og ikke under testbruker ..

Altså den lister bare opp alt som kommer inn og går ut, den deler det ikke opp til brukerene.

Lenke til kommentar

Gjør slik:

 

iptables -N host1_in

iptables -N host1_out

 

 

 

iptables -A INPUT -s 0/0 -d [bruker1's IP] -j host1_in

 

iptables -A host1_in -s 0/0 -d [bruker1's IP] -j ACCEPT

 

iptables -A OUTPUT -s [bruker1's IP] -s 0/0 -j host1_out

 

iptables -A host1_out -d [bruker1's IP] -s 0/0 -j ACCEPT

 

prøv dette, det skal funke..

 

 

mvh

 

Oskar

Lenke til kommentar

Quote:


On 2002-04-04 08:46, oskar1 skrev:

Gjør slik:


iptables -N host1_in

iptables -N host1_out




iptables -A INPUT -s 0/0 -d [bruker1's IP] -j host1_in


iptables -A host1_in -s 0/0 -d [bruker1's IP] -j ACCEPT


iptables -A OUTPUT -s [bruker1's IP] -s 0/0 -j host1_out


iptables -A host1_out -d [bruker1's IP] -s 0/0 -j ACCEPT


prøv dette, det skal funke..



mvh


Oskar



 

 

Tusen takk , det virker fint ..

Det eneste var at jeg var nødt til å bytte ut OUTPUT med FORWARD.

 

Jeg hadde tre "chains" før jeg gjorde noe .

INPUT

OUTPUT

FORWARD

 

INPUT må da være traffik som går rett på linuxboxen siden det ikke var mer enn 30 mb. ? eller ??

 

OUTPUT må jo være alt som går ut (Men dette er ikke så viktig)

 

FORWARD må jo da være all trafikk som forwardes fra linux boxen og ut til clientene .

 

Jeg har ikke peiling , men det virker slik siden FORWARD hadde 1400 mb og INPUT bare hadde 30 mb så virker det som at det er FORWARD jeg skal bry meg om ..

 

 

Uansett så takker jeg så mye for hjelpen ..

Lenke til kommentar

Hmmm, ja om jeg ikke husker så mye feil så er det slik:

 

Input: inn til maskinen (firewallen)

Output: ut fra firewallen. Og lokalt?

 

forward: fra firewall til klient, fra klient til nettet og fra nettet til klient.

 

Så det er rett det du sier, ja.

 

Funker det vist du skriver:

 

iptables -N host1_in

iptables -N host1_out

 

 

 

iptables -A FORWARD -s 0/0 -d [bruker1's IP] -j host1_in

 

iptables -A host1_in -s 0/0 -d [bruker1's IP] -j ACCEPT

 

iptables -A FORWARD -s [bruker1's IP] -s 0/0 -j host1_out

 

iptables -A host1_out -d [bruker1's IP] -s 0/0 -j ACCEPT

 

har en liten anelse om at det er slik det skal være..

 

 

mvh

 

Oskar

Lenke til kommentar

poenget her var vel å kunne se hvilken av de to ipadressene som brukte mest av denne limiten på 20 GB i måneden.

Da må du gjøre noe lignende mitt forslag.

 

Jeg mener du kan filtrere så mye du vil ved å legge til andre regler.

 

iptables -A inn_burk1 -p tcp --syn -j ACCEPT

iptables -A inn_burk1 -p tcp -m state --state NEW,INVALID -j DROP

 

legger du til feks. disse reglene, så vil du ha filtrert kjedene her:

 

iptables -A FORWARD -s 0/0 -d [bruker1's IP] -j host1_in

 

iptables -A host1_in -s 0/0 -d [bruker1's IP] -j ACCEPT

 

Test og se!

Lenke til kommentar

Det virker perfekt nå asså, men hvordan skal jeg klare å få det det til å lagre det og regne sammen liksom ?

 

Jeg bruker nå

 

iptables -v -L | grep _bruk >> /var/log/internettbruk

 

i en crontabel , men det blir liksom ikke helt som jeg vil ha det , siden det ikke er dato osv, og den legger ikke i sammen verdiene visst jeg rebooter.

Lenke til kommentar

Quote:


On 2002-04-04 16:11, A_B_C_D_E_F skrev:

Det virker perfekt nå asså, men hvordan skal jeg klare å få det det til å lagre det og regne sammen liksom ?


Jeg bruker nå


iptables -v -L | grep _bruk >> /var/log/internettbruk


i en crontabel , men det blir liksom ikke helt som jeg vil ha det , siden det ikke er dato osv, og den legger ikke i sammen verdiene visst jeg rebooter.



 

Nei, dette vet jeg faktisk ikke...

iptables har en egen log funksjon, hvordan den virker hvet jeg ikke helt.

 

sikkert no sånt som:

iptables -A FORWARD (eller inn_burk1) -j LOG

--log-prefix "IPTABLES INN:"

 

Kan prøve å forklare litt nermere i morgen..

 

Ellers finnes det noen program som gjør dette for deg... ta en kopp kaffe, en snus eller eventuelt en røyk (pils er også ganske ok..)og søk på freshmeat.net.

 

Hva tror du Dj_offset?? noen gode innspill?

 

 

mvh

 

 

Oskar

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...