Script Bash para criptografar automaticamente os arquivos de log [closed]

0

Eu tenho alguns registros usados como prova em questões de privacidade do GDPR. O aplicativo lida com dados pessoais e registra quem está usando para fazer o quê. Os registros não devem ser lidos por ninguém, a menos que haja uma investigação de abuso em andamento.

Como posso armazenar esses registros que serão rotacionados todos os dias, de forma segura e criptografada (localmente)? Estou pensando em um trabalho root crontab, mas a senha não deve estar em texto simples. Todas as sugestões são muito apreciadas.

$ ls -ltrh
-rw-r----- 1 appuser appuser  83K May 27 23:55 gdpr.log.2018-05-27
-rw-r----- 1 appuser appuser 905K May 28 23:55 gdpr.log.2018-05-28
-rw-r----- 1 appuser appuser 3.0M May 29 23:40 gdpr.log.2018-05-29
-rw-r----- 1 appuser appuser 462K May 30 09:49 gdpr.log
    
por kapten1 30.05.2018 / 09:56

2 respostas

4

Você pode criptografar os arquivos usando uma chave pública que reside no servidor, que só pode ser descriptografada usando uma chave privada que não esteja no servidor. Dessa forma, mesmo que o servidor esteja comprometido, os registros criptografados ainda devem ser seguros.

Exemplo:

Crie um diretório para trabalhar e crie um novo par de chaves públicas e privadas:

$ mkdir /tmp/1
$ cd /tmp/1
$ ssh-keygen -f key
$ ls
key
key.pub

Converta a chave pública em pem format:

$ openssl rsa -in key -pubout > key.pub.pem

Crie um arquivo de teste, chamado file , com o conteúdo hello :

$ echo hello > file

Criptografe o arquivo usando a chave pública pem format e grave a saída em um arquivo chamado encrypted :

$ cat file | openssl rsautl -encrypt -pubin -inkey key.pub.pem > encrypted_file

Descriptografe o arquivo usando a chave privada:

$ cat encrypted_file | openssl rsautl -decrypt -inkey key
hello

Obviamente, você iria querer mover a chave privada para fora do servidor, e você poderia colocar os comandos de criptografia em um cronjob. Algo como:

for file in /var/log/dir/*;do
    cat "${file}" | openssl rsautl -encrypt -pubin -inkey /path/to/key.pub.pem > "${file}.encrypted" && rm "${file}"
done
    
por 30.05.2018 / 10:20
0
Qualquer um remotamente familiarizado com o assunto provavelmente poderia fazer uma centena de perguntas para estabelecer o que seria mesmo uma estrutura realista para uma solução. Dito isso, você considerou a criptografia de disco completo? É realmente simples, em comparação com a sobrecarga de criação de qualquer tipo de automação ou procedimento, e provavelmente é bom o suficiente para cobrir sua responsabilidade (eu não sou um advogado), a menos que você tenha raízes remotas.

p>     
por 30.05.2018 / 10:28