darkstat static binary (IP Traffic Bandwidth Monitor) by djtm

Hallo,

anbei die Module. Wie ich schon sagte, ist bei 7270 ist nf_contrack.ko fehlerhaft. Falls du also irgendwas außer x_tables.ko und ip_tables.ko brauchst, musst du auf 04.xx downgraden. Da ist noch der ältere Kern 2.6.19.2 und da geht alles :) Sag mir bescheid, falls du diese auch brauchst.

Ahja: es geht ohne Freetz :)

Gruß
R@d
 

Anhänge

  • iptablesModule_mipsel_2.6.32.41.zip
    18.7 KB · Aufrufe: 16
  • iptablesModule_mipsel_2.6.13.1-ohio.zip
    61.7 KB · Aufrufe: 12
Tagchen,

Erstmal: <<darkstat>> ist toll!
( Was so alles an meinen DSL-Anschluss los ist wenn man nicht Zuhause ist )
Über 6 Stunden hat eine IP aus den Vereinigten Staaten versucht das User/Passwort auf Port 22 herauszufinden.
Hätte er es geschafft wäre er trotzdem nicht draufgekommen weil das einzigste Pseudoterminal von mir bereits besetzt war ;)
(/dev/pts/0)

Ein dickes Lob an den Portierer, Programmierer und alle Unterstützer !!!

Und:

Dankeschön, sowas braucht ein Netzwekadministrator/Statistiker und Hackerjäger ;)

Eine Anregung hätt ich auch:
Ich benutze die Reverse-Proxy Einstellung von httpd in der httpd.conf um auf darkstat umzuleiten.
Dabei habe ich festgestellt:
1.) graphs.js style.css und die graphs.xml liegen im serverroot
2.) Der link zu den Grafiken ist ein einfaches /

Das hat zur Folge das ich dann in der httpd.conf sowas machen muss:
Code:
P:/darkstat/:fritz:88/
P:/graphs.js:fritz:88/graphs.js
P:/graphs.xml:fritz:88/graphs.xml
P:/style.css:fritz:88/style.css
P:/hosts/:fritz:88/hosts/
Trotzdem führt bei dieser Lösung der Link von Graphs (/) immer auf die httpd Startseite und nicht zu darkstat (logisch).

Viel besser wäre es (und auch strukturierter) wenn es so aussehen würde:
1.) style.css = /css/style.css
2.) graphs.js = /js/graphs.js
3.) graphs.xml = /xml/graphs.xml
4.) Anstatt Graphs nach / zu verlinken entweder /index.html oder besser /graphs/ oder /graphs/index.html verwenden.
5.) Vielleicht noch ein favicon.ico in /img/ und referenziert in der Startseite? (Wer steht nicht auf bunte Bildchen?)

Warum?:
Ich kann / (serverroot) zwar referenzieren, will ich aber nicht (brauch ich für den httpd serverroot).
Wenn ich Verzeichnisse referenzieren kann muss ich nicht wissen wie die Dateien heissen die sich in ihnen befinden.
Das ist in Hinblick auf Änderrungen/Updates von darkstat interessant, denn darum braucht man sich dann nicht mehr zu kümmern.

Demnach würde die httpd.conf übrigens so aussehen:
Code:
P:/darkstat/:fritz:88/
P:/js/:fritz:88/js/
P:/xml/:fritz:88/xml/
P:/css/:fritz:88/css/
P:/img/:fritz:88/img/
P:/graphs/:fritz:88/graphs/
P:/hosts/:fritz:88/hosts/

Feedback:
Einmal die Ausgabe von /bin/busybox ps
(Ausgabe von cpu ist verschwindend gering)
und ein Startscript für darkstat: darkstart
Ausgabe von ps:
Code:
2569 nobody      416 S   darkstat -i lan -b 0.0.0.0 -p 88 --no-promisc --super ....

