Ubuntuclients an einen Skolelinuxserver anbinden

In diesem Artikel wird erklärt, wie man einen Client mit Ubuntu 12.04 (oder auch Edubuntu) in einem Skolelinux 6.0 (Squeeze) Netzwerk so einrichtet, dass

  • man sich mit Benutzernamen anmelden kann, die man zentral auf dem Skolelinuxserver (tjener) eingerichtet hat.
  • die Homeverzeichnisse (und weitere Freigaben) automatisch gemountet werden, so dass jeder Benutzer an jedem Rechner des Netzwerks dasselbe Homeverzeichnis hat.

Im folgenden wird zunächst schrittweise die manuelle Konfiguration der Pakete erläutert. Im Artikel ubuntu-debian-edu-ldap.sh wird ein Script zur Verfügung gestellt, dass alle beschrieben Aktionen automatisch durchführt.

Benutzerauthentifizierung über LDAP

Zunächst benötigt man einige Pakte um einen LDAP-Client einzurichten:

sudo apt-get install libnss-ldapd libpam-ldapd auth-client-config ldap-auth-client ldap-auth-config nslcd nscd libpam-ck-connector 

Bei der Installation werden einige Fragen gestellt, die man wie folgt beantworten muss. Die Galerie zeigt die zugehörigen Screenshots.

Paket libnss-ldapd


Konfiguration des Pakets libnss-ldapd

Namensauflösungsdienste, die eingerichtet werden sollen. Hier wählt man (mit Leertaste markieren):

  • group
  • hosts
  • netgroup
  • networks
  • passwd
  • services
  • shadow

aus.

Paket libpam-ldapd


Hier wird man nach den PAM-Profilen gefragt. Es müssen alle ausgewählt werden.

Konfiguration des Pakets libpam-ldapd

Danach aktiviert man noch mit

sudo auth-client-config -t nss -p lac_ldap

den LDAP-Support für das PAM-System.

Konfigurationsdateien befinden sich unter /etc/pam.d.


Die Screenshots zur Konfiguration der folgenden Pakte befinden sich in der Galerie unten.

Paket nslcd


  • URI des LDAP-Servers: ldap://ldap.intern/ (Es können auch alle anderen Namen des Servers wie tjener, www oder die IP-Adresse (10.0.2.2) verwendet werden.)
  • Suchbasis des LDAP-Servers: dc=skole,dc=skolelinux,dc=no

Konfigurationsdatei: /etc/nslcd.conf

Paket ldap-auth-config


  • URI des LDAP-Servers: ldap
  • Distinguished name of the search base: dc=skole,dc=skolelinux,dc=no
  • LDAP version: 3
  • Make local root Database admin? No
  • Does the LDAP database require login? No

Konfigurationsdatei: /etc/ldap.conf

Nun muss man noch Eintragung in die Datei /etc/ldap/ldap.conf machen. Dies liegt daran, dass es gerade größere Umbaumaßnahmen bzgl. der LDAP-Pakete gibt, so dass je nach Fortschritt der Maßnahme die Datei /etc/ldap/ldap.conf oder /etc/ldap.conf gelesen wird.

Die Datei /etc/ldap/ldap.conf muss so aussehen:

/etc/ldap/ldap.conf
HOST ldap.intern
SUDOERS_BASE ou=sudoers,dc=skole,dc=skolelinux,dc=no
BASE dc=skole,dc=skolelinux,dc=no
TLS_REQCERT demand
TLS_CACERT /etc/ldap/ssl/ldap-server-pubkey.pem

Danach muss man noch das Zertifikat, dass unter /etc/ldap/ssl/ldap-server-pubkey.pem liegen muss vom Server, wo es an der gleichen Stelle liegt, kopieren.

Hat man bei der Eingabe etwas falsch gemacht, so kann man entweder die angegebenen Konfigurationsdateien bearbeiten oder die Konfiguration durch sudo dpkg-reconfigure <paketname> erneut aufrufen.

Sudoers aus dem LDAP

Es ist auch möglich, die per gosa eingerichteten Sudoers (Menüpunkt Sudo) , auf den Clients zu nutzen. D. h. alle dort eingerichteten Sudoers haben sudo-Rechte auf den Clients. Dazu installiert man das Paket sudo-ldap. Dazu muss man zunächst die SUDO Safety switch auf no setzen, dieses geht nicht mit einem sudo Aufruf, deswegen sollte man sich zuvor mit sudo su als root einloggen.

sudo su
export SUDO_FORCE_REMOVE=yes
apt-get install sudo-ldap
export SUDO_FORCE_REMOVE=no

