Installationshinweise: Debian Edu / Skolelinux Haupt-Server TJENER (jessie)
Inhaltsverzeichnis
- Installationshinweise: Debian Edu / Skolelinux Haupt-Server TJENER (jessie)
Download von Debian Edu (jessie)
Für die Installation von Debian Edu (jessie) wird ein aktuelles DVD-Installationsmedium benötigt:
http://ftp.skolelinux.org/skolelinux-cd/
Bitte vor Download einen Blick auf die Debian Edu (jessie) Status-Seite im Debian-Wiki werfen:
http://wiki.debian.org/DebianEdu/Status/Jessie
Wichtig: Der Skolelinux-Hauptserver wird immer von der Debian Edu DVD installiert!!!
Das ISO-Image in /home/locadm/isoimages ablegen.
Erstellen der VM: tjener.intern
Der Haupt-Server des Debian Edu / Skolelinux Netzwerks wird als virtuelle Maschine auf dem Virtualisierungs-Server virt-man-01 bereitgestellt/installiert.
Installation von Tjener vorbereiten
Ganeti Instanz vorbereiten:
$ sudo gnt-instance add -t plain -o noop -s 1048576 -n virt-man-01.backbone --no-start --no-install --no-name-check --no-ip-check -H kvm:vnc_bind_address=127.0.0.1 tjener.intern $ sudo gnt-instance modify --net 0:modify,network=DebianEdu tjener.intern $ sudo gnt-instance modify -B maxmem=8192,minmem=8192,vcpus=4 tjener.intern $ sudo gnt-instance modify -H keymap=de tjener.intern $ sudo gnt-instance start -H boot_order=cdrom,cdrom_image_path=/home/locadm/iso-images/debian-edu-amd64-i386-BD-1.iso tjener.intern
VNC installieren:
$ sudo apt-get install vncviewer
Basisinstallation TJENER
Tjener per VNC installieren (hierfür muss im ssh zum Virt-Man-01 die Option -X gesetzt sein (ssh -X locadm@172.16.0.1):
$vncviewer 127.0.0.1::11000
Hier mit der Auswahl auf 64-bit install und Tab drücken. Den Bootparameter desktop=mate hinzufügen.
- Mit Enter bestätigen
Warten, Debian Edu Installer lädt...
- Sprache und Tastatur: Deutsch (3x auswählen und bestätigen)
Netzwerk einrichten: automatische Netzwerkkonfiguration schlägt fehl => das Netzwerk unkonfiguriert belassen
- Debian Edu Installationsprofil: Hauptserver
- Automatische Partitionierung: Ja
Erfassung der Paketverwendung (popularity-contest): Ja
Kennwort für den Super-User root festlegen
- Initialen Benutzer anlegen. Vollständiger Name: LDAP Administrator, Benutzername: ldapadmin
- Installation abwarten
auf VIRT-MAN-01
Tjener stoppen, CD auswerfen und neu starten:
$ sudo gnt-instance stop --timeout=0 tjener.intern $ sudo gnt-instance start -H boot_order=disk,cdrom_image_path='' tjener.intern
auf TJENER
Diese Arbeiten werden als root auf der Textkonsole durchgeführt. Kein grafisches Login für diese Arbeiten verwenden!!!
Der Abschnitt beschreibt die Einbindung der Festplatten, sowie das Anlegen von Verzeichnissen für Gruppen und den Dateiaustausch.
- Home-Verzeichnisse und Gruppenverzeichnisse: Die Standardinstallation von Tjener stellt das logical-volume /dev/vg_system/skole+tjener+home0 bereit. Wir fügen die folgenden locical-volumes zum Abspeichern von Benutzerdaten hinzu.
In der Volume Group neue Logical Volumes anlegen:
$ lvcreate vg_system -n skole+tjener+home1 -L 40G $ lvcreate vg_system -n skole+tjener+group0 -L 20G $ lvcreate vg_system -n skole+tjener+group1 -L 20G $ lvcreate vg_system -n skole+tjener+transfer -L 40G
Diese Logical Volumes werden mit dem Ext4-Dateisystem formatiert:
$ mkfs.ext4 /dev/vg_system/skole+tjener+home1 $ mkfs.ext4 /dev/vg_system/skole+tjener+group0 $ mkfs.ext4 /dev/vg_system/skole+tjener+group1 $ mkfs.ext4 /dev/vg_system/skole+tjener+transfer
Zusätzliche Mountpoints und NFS-Mountpoints anlegen:
$ mkdir -p /skole/tjener/home1 /skole/tjener/group{0,1} /skole/tjener/transfer /srv/nfs4/home1 /srv/nfs4/group{0,1} /srv/nfs4/transfer
Die Datei /etc/fstab anpassen:
root@tjener:~# diff -u /etc/fstab.orig /etc/fstab --- /etc/fstab.orig 2015-07-21 16:14:57.758210057 +0200 +++ /etc/fstab 2015-07-21 16:32:02.440374187 +0200 @@ -10,7 +10,11 @@ # /boot was on /dev/vda1 during installation UUID=eec81d3a-5956-42a7-896d-02d56112963a /boot ext4 defaults 0 2 /dev/mapper/vg_system-skole+backup /skole/backup ext4 user_xattr 0 2 -/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid,usrquota,acl,user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+home1 /skole/tjener/home1 ext4 nosuid,usrquota,acl,user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+group0 /skole/tjener/group0 ext4 nosuid,usrquota,acl,user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+group1 /skole/tjener/group1 ext4 nosuid,usrquota,acl,user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+transfer /skole/tjener/transfer ext4 nosuid,usrquota,acl,user_xattr 0 2 /dev/mapper/vg_system-usr /usr ext4 defaults 0 2 /dev/mapper/vg_system-var /var ext4 defaults 0 2 /dev/mapper/vg_system-var+log /var/log ext4 defaults 0 2 @@ -18,4 +22,8 @@ /dev/mapper/vg_system-swap_1 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/sr1 /media/cdrom1 udf,iso9660 user,noauto 0 0 -/skole/tjener/home0 /srv/nfs4/home0 none bind 0 0 +/skole/tjener/home0 /srv/nfs4/home0 none bind,nosuid,usrquota,acl,user_xattr 0 0 +/skole/tjener/home1 /srv/nfs4/home1 none bind,nosuid,usrquota,acl,user_xattr 0 0 +/skole/tjener/group0 /srv/nfs4/group0 none bind,nosuid,usrquota,acl,user_xattr 0 0 +/skole/tjener/group1 /srv/nfs4/group1 none bind,nosuid,usrquota,acl,user_xattr 0 0 +/skole/tjener/transfer /srv/nfs4/transfer none bind,nosuid,usrquota,acl,user_xattr 0 0
neue fstab übernehmen mit mount -a
Die Datei /etc/fsautoresizetab anlegen:
# regex minfree max extendby /.* 10% 20g 10% /usr 10% 10g defaults /var 10% 10g defaults /var/spool/squid 10% 40g defaults /var/opt/ltsp/swapfiles 5% 30g defaults /skole/tjener/home[0-9]+ 10% 250g defaults /skole/tjener/group[0-9]+ 10% 150g defaults /skole/backup 10% 150g defaults
Die neuen Verzeichnisse via NFS exportieren (anhängen an /etc/exports):
/srv/nfs4/home1 @ltsp-server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @workstation-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) /srv/nfs4/group0 @ltsp-server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @workstation-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) /srv/nfs4/group1 @ltsp-server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @workstation-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) /srv/nfs4/transfer @ltsp-server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @workstation-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check) @server-hosts(sec=krb5p:krb5i:krb5:sys,rw,sync,no_subtree_check)
NFS Verzeichnisse re-exportieren:
$ exportfs -ar
TJENER mit dem Internet verbinden
bereits vorbereitet: Basisinstallation pfSense (Skole-Gateway auf der IP 10.0.0.1 aka gateway.intern)
- Anschließen von pfSense
rot (WAN): an Schul-/Firmennetz o.ä. Netz mit DHCP-Server
grün (LAN): zusammen mit der Skole-Netzwerk Bridge (eth0, br0), auf der TJENER kommuniziert an eine gemeinsame Netzwerkswitch
Software nachinstallieren auf TJENER
Die folgenden Schritte werden nach Anmeldung mit dem initialen Benutzer an der Text-Console, später unter GNOME durchgeführt. Gearbeitet auf TJENER wird indirekt durch die von virt-manager bereit gestellte VNC-Konsole zur VM.
Fine-Tuning TJENER nach Basisinstallation / vor Software-Installation
Login als root
Standard-Editor festlegen (an der Unix-Console)
$ update-alternatives --config editor
Hier dann vim.basic auswählen.
Das Programm Midnight Commander starten (Kommando: mc):
- F9 drücken
Optionen -> Konfiguration: [x] Internen Editor benutzen
Optionen -> Einstellungen speichern
- F10: Midnight Commander beenden
Den Midnight Commander Editor (Kommando: mcedit) starten:
- F9 drücken
Menüpunkt: Optionen -> Allgemein
- "Backspace durch Tabs" auswählen
- "Tabs mit Leerzeichen auffüllen" auswählen
- "Return rückt automatisch ein" abwählen
- F10: Editor beenden
Software nachinstallieren aus Debian jessie
Für das Nachinstallieren von Software, muss TJENER's Proxy mit dem Internet kommunizieren können. Testen (und APT-Cache initialisieren) mit:
$ sudo apt-get update
Für den anfänglichen Betrieb reicht es, die folgende Software nachzuinstallieren:
$ sudo apt-get install mate-desktop-environment firefox-esr firefox-esr-l10n-de pluma xinit gosa-plugin-connectivity gosa-plugin-squid gosa-plugin-pwreset tree nmap nload
Hinweis: Wer möchte, kann jetzt grafisch unter MATE weiter arbeiten:
$ startx
Paket-Quellen ITZkS hinzufügen
Auf dem Hauptserver muss jetzt die APT-Quelle von IT-Zukunft Schule hinzugefügt werden. Von dort wird u.a. das Paket itzks-systems-config installiert, welches weitere APT Quellen dem System hinzufügt.
$ editor /etc/apt/sources.list.d/itzks.list """ deb http://packages.it-zukunft-schule.de/debian jessie main deb http://packages.it-zukunft-schule.de/debian jessie-backports main """ $ apt-get update && apt-get install itzks-keyring && apt-get update
Danach wird das ITZkS-Common-Paket installiert:
$ sudo apt-get install itzks-systems-common
Hierbei wird abgefragt, für welche Schule der Hauptserver aufgesetzt wird. Bitte den entsprechenden Kunden auswählen. Fehlt der Kunde, dann bitte an admins@lists.it-zukunft-schule.de selbiges melden.
Auf dem Hauptserver wollen wir folgende Paketquellen, die via itzks-systems-common aktiviert werden, nicht nutzen:
Debian Multimedia (/etc/apt/sources.list.d/multimedia.list)
Geogebra (/etc/apt/sources.list.d/geogebra.list).
Die o.g. Dateien sind mit einem Texteditor (als root) zu bearbeiten und auszukommentieren. Danach nochmal
$ sudo apt-get update
ausführen.
Da über den ITZkS-Paketserver einige Pakete bereitgestellt werden, die neuer sind als die entsprechenden Pakete in Debian, sollte nun TJENER aktualisiert werden, so dass die ITZkS-spezifischen (neueren) Pakete auf dem System vorhanden sind (u.a. und insb. GOsa²):
$ sudo apt-get upgrade
Schließlich wird dann noch das ITZkS-Paket für den Hauptserver installiert:
$ sudo itzks-systems.do_preseed $ sudo apt-get install itzks-systems-mainserver
Das Haupserver ITZkS-Paket wird viele Abhängigkeiten installieren.
X2Go installieren
$ apt-get update && apt-get install x2go-keyring && apt-get update
Aus diesen Quellen werden die folgenden Pakete installiert:
$ apt-get install x2goserver-xsession x2gomatebindings x2godesktopsharing x2goclient pyhoca-gui
GOsa²-Baumstruktur erweitern/ergänzen
Spätestens jetzt muss grafisch unter MATE weiter gearbeitet werden, damit in GOsa² die im folgenden beschriebenen Anpassungen durchgeführt werden können.
Die hier beschriebenen Anpassungen sind Änderungen an GOsa², die nötig sind, um die Haupserver-Installation zu Ende führen zu können. Eine vollständige Übersicht über alle ITZkS-Anpassungen finden sich hier.
Um mit GOsa² auf TJENER zu arbeiten, muss GOsa im Webbrowser (Firefox) aufgerufen werden: http:///www/gosa (Anmeldung mit initialem User aus der Debian Edu Installation des TJENERs).
Namensschema für neue User-IDs festlegen
In /etc/gosa/gosa.conf das Namensschema für neue User-IDs anpassen:
root@tjener:~# diff -u /etc/gosa/gosa.conf.orig /etc/gosa/gosa.conf --- /etc/gosa/gosa.conf.orig 2012-07-06 12:53:39.000000000 +0200 +++ /etc/gosa/gosa.conf 2012-07-06 12:54:21.000000000 +0200 @@ -421,7 +421,7 @@ useSaslForKerberos="false" rfc2307bis="false" personalTitleInDN="false" - idGenerator="{%givenName[3-6]}{%sn[3-6]}" + idGenerator="{%sn[3-6]}{%givenName[3-6]}" strictNamingRules="true" mailAttribute="mail" gosaSharedPrefix=""
Teilbaum IT-Administration anlegen
OU: IT-Administration
Abteilungen -> Aktionen: Anlegen > Abteilung
Name der Abteilung: IT-Administration
Beschreibung: IT-Dienstleister am/an der <Name der Schule>
mit Button Ok bestätigen
User-Template: newitstaff
Benutzer -> Aktionen: Anlegen > Vorlage
Reiter: Allgemein
Name der Vorlage: newitstaff
- Basis: /IT-Administration
Organisation: IT-Zukunft Schule Team
Telefon: +49 (431) 24855-0
Ort: Kiel
Land: Schleswig-Holstein
Adresse:
Logo EDV-Systeme GmbH Holtenauer Str. 96 24105 Kiel
Reiter: POSIX
Klick auf Button: POSIX Einstellungen hinzufügen
Basisverzeichnis: /skole/tjener/home1/%uid
Gruppen hinzufügen: admins, gosa-admins, jradmins, nonetblk, teachers, students
Reiter: Samba
Klick auf Button: Samba Einstellungen hinzufügen
Basisverzeichnis: \\tjener\%uid, Basislaufwerk: U:
Anmeldeskript: logon-teachers.bat
Profilpfad: \\tjener\%uid\.ntprofile
Konten für IT-Dienstleister anlegen
Mithilfe der Vorlage newitstaff sind jetzt für jedes ITZkS-Teammitglied Benutzerkonten anzulegen.
User-Template: newteacher
In der Vorlage für neue Lehrer/innen-Accounts (newteacher) muss das Default HOME-Verzeichnis von /skole/tjener/home0/%uid auf /skole/tjener/home1/%uid umgesetzt werden.
Samba Home-Laufwerk von H: auf U: versetzen
Oft begegnen uns in Schulen Windows-PCs mit einer Reihe Card-Reader Slots. Diese Card-Reader-Slots reservieren per Default etliche Laufwerksbuchstaben (oft bis H:, I: oder gar J:). Auf PCs dieser Art führt Laufwerk H: als Netzwerklaufwerk für das Benutzerverzeichnis zu Problemen. Daher verlegen wir das HOME-Verzeichnis unter Windows auf das Netzlaufwerk U:.
Die folgende Änderung an /etc/samba/smb-debian-edu.conf anwenden:
--- smb-debian-edu.conf.orig +++ smb-debian-edu.conf @@ -104,7 +104,7 @@ # Network logon - logon drive = H: + logon drive = U: logon script = debian-edu-login.bat # store profiles in the users' HOME shares
In GOsa² die Template NewTeacher and NewStudents anpassen:
- Reiter: Samba
- Allgemein, Basisverzeichnis: \\tjener\%uid, als Laufwerksbuchstaben [ U: ] auswählen
OU: Computers und Printers
Desweiteren sind die Basis-OUs für Computer und Drucker zu erstellen:
- ou=Computers
- ou=Printers
Neue Windows-PCs erstellen in ou=Computers
Die folgende Änderung an /etc/smbldap-tools/smbldap.conf anwenden:
--- smbldap.conf.orig +++ smbldap.conf @@ -124,7 +124,7 @@ # Where are stored Computers # Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG" # Warning: if 'suffix' is not set here, you must set the full dn for computersdn -computersdn="ou=winstations,ou=systems,${suffix}" +computersdn="ou=winstations,ou=systems,ou=Computers,${suffix}" # Where are stored Groups # Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
Konfigurationsanpassungen (ITZkS-spezifisch) am TJENER
Killer Script deaktivieren
Das Killer Script tötet leider (vergl. Debian Bug #648219) laufende x2goagent Instanzen. Auf dem ITZkS Tjener wird das killer Skript daher aktiviert. Der Hauptserver wird in IT-Zukunft Schule nur von Systemadministrator/innen genutzt, insofern ist das deaktiveren von killer hier unkritisch.
root@tjener:/# diff -u /etc/cron.hourly/killer.orig /etc/cron.hourly/killer --- /etc/cron.hourly/killer.orig 2012-08-24 13:10:14.000000000 +0200 +++ /etc/cron.hourly/killer 2012-08-24 13:10:20.000000000 +0200 @@ -1,3 +1,3 @@ #!/bin/sh -if [ -x /usr/sbin/killer ] ; then /usr/sbin/killer; fi +#if [ -x /usr/sbin/killer ] ; then /usr/sbin/killer; fi
Squid-Proxy auf proxy-only Modus umstellen
Im ITZkS-Setup übernimmt die Firewall (gateway.intern) das Cachen und Filtern von Webinhalten. Hierfür wird der Squid-Proxy auf TJENER in den Modus proxy-only versetzt.
$ editor /etc/squid/squid.conf
# WELCOME TO SQUID 2.7.STABLE9 # ---------------------------- # # This is the default Squid configuration file. You may wish # to look at the Squid home page (http://www.squid-cache.org/) # for the FAQ and other documentation. # [...] # TAG: cache_peer # To specify other caches in a hierarchy, use the format: # # cache_peer hostname type http-port icp-port [options] # # For example, # # # proxy icp # # hostname type port port options # # -------------------- -------- ----- ----- ----------- # cache_peer parent.foo.net parent 3128 3130 proxy-only default # cache_peer sib1.foo.net sibling 3128 3130 proxy-only # cache_peer sib2.foo.net sibling 3128 3130 proxy-only [...] acl INSIDE dstdomain .intern always_direct allow INSIDE never_direct allow all cache_peer gateway.intern parent 3128 0 proxy-only default [...]
Nur Admin-User dürfen sich auf TJENER einloggen
Schul-Admins und IT-Dienstleister tragen wir in der LDAP-Gruppe admins ein. Die Gruppe wird automatisch bei der Hauptserver-Installation angelegt (und darf im LDAP-Baum nicht verschoben werden).
Wichtig: Der Haupt-Server TJENER darf ein Login nur für Schul-Admins und Dienstleister erlauben. Hierfür müsen die Dateien /etc/security/access.conf und /etc/pam.d/sshd angepasst werden:
--- /etc/security/access.conf.orig +++ /etc/security/access.conf @@ -120,3 +120,6 @@ # # All other users should be denied to get access from all sources. #- : ALL : ALL + ++ : admins root : ALL +- : ALL : ALL
--- /etc/pam.d/sshd.orig 2012-07-30 17:51:12.000000000 +0200 +++ /etc/pam.d/sshd 2012-07-30 17:51:26.000000000 +0200 @@ -15,7 +15,7 @@ # Uncomment and edit /etc/security/access.conf if you need to set complex # access limits that are hard to express in sshd_config. -# account required pam_access.so +account required pam_access.so # Standard Un*x authorization. @include common-account
Erweiterte ACLs und Quotas auf Dateisystemen
Alle Mountpoints, auf denen Bentuzer/innen im Debian Edu Schreibzugriff erhalten sollten in der Lage sein, erweiterte ACLs zu verstehen. Hierfür müssen für die entsprechenden Mountpoints Eintragungen in /etc/fstab vorgenommen werden. Ferner aktivieren wir auf allen solchen Mountpoints Filesystem-Quotas (ohne diese wirklich zu nutzen, Quotas dienen im ITZkS-Projekt vornehmlich dem schnellen Überblick über User- oder Gruppen-basierte Auslastungen der Dateisysteme). Auch hierfür müssen Eintragungen in /etc/fstab vorgenommen werden.
Die im folgenden aufgeführten Einträge sollten in TJENER's /etc/fstab bereits existieren, es müssen lediglich die Optionen acl und usrquota bzw. grpquota nachgetragen werden:
# /etc/fstab: static file system information. [...] /dev/mapper/vg_home-skole+tjener+home0 /skole/tjener/home0 ext3 nosuid,usrquota,acl 0 2 /dev/mapper/vg_home-skole+tjener+home1 /skole/tjener/home1 ext3 nosuid,usrquota,acl 0 2 /dev/mapper/vg_system-skole+tjener+group0 /skole/tjener/group0 ext3 nosuid,grpquota,acl 0 2 /dev/mapper/vg_system-skole+tjener+group1 /skole/tjener/group1 ext3 nosuid,grpquota,acl 0 2 /dev/mapper/vg_system-skole+tjener+transfer /skole/tjener/transfer ext3 nosuid,usrquota,acl 0 2 [...] /skole/tjener/home0 /srv/nfs4/home0 none bind,usrquota,acl 0 0 /skole/tjener/home1 /srv/nfs4/home1 none bind,usrquota,acl 0 0 /skole/tjener/group0 /srv/nfs4/group0 none bind,grpquota,acl 0 0 /skole/tjener/group1 /srv/nfs4/group1 none bind,grpquota,acl 0 0 /skole/tjener/transfer /srv/nfs4/transfer none bind,usrquota,acl 0 0
Zusätzlich müssen die Pakete acl und quota auf TJENER installiert werden:
$ sudo apt-get install acl quota
Nach einem Neustart des Hauptservers sind dann die Volumes entsprechend gemountet. Während des nächsten Systemstarts werden dann auch die Verzeichnisquoten wie in /etc/fstab eingetragen überprüft. Dieser Vorgang wird etwas Zeit in Anspruch nehmen.
PXE-basierten Debian Installer anpassen
Eine für ITZkS vorkonfigurierte (deutsche) PXE Boot-Umgebung für den Debian Installer auf TJENER ist im Paket itzks-systems-mainserver enthalten. Nach Installation des Pakets muss dieser Anleitung gefolgt werden:
$ zcat /usr/share/doc/itzks-systems-mainserver/examples/README.tftp.gz
Diese Installationsanleitung ist auch online verfügbar: https://code.it-zukunft-schule.de/cgit/itzks-systems/plain/examples/mainserver/README.tftp
Die einzelnen Schritte sind:
- README.tftp befolgen (s.o.)
Firmware Binaries aus Debian jessie non-free im PXE D-I integrieren:
$ sudo /usr/share/debian-edu-config/tools/pxe-addfirmware
Weitere Notizen
Aktuell keine...