Ich übernehme keine Garantie!!!!
Das Script habe ich und ein Klassenkamerad von mir geschrieben (eigentlich mehr er als ich) damit die Verbindungen der Schüler an unserer Schule ins Internet Dokumentiert werden können, falls der Staatsanwalt mal anklopft.
Die Endian-Firewall ermöglicht es einen Log des Proxy-Dienstes anzulegen. In diesem sind alle Verbindungen, inkl. der Anmeldenamen der User, abgespeichert die über den Proxy zustande kamen. Abgespeichert werden diese Daten in /var/log/squid/access.log .
Diese Datei erreicht vor allem in Netzen mit vielen Usern (z. B. Schulen) schnell eine unübersichtliche Größe. Desweiteren enthält sie uninteressante Angaben wie z. B. den UNIX-Zeitstempel. Um die access.log kleiner und übersichtlicher zu halten soll diese täglich gesichert, ausgewertet und anschließend entleert werden. Hierzu wird das Script „tageslog.sh“ verwendet. Dieses wird im Verzeichnis /var/log/squid/ abgelegt und mit Hilfe der Datei „crontab“ in /etc täglich ausgeführt.
Was macht tageslog.sh?
1. Es kopiert die access.log in das Verzeichnis /var/log/squid/archivlog, welches zuvor von Hand angelegt werden muss, und speichert sie unter dem Dateinamen „access.log.TAG-MONAT-JAHR“ ab.
2. Anschließend wird der Inhalt der access.log teilweise eingelesen und in der Datei „squid.archiv.TAG-MONAT-JAHR.log“ abgelegt. Desweitern enthält diese neue Datei (liegt ebenfalls im Verzeichnis /var/log/squid/archivlog) eine Kopfzeile, aus der hervorgeht was die einzelnen Einträge bedeuten und in welcher Reihenfolge sich diese befinden.
3. Die access.log wird entleert.
So erhält man nun für jeden Tag im Jahr zwei Dateien (die Originale, und die selbst erstellte) die nur die Daten eines Tages enthalten und somit eine bessere Übersicht bieten.
Mit dem Script „monatslog.sh“, welches ebenfalls im Verzeichnis /var/log/squid/ abgespeichert wird, wird zu Beginn eines Monats ein tar.gz Archiv mit dem Namen „squid.archiv.MONATSKUERZEL-JAHR.tar.gz“ erstellt. Dieses Archiv enthält alle Dateien des Vormonats, die von tageslog.sh erstellt wurden.
So erhält man pro Jahr 12 Archive. Der monatliche Start von monatslog.sh wird ebenfalls mit der Datei crontab in /etc gesteuert.
Hier mal ein kleise Beispiel, ein Eintrag der access.log vor ausführen des Scripts:
Jan 13 16:25:04 proxy squid[5939]: 1294932304.953 203 192.168.113.249 TCP_MISS/200 688 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAEYidUCIIrVAioFiqoAAAEyBYmqAAAB fanti FIRST_UP_PARENT/content3 application/vnd.google.safebrowsing-chunk
Jan 13 16:25:05 proxy squid[5939]: 1294932305.491 131 127.0.0.1 TCP_MISS/200 630 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAAY_vEBIP7xATIF_ngAAAE - DIRECT/74.125.39.100 application/vnd.google.safebrowsing-chunk
Jan 13 16:25:05 proxy squid[5939]: 1294932305.493 348 192.168.113.249 TCP_MISS/200 748 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAAY_vEBIP7xATIF_ngAAAE fanti FIRST_UP_PARENT/content3 application/vnd.google.safebrowsing-chunk
Jan 13 16:25:05 proxy squid[5939]: 1294932305.772 126 127.0.0.1 TCP_MISS/200 1357 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGN3wByDe8AcqBV74AQABMgVd-AEAAQ - DIRECT/74.125.39.139 application/vnd.google.safebrowsing-chunk
Jan 13 16:25:05 proxy squid[5939]: 1294932305.773 280 192.168.113.249 TCP_MISS/200 1475 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGN3wByDe8AcqBV74AQABMgVd-AEAAQ fanti FIRST_UP_PARENT/content3 application/vnd.google.safebrowsing-chunk
Daraus wird dann diese Datei erstellt:
Datum:
Einlogzeitpunkt ; Dienst ; IP-Adresse des PC ; Aktion ; Status (200 = OK) ; Groesse (in bytes) ; Methode ; Internetseite ; Benutzer ; Wie wurde die Seite geladen? ; Hostname oder HostIP ; Kopfzeile der Homepage
20 Jan 2011:
16:25:04 ; proxy squid[5939] ; 192.168.113.249 ; TCP_MISS ; 200 ;688 ; GET ; http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAEYidUCIIrVAioFiqoAAAEyBYmqAAAB ;fanti ; FIRST_UP_PARENT ; content3 ; application/vnd.google.safebrowsing-chunk
16:25:05 ; proxy squid[5939] ; 127.0.0.1 ; TCP_MISS ; 200 ;630 ; GET ; http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAAY_vEBIP7xATIF_ngAAAE ;- ; DIRECT ; 74.125.39.100 ; application/vnd.google.safebrowsing-chunk
16:25:05 ; proxy squid[5939] ; 192.168.113.249 ; TCP_MISS ; 200 ;748 ; GET ; http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAAY_vEBIP7xATIF_ngAAAE ;fanti ; FIRST_UP_PARENT ; content3 ; application/vnd.google.safebrowsing-chunk
16:25:05 ; proxy squid[5939] ; 127.0.0.1 ; TCP_MISS ; 200 ;1357 ; GET ; http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGN3wByDe8AcqBV74AQABMgVd-AEAAQ ;- ; DIRECT ; 74.125.39.139 ; application/vnd.google.safebrowsing-chunk
16:25:05 ; proxy squid[5939] ; 192.168.113.249 ; TCP_MISS ; 200 ;1475 ; GET ; http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGN3wByDe8AcqBV74AQABMgVd-AEAAQ ;fanti ; FIRST_UP_PARENT ; content3 ; application/vnd.google.safebrowsing-chunk
Leider ist das erstellen der neuen Datei in der nur ein Teil der Daten der originalen enthalten ist recht zeitaufwendig da die Einträge Zeile für Zeile abgearbeitet werden.