Включите ecryptfs для всех новых пользователей, даже если они проходят аутентификацию через Kerberos и ldap.

Как сделать так, чтобы при первом входе в систему домашний каталог зашифровывался у всех пользователей?

Я настроил pam для использования аутентификации Kerberos и авторизации LDAP (что, на мой взгляд, не должно эффект на ecryptfs).

Я также настроил pam-mkhomedir для создания домашних каталогов из / etc / skel, в который я поместил несколько стандартных конфигураций.

Если посмотреть на каталог .ecryptfs в одной учетной записи пользователя, для которого уже включена поддержка ecryptfs, есть некоторые пользовательские конфигурации, такие как точка монтирования (например, / home / d_inevitable), которая не годится для / etc /skel.

Также необходимо скопировать конфигурации в / etc / skel после того, как домашний каталог был смонтирован с помощью ecryptfs.

5
задан 10 March 2012 в 19:53

1 ответ

Мне удалось заставить это работать с помощью pam_exec:

  1. Создайте сценарий для установки ecryptfs для всех новых пользователей в /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
    

    Удостоверьтесь, что сценарий является исполняемым файлом:

    sudo chmod a+rx /etc/security/ecryptfs
    
  2. Добавьте запись для выполнения его с pam_exec на авторе:

    sudo vim /etc/pam.d/common_auth
    

    Добавьте следующие строки:

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

    pam_exec установлен на необходимый, потому что это не установит ecryptfs, если сценарий не будет работать как корень. Дело обстоит так, если su используется от некорневого пользователя. Таким образом, если ecryptfs не является установкой и su используется (это - когда пользователь пытается войти во впервые использование su) затем его будет отказан. Как таковой мы удостоверяемся, что пользователь не может войти в систему без установки ecryptfs.

  3. Создайте другой сценарий для заполнения корневого каталога вместо pam_mkhomedir

    sudo vim /etc/security/mkhome
    

    Этот сценарий скопирует все в/etc/skel, если файл .donotremove не будет существовать.

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

    Также удостоверьтесь, что этот файл является исполняемым файлом:

    sudo chmod a+rx /etc/security/mkhome
    
  4. Добавьте другую запись для выполнения этого сценария на сессии

    sudo vim /etc/pam.d/common_session
    

    Добавьте следующие строки:

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

Теперь пользователи LDAP могут войти и иметь зашифрованный корневой каталог ecryptfs.

Обновление

Вместо того, чтобы редактировать файлы в /etc/pam.d непосредственно (который обычно не рекомендуется), лучше применить настройки как профиль PAMConfig.

Просто вставьте этот код в новый файл /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

И затем выполненный pam-auth-update:

pam-auth-update

Проверить Enable EcryptFS for users from remote directories such as LDAP. и удостоверьтесь это eCryptfs Key/Mount Management неконтролируем. Оставьте на виду все другие опции на ваше усмотрение.

Это удостоверится что соответствующие конфигурации в /etc/pam.d применяются и что они остаются там.

6
ответ дан 10 March 2012 в 19:53

Другие вопросы по тегам:

Похожие вопросы: