wake-up-neo.com

Aktivieren Sie Ecryptfs für alle neuen Benutzer, auch für Benutzer, die sich über Kerberos und LDAP authentifizieren

Wie stelle ich sicher, dass alle Benutzer ihr Home-Verzeichnis beim erstmaligen Anmelden verschlüsselt haben?

Ich habe Setup-Pam zur Verwendung der Kerberos-Authentifizierung und der LDAP-Autorisierung (was meiner Meinung nach keine wirklichen Auswirkungen auf Ecryptfs haben sollte).

Ich habe auch pam-mkhomedir eingerichtet, um die Home-Verzeichnisse aus/etc/skel zu erstellen, in denen ich einige Standardkonfigurationen abgelegt habe.

Wenn Sie sich das Verzeichnis .ecryptfs in einem Benutzerkonto ansehen, für das ecryptfs bereits aktiviert ist, gibt es einige benutzerspezifische Konfigurationen, z. B. den Mountpoint (festgelegt auf/home/d_inevitable), der in/etc/skel nicht geeignet wäre.

Auch die Konfigurationen in/etc/skel müssten kopiert werden nachdem das Home-Verzeichnis mit ecryptfs gemountet wurde.

5
d_inevitable

Ich habe es geschafft, es mit pam_exec zum Laufen zu bringen:

  1. Erstellen Sie ein Skript zum Einrichten von Ecryptfs für alle neuen Benutzer in /etc/security/ecryptfs:

    #!/bin/bash
    
    home=`eval echo ~$PAM_USER`
    ecryptfs=/home/.ecryptfs/$PAM_USER/.ecryptfs
    
    read password
    
    if [ -d $ecryptfs ];  then
        # ecryptfs is set
        echo "Ecryptfs is already configured"
        exit 0
    Elif [ `id -u` == 0 ]; then
        # Setup ecryptfs and make home
        umask 077
        mkdir -p $home
        group=`id -gn $PAM_USER`
        chown $PAM_USER:$group $home
    
        ecryptfs-setup-private -u $PAM_USER -l "$password" -b --nopwcheck
        exit 0
    else
        # NOT ROOT
        echo "Cannot login with 'su' for the first time"
        exit 1
    fi
    

    Stellen Sie sicher, dass das Skript ausführbar ist:

    Sudo chmod a+rx /etc/security/ecryptfs
    
  2. Füge einen Eintrag hinzu, um ihn mit pam_exec auf auth auszuführen:

    Sudo vim /etc/pam.d/common_auth
    

    Fügen Sie die folgenden Zeilen hinzu:

    auth    required        pam_exec.so     expose_authtok /etc/security/ecryptfs
    auth    optional        pam_ecryptfs.so unwrap
    

    Das pam_exec Ist auf erforderlich gesetzt, da es keine ecryptfs einrichtet, wenn das Skript nicht als root ausgeführt wird. Dies ist der Fall, wenn su von einem Benutzer ohne Rootberechtigung verwendet wird. Wenn also ecryptfs nicht eingerichtet ist und su verwendet wird (dh, wenn der Benutzer versucht, sich zum ersten Mal mit su anzumelden), wird sein Konto abgelehnt. Als solches stellen wir sicher, dass sich der Benutzer nicht ohne ein Setup von ecryptfs anmelden kann.

  3. Erstellen Sie ein anderes Skript, um das Basisverzeichnis anstelle von pam_mkhomedir zu füllen

    Sudo vim /etc/security/mkhome
    

    Dieses Skript kopiert alles in/etc/skel, wenn die Datei .donotremove nicht existiert.

    #!/bin/bash
    
    cd ~
    
    if [ ! -f .donotremove ] ; then
        echo Copying /etc/skel
        cp -ra /etc/skel/* ~
        touch .donotremove
    fi
    

    Stellen Sie außerdem sicher, dass diese Datei ausführbar ist:

    Sudo chmod a+rx /etc/security/mkhome
    
  4. Fügen Sie einen weiteren Eintrag hinzu, um dieses Skript in einer Sitzung auszuführen

    Sudo vim /etc/pam.d/common_session
    

    Fügen Sie die folgenden Zeilen hinzu:

    session optional        pam_ecryptfs.so unwrap
    session optional        pam_exec.so     seteuid /etc/security/mkhome
    

Jetzt können sich LDAP-Benutzer anmelden und ein mit ecryptfs verschlüsseltes Basisverzeichnis erstellen.

Aktualisieren

Anstatt die Dateien in /etc/pam.d Direkt zu bearbeiten (was im Allgemeinen nicht empfohlen wird), ist es besser, die Einstellungen als PAMConfig -Profil anzuwenden.

Fügen Sie diesen Code einfach in eine neue Datei ein /usr/share/pam-configs/ecryptfs-nonlocal:

Name: Enable EcryptFS for users from remote directories such as LDAP.
Default: no
Priority: 0
Conflicts: ecryptfs-utils
Auth-Type: Additional
Auth-Final:
    required    pam_exec.so expose_authtok /etc/security/ecryptfs
    optional    pam_ecryptfs.so unwrap
Session-Type: Additional
Session-Final:
    optional    pam_ecryptfs.so unwrap
    optional    pam_exec.so seteuid /etc/security/mkhome
Password-Type: Additional
Password-Final:
    optional    pam_ecryptfs.so

Und dann führen Sie pam-auth-update Aus:

pam-auth-update

Überprüfen Sie Enable EcryptFS for users from remote directories such as LDAP. Und stellen Sie sicher, dass eCryptfs Key/Mount Management Nicht markiert ist . Überlassen Sie alle anderen Optionen Ihren Vorlieben.

Dadurch wird sichergestellt, dass die relevanten Konfigurationen in /etc/pam.d Angewendet werden und dort bleiben.

6
d_inevitable