Linux-Arbeitskreis Hamburg

Web-Tools


Neu: Linux-Mailingliste verfügbar.
Die bisherige WebTools-Mailingliste bei listbot.com wird eingestellt, da wir jetzt unsere eigenen Listen verwalten können.
Unter der Adresse linux@hbs.hh.schule.de ist nun eine Mailingliste verfügbar, in der Fragen, Tips und Tricks zu den Linux-Servern ausgetauscht werden können. Zum Abonnieren muß man eine Mail schicken an:
  majordomo@hbs.hh.schule.de
Im Text dieser Mail, nicht im Betreff, muß folgender Text stehen:
  subscribe linux xxx@yyy.de
wobei statt xxx@yyy.de natürlich die eigene Mail-Adresse stehen muß. Bei erfolgreicher Anmeldung bekommt man nach kurzer Zeit eine (noch englische) Bestätigungsmail.

Grundlagen

Für eine weitreichende Akzeptanz unserer Intranet-Lösung ist es wichtig, daß sich die Systembetreuer nicht von vornherein in Linux einarbeiten müssen. Deshalb ermöglicht dieses Programmpaket die Administartion des Servers über das Intranet. Auf einem beliebigen Client muß ein beliebiger Browser gestartet werden, von dem aus das Programmpaket mittels http://192.168.1.1/webtools/ gestartet wird.
Zuerst erfolgt dann ein Authentisierungsprozeß, bei dem auch die Rechte des Benutzers festgestellt werden. Rechte gibt es in drei Stufen:

Diese Rechte können beliebigen Linux-Gruppen zugeordnet werden (In der Grundinstallation sind das die Gruppen admin, lehrer bzw schueler). Nach erfolgreicher Authentisierung sieht jeder Benutzer nur die Funktionen, zu deren Ausführung er auch berechtigt ist.

Das ganze Programmpaket ist modular aufgebaut und erweiterbar. Alle Programme sind in Perl geschrieben, so daß der Quelltext immer vorhanden ist. Neue Funktionen kann man jederzeit einbauen, indem man eigenen Ordner innerhalb von /usr/local/httpd/htdocs/webtools/admin/ anlegt und dort mindestens die Datei modinfo.dat erzeugt, die alle weiteren Informationen enthält. Die Startroutine des Web-Tools Paketes sucht alle entsprechenden Ordner durch und wertet die Dateien modinfo.dat aus. Die Reihenfolge der Auswertung ergibt sich alphabetisch aus den Verzeichnisnamen. Deshalb beginnen die vorliegenden Verzeichnisnamen mit zwei Ziffern.

Hinweis für Downloads

Es gibt immer wieder Berichte über Probleme bei Downloads aus Netscape heraus. Die Programme werden nicht gespeichert sondern angezeigt.
Klicken Sie dann einfach mit der rechten Maustaste auf den Link. Aus dem auftauchenden Kontextmenü wählt man dann den Menüpunkt "Verknüpfung speichern unter", so sollte das klappen.

Was ist schon fertig?

Es wird niemand behaupten, daß die vorliegende Version von Web-Tools fertig ist. Sie ist aber einsatzbereit. Außerdem ist durch die eingebaute Update-Funktion eine Aktualisierung jederzeit leicht möglich.
Unstimmingkeiten in der Oberfläche und der Bedienung werden in der nächsten Zeit sicherlich beseitigt werden. Auch die Zahl der Funktionen wird zunehmen.

Installation

Es muß das Grundpaket webtools_v10.tgz  und die aktualisierte /etc/httpd/access.conf geladen  (s.o.) und z.B. auf eine DOS-Diskette kopiert werden. Dann begibt man sich in das Verzeichnis /usr/local/httpd/htdocs und entpackt das Archiv dort:

  cd /usr/local/httpd/htdocs
  mdir a:
  mcopy a:webtools_10.tgz
  tar xvfz webtools_v10.tgz

Anschließend kopiert man noch die aktualisierte /etc/httpd/access.conf (s.u.)
  
  cd /etc/httpd
  mcopy a:access.conf

