Startseite

Lehrerfortbildung

Arktur

 

Skripte für den c't-Kommunikationsserver

Auf dieser Seite werde ich nach und nach Skripte usw. veröffentlichen, die ich als nützliche Ergänzungen in unseren c't-Kommuikationsserver eingebaut habe. Mit geringfügigen Änderungen sollten sie auch auf anderen Linux-Systemen laufen. Ich übernehme keine Verantwortung für das fehlerfreie Funktionieren der Skripte. Da Sie für die Einbindung mit root-Rechten auf dem Server arbeiten müssen, sollten Sie auf die Skripte verzichten, falls Sie nicht wissen, was Sie da tun!

Big Brother surft mit...

Das Skript proxy.cgi wertet die Access-Log-Dateien des WWW-Proxies Squid aus und stellt die besuchten Seiten übersichtlich dar. Auf diese Weise können z. B. Lehrer im Rahmen ihrer Aufsichtspflicht das Surfverhalten ihrer Schüler kontrollieren. Nach Download der Archivdatei (proxy.tgz; 6065 Byte) muss das TGZ-Archiv in das Verzeichnis /home/www/admin2 kopiert und die folgende Befehlssequenz ausgeführt werden:
        cd /home/www/admin2
        tar -xvzf proxy.tgz
        
Um die NETBIOS-Namen der Rechner korrekt auszugeben, muss man den Hash HOSTS in dem Skript proxy.cgi (ab Zeile 21) an die lokalen Gegebenheiten anpassen. Dieses kann mit einem Editor unter Linux (z. B. joe oder vi) geschehen. Falls Sie die Datei unter Windows oder DOS bearbeiten, beachten Sie bitte, dass der Editor die UNIX-Zeilenumbrüche nicht verändern darf (verwenden Sie ggf. Editoren wie UltraEdit, die auch mit UNIX-Dateien umgehen können).
Genügt die Ausgabe der IP-Nummern, so reicht hier die Zeile my %HOSTS=( );. Anderenfalls müssen die Rechnernamen in den Subnetzen 192.168.*.* von Hand angepasst werden.
Durch Eintragen der IP-Nummern in den Hash %HIDE können Rechner auch gezielt von der Anzeige ausgenommen werden (z. B. Arbeitsplätze im Lehrerzimmer oder im Verwaltungsbereich, bei denen eine Überwachung gegen Datenschutzgesetze verstoßen könnte).
Voraussetzung für das korrekte Funktionieren ist, dass im Verzeichnis /var/log/proxy auch tatsächlich die Logdateien access.log, access.log.0, ..., access.log.9 vorliegen und für den Benutzer www lesbar sind!
Sie rufen das Skript übrigens auf mit http://arktur/admin2/proxy.cgi

Benutzernamen anzeigen

