Ative o ecryptfs para todos os novos usuários, mesmo aqueles que estiverem autenticando através do kerberos e do ldap

5

Como posso ter certeza de que todos os usuários têm seu diretório pessoal criptografado quando o login é feito pela primeira vez?

Eu configurei o pam para usar a autenticação do Kerberos e a autorização do LDAP (o que, na minha opinião, não deve ter nenhum efeito no ecryptfs).

Eu também configurei o pam-mkhomedir para criar os diretórios home a partir do / etc / skel no qual eu coloquei algumas configurações padrão.

Olhando para o diretório .ecryptfs em uma conta de usuário que já possui o ecryptfs ativado, existem algumas configurações específicas do usuário, como o ponto de montagem (definido como / home / d_inevitable), por exemplo, que não seria bom em / etc / skel.

Além disso, as configurações em / etc / skel precisariam ser copiadas após o diretório inicial ser montado com o ecryptfs.

    
por d_inevitable 10.03.2012 / 16:53

1 resposta

6

Consegui fazê-lo funcionar usando o pam_exec:

  1. Crie um script para configurar o ecryptfs para todos os novos usuários em /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
    

    Verifique se o script é executável:

    sudo chmod a+rx /etc/security/ecryptfs
    
  2. Adicione uma entrada para executá-lo com pam_exec na autenticação:

    sudo vim /etc/pam.d/common_auth
    

    Adicione as seguintes linhas:

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

    O pam_exec é definido como obrigatório, porque não será configurado o ecryptfs se o script não for executado como raiz. Esse é o caso se su for usado de um usuário não raiz. Portanto, se ecryptfs não for configurado e su for usado (ou seja, quando o usuário tentar efetuar login pela primeira vez usando su ), ele será recusado. Como tal, garantimos que o usuário não possa efetuar login sem uma configuração do ecryptfs.

  3. Crie outro script para preencher o diretório inicial no lugar de pam_mkhomedir

    sudo vim /etc/security/mkhome
    

    Este script irá copiar tudo em / etc / skel se o arquivo .donotremove não existir.

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

    Verifique também se este arquivo é executável:

    sudo chmod a+rx /etc/security/mkhome
    
  4. Adicione outra entrada para executar este script em uma sessão

    sudo vim /etc/pam.d/common_session
    

    Adicione as seguintes linhas:

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

Agora, os usuários do LDAP podem efetuar login e ter um diretório inicial criptografado do ecryptfs.

Atualizar

Em vez de editar os arquivos em /etc/pam.d diretamente (o que geralmente não é recomendado), é melhor aplicar as configurações como PAMConfig perfil.

Basta colar esse código em um novo arquivo /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

E, em seguida, execute pam-auth-update :

Verifique Enable EcryptFS for users from remote directories such as LDAP. e certifique-se de que eCryptfs Key/Mount Management esteja desmarcado . Deixe todas as outras opções de acordo com suas preferências.

Isso garante que as configurações relevantes em /etc/pam.d sejam aplicadas e permaneçam lá.

    
por d_inevitable 12.03.2012 / 10:08