Installieren von Shadow-4.0.3

Geschätzte Kompilierzeit:              0.4 SBU
Ungefähr benötigter Festplattenplatz:  11 MB

Inhalt von Shadow

Das Shadow Paket wurde zur verstärkung der Sicherheit von System Passwörtern eingeführt.

Installierte Programme: chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (Link auf newgrp), useradd, userdel, usermod, vigr (Link auf vipw) und vipw

Shadow Installationsabhängigkeiten

Shadow ist abhängig von: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

Installation von Shadow

Die Programme login, getty und init (ein einige andere) pflegen eine Reihe Logdateien in denen sie aufzeichnen wer in das System eingloggt ist und wer eingeloggt war. Diese Programme erzeugen die Logdateien jedoch nicht wenn sie nicht existieren, wenn sie also diese Art Protokollierung möchten, müssen sie die Dateien selber anlegen. Das Shadow Paket muss diese Dateien an der richtigen Stelle finden, deshalb erstellen wir sie nun mit den korrekten Rechten:

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}

Die Datei /var/run/utmp listet die gerade angemeldeten Benutzer auf, /var/log/wtmp wer eingloggt war und wann. /var/log/lastlog speichert für jeden Benutzer wann er das letzte Mal angemeldet war und /var/log/btmp listet die fehlgeschlagenen Login Versuche auf.

Shadow baut den Pfad zu passwd in die Binärdatei selbst fest ein, aber macht das leider nicht ganz korrekt. Wenn die Datei passwd beim installieren von Shadow nicht vorhanden ist, nimm das Paket an, das es nach /bin/passwd gehört, installiert es dann aber nach /usr/bin/passwd. Das führt zu dem Fehler das /bin/passwd nicht gefunden werden kann. Um diesen Fehler zu umgehen erstellen sie eine dymmy passwd Datei, damit der Pfad korrekt eingebunden wird:

touch /usr/bin/passwd

Die aktuelle Shadow suite hat ein Problem das dazu führt das newgrp fehlschlägt. Der folgende Patch (der auch in Shadow's CVS Code vorhanden ist) behebt dieses Problem:

patch -Np1 -i ../shadow-4.0.3-newgrp-fix.patch

Bereiten sie Shadow nun zum kompilieren vor:

./configure --prefix=/usr --libdir=/usr/lib --enable-shared

Kompilieren sie das Paket:

make

Und installieren sie es:

make install

Shadow benutzt zwei Dateien zur Konfiguration der Authentifizierungseinstellungen. Installieren sie diese beiden Konfigurationsdateien:

cp etc/{limits,login.access} /etc

Wir möchten die Methode auf MD5 ändern, welche theoretisch sicherer ist als die standard "crypt" Methode, und ausserdem erlaubt sie Passwörter mit mehr als 8 Zeichen. Ausserdem müssen wir den alten Ort für die Benutzermailboxen /var/spool/mail nach /var/mail ändern. Das erledigen wir indem wir die Konfigurationsdatei beim kopieren an die richtige Stelle gleich ändern:

sed -e 's%/var/spool/mail%/var/mail%' \
    -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \
    etc/login.defs.linux > /etc/login.defs

Anmerkung: Seien sie besonders vorsichtig wenn sie das obige abschreiben. Es ist sicherer wenn sie es kopieren und einfügen anstatt es alles abzuschreiben.

Laut der Man-page von vipw sollte auch ein vigr Programm existieren. Da das Installationsprogramm dieses Programm nicht erzeugt, erstellen wir den symbolischen Link selber:

ln -s vipw /usr/sbin/vigr

Weil der symbolische Link /bin/vipw redundant ist (und zusätlich auch noch ins Leere zeigt), entfernen sie ihn:

rm /bin/vipw

Verschieben sie nun das Programm sg an die richtige Stelle:

mv /bin/sg /usr/bin

Und verschieben sie Shadow's dynamische Bibliotheken an eine bessere Stelle:

mv /usr/lib/lib{shadow,misc}.so.0* /lib

Weil einige Pakete die gerade verschobenen Bibliotheken in /usr/lib erwarten, erstellen sie die folgenden symbolischen Links:

ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so

Coreutils hat bereits ein groups Programm in /usr/bin installiert. Wenn sie möchten können sie das von Shadow installierte wieder löschen:

rm /bin/groups

Konfigurieren von Shadow

Dieses Paket enthält Werkzeuge zum bearbeiten, hinzufügen und löschen von Benutzerpasswörtern. Wir werden hier nicht erläutern was genau das 'password shadowing' bedeutet. Eine vollständige Erklärung finden sie in der Datei doc/HOWTO im entpackten Shadow Verzeichnisbaum. Eines gilt es allerdings zu beachten: Programme die Passwörter überprüfen müssen (z. B. xdm, ftp und pop3 Server) müssen shadow-konform sein, sdas heisst sie müssen mit shadow Passwörtern umgehen können.

Um shadow Passwörter zu aktivieren, benutzen sie das folgende Kommando:

/usr/sbin/pwconv

Und um shadow Gruppenpasswörter zu aktivieren, benutzen sie das folgende Kommando:

/usr/sbin/grpconv

Unter normalen Umständen haben sie bis hierher noch keine Passwörter erzeugt. Wenn sie jedoch hierher zurückgeblättert haben um nachträglich Shadow zu aktivieren, dann sollten sie alle Benutzerpasswörter mit dem Kommando passwd und die Gruppenpasswörter mit dem Kommando gpasswd zurücksetzen.