Unterschiede zwischen den Revisionen 16 und 37 (über 21 Versionen hinweg)
Revision 16 vom 2021-10-03 07:38:17
Größe: 26568
Kommentar:
Revision 37 vom 2022-09-14 20:00:32
Größe: 27781
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 19: Zeile 19:
In dieser Anleitung erklären wir das Anlegen der VM-Instanz {{{tjener.intern}}} auf Basis von Ganeti. In Virt Manager von libVirt bitte entsprechend VMs mit entsprechenden Größenangaben (s.u.) zusammenklicken.

==== 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-11+edu0-BD.iso tjener.intern
}}}

VNC installieren:{{{
$ sudo apt-get install vncviewer
}}}
Zeile 38: Zeile 21:
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
}}}
Virtuelle Maschine {{{tjener.intern}}} vom heruntergeladenen ISO-Image starten und die Basisinstallation wie folgt durchführen:
Zeile 65: Zeile 47:
 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.  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.
Zeile 94: Zeile 76:
+/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+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
Zeile 107: Zeile 89:
+/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/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
Zeile 150: Zeile 132:
==== 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
}}}

Diese Netzwerkeinstellungen werden automatisch bei der Hauptserver-Installation so gesetzt. Ist gibt es nichts anzupassen.

Das Routing des Hauptservers TJENER erfolgt vollständig über die 10.0.0.1 (Firewall-IP):
Zeile 151: Zeile 148:
 * Anschließen von pfSense  * pfSense mit Netzwerk-Infrastruktur verbinden:
Zeile 154: Zeile 151:

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).
Zeile 219: Zeile 230:
home1
Zeile 289: Zeile 300:
  1. Wechseln zur Basis: /
Zeile 293: Zeile 303:
    a. Benutzer und Gruppen: {{{ALL}}} löschen, {{{admins}}} hinzufügen     a. Benutzer und Gruppen: {{{ALL}}} löschen, POSIX-Gruppe {{{admins}}} via Button '''aus Liste hinzufügen''' auswählen und hinzufügen
Zeile 301: Zeile 311:
   i. Name der Vorlage: {{{newitstaff}}}    i. Name der Vorlage: {{{newitst:aff}}}
Zeile 308: Zeile 318:
  a. '''Reiter: Samba'''
   i. Klick auf Button: ''Samba Einstellungen hinzufügen''
   i. Basisverzeichnis: {{{\\tjener\%uid}}}, Basislaufwerk: {{{U:}}}
   i. Anmeldeskript: {{{logon-teachers.bat}}}
   i. Profilpfad: {{{\\tjener\%uid\.ntprofile}}}
Zeile 354: Zeile 359:
memberUid: newitstaff
Zeile 359: Zeile 365:
sudoUser: admins sudoUser: %admins
Zeile 375: Zeile 381:
==== 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:.

 1. 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
}}}
 1. 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
==== 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
}}}
Zeile 423: Zeile 460:
Das Killer Script tötet leider (vergl. Debian Bug [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648219|#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.{{{ 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.{{{
Zeile 434: Zeile 471:
==== 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.
==== 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:
Zeile 509: Zeile 576:
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:
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:
Zeile 516: Zeile 583:
/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
/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
Zeile 522: Zeile 589:
/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
/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
Zeile 551: Zeile 618:
==== Anpassungen an CUPS ====

Im LDAP ist die POSIX-Gruppe {{{printer-admins}}} anzulegen (in neueren Debian Edu Versionen ist sie bereits angelegt nach Haupt-Server Installation).

Und dieser Gruppe muss in CUPS die CUPS-Admin Rolle ({{{SystemGroup <group>}}}) zugewiesen werden:{{{
diff --git a/cups/cups-files-debian-edu.conf b/cups/cups-files-debian-edu.conf
index fdf4698..1f4c729 100644
--- a/cups/cups-files-debian-edu.conf
+++ b/cups/cups-files-debian-edu.conf
@@ -14,7 +14,7 @@
 #Group lp
 
 # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
-SystemGroup lpadmin
+SystemGroup printer-admins
 
 
 # User that is substituted for unauthenticated (remote) root accesses...
}}}
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.

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 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.

  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.

    1. 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
    2. 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
  2. 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
  3. 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,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
  4. neue fstab übernehmen mit mount -a

  5. 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
  6. 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)
  7. 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)
  8. 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

Diese Netzwerkeinstellungen werden automatisch bei der Hauptserver-Installation so gesetzt. Ist gibt es nichts anzupassen.

Das Routing des Hauptservers TJENER erfolgt vollständig über die 10.0.0.1 (Firewall-IP):

  • bereits vorbereitet: 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

  2. Standard-Editor festlegen (an der Unix-Console)

    $ update-alternatives --config editor

    Hier dann vim.basic auswählen.

  3. Das Programm Midnight Commander starten (Kommando: mc):

    • F9 drücken
    • Optionen -> Konfiguration: [x] Internen Editor benutzen

    • Optionen -> Einstellungen speichern

    • F10: Midnight Commander beenden
  4. 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
  • 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).

home1 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 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

    1. Name der Abteilung: IT-Administration

    2. Beschreibung: IT-Dienstleister am/an der <Name der Schule>

    3. mit Button Ok bestätigen

POSIX-Gruppe: admins
  1. Gruppen -> Aktionen: Anlegen -> Gruppe

    1. Gruppenname: admins

    2. Beschreibung: System-Administrator:innen (sudo-Rechte)

    3. mit Button Ok bestätigen

SUDO-Rolle: admins
  1. Sudo-Rolle -> Aktionen: Anlegen -> Rolle

    1. Name: admins

    2. Beschreibung: vollständige sudo-Rechte für Gruppe admins

    3. Benutzer und Gruppen: ALL löschen, POSIX-Gruppe admins via Button aus Liste hinzufügen auswählen und hinzufügen

    4. Kommandos: ALL hinzufügen

    5. mit Button Ok bestätigen

User-Template: newitstaff
  1. Benutzer -> Aktionen: Anlegen > Vorlage

    1. Reiter: Allgemein

      1. Name der Vorlage: newitst:aff

      2. Basis: /IT-Administration
      3. Organisation: IT-Zukunft Schule Team

    2. Reiter: POSIX

      1. Klick auf Button: POSIX Einstellungen hinzufügen

      2. Basisverzeichnis: /skole/tjener/home1/%uid

      3. 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

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 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 #995610 und wird duch diesen 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.

Weitere Notizen

Aktuell keine...

IT-Zukunft Schule: Technik/Installation/VM/HauptServerTjener/Bullseye (zuletzt geändert am 2022-11-29 15:41:03 durch DanielTeichmann)