Linux-Arbeitsplatzrechner manuell einrichten#
Eine manuelle Einbindung von Linux-Clients ist möglich, wird jedoch nicht von der IServ GmbH unterstützt.
Stattdessen wird die automatische Installation von Debian GNU/Linux über die Softwareverteilung empfohlen.
Die folgende Anleitung bezieht sich auf eine Minimalinstallation eines Clients mit Debian GNU/Linux Trixie. Auf anderen Linux-Distributionen sollte eine analoge Einrichtung möglich sein. Die konkreten Befehle und Paketnamen müssen entsprechend angepasst werden und bestimmte Konfigurationen (beispielsweise für PAM) können abweichen.
Der Domain-Name mein-iserv.de und die IP-Adresse 10.0.0.1 sind im Folgenden als Platzhalter zu verstehen und müssen durch den entsprechenden Domainnamen und die interne IP-Adresse des Portalservers ersetzt werden.
Voraussetzungen#
Der Client muss seine IP-Adresse und DNS-Konfiguration über DHCP beziehen. Dies sollte bei standardmäßigen Installationen der Fall sein.
Einrichtung eines SSH-Servers und Hinterlegung eines Public-Keys (Optional)#
Bei Bedarf kann auf dem Client der SSH-Public-Key des Portalservers hinterlegt werden, um einen Fernzugriff von ihm aus zu ermöglichen:
apt install wget openssh-server
wget https://mein-iserv.de/.well-known/iserv/ssh/id_default.pub -O /root/.ssh/authorized_keys
Client der Domäne hinzufügen#
Die Anmeldung am Client mit IServ-Benutzerdaten geschieht über Kerberos. Winbind stellt die Auflösung von Namen und IDs für Benutzer und Gruppen bereit.
Die Pakete lassen sich wie folgt installieren und konfigurieren:
apt install krb5-user libpam-krb5 libnss-winbind libpam-winbind
/etc/krb5.conf:
[libdefaults]
default_realm = AD.MEIN-ISERV.DE
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
fcc-mit-ticketflags = true
[realms]
AD.MEIN-ISERV.DE = {
kdc = iserv.ad.mein-iserv.de.
admin_server = iserv.ad.mein-iserv.de.
default_domain = AD.MEIN-ISERV.DE
}
[domain_realm]
/etc/samba/smb.conf:
[global]
workgroup = AD
realm = ad.mein-iserv.de
security = ADS
os level = 0
local master = No
domain master = No
template homedir = /var/lib/iserv/client/home/%U
template shell = /bin/bash
winbind cache time = 10
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = yes
winbind expand groups = 4
winbind use default domain = yes
wins server = 10.0.0.1
idmap config * : range = 2000000-2999999
idmap config * : backend = tdb
idmap config AD : range = 500-1999998
idmap config AD : backend = ad
idmap config AD : unix_primary_group = yes
include = /etc/samba/smb.conf.local
Der Beitritt zur Domäne wird mittels eines Nutzer durchgeführt, der auf dem IServ der Gruppe „Domain Admins“ angehören muss:
net ads join --no-dns-updates -U "AD\erika.musterfrau"
Anschließend muss auf dem Portalserver die Zuweisung von UID und GID an Geräteaccounts ausgelöst werden. Dies kann in der IServ-Oberfläche über ausgelöst werden.
Nach Abschluss muss auf dem Client Winbind neugestartet werden:
systemctl restart winbind
Ein Login mit den IServ-Benutzerdaten sollte nun (ggf. nach kurzer Wartezeit) möglich sein.
Automatisch lokale Home-Verzeichnisse anlegen#
Über PAM lassen sich während der Anmeldung automatisch lokale Home-Verzeichnisse anlegen. Die Konfiguration von PAM findet unter Debian und Derivaten mit folgendem Befehl statt:
pam-auth-update
In der Auswahl Create home directory on login aktivieren und mit OK abspeichern. Das Home-Verzeichnis wird nach dem in der smb.conf angegebenen Muster (template homedir) benannt.
Automatisch Freigaben einbinden#
Zum Zugriff auf die Freigaben und deren automatische Einbindung (Mounten) muss der CIFS-Client sowie das PAM-Mount-Modul installiert und konfiguriert sein:
apt install libpam-mount cifs-utils
Die folgende Konfiguration der /etc/security/pam_mount.conf.xml bindet die benutzerspezifischen Freigaben ein.
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<debug enable="0" />
<volume fstype="cifs" server="10.0.0.1" sgrp="domain.users" path="home" mountpoint="/var/lib/iserv/client/home/%(USER)/Files" options="domain=AD,iocharset=utf8,dir_mode=0700" />
<volume fstype="cifs" server="10.0.0.1" sgrp="domain.users" path="groups" mountpoint="/var/lib/iserv/client/home/%(USER)/Groups" options="domain=AD,iocharset=utf8,dir_mode=0700" />
<volume fstype="cifs" server="10.0.0.1" sgrp="domain.users" path="linux_print" mountpoint="/var/lib/iserv/client/home/%(USER)/Print" options="domain=AD,iocharset=utf8,dir_mode=0700" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<mntoptions require="nosuid,nodev" />
<logout wait="0" hup="no" term="no" kill="no" />
<mkmountpoint enable="1" remove="true" />
</pam_mount>