und verlinkt dann die /etc/ldap/ldap.conf mit der Datei /etc/sudo-ldap.conf, da diese beide den gleichen Inhalt haben müssen.

sudo ln -sf /etc/ldap/ldap.conf /etc/sudo-ldap.conf

und fügt dann noch die Zeile sudoers: files ldap zur Datei /etc/nsswitch.conf hinzu.

sudo sh -c "echo 'sudoers:      files ldap' >> /etc/nsswitch.conf"

Kerberos

Kerberos-Konfiguration

Als nächstes müssen die Kerberos spezifischen Pakete installiert werden, da auf tjener Kerberos das LDAP-Verzeichnis dazu nutzt, seine Schlüssel zu speichern.

sudo apt-get install  libpam-krb5 krb5-user libsasl2-modules-gssapi-mit 

Während der Installation wird man nach dem voreingestellten Realm gefragt, dieser ist INTERN.

Lokale Gruppen

Die LDAP-Benutzer sind nicht automatisch Mitglieder von lokalen Gruppen. Dieses ist aber notwendig; soll ein über LDAP authentifizierter Benutzer z. B. auf Audiogeräte zugreifen dürfen, so muss er sich in der lokalen Gruppe audio befinden. Es gibt weitere solcher Gruppen, die man sich mit groups für einen lokalen Benutzer anzeigen lassen kann. Damit die über LDAP authentifizierter Benutzer Mitglieder dieser Gruppe werden, hängt man die Zeile

* ; * ; * ; Al0000-2400 ; floppy, audio, cdrom, video, usb, plugdev, users

an die Datei /etc/security/group.conf an. Dies geht schnell mit dem Befehl:

sudo sh -c "echo '* ; * ; * ; Al0000-2400 ; floppy, audio, cdrom, video, usb, plugdev, users' >> /etc/security/group.conf"

Automount der Homeverzeichnisse

Damit die Homeverzeichnisse der Benutzer automatisch gemountet werden, muss man zunächst die beiden Pakete autofs und autofs-ldap installieren:

sudo apt-get install autofs autofs-ldap

In der Konfigurationsdatei von autofs muss man nun noch den LDAP-Server eintragen. Dazu ergänzt man die Zeile

LDAPURI=ldap://ldap.intern

in der Datei /etc/default/autofs.

Danach muss man in der Datei /etc/nsswitch.conf, die schon durch das Paket libnss-ldapd eingerichtet wurde, noch den Eintrag automount: files ldap ergänzen, damit auch die Informationen über die Mountpoints vom LDAP bezogen werden. Die Datei muss dann am Ende so aussehen:

/etc/nsswitch.conf
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 ldap
networks:       files ldap

protocols:      db files
services:       db files ldap
ethers:         db files
rpc:            db files

netgroup:       nis ldap
netgroup:       nis ldap
sudoers:        files ldap
automount:      files ldap

Die Homeverzeichnisse der Benutzer auf tjener liegen nicht wie gewöhnlich unter /home sondern unter /skole/tjener/home0. Diese werden auf den Clients an der selben Stelle gemountet. Somit muss man mit

sudo mkdir /skole

diesen Mountpunkt erstellen.

lightDM einrichten

Nun muss man noch dem Displaymanager (LightDM) so einrichten, dass man Benutzernamen eingeben kann und nicht nur lokale auswählen kann:

/usr/lib/lightdm/lightdm-set-defaults --show-manual-login true

Außerdem sollen die bereits angemeldeten Benutzer nicht als Liste angezeigt werden:

/usr/lib/lightdm/lightdm-set-defaults --hide-users true

Diese Einstellungen kann man auch direkt in die Datei /etc/lightdm/lightdm.conf schreiben.

Dienste neu starten und testen

Nach Neustart aller beteiligten Dienste

sudo /etc/init.d/nscd restart
sudo /etc/init.d/nslcd restart
sudo /etc/init.d/autofs restart
sudo /etc/init.d/sudo restart

oder des gesamten Clients, kann man sich nun mit Benutzern, die auf tjener angelegt wurden, anmelden.

Man kann sich mit

getent passwd

bzw.

getent group

alle Benutzer des LDAP-Accounts und Gruppen anzeigen lassen.

Wenn man neben den LDAP-Benutzern auch lokale Benutzer verwenden möchte, ist evtl. der Artikel Das Problem mit der UID noch interessant.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
140 +3 = ?
 
 
skolelinux/ubuntuclients.txt · Zuletzt geändert: 2013/04/02 20:59 von admin