Zum Abschluß müssen wir den Apache neu starten
  init 1
  init 2

(Nach beiden Befehlen mu0 man nach kurzer Wartezeit einmal ENTER drücken, um wieder den Eingabeprompt zu bekommen)

Die veränderte access.conf informiert den Webserver Apache darüber, daß er auch in dem Web-Tools Ordner Programme ausführen darf, dafür aber immer ein Authentisierungsprozeß gefordert wird.

Dazu muß der folgende Abschnitt in die Datei /etc/httpd/access.conf aufgenommen werden:

<Directory /usr/local/httpd/htdocs/webtools/admin>
Addtype application/x-httpd-cgi .cgi

Options Indexes FollowSymLinks EXECcgi
authType Basic
authuserFile /etc/httpd/yfh.pwd
authName Schul-Admin
require valid-user
</Directory>

<Directory /usr/local/httpd/htdocs/webtools>
Addtype application/x-httpd-cgi .cgi
Options Indexes FollowSymLinks EXECcgi
</Directory>

Und zwar sollten diese Zeilen direkt hinter folgendem Anfangsabschnitt eingefügt werden:

# access.conf: Global access configuration
# Online docs at http://www.apache.org/

# This file defines server settings which affect which types of services
# are allowed, and in what circumstances. 

# Each directory to which Apache has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 

# Originally by Rob McCool

<Directory />
AllowOverride None
Options None
</Directory>

Diese Änderungen sind der acess.conf, die auf dem Bildungsserver liegt, schon vorgenommen.

Was man nicht vergessen darf ist, daß man zumindest einen Administartator unter Yast einrichten muß. Dazu startet man Yast von der Linux-Konsole, geht dann auf  Administration des Systems, dann auf Gruppenverwaltung und tippt dort in der ersten Zeile admin ein. Wenn es diese Gruppe schon gibt, dann werden die bisherigen Daten angezeigt, sonst wird eine neue Gruppe kreiert. In der letzten Zeile trägt man seinen eigenen Benutzernamen ein. Falls dort schon Namen stehen, muß der neue Name von den bisherigen durch ein Komma (ohne Leerzeichen) abgetrennt sein. Nun kann man die Eintragungen mit F4 ändern oder die Gruppe anlegen.
Nun verläßt man Yast mit dreimal ESC. Danach braucht man Yast eigentlich nicht mehr!

Alle weiteren Änderungen kann man dann als Administrator über das WebTools Paket vornehmen.

Server-Konfiguration

