OPT_ACCOUNTING - detaillierte Traffic-Erfassung Valid XHTML 1.0


Dieses OPT hat das Ziel, möglichst genau den verbrauchten Traffic jedes Clients zu erfassen und auszuwerten:

Dieses Dokument bietet folgende Informationen:

Lizenz:

Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation herausgegeben, weitergeben und/oder modifizieren; entweder unter Version 2 der Lizenz oder (wenn Sie es wünschen) jeder späteren Version.
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben (src/accounting/gpl.txt). Der Text der GNU General Public License ist auch im Internet unter
http://www.gnu.org/licenses/gpl.txt veröffentlicht.
Eine inoffizielle deutsche Übersetzung findet sich unter http://www.gnu.de/gpl-ger.html. Diese Übersetzung soll nur zu einem besseren Verständnis der GPL verhelfen; rechtsverbindlich ist alleine die englischsprachige Version.

Gewährleistungs- und Haftungsausschluss:

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber ohne jegliche Gewährleistung - sogar ohne die implizite Gewährleistung der Marktreife oder der Eignung für einen bestimmten Zweck. Details finden Sie in der GNU General Public License (GPL).
Für Datenverlust, Schäden an Hard- oder Software oder sonstige Schäden übernehme ich keinerlei Haftung.

Update:

Mit der Version 1.1.5 hat sich das Format der Datendateien geändert. Es werden nicht mehr Tagesdateien geschrieben, sondern nur noch die Monatsdateien. Daten (Tagesdateien) älterer Version können auf der Console/SSH mit dem Script acccal.sh umgewandelt werden (Syntax: acccal.sh yyyy mm). Damit das Script auf den fli4l kopiert wird, muss ACCOUNTING_ACCCAL='yes' gesetzt werden (siehe unten).

Installation:

Voraussetzungen:

Für die Anzeige im Browser ist der Mini-Webserver (httpd) und sort aus dem Tools-Paket erforderlich.

Empfehlungen:

Die Daten werden beim Beenden der Internet-Verbindung (ip-down) und bei jedem Reboot bzw. Herunterfahren automatisch weggeschrieben.
Mit der Eingabe von accounting.sh (Console, Telnet oder SSH) oder durch einen Klick auf 'Aktualisieren' im Browser kann dies manuell geschehen.

Zusätzlich macht es natürlich Sinn, dies mit easycron zu automatisieren.
z.B.: 5 Minuten vor jeder vollen Stunde:

      EASYCRON_1_CUSTOM=''
      EASYCRON_1_COMMAND='/usr/local/bin/accounting.sh'
      EASYCRON_1_TIME='55 * * * *'

Normalerweise darf das gesamte maskierte Netz auf den Router zugreifen. Da aber nur der Traffic der Clients, die in der base.txt stehen, erfasst wird, kann man mit OPT_BASEHOSTSONLY nur den Clients, die auch tatsächlich erfasst werden, den Zugriff gewähren.
OPT_BASEHOSTSONLY ist nicht mehr in OPT_ACCOUNTING enthalten und ist nun als eigenständiges Paket erhältlich.

Konfiguration:

OPT_ACCOUNTING='no'                       # install OPT_ACCOUNTING

'yes' aktiviert das Paket

ACCOUNTING_DIR='/boot/data/accounting'    # dir for accounting-Data

Hiermit wird das Datenverzeichnis festgelegt. Es sollte nicht in der RAM-Disk liegen.
Falls man die Daten in der RAM-Disk sammeln will, um seine Festplatte o.ä. zu entlasten, sollte man sich OPT_SARFILE näher ansehen und ggf. damit die Daten sichern und wiederherstellen.
Das Verzeichnis /var/run/accounting darf NICHT als Datenverzeichnis angegeben werden und NICHT von OPT_SARFILE gesichert und wiederhergestellt werden.

ACCOUNTING_INT='ppp0'                     # Internet-Interface

Hier werden die Interfaces angegeben, über die FLI4l ins Internet routet. Mehrere Interfaces werden einfach durch Leerzeichen getrennt angegeben.
Beispiel:

      ACCOUNTING_INT='ppp0'               # DSL
      ACCOUNTING_INT='ippp0 ippp1'        # ISDN
      ACCOUNTING_INT='eth1'               # Ethernet
ACCOUNTING_MAXINT='4294967296'            # max. Interface value in Byte

Diese Angabe ist optional und kann komplett weggelassen werden.
Der Wert sollte die maximale Anzahl an Bytes sein, die ein Interface haben kann, bevor es überläuft. Diese Variable muss nur angegeben werden, wenn das Interface Maximum NICHT 4294967296 Byte (4GB) ist.

ACCOUNTING_ACCCAL='no'                    # copy acccal.sh

Diese Angabe ist optional und kann komplett weggelassen werden.
Bei Angabe von 'yes' wird das Script acccal.sh auf den fli4l kopiert. Mit diesem Script können die Tagesdaten (wie sie von Accounting bis zur Version 1.1.3 erstellt wurden) in die Monatsdateien umgewandelt werden (siehe auch den Punkt 'Update' oben).
Mit dem Parameter -r können aus dem Monatsdateien wieder die Tagesdateien erzeugt werden. Dies ist beispielsweise nützlich, wenn die index.acc zerstört wurde oder um Modifikationen an den Daten vorzunehmen.
Das Script wird so aufgerufen: acccal.sh yyyy mm [-r].

ACCOUNTING_DEBUG_INT='no'                 # Interface logfile for debugging

Diese Angabe ist optional und kann komplett weggelassen werden.
Bei Angabe von 'yes' wird im Accounting-Verzeichnis eine Datei namens int.log erstellt, in dem die Berechnung der Interfacedaten protokolliert wird.

FAQ:

F: Was bedeutet die Differenz?
A: Nur der geroutete Traffic der eingetragenen Clients wird durch die Regeln erfasst. Das Internetinterface erfasst jeglichen Traffic vom/zum Internet. Die Differenz kann z.B. Traffic von nicht eingetragenen Clients, Proxy, E-Mail-Server, Downloadtools auf dem Router und TCP/IP Overhead sein.

F: Seit ich OPT_ACCOUNTING installiert habe, wählt sich der Router regelmäßig selbstständig ein, auch wenn kein Rechner im LAN läuft.
Wie kann ich das abstellen?
A: Der fli4l-Maintainer von dnsmasq hat diesen Tipp gegeben:
Entferne bitte mal in 'opt/etc/rc.d/rc370.dnsmasq' in der Zeile 46:
# echo "bogus-priv"
das '#'. Also Zeile 46 sollte dann so aussehen:
echo "bogus-priv"
Anschließend neue Boot-Disk bauen und testen.

Feedback:

Ich würde mich sehr über eine kurze Rückmeldung freuen, auch wenn das Paket ohne jegliche Probleme läuft.
Bitte schreibt
mir, wie Ihr das Paket einsetzt. Interessant wären für mich vor allem diese Informationen:

Viel Spaß mit Accounting wünscht Euer
Michael Knipping
fli4l@knibo.de