Skript darkstart:
Code:
#! /bin/sh
# darkstart 15/02/2013 by koyanisqatsi
# invoke it like a init script with mkuser or start, stop or restart
# example: darkstart mkuser
#          darkstart start
#          darkstart restart
#          darkstart stop
# Note: with database (--import, --export) you have to create (touch) the file first !!!
if [ $# -gt 0 ] ; then
# set the path to darkstat
darkstat=/var/tmp/bin/darkstat
if [ $1 = "mkuser" ]
then
# adds nobody to passwd and group file
echo "nobody:x:65535:65535:nobody:/nonexistent:/bin/false" >> /etc/passwd
echo "nobody:x:65535:" >> /etc/group
echo "User nobody and group nobody created (dont run me again)"
fi

if [ $1 = "start" ]
then
echo "...starting darkstat"
$darkstat -i dsl \
-b 0.0.0.0 \
-p 88 \
--no-promisc \
--superhost \
--no-dns \
--user nobody \
--chroot /var/tmp/webspace/darkstat \
-f "(dst net not 192.168) or (src net not 192.168)" \
--ports-max 30 \
--ports-keep 15 \
--hosts-max 600 \
--hosts-keep 60 \
--peak-hours 12,0 \
--export statistik.db \
--import statistik.db
echo "...done"
fi

if [ $1 = "stop" ]
then
echo "...stoping darkstat"
killall darkstat
echo "done"
fi

if [ $1 = "restart" ]
then
echo "...restarting darkstat"
killall darkstat
echo "...darkstat killed"
sleep 1
$darkstat -i dsl \
-b 0.0.0.0 \
-p 88 \
--no-promisc \
--superhost \
--no-dns \
--user nobody \
--chroot /var/tmp/webspace/darkstat \
-f "(dst net not 192.168) or (src net not 192.168)" \
--ports-max 30 \
--ports-keep 15 \
--hosts-max 600 \
--hosts-keep 60 \
--peak-hours 12,0 \
--export statistik.db \
--import statistik.db
echo "done"
fi

else
echo $0": No Argument, try one of: mkuser start stop restart"
fi

Gute Arbeit!

Weiter so!


koy
 
Zuletzt bearbeitet:
Hello

Please tell me or link me, which package is good for my fritz 7390, stock, not freetz firmware? Thx.
 
Kann ich mit darkstat auch IPv4 und IPv6 Traffic unterscheiden?
 
Hi,

ich habe mir auch mal Darkstat auf meine 7390 gepackt, um mal zu gucken, was so los ist. Zu meiner enttäuschung bleiben die Spalten für "Service" und "Hostname" leer, auch wenn ich no-dns nicht nutze. Auf der Konsole kommen Meldungen mit

darkstat (10476): non-blocking poll
darkstat (10476): DNS: dequeued 95.155.216.110
darkstat (10476): DNS: 95.155.216.110 is "Bad value for ai_flags".

Ich fand dazu ein Ticket von OpenWRT: https://dev.openwrt.org/ticket/12323

Hinzu sei gesagt, dass ich Darkstat über den Patch in der Menuconfig mit gebaut habe, und die Version 3.0.714 nutze.
 
Du kannst ja mal dieses Version testen, dazu im Freetz-Ordner:
erst alte löschen "rm -rf make/darkstat",
dann die neue auspacken "gzip -d darkstat_3_0_717.patch.gz"
und reinpatchen "patch -p0 < darkstat_3_0_717.patch"

Bei mir wurde die (von mir in den Patch eingebaute) Warnung für NI_IDN beim Bauen für eine 7390 nicht angezeigt.
 

Anhänge

  • darkstat_3_0_717.patch.gz
    1.2 KB · Aufrufe: 19
Hallo,

ich habe an dem Addon Interesse - Freetz ist installiert. Leider kapiere ich es nicht wie ich das Teil installieren soll. Steh vermutlich auf dem Schlauch.

Kann mir jemand eine kleine Anleitung schreiben was ich machen soll.

danke
 
In etwa das, was oben steht ;-)

