Como configurar um diretório criptografado para ser montado apenas durante o acesso do samba?

7

(Não se trata de restringir o acesso do cliente, para o qual as permissões ext3 fazem o truque)

Gostaria de criptografar os dados da minha unidade NAS ( Buffalo LinkStation Pro com acesso SSH habilitado, se isso importa) de uma maneira amigável. Atualmente, um contêiner TrueCrypt deve ser montado manualmente via SSH e também desmontado novamente (a menos que você resolva a minha pergunta de tempo limite ) . Usando uma chave SSH sem senha (mas criptografada com EFS), isso é reduzido a dois atalhos da área de trabalho do PuTTY e à digitação da senha do truecrypt (até que simplificado adicional ) para montagem.

No entanto, a solução ideal seria transparente. Primeiro pensei em tentar de alguma forma ter o compartilhamento permitir a criptografia EFS , mas isso provavelmente envolveria mais trabalho e EFS para vários usuários sem um servidor do Active Directory parece ser problemático .

Mas agora a minha ideia é uma montagem automatizada de, e. um diretório criptografado EncFS disparado automaticamente por um acesso samba de usuários autorizados (usando clientes Windows). Como isso pode ser alcançado? (Pontos de bônus para exibir uma participação no honeypot para usuários não autorizados ...)

    
por Tobias Kienzler 11.10.2012 / 08:08

2 respostas

0

Estou vendo um esboço de uma solução usando "scripts de logon" do Samba - código do lado do cliente que é executado após um login do samba - mas uma solução completa precisa concluir o esboço com detalhes. Também relacionados são "scripts preexec" - código do lado do servidor que é executado durante um login do samba.

Fazendo referência à página de manual smb.conf

logon script (G)

This parameter specifies the batch file (.bat) or NT command file (.cmd) to be downloaded and run on a machine when a user successfully logs in. The file must contain the DOS style CR/LF line endings. Using a DOS-style editor to create the file is recommended.

The script must be a relative path to the [netlogon] service. If the [netlogon] service specifies a path of /usr/local/samba/netlogon, and logon script = STARTUP.BAT, then the file that will be downloaded is:

/usr/local/samba/netlogon/STARTUP.BAT

The contents of the batch file are entirely your choice. A suggested command would be to add NET TIME \SERVER /SET /YES, to force every machine to synchronize clocks with the same time server. Another use would be to add NET USE U: \SERVER\UTILS for commonly used utilities, or

NET USE Q: \SERVER\ISO9001_QA

for example.

Note that it is particularly important not to allow write access to the [netlogon] share, or to grant users write permission on the batch files in a secure environment, as this would allow the batch files to be arbitrarily modified and security to be breached.

This option takes the standard substitutions, allowing you to have separate logon scripts for each user or machine.

e também

preexec (S)

This option specifies a command to be run whenever the service is connected to. It takes the usual substitutions.

An interesting example is to send the users a welcome message every time they log in. Maybe a message of the day? Here is an example:

preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &

No seu caso, no entanto, você realmente deseja scripts de logon (o formulário não criptografado é montado no cliente), portanto, um esboço de solução pode envolver:

  1. garanta que cada computador tenha um equivalente ao EncFS instalado
  2. escreve um script de logon (formato .bat) que chama o encfs no cliente e solicita ao usuário o logon. O comando encfs monta o formulário não criptografado localmente, com o armazenamento remoto permanecendo criptografado.
  3. configure smb.conf para que os usuários relevantes executem o script de logon. por exemplo. algo como

    script de logon = runencfs.bat

  4. Para pontos de bônus, seu script de logon pode automatizar / solicitar a instalação do Encfs (do compartilhamento de samba) e só executar a montagem se ela estiver instalada!

No entanto, os scripts do lado do cliente podem causar dores de cabeça por causa da linguagem cmd, garantindo a instalação do encfs e contornando as falhas do Windows, como o Windows 8.1 e acima de não executar os scripts de logon até cinco minutos depois, a menos que configurado de outra forma .

    
por 21.09.2017 / 21:01
0

Se a sua preocupação é a segurança dos dados em repouso, você poderia procurar por uma solução de criptografia no NAS (o FreeNAS e o Synology fazem isso). Na inicialização, você precisa inserir uma chave para abrir o volume, mas depois disso, ele funciona como um compartilhamento não criptografado, portanto, nenhuma configuração do lado do cliente é necessária.

Se, por outro lado, você estiver preocupado com os dados que estão sendo obtidos do servidor enquanto ele estiver em execução, ter uma criptografia do lado do cliente resolveria seu problema. Algo como EncFS ou Cryptomator poderia ser as soluções mais simples para o seu problema?

Ou talvez eu tenha entendido mal o problema?

    
por 20.02.2018 / 00:12