Für das Web-Tools-Paket sind folgenden Dateien und Verzeichnisse von Bedeutung:
/usr/local/httpd/htdocs/webtools Das Stammverzeichnis für das Web-Tools Paket.
/usr/local/httpd/htdocs/webtools/config.pl Konfigurationsdatei für das Programmpaket. Hier werden Pfade und Rechte definiert.
/etc/httpd/access.conf Eine der Konfigurationsdateien des Apache muß angepaßt werden.
modinfo.dat In jedem Ordner mit Web-Tools Funktionen findet sich diese Datei.
index.cgi Die meisten Funktionen des Paketes benötigen Root-Rechte, werden aber nur mit den Rechten von wwwrun ausgeführt. Deshalb muß bei dem Programm, das gestartet wird, das SIUD-Bit gesetzt sein. Das hat bei Perl-Programmen keine Wirkung, deshalb wird jedes Perl-Script von einem kleinen C-Programm gestartet, bei dem das SUID-Bit gesetzt ist.
index.pl Es macht Sinn, die jeweiligen Start-Scripten mit diesem Namen zu belegen. Gestartet wird das Script dann von index.cgi.
/usr/local/httpd/htdocs/webtools/cgiclean Löscht alle Dateien *.cgi unterhalb des Admin-Verzeichnisses, damit sie von makecgi erneut aufgebaut werden können.
/usr/local/httpd/htdocs/webtools/makecgi Dieses Programm erstellt für jedes ausführbare *.pl Programm unterhalb von admin eine gleichnamiges Startprogramm mit der Endung *.cgi und setzt es SUID
/usr/local/httpd/htdocs/webtools/index.html Diese Datei wird vom Webserver gestartet und lädt pwdupdate.cgi mittels Refresh.
/usr/local/httpd/htdocs/webtools/pwdup.pl Bibliotheksroutine für das Passwortupdate
/usr/local/httpd/htdocs/webtools/userdata.pl Bibliotheksroutine für die Benutzerverwaltung
/usr/local/httpd/htdocs/webtools/formdata.pl Bibliotheksroutine, wertet einen String mit CGI-Daten aus und schreibt die Daten in ein Hash-Arrax. Unsichere zeichen werden in Hex-Codes konvertiert.
/usr/local/httpd/htdocs/webtools/miscfunc.pl Bibliotheksroutine mit verschiedenen Funktionen
/usr/local/httpd/htdocs/webtools/output.pl Bibliotheksroutine mit Ausgabe-Funktionen z.B. für die Oberfläche
/usr/local/httpd/htdocs/webtools/pwdupdate.cgi Mit diesem Programm wird pwdupdate.pl mit SUID gestartet
/usr/local/httpd/htdocs/webtools/pwdupdate.pl Dieses Programm erstellt die Passwortdatei für den Apache aus der Standardpasswortdatei von Linux.
/usr/local/httpd/htdocs/webtools/source/setroot2.c Quelltext für die *.cgi Programme. Wird von makecgi benutzt.

Verfügbare Updates

webt_v11-tgz
21.10.98
Totalupdate. Nahezu alle Funktionen wurden modifiziert und beschleunigt. Neue Funktionen sind:
  • Squid ACL Editor
  • Samba-Anmeldungen
  • Drucker Warteschlange
  • Mailinglisten erstellen.
uucp.tgz
16.11.98
Eigentlich kein Update, sondern nur ein Service, nämlich die Datei, die das UUCP und News-System an die WiNShuttle Änderungen vom 17.11.98 anpasst.
update2.tgz
20.11.98
Die Benutzerverwaltung wurde deutlich beschleunigt. Die UUCP-Umstellung wird nun auch von den WebTools berücksichtigt. Ein kleines Problem in der Update-Funktion wurde beseitigt (mehrer Archive in /tmp).
Neu ist die Funktion Squid-Scan.

Web-Tools Funktionen (Stand 20.11.98)

WinShuttle Start/Stop

Die Startseite zeigt an, ob die Internet-Verbindung aktuell erlaubt ist oder nicht. Sie kann dann sowohl ab- als auch aufgebaut werden.

Berechtigt: Admin, Lehrer

Eigenes Passwort ändern

Es wird genau das gemacht, was die Funktion verspricht. Es kann das eigene Passwort geändert werden.

Berechtigt: Admin, Lehrer, Schüler

Mail per UUCP austauschen

In unserer Standard-Konfiguration wird der Mailaustausch per UUCP nachts von einem Cron-Job ausgeführt. Mit diesem Programm kann der Austausch jederzeit durchgeführt werden.
Dazu wird erst die Mail per uucico ausgetausch, anschließend mit Sendmail verteilt.

Berechtigt: Admin, Lehrer

Verzeichnis-Viewer

Mit diesem Programm können die Rechte für Dateien und Verzeichnisse angesehen und verändert werden. Ein Administrator kommt an fast alle Dateien, Lehrer und Schüler nur an ihre eigenen Dateien. Zukünftig sollen Lehrer auch an die Dateien ihrer Schüler kommen können.

Berechtigt: Admin, Lehrer (eingeschränkt), Schüler (eingeschränkt)

CD-ROM-Laufwerk (un)mounten

Das CD-Rom Laufwerk muß nach dem Einlegen einer CD aktiviert werden. Das geschieht hier über den Menüpunkt mount. Erst nach einem unmounten (Deaktivieren) kann die CD dann wieder aus dem Laufwerk genommen werden. Das Programm zeigt, wenn eine CD gemountet ist, deren Inhaltsverzeichnis an.

