Medienraum für Schulen
Ein Projekt der Linux User Group Marl und des Hans Böckler Berufskolleg
Marl,
Dies ist die Fortsetzung von "Medienecke zum
Nulltarif" . Auf dieser Seite geht es um zusätzliche Schritte
die wir seitdem unternommen haben, um das Gesamtsystem noch anwenderfreundlicher
und nahezu wartungsfrei zu machen, sodass man es z.B. in einem Internetcafe
einsetzen kann, ohne daß jemand ein wachsames Auge auf Benutzer und
Geräte haben muss.
Der Raum wurde am 1.10.2001 der Öffentlichkeit präsentiert
und wird seit dem von mehreren Schulklassen und Lehrern intensiv genutzt.
Bisher läuft alles ohne Administrator-Eingriffe zu unserer Zufriedenheit.
Hardware
Server
AMD Athlon 1000C, 1GB RAM, 40GB UDMA IDE Festplatte , ISDN: Fritzcard Classic(ISA),
noname-PCI-Netzwerkkarte(Realtec 8139)
Der Server sollte in einem Raum/Schrank stehen, zu dem nur der Administrator
Zutritt hat.
14 Clients
überwiegend 486DX2-66, 16MB RAM, S3Virge PCI Grafikkarte, Netzwerkkarte:
entweder noname-100MBit-PCI-Netzwerkkarte(Realtek 8139) oder 10MBit-ISA
3com509
15" Monitor, DIN Tastatur, serielle Maus
Die Clients kann man in einem oder mehreren Computer-Räumen konzentrieren
oder einzeln oder
in kleinen Gruppen über alle Klassenräume verteilen.
Netzwerk
cat 5 Twisted-Pair Kabel,
ein 16-Port Switch oder 2 Stück 8-port Switch., jeweils noname
10/100MBit
Der 8er Switch hat DM 100.- gekostet. Einen 16-port Switch gibts für
ca. DM 350.-. Wir empfehlen nur Switche zu verwenden und keine Hubs.
Software
Basis
kmLinux 2.0, SuSE 7.1, LTSP, etherboot
Anwendungen
Netscape 4.77 , Netscape 6.1, Opera 5, konqueror
StarOffice 5.2, gimp, gnumeric, AbiWord... (siehe Beschreibung
von kmLinux)
eigene Erweiterungen
Bei der "Medienecke zum Nulltarif" (Netd@ys 2000) ging es hauptsächlich
darum, Diskless Thin-Clients zu realisieren und damit eigene Erfahrungen
zu sammeln. "Forschungsobjekt" waren u.a.
-
verschiedene Netzwerkkarten
-
verschiedene EPROM Typen
-
Eigenarten alter PCs (486er)
-
Resourcenverbrauch (CPU, RAM, Netzwerklast)
-
Verhalten verschiedener Anwendungen im echten Multi-User Betrieb
Das was wir "damals" mit 5 Clients gemacht haben , auf 10 oder 20 Clients
zu übertragen, ist kein Problem - einfach mehr RAM in den Server und
eventuell andere Komponenten beschleunigen: schnellere Festplatte, CPU,
Netzwerk-Switch statt -Hub.
Die eigentliche Innovation des "Medienraum im Eine-Welt-Massstab" (netd@ys
2001) liegt in vielen kleinen Software-Verbesserungen, die das System sehr
wartungsarm und fehlertolerant machen:
-
Pro Arbeitsplatz gibt es einen User-Account ohne Passwort (surfer1 bis
surfer14), echte BenutzerAccouts sind weiterhin möglich.
-
Es ist nicht mehr möglich, dass sich mehrere Benutzer unter dem selben
Namen anmelden.
-
Die Benutzereistellungen von surferN werden nach jedem Logout wieder
auf sinnvolle Defaultwerte zurückgesetzt.
-
Wenn sich surferN abmeldet, wenden alle seine Prozesse terminiert
(slay)
-
Die Anzahl der Prozesse pro Benutzer wurde begrenzt.
-
Der Arbeitsspeicher pro Benutzer wurde begrenzt.
-
"halbtote" Anwendungen, die noch Ressourcen verbrauchen, werden automatisch
erkannt und sauber terminiert (verynice)
-
Wichtige Anwendungen wie StarOffice, Gimp und diverse Browser sind bereits
vorkonfiguriert, sodass ein neuer Benutzer keine Install-Programme,Copyright-Meldungen,
Browser-Einstellungen... durchlaufen muss, sondern sofort produktiv loslegen
kann.
-
Der Windowmanager IceWM ist vorkonfiguriert und bietet eine Einsteiger-freundliche
Oberfläche bei geringem Ressourcenverbrauch. Bei Bedarf kann aber
auch KDE2 oder Gnome verwendet werden.
-
Dank der kmLinux-Distribution stehen viele schulrelevante Anwendungsprogramme
zur Verfügung.
Die folgende Checkliste habe ich erstmal nur für mich geschrieben,
falls mein Schmierzettel mal verloren geht.
Nach und nach werde ich die einzelnen Punkte erläutern, sodass
auch andere verstehen was gemeint ist.
Anhand der Checkliste kann man erkennen, dass bei der Entwicklung des
Systems vieles in Handarbeit gemacht wurde.
Das trifft aber nur auf den Prototyp zu. Weitere Systeme lassen sich
relativ leicht und schnell aufbauen, indem man die Festplatte/Partition
des Servers auf den neuen Server kopiert und danach nur noch wenige Anpassungen
vornimmt.
Checkliste
LTSP
-
dhcpd - Sicherstellen, dass dhcpd beim Hochfaren des Servers automatisch
gestartet wird
-
/etc/dhcpd.conf - Alle Clients mit ihren MAC-Adressen müsssen
hier 'drinstehen. Darauf achten, dass die Kerneldatei vmlinuz.XXX zur Netzwerkkarte
des Clients passt.
-
$LTSROOT/etc/ltsp.conf - hier kann man diverse Einstellungen für
einzelne Clients machen, siehe LTSP-Dokumentation
-
tftpd - ein Eintrag in /etc/inetd
-
/etc/hosts und $LTSROOT/etc/hosts IP-Adressen und Namen von
Server und allen Clients hier eintragen
-
nfsserver - Sicherstellen, dass nfs beim Hochfaren des Servers automatisch
gestartet wird
-
Server Name: book1 IP: 192.168.1.240
-
Clients Namen: t01..t14
IP: 192.168.1.1...14
-
nfsutils
-
spy & netcat - per Client-startscript wird das kleine Programm
spy auf jedem Client gestartet. Per netcat(auf dem Server) kann ich dann
mit den spys auf den Clients kommunizieren um mir z.B. dessen RAM Verbrauch
o.ä. anzeigen zu lassen
-
EPROMS brennen - mache ich mit einem Atari 1040ST, weil ich dafür
eine Prommer(Brenner) Hard- & Software habe.
-
NW-Karten mit (DOS) Setup-Programm einstellen - den meissten Karten
muss man mit so einem Setup-Programm mitteilen, dass sie das Boot-EPROM
benutzen sollen. Das Programm liegt einer neugekauften Karte auf Diskette
bei. Bei alten Karten bekommt man die Programme aus dem Internet. Bei Noname-Karten
kann es schwierig sein, ein passendes Programm zu finden. Vorgehensweise:
von einer DOS-Bootdisk booten, Setup-programm aufrufen, Boot-ROM: 16kB,
Memory-Bereich: meisst egal, defaultwert nehmen.
-
syslogd des Servers soll Meldungen der Clients loggen. siehe Startscript
von syslogd oder /etc/rc.config(bei SuSE)
-
XF86Config für die Clients erstellen & testen
Admin & Sicherheit
zusätzliche Pakete(Suse7.1)
-
mrtg - Netzwerk-Monitor & -Statistik , per Web-Browser abrufbar
-
ipchains oder iptables - Paketfilter-Firewall
-
rsync - wird benutzt um Home-Verzeichnisse zu putzen und um Server
Backups durchzuführen.
-
tcpdump - zeigt Netzwerkpakete, hilfreich bei Fehlersuche
-
gps - Systemmonitor
-
gtop - Systemmonitor
-
qps - Systemmonitor
-
xosview - Systemmonitor
-
gkrellm - Systemmonitor
-
acct (sa) - System Accounting. Macht Langzeit-Statistiken über
Anwendungen und Ressourcen-Verteilung
-
kdialog - kleine Dialogbox, die im Look gut zum kdm Loginfenster
passt
-
netdate - Uhrzeit von einem Zeitserver im Internet holen
-
ntop - Netzwerk-Monitor & -Statistik , per Web-Browser
abrufbar (port 3000)
-
nmap - security scanner
-
strace - zeigt systemcalls einer Anwendung, hilft beim Debuggen
-
squid /etc/squid.conf - WWW-Proxy
-
xchat IRC-Client ~/.xchat/xchat.conf
- leider sind die IRC-Netze so eingestellt, dass pro offizieller IP nur
ein User chatten darf :-(
-
ding - eines von 3 installierten english-deutsch, deutsch-english
Wörterbüchern
-
xv - PublicDomain Bildbetrachter und -konverter
-
CUPS - cooler Druckserver ( http://loclahost:631 )
zusätzliche Programme aus dem Internet
-
/sbin/slay - slay 1.2 by Chris Ausbrooks <fish@bucket.ualr.edu>
, Shellscript welches alle Prozesse des angegebenen Benutzers terminiert.
-
/usr/local/sbin/verynice /usr/etc/verynice.conf
- manche Anwendungen sind dafür bekannt, dass sie bei einem Absturz(der
Anwendung) sehr viel CPU-Leistung an sich reissen. Verynice erkennt diese
, die Anwendung bekommt dann einen höhren nice-level, d.h. weniger
Priorität, und wird schliesslich komplett terminiert.
-
ipcheck.py - mit ipcheck.py registriert sich der Server
bei der Internet-Einwahl bei DynDNS, so dass er für den Fern-Administrator
übers Internt leich erreichbar ist.
-
Netscape 6.1 - kaum ein Unterschied zu mozilla, aber lassen wir
dem Anwender die Wahl
-
Mozilla - freier Internet-Browser
-
Xalf - grosse Anwendungen benötigen einige Sekunden um zu starten.
Xalf zeigt den Benutzer dass etwas passiert, so dass der Benutzer hoffentlich
nicht mehr mehrfach versucht, dieselbe Anwendung zu starten. Ich habe Xalf
gepatcht wegen Bitmap-Darstellungs-Fehler bei Verwendung auf X-Terminals
-
xsteak - ein weiteres english-deutsch, deutsch-english Wörterbuch
sonstiges
-
schweres root-passwort einstellen
-
cron-gesteuerte Internet-Einwahl für Fernwartung
-
/public Verzeichnis für Lehrer-&Schüler-Dateien
-
user "referenz" UID 501 (GID 200 ?)
-
anonyme Surfer: surfer01-surfer14 UID: 2001-2014 Gruppe: surfers, GID:200
-
Spiegelplatte oder Spiegelpartition, Backup mit rsync
-
DiskQuota - nicht so einfach wegen ReiserFS :-(
-
ulimit:
-
/etc/security/limits.conf
-
/etc/pam.d/*
-
/tmp -> /home/tmp
-
ISDN auto-dial idle-time: 600sec.
-
/etc/profile.local
-
Partitionstabelle ausdrucken
-
firewall aktivieren und prüfen
-
/etc/X11/xdm/xdm-config : timeout für abgeschatete Terminals herabsetzen
-
/etc/X11/xdm/* scripte erweitern
-
/home/referenz - Beispiel homedir für anonyme surfer
-
eventuell: kdm auf der Server-Console abschalten
-
/etc/inetd.conf sicher machen
-
AbiWord-Fonts für die Terminals
-
eventuell Netscape 4 patchen, damit gif-animationen einfrieren
-
/etc/opt/kde2/share/config/kdm/kdmrc anpassen
-
icewm Menueinträge bearbeiten
-
~/.kde/share/config/kioslave - enthält Einstellungen von
Koquerer
-
~/.kde/share/config/kdeglobals - "
" "
"
-
/home/referenz/opera/opera.adr - zugriff für alle erlauben
-
Startseite & Proxy aller Browser einstellen
-
Netscape & Opera Buttons: nur Icon, kein Text
-
alle Browser: submit-Nachfrage abschalten
-
door - chipkarten-Türöffner installieren & testen
Hinzugefügte oder veräderte Dateien & Verzeichnisse (kein
Anspruch auf Vollständigkeit)
/opt/kde2/bin/kdialog
/opt/kde2/share/locale/de/LC_MESSAGES/kdialog.mo
/usr/share/doc/packages/kdialog
/usr/local/bin/xalf
/usr/local/bin/xalfoff
/sbin/slay
/usr/etc/verynice.conf
/usr/local/sbin/verynice
/tftpboot/*
/public/*
/opt/ltsp/*
/home/*
/etc/passwd
/etc/shadow
/etc/dhcpd.conf
/etc/exports
/etc/inetd.conf
/etc/init.d/boot.local
/etc/X11/xdm/Xreset
/etc/X11/xdm/Xservers
/etc/X11/xdm/Xsetup
/etc/X11/xdm/Xstartup
/etc/X11/xdm/homedir_reset
/etc/X11/xdm/xdm-config
/etc/ppp/ip-up.local
/usr/local/sbin/ipcheck.py
Links
2 Kapitel aus meiner Linkliste
Linux in der Schule
diskless/thin-client
Artikel im Linux-Magazin
von Dirk von Suchodholetz zu einem sehr ähnlichen, aber nicht identischen
Projekt:
Download
Kompletter Terminalserver von CD installierbar: kmLinux
TSE
Original LTSP-Pakete & Doku, verschiedene Kernel und X-Server:
Linux
Terminal Server Project
Code für's Boot-PROM: etherboot
oder rom-o-matic.net
Support, Durchführung von Installation, Wartung, Schulung...
Da dies ein OpenSource Projekt ist, kann jede Schule selbst entscheiden,
welchen Teil der Aufgaben
aus eigener Kraft geleistet werden kann und für welchen Teil man
sich externe Unterstützung wünscht.
Kostenlosen oder sehr preiswerten Support bekommt man bei ca. 300 deutschen
Linux
User Groups.
Allerdings verfügt nicht jede LUG über Menschen, die sich
mit TerminalServern auskennen.
Ausserdem engagieren sich die beiden bundesweiten Gruppen Freie
Software und Bildung und Pingos.
Kommerzielle Dienstleistungen bieten viele grosse und kleine Firmen,
hier eine kleine Auswahl
Feedback
bitte an: m.herweg@gmx.de
Fortsetzung
kompletter Terminalserver von CD installierbar: kmLinux
TSE
last update: 03.03. 2003