Voraussetzung: Du bist im "freetz"-Ordner und dort liegt auch die oben angehängte Datei "darkstat_3_0_717.patch.gz"
Code:
rm -rf make/darkstat
gzip -d darkstat_3_0_717.patch.gz
patch -p0 < darkstat_3_0_717.patch
#
# jetzt Wählen und bauen
#
make menuconfig
# hier darkstat wählen
# und mit speichern das menuconfig verlassen
make
# sollte eine FW mit dem Programm bauen.

Wenn du die FW flasht hast du das Paket auf der Box und musst es je nach Belieben von Hand starten, oder auch wie z.B. oben beschrieben mit einem Startskript. Es gibt dafür keine GUI.
 
kann man darkstat auch ohne Freetz installieren. Da die Box sehr instabiel läuft (OS 86.06.01), obwohl nichts zusatzlich in Freetz integriert wurde. Benötige die neuere Firmware wg. Kindersicherungserweiterung :)

Danke
 
Hallo

An 2 statischen Versionen (MIPS/MIPSEL) hätt ich auch interesse.
Toll wäre auch, wenn das HTML/CSS editierbar wäre.
 
Hallo,

ich bin zur Zeit dabei, eine Anleitung für darkstat zu entwickeln.

kann man darkstat auch ohne Freetz installieren.
also: JA!

Ihr könnt aber die Binarys jetzt schon herunterladen:

- mips
- mipsel (habe ich bereits getestet :) )

Viel Spaß schon mal damit
 
Zuletzt bearbeitet:
...
Viel besser wäre es (und auch strukturierter) wenn es so aussehen würde:
1.) style.css = /css/style.css
2.) graphs.js = /js/graphs.js
3.) graphs.xml = /xml/graphs.xml
4.) Anstatt Graphs nach / zu verlinken entweder /index.html oder besser /graphs/ oder /graphs/index.html verwenden.
5.) Vielleicht noch ein favicon.ico in /img/ und referenziert in der Startseite? (Wer steht nicht auf bunte Bildchen?)
...

Moin, habe das mal (teilweise) versucht. Letztlich sind all diese "Dateien" (graphs.js, graphs.xml, style.css, /hosts/) nur Platzhalter für intern in dem Programm erzeugte Daten!
Ich habe das so gepatcht, dass man "beliebige" Pfade davor packen kann und statdarmäßig "index.html" die Graphen anzeigt (aber auch alles unbekannte).

Ist als statisches Binary für mips und mipsel angehängt, ebenso ein darum erweiterter Patch für freetz (statisch bauen und "tolerantes html").

Hilft dir das?
 

Anhänge

  • darkstat3.0.717_tolerant_mips_static.gz
    194.6 KB · Aufrufe: 20
  • darkstat3.0.717_tolerant_mipsel_static.gz
    200 KB · Aufrufe: 11
  • darkstat_3_0_717_tolerant.patch.gz
    2.2 KB · Aufrufe: 6
Zuletzt bearbeitet:
Feedback darkstat3 @MaxMuster

Erstmal: Beide Versionen Laufen. Vielen Dank.

Vorarbeit: Anlegen des Benutzers nobody (/etc/passwd) und des Verzeichnisses /var/empty
Startparameter: darkstat -i lan -p 8081 -b 192.168.178.3 (Repeater, eine 7270v2 mipsel)
ps
Code:
11388 nobody    1652 S    darkstat -i lan -p 8081 -b 192.168.178.3
httpd Reverse-Proxy Eintrag:
Code:
P:/darkstat/:192.168.178.3:8081/
darkstat3_01.png
Der httpd ist über DynDNS erreichbar und darkstat ist über /darkstat/ aufrufbar.
Code:
http://meindyndns.no-ip.org[COLOR="#808080"][:PORT][/COLOR]/darkstat/
Der Reverse-Proxy Eintrag ermöglicht dies ohne Portfreigabe der 7270v2.
Alle Links von darkstat funktionieren tadellos.

...cool. :cool:
 
Zuletzt bearbeitet:
Von mir auch vielen Dank an alle. Auf der FB7490 läuft es.