Berechtigt: Admin, Lehrer

Gruppenverwaltung

Über diese Funktion können neue Linux-Gruppen angelegt werden oder vorhandene Gruppen gelöscht werden. Es können aber nur Gruppen bearbeitet werden, die eine ID von mindestens 100 haben.

Berechtigt: Admin

Benutzerverwaltung

Es können Benutzer angelegt und gelöscht, sowie die Daten und Paßwörter der vorhandenen Benutzer geändert werden. Es werden aber nur Benutzer mit einer ID von mindestens 500 angezeigt.

Alle Benutzer bearbeiten darf nur ein Administrator. Lehrer haben nur Zugriff auf die Benutzer, die sie selber mit diesem Programmpaket auch angelegt haben.

Berechtigt: Admin, Lehrer (eingeschränkt)

Software-Update vom HBS

Diese Funktion ist nicht ganz ungefährlich, aber hoffentlich sehr praktisch. Es wird auf  ftp://lbs.hh.schule.de nachgeschaut, ob Updates für das Web-Tools Paket vorliegen und diese dann geladen und eingespielt. Alle Aktionen müssen Schritt für Schritt bestätigt werden. Die Update bleiben nur innerhalb des Web-Tools Verzeichnisses. Andere Dateien und Ordner werden hier nicht beeinflußt.
Im letzten Schritt können dann auch Programme ausgeführt werden, die in einem speziellen Verzeichnis abgelegt wurden. Diese Programme können dann auch andere Bereiche manipulieren.

Berechtigt: Admin

Squid ACL Editor

Das Programm SQUID (unser Cache) ist in der Lage Sperrlisten zu verwalten. WWW-Adressen, die in einer dieser Listen auftauchen können dann nicht mehr bezogen werden.
Es gibt zwei Sorten von Listen, die Domain-Liste, alle Domains die hier auftauchen können nicht aufgerufen werden. Bei Auslieferung eingetragen sind playboy.com, penthouse.com und whitehouse.com (das www kann jeweils entfallen).
Bei der RegExp-Liste können die URL's nicht mehr bezogen werden, in denen der angegebene Ausdruck auftaucht. Bei Auslieferung eingetragen ist "chat". Das bewirkt, dass Seiten wie www.bild.de/chat/ nicht mehr aufgerufen werden können. Aber auch nicht www.chatanooga.com. Also etwas Zurückhaltung hier.

Berechtigt: Admin

SQUID-Scan

Es ist relativ schwierig (eigentlich unmöglich) alle unerwünschten Seiten zu sperren. Deshalb bietet diese Funktion die Möglichkeit die Zugriffslisten des Squid nach Stichworten zu durchsuchen. Gibt man als Stichwort z.B. "sex" ein, so erhält man als Anwort eine Liste mit allen Aufrufen von Adressen in denen dieses Wort irgendwie auftaucht. Klickt man dann bei einem Eintrag auf "info", so wird versucht den Aufrufer zu ermittlen.

Berechtigt: Admin

Samba-Anmeldungen

Hiermit kann festgestellt werden, welche Windows-Rechner momentan bei Samba angemeldet sind, also auf File- oder Druckdienste zugreifen.

Berechtigt: Admin, Lehrer

Drucker-Warteschlange

Ist am Server ein Drucker angeschlossen, so kann man dessen Warteschlange hier einsehen und auch löschen.

Berechtigt: Admin, Lehrer

Mailinglisten erstellen

In der Benutzerverwaltung werden Klassen eingetragen. Dies wird hier benutzt um alle Schüler einer derartigen Klasse einfach anschreiben zu können. Nachdem dieser Menüpunkt ausgeführt wurde (sollte man gelegentlich tun) erreicht eine Mail an die Klasse alle Teilnehmer.

Berechtigt: Admin


Kritik, Anregungen und Ergänzungen willkommen. Zusammengestellt von Uwe Debacher, letzte Änderung am 27.01.2006