Wenn Sie eine Anzeige der Benutzernamen zusätzlich zur Platzkennung wünschen, müssen Sie folgende zwei Anpassungen durchführen:
  1. Auf den Clients muss ein identd-Dämon laufen. Für ein Netz mit Windows 95/98-Clients ist das wie folgt zu erreichen:
    • Laden Sie das Freeware-Programm identd (Version 1.20 oder Vesion 1.30) vom Server des Autors herunter.
      URL: http://identd.sourceforge.net/#download.
      Für Windows NT und Windows 2000 gibt es ebenfalls einen identd-Dämon, der unter http://info.ost.eltele.no/freeware/identd/ heruntergeladen werden kann. Die folgende Anleitung bezieht sich allerdings auf die erstgenannte Version.
    • Entpacken Sie das heruntergeladene Archiv identd120.zip (bzw. ident130.zip) (z. B. unter Windows mit WinZip) und kopieren Sie die Datei identd.exe in das Verzeichnis /etc/samba/scripts auf Arktur. Damit die Datei die korrekten Rechte hat, geben Sie als root folgendes ein:
                  chmod 755 /etc/samba/scripts/identd.exe
                  chown root.lehrer /etc/samba/scripts/identd.exe
                
    • Ergänzen Sie die Datei /etc/samba/scripts/logon.bat um die folgende Zeile
      \\arktur\netlogon\identd.exe -q
      Künftig wird identd auf jedem Windows-Client beim Anmelden am Samba-Server auf Arktur gestartet (und beim Abmelden wieder beendet).
    Bitte beachten: Sollten Sie in Ihrem Netz außer Windows 95/98-Clients noch weitere Clients haben, die sich am Samba-Server auf Arktur anmelden (z. B. Windows NT-Clients), so könnten beim Starten des identd-Programms Fehlermeldungen auftreten. In diesem Fall empfehle ich, das Programm jeweils lokal auf den Windows 95/98-Clients zu installieren (und z. B. durch einen Eintrag in die Registry starten zu lassen).
  2. Nun muss Squid noch mitgeteilt werden, dass die Benutzerkennungen abzufragen sind. Dazu ergänzen Sie in den Dateien /etc/squid/squid.conf.in und /etc/squid/squid.conf (überflüssig?) folgende Zeilen:
     - Vor der mit "acl manager" beginnenden Zeile:
              acl darfnicht ident "/home/www/admin2/darfnicht"
            
     - Nach den mit "http_access deny" beginnenden Zeilen:
              http_access deny darfnicht
            
    Alle Benutzer, die in der Sperrdatei /home/www/admin2/darfnicht aufgeführt sind, erhalten nun über den Proxy keinen Zugriff mehr auf das WWW. Damit keine anonymen Benutzer surfen können, trägt man in die Datei in eine Zeile ein Minuszeichen ("-") ein.

    Starten Sie nun squid neu durch folgende Kommandos (als root):

              /sbin/init.d/squid stop
              /sbin/init.d/squid start
            

    Mehrfach wurde berichtet, dass die Aussperrungen nicht sofort wirksam wurden. Dieses scheint daran zu liegen, dass der WWW-Server auf arktur unter der Benutzerkennung www läuft und so nicht das Recht hat, den Proxy squid zum Neuladen der Konfigurationsdatei aufzufordern. In diesem Fall hilft es, als Benutzer root den Proxy zeitgesteuert zum Neuladen der Konfigurationsdatei aufzufordern. Dazu gibt man als root den Befehl crontab -e ein und fügt folgende Zeile an:
    10,20,30,40,50,0 * * * * /usr/squid/bin/squid -k reconfigure

Benutzer sperren und freigeben

Klickt man nun in der Ausgabe von proxy.cgi, d. h. in der Übersicht der besuchten Seiten, auf einen Benutzernamen, erhält man die Möglichkeit, diesen Benutzer in die Sperrdatei einzutragen, ihn also von der weiteren WWW-Nutzung auszusperren. Aufgerufen wird dabei das Skript user_aussperren.cgi. Von Hand kann man es wie folgt aufrufen:
http://arktur/admin2/user_aussperren.cgi?benutzer=kennung, wobei kennung durch die gültige Kennung des auszusperrenden Benutzers zu ersetzen ist (bei mir z. B. deckersj). Entsprechend kann man mit http://arktur/admin2/user_freigeben.cgi?benutzer=kennung einem Nutzer wieder den Zugriff auf das WWW freigeben.
Über jeden Sperr- und Freigabevorgang erhält der Benutzer eine Benachrichtigung per E-Mail, außerdem werden diese Vorgänge in der Datei /var/log/proxysperre.log protokolliert.
Eine Übersicht über die aktuell ausgesperrten Benutzer mit der Möglichkeit, sie einzeln wieder freizugeben, findet man unter http://arktur/admin2/darfnicht.cgi

Wichtiger Hinweis

Wenn nicht alle Benutzer - Schüler und Lehrer - über die Protokollierung und Auswertung des Protokolls informiert wurden bzw. diesem Vorgehen z. B. im Rahmen einer Nutzungsordnung zugestimmt haben, kann die Erhebung und Auswertung der Daten gegen (Landes-)Datenschutzgesetze oder (z. B. kirchliche) Datenschutzordnungen verstoßen!


Die alte Version des Skriptes (Stand: 2001-03-19) kann noch über diese Seite heruntergeladen werden.


Rückfragen an Joachim Deckers. Stand: 2002-09-17.