== Installationshinweise: Debian Edu / Skolelinux Haupt-Server TJENER (bullseye) == <> === Download von Debian Edu (bullseye) === Für die Installation von Debian Edu (bullseye) wird ein aktuelles USB-Installationsmedium ({{{debian-edu-11+edu0-BD.iso}}}) benötigt:<
>https://get.debian.org/cdimage/release/current/amd64/iso-bd/ Bitte vor Download einen Blick auf die Debian Edu (bullseye) Status-Seite im Debian-Wiki werfen:<
>http://wiki.debian.org/DebianEdu/Status/Bullseye /!\ '''Wichtig:''' Der Skolelinux-Hauptserver wird __immer__ von dem Debian Edu USB Image installiert ("BD" im Dateinamen)!!! Das ISO-Image in {{{/home/locadm/iso-images}}} auf dem {{{virt-man-01}}} ablegen. === Erstellen der VM: tjener.intern === Der Haupt-Server des Debian Edu / Skolelinux Netzwerks wird als virtuelle Maschine auf dem [[Technik/Installation/VirtServer|Virtualisierungs-Server]] {{{virt-man-01}}} bereitgestellt/installiert. Auf einigen Kundensystemen (kleine Schulen) installieren wir den Hauptserver auch als Lehrer*innen-Arbeitsplatz. ==== Basisinstallation TJENER ==== Virtuelle Maschine {{{tjener.intern}}} vom heruntergeladenen ISO-Image starten und die Basisinstallation wie folgt durchführen: * 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: Server Administrator, Benutzername: serveradmin * Installation abwarten ===== auf VIRT-MAN-01 ===== Tjener stoppen, virtuelle 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. Es werden zusätzliche Volumes angelegt, u.a. auch für Home-Verzeichnisse von Lehrer:innen. Diese können alle in der bereits vorhanden Volume Group {{{vg_system}}} erstellt werden. Alternativ können aber insb. die Logical Volumes für Home-Verzeichnisse in eine eigene Volume Group gelegt werden. Von uns empfohlene Schulserver-Hardware verfügt häufig über unterschiedliche schnelle Storage-Einheiten. Die Home-Verzeichnisse insb. von Lehrer:innen sollten unbedingt auf schnellen Storage-Einheiten untergebracht werden. D.h. ggf. findet man auf einige Installation zusätzlich zu der Volume Group {{{vg_system}}} auch noch die Volume Group {{{vg_homes}}}. 1. Optional: Erstellen der Volume Group {{{vg_homes}}}:{{{$ apt-get install gdisk $ gdisk /dev/vdb # or whatever device name the fast storage volume has in TJENER (Create /dev/vdb1, use all available disk space, type: 8e00) $ pvcreate /dev/vdb1 $ vgcreate vg_homes /dev/vdb1 }}} 1. 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. a. In der Volume Group neue Logical Volumes anlegen (verwenden Sie {{{vg_homes}}} oder {{{vg_system}}} wo weiter unten {{{vg_{homes,system}}}} zu lesen ist):{{{ $ lvcreate vg_homes -n skole+tjener+home0 -L 40G # nur erstellen, wenn vg_homes genutzt wird $ lvcreate vg_{homes,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 }}} a. Diese Logical Volumes werden mit dem Ext4-Dateisystem formatiert:{{{ $ mkfs.ext4 /dev/vg_homes/skole+tjener+home0 # sofern vg_homes genutzt wird $ mkfs.ext4 /dev/vg_{homes,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 }}} 1. 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 }}} 1. 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_{homes,system}-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid,usrquota,acl,user_xattr 0 2 +/dev/mapper/vg_{homes,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,grpquota,acl,user_xattr 0 2 +/dev/mapper/vg_system-skole+tjener+group1 /skole/tjener/group1 ext4 nosuid,grpquota,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,grpquota,acl,user_xattr 0 0 +/skole/tjener/group1 /srv/nfs4/group1 none bind,nosuid,grpquota,acl,user_xattr 0 0 +/skole/tjener/transfer /srv/nfs4/transfer none bind,nosuid,usrquota,acl,user_xattr 0 0 }}} 1. neue fstab übernehmen mit {{{mount -a}}} 1. Die Datei {{{/etc/fsautoresizetab}}} anlegen:{{{ # regex minfree max extendby /.* 10% 20g 5% /usr 10% 10g defaults /var 10% 10g defaults /var/log 10% 10g defaults /var/spool/squid 10% 40g defaults /var/opt/ltsp/swapfiles 5% 30g defaults /skole/tjener/home[0-9]+ 5% 250g defaults /skole/tjener/group[0-9]+ 10% 150g defaults /skole/backup 10% 50g defaults }}} 1. Die neuen Verzeichnisse via NFS exportieren (hinzufügen der Datei {{{/etc/exports.d/itzks.exports}}}):{{{ /srv/nfs4/home0 @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/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) }}} 1. Und in der Datei {{{/etc/exports.d/edu.exports}}} diese Zeile auskommentieren:{{{ --- edu.exports.orig 2021-09-30 20:16:20.052000000 +0200 +++ edu.exports 2021-09-30 20:14:35.640000000 +0200 @@ -1,2 +1,2 @@ /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) -/srv/nfs4/home0 gss/krb5i(rw,sync,no_subtree_check) +#/srv/nfs4/home0 gss/krb5i(rw,sync,no_subtree_check) }}} 1. NFS Verzeichnisse re-exportieren:{{{ $ exportfs -ar }}} FIXME: Es muss getestet werden, wie gut gss/krb5i-only Exports im Schulbetrieb skalieren und ob Diskless Workstations mit per SSHFS gemounteten Home-Verzeichnissen performant genug sind. === TJENER mit dem Internet verbinden === ==== Verbindung mit dem Edu-Netzwerk ==== TJENER ist mit seiner primären Schnittstelle im Edu-Netzwerk der Schule beheimatet:{{{ auto eth0 iface eth0 inet static address 10.0.2.2 netmask 255.0.0.0 broadcast 10.255.255.255 gateway 10.0.0.1 }}} Die Netzwerkschnittstellenkonfiguration für das Edu-Netzwerk wird automatisch bei der Hauptserver-Installation eingerichtet und muss nicht angepasst werden. Das Routing des Hauptservers TJENER erfolgt vollständig über die 10.0.0.1 (Firewall-IP), vergl.: * '''bereits vorbereitet''': [[https://wiki.it-zukunft-schule.de/Technik/Installation/Firewall/Pfsense|Basisinstallation]] pfSense (Skole-Gateway auf der IP 10.0.0.1 aka {{{gateway.intern}}}) * pfSense mit Netzwerk-Infrastruktur verbinden: * ''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 Die pfSense verbirgt damit das gesamte Edu-Netzwerk vor der benachbarten Schul-IT und spannt nach innen sein eigenen 10/8er Netz auf. ==== Verbindung mit dem Backbone-Netzwerk ==== Für eine spätere Bereitstellung eines Radius-Servers auf TJENER ist bereits zur Installation schon die Konfiguration einer zweiten LAN-Schnittstelle sinnvoll:{{{ auto eth1 iface eth1 inet static address 172.16.0.41 netmask 255.255.255.0 }}} Diese Schnittstelle ist physikalisch mit dem Backbone-Netzwerk zu verbinden. Auf dem Virtualisierungs-Server muss diese Schnittstelle als separate Bridge bereitgestellt werden. Sinnvoll ist auch ein Eintrag{{{ 172.16.0.41 tjener.backbone tjener}}} in der {{{/etc/hosts}}} auf dem/den Virtualisierungsserver(n). === 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 ==== 1. Login als {{{root}}} 1. Standard-Editor festlegen (an der Unix-Console){{{ $ update-alternatives --config editor }}} Hier dann {{{vim.basic}}} auswählen. 1. Das Programm Midnight Commander starten (Kommando: {{{mc}}}): * F9 drücken * Optionen -> Konfiguration: [x] Internen Editor benutzen * Optionen -> Einstellungen speichern * F10: Midnight Commander beenden 1. 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 bullseye ==== 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 }}} Zunächst alle anstehenden Updates installieren:{{{ $ sudo apt-get upgrade }}} Für den anfänglichen Betrieb reicht es, die folgende Software nachzuinstallieren:{{{ $ sudo apt-get install mate-desktop-environment education-menus firefox-esr firefox-esr-l10n-de pluma xinit gosa-plugin-connectivity gosa-plugin-squid 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 bullseye main "" $ apt-get --allow-insecure-repositories 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 ==== Für die Nutzung von X2Go auf TJENER (Server und Client) müssen folgende Pakete installiert werden:{{{ $ apt-get install x2goserver-xsession x2godesktopsharing x2goclient pyhoca-cli 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 [[Technik/Installation/GOsaLDAP|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 ===== 1. Abteilungen -> Aktionen: Anlegen > Abteilung a. Name der Abteilung: {{{IT-Administration}}} a. Beschreibung: {{{IT-Dienstleister am/an der }}} a. mit Button '''Ok''' bestätigen ===== POSIX-Gruppe: admins ===== 1. Gruppen -> Aktionen: Anlegen -> Gruppe a. Gruppenname: {{{admins}}} a. Beschreibung: {{{System-Administrator:innen (sudo-Rechte)}}} a. mit Button '''Ok''' bestätigen ===== SUDO-Rolle: admins ===== 1. Sudo-Rolle -> Aktionen: Anlegen -> Rolle a. Name: {{{admins}}} a. Beschreibung: {{{vollständige sudo-Rechte für Gruppe admins}}} a. Benutzer und Gruppen: {{{ALL}}} löschen, POSIX-Gruppe {{{admins}}} via Button '''aus Liste hinzufügen''' auswählen und hinzufügen a. Kommandos: {{{ALL}}} hinzufügen a. mit Button '''Ok''' bestätigen ===== User-Template: newitstaff ===== 1. Benutzer -> Aktionen: Anlegen > Vorlage a. '''Reiter: Allgemein''' i. Name der Vorlage: {{{newitst:aff}}} i. Basis: /IT-Administration i. Organisation: {{{IT-Zukunft Schule Team}}} a. '''Reiter: POSIX''' i. Klick auf Button: ''POSIX Einstellungen hinzufügen'' i. Basisverzeichnis: {{{/skole/tjener/home1/%uid}}} i. Gruppen hinzufügen: {{{admins}}}, {{{gosa-admins}}}, {{{jradmins}}}, {{{nonetblk}}}, {{{teachers}}}, {{{students}}} ===== Alternativ: LDIF für obige Anpassungen ===== {{{ dn: ou=IT-Administration,dc=skole,dc=skolelinux,dc=no ou: IT-Administration description: IT-Administration des Debian Edu Test-Setups objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=people,ou=IT-Administration,dc=skole,dc=skolelinux,dc=no objectClass: organizationalUnit ou: people dn: uid=newitstaff,ou=people,ou=IT-Administration,dc=skole,dc=skolelinux,dc= no sn: newitstaff givenName: newitstaff uid: newitstaff o: IT-Zukunft Schule Team cn: newitstaff newitstaff userPassword:: e3NzaGF9TjBUJDNUNE4wVw== homeDirectory: /skole/tjener/home1/%uid loginShell: /bin/bash uidNumber: 1003 gidNumber: 2147483647 gecos: newitstaff newitstaff objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: gosaAccount objectClass: gosaUserTemplate objectClass: posixAccount objectClass: shadowAccount dn: cn=admins,ou=group,dc=skole,dc=skolelinux,dc=no cn: admins description: System-Administrator:innen (sudo-Rechte) gidNumber: 1003 memberUid: newitstaff objectClass: top objectClass: posixGroup dn: cn=admins,ou=sudoers,dc=skole,dc=skolelinux,dc=no cn: admins sudoUser: %admins sudoCommand: ALL sudoHost: ALL sudoRunAs: ALL objectClass: top objectClass: sudoRole }}} ===== 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. ==== Geräte-Management im LDAP-Baum ==== Es wird empfohlen, das Geräte-Management in einen eigenen LDAP-Teilbaum hineinzulegen. Grundsätzlich ist jede andere Anordnung / Strukturierung im LDAP-Baum möglich. Unser Vorschlag: * ou=Devices * ou=Diskless * ou=Notebooks * ou=Printers * ou=Tablets * ou=Workstations Das ganze als LDIF: {{{ dn: ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Devices description:: R2Vyw6R0ZSBpbSBFZHUtTmV0endlcms= objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=Notebooks,ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Notebooks description: Notebooks objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=Tablets,ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Tablets description: Tablets objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=Diskless,ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Diskless description: Diskless Workstations objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=Printers,ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Printers description: Printers objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment dn: ou=Workstations,ou=Devices,dc=skole,dc=skolelinux,dc=no ou: Workstations description: Workstations objectClass: organizationalUnit objectClass: top objectClass: gosaDepartment }}} === Konfigurationsanpassungen (ITZkS-spezifisch) am TJENER === ==== Killer Script deaktivieren ==== Das Killer Script tötet leider (vergl. Debian Bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648219|#648219]]) laufende {{{x2goagent}}} Instanzen. Auf dem ITZkS Tjener wird das {{{killer}}} Skript daher deaktiviert. 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 }}} ==== UniFi DNS-Zugriff erlauben ==== {{{ diff --git a/bind/named.conf.options b/bind/named.conf.options index abb0f9a..ad9c845 100644 --- a/bind/named.conf.options +++ b/bind/named.conf.options @@ -1,3 +1,10 @@ +acl skole-lan { + localhost; + 10.0.0.0/8; + 172.21.0.0/16; + 172.22.0.0/16; +}; + options { directory "/var/cache/bind"; @@ -14,6 +20,8 @@ options { // 0.0.0.0; // }; + allow-query { skole-lan; }; + //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys }}} ==== Optional: Squid-Proxy auf proxy-only Modus umstellen ==== Wenn dem Squid-Proxy auf TJENER ein http-Cache bereits vorgeschaltet ist (z.Bsp. in Form einer embedded Firewall o.ä.), sollte erwogen werden, TJENER's Squid in den proxy-only Modus zu versetzen: {{{ $ 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 ggf. 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,user_xattr 0 2 /dev/mapper/vg_home-skole+tjener+home1 /skole/tjener/home1 ext3 nosuid,usrquota,acl,user_xattr 0 2 /dev/mapper/vg_system-skole+tjener+group0 /skole/tjener/group0 ext3 nosuid,grpquota,acl,user_xattr 0 2 /dev/mapper/vg_system-skole+tjener+group1 /skole/tjener/group1 ext3 nosuid,grpquota,acl,user_xattr 0 2 /dev/mapper/vg_system-skole+tjener+transfer /skole/tjener/transfer ext3 nosuid,usrquota,acl,user_xattr 0 2 [...] /skole/tjener/home0 /srv/nfs4/home0 none bind,usrquota,acl,user_xattr 0 0 /skole/tjener/home1 /srv/nfs4/home1 none bind,usrquota,acl,user_xattr 0 0 /skole/tjener/group0 /srv/nfs4/group0 none bind,grpquota,acl,user_xattr 0 0 /skole/tjener/group1 /srv/nfs4/group1 none bind,grpquota,acl,user_xattr 0 0 /skole/tjener/transfer /srv/nfs4/transfer none bind,usrquota,acl,user_xattr 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 bullseye non-free im PXE D-I integrieren:{{{ $ sudo /usr/share/debian-edu-config/tools/pxe-addfirmware }}} Achtung: ggf. endet das Script abrupt und behauptet, dass es die Initrd-Images der PXE Installer Umgebung nicht finden kann. Das liegt an [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=995610|#995610]] und wird duch diesen [[https://salsa.debian.org/debian-edu/debian-edu-config/-/commit/df44fe85ec78ed357c99745b403882f18db4190e|Patch]] gefixt. Der Fix wird im Paket debian-edu-config 2.11.56+deb11u2 enthalten sein und muss bis dahin manuell auf TJENER gepatcht werden. === Puppet Master === Der Host {{{tjener.intern}}} muss unter {{{puppet.intern}}} erreichbar gemacht werden. Hierfür wird via GOsa² unter {{{tjener}}} -> DNS-Einstellungen ein weiterer CNAME Eintrag "puppet" eingefügt. Als Abhängigkeit wurde bereits der Puppet Master installiert. Im ITZkS-Setup wird hierfür als httpd der Apache2-Webserver genutzt. Die Konfiguration von Puppet's httpd liegt unter {{{/etc/apache2/sites-enable/puppet.conf}}}. Diese Datei muss mit folgendem Patch angepasst werden:{{{ --- puppet-master.conf.dpkg-orig 2022-09-16 23:25:14.128000000 +0200 +++ puppet-master.conf 2022-09-16 23:15:51.128000000 +0200 @@ -15,6 +15,8 @@ Listen 8140 + ServerName puppet.intern + ServerAlias puppet SSLEngine on SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA }}} Ferner muss eine Puppet-Konfiguration für die schule erstellt werden. Als Muster können bereits existierende Puppet-Konfigurationen genutzt werden, vergl.: https://code.it-zukunft-schule.de/cgit/ ==== GOsa² Hook-Skripte anpassen für Puppet Master ==== Der Puppet Master stellt Dateien bereit, auf die er als {{{www-data}}} User zugreifen können muss. Diese Dateien (Krb5 Keytab Dateien) werden in GOsa² Hook Skripten erstellt (namentlich: {{{gosa-create-host}}} und {{{gosa-modify-host}}}). Diese Skriptnamen müssen in den GOsa²-Einstellungen angepasst werden. Und zwar muss immer das Skript {{{gosa-create-host-itzks}}} statt {{{gosa-create-host}}} und {{{gosa-modify-host-itzks}}} statt {{{gosa-modify-host}}} ausgeführt werden. Ohne die Anpassung dieser Hookskripte funktioniert die Verteilung von .keytab Dateien via Puppet auf die Workstation- und andere Server-Systeme nicht. === Weitere Notizen === Aktuell keine...