Pasta inicial criptografada ainda acessível após o logout

13

Se você possui uma conta com uma pasta pessoal criptografada, não é possível acessar os dados de texto sem formatação do usuário na pasta pessoal se esse usuário ainda não efetuou login, desde a última inicialização do sistema. Era o que eu esperava, porque na verdade não deveria ser praticamente possível acessar a pasta pessoal de um usuário sem que a senha seja inserida.

No entanto, descobri que quando um usuário com uma pasta inicial criptografada efetua login e depois efetua logout, os dados de texto sem formatação na pasta inicial ainda ficam acessíveis a outros usuários. Privilégios de acesso suficientes são necessários, é claro.

wnão lista o usuário e a saída de sudo pgrep -u <username>está vazia, indicando que o usuário não possui nenhum processo em execução.

Qual o motivo desse comportamento? Por que não apenas bloquear a pasta pessoal do usuário após o logout?

UTF-8
fonte
Você poderia incluir a saída de grep -Fe ecryptfs /var/log/auth.logaproximadamente quando o usuário desconectou?
David Foerster
O comando produz esta saída: pastebin.com/jZXdahbJ De acordo com o Emacs, as únicas linhas que contêm a sequência "ecryptfs" são as linhas produzidas quando executei esse comando.
UTF-8
O resultado é como esperado, apenas as linhas que o Emacs já me mostrou: pastebin.com/VtV7iCDg
UTF-8
Está bem. Valeu a pena dar uma olhada.
David Foerster
Também notei esse bug em sistemas ao vivo persistentes (na tentativa de criar um segundo usuário com casa criptografada).
sudodus

Respostas:

6

Bug conhecido

Se bem entendi, esse é um bug conhecido.

Veja este link: wiki.archlinux.org/index.php/ECryptfs

Role para baixo até o parágrafo rosa

Aviso: Infelizmente, a desmontagem automática é suscetível de romper com o systemd e os bugs são arquivados contra ele ...

Gambiarra

Como é agora, é melhor desligar ou reiniciar para remover os rastreamentos ( não é suficiente fazer logout).