Auf der FB7390 (84.05.22) startet es nicht, kein Prozess zu sehen
und bringt auch keine Fehlermeldung:
7390# darkstat3.0.717_tolerant_mips_static -i lan -p 88 -b 192.168.0.1 --verbose
darkstat (22507): max 1000 hosts, cutting down to 500 when exceeded
darkstat (22507): max 200 ports per host, cutting down to 30 when exceeded
darkstat (22507): starting up
darkstat (22507): daemonizing to run in the background!
darkstat (22508): I am the main process
darkstat (22509): set uid/gid to 0/0
darkstat (22507): parent waiting
darkstat (22508): DNS child has PID 22509
darkstat (22508): capturing on interface 'lan' with no filter
darkstat (22508): linktype is 1
darkstat (22508): calculated snaplen minimum 74
darkstat (22508): using snaplen 96
darkstat (22508): capturing in promiscuous mode
darkstat (22508): all capture interfaces prepared
darkstat (22508): listening on http://192.168.0.1:88/
darkstat (22508): loaded 35 protos
darkstat (22508): loaded 0 tcp and 0 udp servs, from total 0
darkstat (22508): chrooted into: /var/empty
darkstat (22508): set uid/gid to 0/0
darkstat (22508): entering main loop
darkstat (22507): parent done reading, calling waitpid
darkstat (22507): waitpid ret 0, status is 2141462092
7390#
Woran könnte das liegen?
 
Zuletzt bearbeitet:
Vielleicht daran, weil du da keinen Benutzer Namens nobody angelegt hast?
Code:
koyash # darkstat -i lan -p 8081 -b 192.168.178.3 --verbose
darkstat (13089): max 1000 hosts, cutting down to 500 when exceeded
darkstat (13089): max 200 ports per host, cutting down to 30 when exceeded
darkstat (13089): starting up
darkstat (13089): daemonizing to run in the background!
darkstat (13089): parent waiting
darkstat (13090): I am the main process
darkstat (13090): DNS child has PID 13091
darkstat (13090): capturing on interface 'lan' with no filter
darkstat (13091): set uid/gid to 3010/0 <-- nobody
ps
Code:
13090 nobody    1644 S    darkstat -i lan -p 8081 -b 192.168.178.3 --verbose
 
Zuletzt bearbeitet:
Dann würde ich ja folgende Fehlermeldung bekommen:
24120: error: getpwnam("nobody") failed: no such user
24119: error: getpwnam("nobody") failed: no such user
Habe es auch schon mit "--user root" versucht - geht auf der FB7390 auch nicht, auf der FB7490 schon.
Und /var/empty ist auch angelegt.

Warum nimmt man nicht den user root?
Ist es normal, daß es 2 Prozesse werden (FB7490):
1882 nobody 1752 S darkstat_v3.0.717.mips -i lan -p 8081 -b 192.168.178.1
1883 nobody 524 S darkstat_v3.0.717.mips -i lan -p 8081 -b 192.168.178.1
 
Zuletzt bearbeitet:
Check ob der Port frei ist (netstat -tl).
--no-dns , dann startet nur noch ein Prozess (spart Speicher).
Ein zusätzlicher Prozess ist für die Namensauflösung zuständig.
Ohne den siehst du nur noch IPv4/IPv6 Nummern.
 
Zuletzt bearbeitet:
Ja, Port ist frei, sonst gibt es auch eine Fehlermeldung.
Aber ich habe da einiges mit "iptable" gemacht, ob es daran liegt?
Aber der Prozess müßte doch wenigstens starten.
Wenn ich nicht auf die Grafiken komme, dann wäre mir klar, daß es daran liegt.

Danke für den Parameter, werde ich dann nehmen.
Sollte man alle Parameter von Dir aus #102 nehmen?

Auf der FB7170 geht es auch.
 
Ein paar Parameter müssen entfernt werden...
Code:
--superhost \
--peak-hours 12,0 \
...nicht in dieser Binary.
Ausserdem -b und -p in start und restart.
Datenbank touchen nicht vergessen.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.