sudodus
fonte
O que você quer dizer com "logout vazará as informações entre os usuários"? Você quer dizer que algo acontece, exceto que um usuário diferente com privilégios suficientes pode acessar os dados de texto sem formatação no diretório inicial do primeiro usuário? (Isto já é possível antes de o Sair, é claro.)
UTF-8
1
Tentando explicar melhor: 'Não basta sair'. (O logout não remove as instâncias de texto não criptografado dos arquivos que foram usadas pelo usuário com a casa criptografada. Portanto, as informações podem vazar desse usuário para outro usuário que efetua login, pelo menos se esse outro usuário tiver privilégios de sudo. mas se você desligar ou reiniciar, as instâncias em texto simples dos arquivos desaparecer.
sudodus
3

Não posso testar ou confirmar isso, mas supondo que você esteja usando ecryptfs(que é o que o Ubuntu oferece durante a instalação, IIRC), os dados criptografados são armazenados em uma pasta oculta /home/.encryptfs/$USERe montados na localização da sua pasta pessoal usando o ecryptfsdriver quando você faz o logon. dentro.

Provavelmente, o que está acontecendo é que, quando você efetua logout, ele falha ao desmontar automaticamente esse diretório, para que os arquivos ainda estejam acessíveis. Isso pode ser causado por ...

  • uma configuração ruim (talvez devesse ser configurada para desmontar no logout, mas não era)
  • tipo de logoff inesperado (algumas vezes, essas soluções funcionam para o logon / logout do DM, mas não funcionam bem de outra forma)
  • se a desmontagem for tratada por um script de logout (não necessariamente o caso), algo que precede o comando desmontar poderá falhar e fazer com que o script saia mais cedo.

Uma coisa que pode ajudá-lo a verificar isso seria executar sudo mount | grep homeantes do logon, após o logon e após o logout para ver se algo homeestá sendo montado. Você também pode procurar /etc/fstabentradas relevantes. Finalmente, há algumas configurações /home/.ecryptfs/$USER/.ecryptfs/com configurações pertinentes à montagem / desmontagem automática.

Informações úteis ecryptfspodem ser encontradas nesta resposta e no sempre útil ArchWiki .

krs013
fonte
Tentei o que você me disse: pastebin.com/DrmEXQPV Não saio de maneira estranha, mas da maneira GUI padrão. O FS ainda está montado, como você pode ver. Os arquivos de configuração que você mencionou estão vazios. Não há nada na minha /etc/fstabentrada, exceto 1, dizendo que minha única partição de dados deve ser montada /e 1 entrada que seja sobre algum recurso de rede relacionado à universidade. Devo tentar sair de outra maneira? Se sim: como?
UTF-8
O logoff de uma maneira diferente foi um palpite: os gerentes de desktop acrescentam muito ao logon e logout, o que complica a noção e dificulta a identificação de quais eventos são acionados. Fiquei pensando, porque pode ter havido algum script ou evento que não estava sendo executado. Com base nas outras respostas, não é esse tipo de problema, mas algo a ver com ecryptfsela mesma. Nessa nota, porém, você usa sshou efetua login através dos terminais de texto? Talvez seja possível escrever um script que desmonte o logout se encontrarmos onde colocá-lo.
krs013
3

Editar /etc/systemd/logind.confe definirKillUserProcesses=yes

Note-se que este programa quebra de fundo, screen, tmux, e semelhante ...

Esta pergunta aqui entra em mais detalhes. Acho que a definição de um novo serviço systemd é desnecessária (ou mais precisamente, não o comportamento desejado, pois é chamado como um gancho de desligamento, não quando a sessão do usuário termina).

/unix/251902/ecryptfs-auto-umount-does-not-work

quadruplebucky
fonte
Vou verificar se o seu método funciona para um sistema ativo persistente com um segundo usuário, que tenha criptografado a casa.
sudodus
Desculpe, mas eu poderia não fazer este trabalho método em um sistema live persistente com um segundo usuário, que tem criptografada casa. (Eu não testei sua solução em um sistema instalado, eu vou deixar isso para @ UTF-8 que fez a pergunta original).
sudodus
Não estou interessado em consertar isso no meu próprio computador. Sou o único que o usa de qualquer maneira, mas deseja usar 2 contas com pastas pessoais criptografadas e ninguém mais sabe a senha de nenhuma das contas. Estou interessado em saber por que ele não desmonta os volumes criptografados automaticamente por padrão . Não era possível apenas verificar processos ativos em segundo plano em execução no contexto do usuário e desmontá-lo, se não houver algum?
UTF-8
@ UTF-8, eu concordo com você, que deve funcionar como você quer que ele funcione. Se bem entendi, esse é um bug conhecido. Veja este link, wiki.archlinux.org/index.php/ECryptfs . Role para baixo até o parágrafo rosa 'Aviso: Infelizmente, a desmontagem automática é suscetível de quebrar com o systemd e os bugs são arquivados'. - Como é agora, é melhor desligar ou reiniciar, a fim de remover os vestígios (Sair vai vazar a informação entre os usuários.)
sudodus
@ UTF-8 é um bug na interação systemd / sessão desde pelo menos chiado (estou perfeitamente confortável apenas pendurando no systemd) - a alteração /etc/systemd/logind.conf funciona para mim no 16.04 (testado com três usuários diferentes , sessões diferentes, etc ...)
quadruplebucky
3

Estou pesquisando esse problema há algum tempo, ou seja, o sistema de arquivos não criptografado permanece montado após o logout do usuário.

Eu usei "ecryptfs-migrate-home -u user" para criar mount. seguiu as instruções e todos os trabalhos, exceto nenhuma desmontagem automática no logout.

Comparei os arquivos de configuração em /etc/pam.d/ com a documentação pam_ecryptfs e encontrei algumas diferenças. O ecryptfs estava em 4 dos arquivos de configuração do pam.d, enquanto os documentos pam_ecryptfs indicam que apenas 2 arquivos precisam / devem / suportam o ecryptfs, por exemplo,

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

Portanto, comentei as outras 2 instâncias, reiniciei e tudo funcionou: montagens automáticas no login e desmontagens automáticas no logout para logins gráficos e de console. (Usei tty alternativos para verificar a partir da conta root)

Esta é a versão 18.04 do Lubuntu no laptop, desktop e convidado da caixa virtual (host do Windows).

Estou interessado em outras experiências.

edit_1: redação aprimorada. edit_2: adicionados os resultados dos testes de desktop e VB.

pedra vermelha
fonte
Desativar / comentar alguma dessas linhas causou problemas? A alteração de sua senha ainda envolve novamente o arquivo de chave eCryptfs?
Xen2050
Isso funcionou para mim no Linux Mint 19. Para adicionar mais detalhes a outros: os quatro arquivos de configuração no /etc/pam.d que se referem ao ecryptfs são: common-auth, common-password, common-session, common-session- não interativo. Comentar as linhas em senha comum e sessão comum não-interativa levou ao comportamento desejado de desmontagem no logout. Além disso, a entrada em common-auth foi configurada como "opcional" em vez de "necessária", como deveria estar de acordo com a documentação. No entanto, deixei isso como está.
evencoil
@ Xen2050, desculpe pela resposta tardia. Não detectei nenhum problema após alterações comentando linhas e ainda não tentei alterar a senha.
redrock
A alteração da senha pode ser importante para testar; ela deve envolver novamente a chave de criptografia com sua nova senha automaticamente, para que o login da próxima vez funcione. Se ele não funciona, então é só mudar a volta senha para o anterior deve trabalhar ... [é sempre bom ter um backup embora]
Xen2050
1
@ Xen2050, fiz o teste de alteração de senha. funcionou.
redrock
2

Eu faço isso com um script em rclocal

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0
Walter Wunsch
fonte
Como você obtém o ID do usuário?
Avinash Raj
0

Se você não precisar acessar o cron ou as tarefas (tarefas não interativas) para QUALQUER diretório inicial, basta comentar a linha

session  optional        pam_ecryptfs.so unwrap

no /etc/pam.d/common-session-noninteractive.

Isso fará com que todos os diretórios pessoais criptografados sejam desmontados quando o usuário efetuar logout.

Geoff Mulligan
fonte