Infelizmente, isso não é possível. Aqui estão algumas breves explicações sobre isso:
-
Mesmo com a criptografia, o provedor pode capturar instantaneamente o estado atual da memória e do disco e clonar uma nova instância para obter o máximo de acesso que você fez. ( fonte )
-
Mesmo se você estiver executando um VPS com sistemas de arquivos criptografados, todos os dados em RAM serão descriptografados, aos quais os administradores de sistema VPS teriam acesso, incluindo a frase secreta de descriptografia. Se você realmente tiver esses rigorosos requisitos de segurança, parece que você precisa executar seus próprios sistemas fisicamente protegidos ou encontrar uma empresa de hospedagem de servidor dedicada especializada nesse tipo de coisa. ( fonte )
-
... tenha em mente que qualquer pessoa com acesso à imagem VPS pode potencialmente adicionar um bug no seu código para detectar a frase secreta que você usa. ( fonte )
-
[Criptografia] faz algum sentido se você tiver controle sobre o hardware; quando alguém controla o hardware, há pouco sentido, a menos que você confie que o host realmente não quer olhar para ele ... ( fonte )
-
O acesso físico é o acesso root, portanto, se alguém tiver acesso físico ao servidor, independentemente de estar em uma VM ou bare-metal, eles terão acesso root. No caso do KVM, o proprietário do host bare metal pode acessar o convidado. Você pode sempre criptografar os dados, mas isso pode ser de benefício limitado, pois os dados serão descriptografados quando você acessá-los.
O mesmo com a rede. O proprietário da VM pode ver seu tráfego de rede. Novamente, você pode criptografar parte do tráfego (https, ssh, etc). ( fonte )
Aqui está uma solução específica caso você queira apenas armazenar alguns dados confidenciais no seu VPS:
Como criar e usar o diretório criptografado via eCryptfs e montá-lo remotamente
Pré-requisitos
Instale os pacotes ecryptfs-utils
e sshfs
e reinicie o sistema:
sudo apt update && sudo apt -y install ecryptfs-utils sshfs
sudo apt update && sudo systemctl reboot
Configuração e uso padrão
Abra uma janela de terminal e execute este comando:
ecryptfs-setup-private
Então você será solicitado a:
-
Enter your login passphrase [<user>]:
esta senha deve coincidir com a senha do usuário atual e será usada para desbloquear (descriptografar) suas informações criptografadas. -
Enter your mount passphrase [leave blank ...]:
esta frase secreta será usada automaticamente quando seus dados criptografados estiverem sendo montados, mas você precisará deles em caso de uma situação de emergência e deverá recuperar seus dados, portanto, anote-os em um local seguro. / p>
O comando acima irá criar dois diretórios:
-
~/.Private
onde seus dados criptografados serão armazenados. -
~/Private
em que o diretório~/.Private
será montado como decriptografado.
Embora ~/.Private
não esteja montado no diretório ~/Private
tenha dois arquivos com instruções.
Quando você fizer login no sistema por meio da senha do usuário ( login passphrase
), o diretório ~/.Private
será montado automaticamente em ~/Private
e você poderá trabalhar lá. Quando você logout
ou exit
, o diretório ~/.Private
será desmontado. Para conseguir isso manualmente, você pode usar os comandos: ecryptfs-mount-private
e ecryptfs-umount-private
. Mais sobre essas opções podem ser encontradas no artigo eCryptfs do ArchLinux Wiki . Veja também: como usar o ecryptfs com um diretório aleatório .
Se você autenticar sua conexão SSH / SFTP por senha, o procedimento acima funcionará. Mas se você se autenticar via par de chaves SSH, precisará usar ecryptfs-mount-private
para montar ~/.Private
. Neste caso, primeiro você precisa do SSH para o sistema e executar ecryptfs-mount-private
, então você poderá usar o SFTP para o diretório ~/Private
. Você pode adicionar o comando ecryptfs-mount-private
à parte inferior de ~/.bashrc
para automatizar esse processo:
echo -e "\n# Mount my Private directory\necryptfs-mount-private\n" | tee -a ~/.bashrc
Monte um diretório criptografado remoto e desbloqueie (decifre) localmente
Na máquina remota (VPS) e na máquina local, execute o seguinte comando e insira dados idênticos para login passphrase
e mount passphrase
em ambas as máquinas:
ecryptfs-setup-private --nopwcheck --noautomount
A opção --nopwcheck
permite que você escolha uma senha diferente da senha de login do usuário e a opção --noautomount
é autoexplicativa.
Na máquina remota:
-
Execute o comando:
ecryptfs-mount-private
Observação: Enquanto eu testava essa abordagem, tive que executar o comando acima duas vezes!
-
Crie um conteúdo simples:
echo "Hello Word!" > ~/Private/hello.txt
-
Desmontar
~/.Private
:ecryptfs-umount-private
-
Além disso, você pode remover o diretório
~/.ecryptfs
(do VPS), onde seus dados de descriptografia são armazenados.
Na máquina local:
-
Monte a pasta criptografada remota
~/.Private
na pasta local~/.Private
viasshfs
e masque a propriedade para os arquivos (substitua<user>@<host_name_or_ip>
):sshfs -o idmap=user,uid=$(id -u),gid=$(id -g) <user>@<host_name_or_ip>:.Private ~/.Private
Para desmontar, use o comando:
fusermount -u ~/.Private
ousudo umount -l ~/.Private
. -
Em seguida, monte (e descriptografe) o diretório local
~/.Private
to~/Private
ecryptfs-mount-private
-
Verifique se o arquivo
hello.txt
está lá:$ cat ~/Private/hello.txt Hello Word!
-
Se você tiver um problema com o comando
ecryptfs-umount-private
(umount.ecryptfs_private
), poderá desmontar o diretório local~/Private
pelo comandosudo umount -l ~/Private
. -
O eCryptfs tem bugs e, às vezes,
ecryptfs-mount-private
eecryptfs-umount-private
não funciona corretamente. -
De acordo com o acima, você pode criar duas funções em
~/.bashrc
que automatizarão todo o processo (montar / desmontar) (substituir<user>@<host_name_or_ip>
):function ecryptfs-remote-mount { sshfs -o idmap=user,uid=$(id -u),gid=$(id -g) <user>@<host_name_or_ip>:.Private ~/.Private > /dev/null 2>&1 sudo keyctl clear @u sudo ecryptfs-insert-wrapped-passphrase-into-keyring $HOME/.ecryptfs/wrapped-passphrase # Attempt to mount, and loop the function unless it is true - due to CLI usage bug ecryptfs-mount-private && echo "Done!" || ecryptfs-remote-mount } function ecryptfs-remote-umount { ecryptfs-umount-private > /dev/null 2>&1 || sudo umount -l $HOME/Private fusermount -u $HOME/.Private > /dev/null 2>&1 || sudo umount -l $HOME/.Private echo "Done!" } export -f ecryptfs-remote-mount ecryptfs-remote-umount
Então,
source ~/.bashrc
e você poderá usarecryptfs-remote-mount
eecryptfs-remote-umount
como comandos.
Referências e leitura adicional
-
Crie um arquivo criptografado (tar), onde seus dados confidenciais estão ocultos:
- Criptografar o arquivo tar.gz na criação
- Como criar um arquivo tar ou zip criptografado (protegido por senha) no Linux
- Como proteger por senha arquivos gzip no comando linha?
- como proteger com senha um .tgz arquivo com tar no Unix? .
-
Crie um diretório criptografado:
- Backup criptografado em um Servidor SFTP (WebSpace) com ecryptfs
- Como proteger o volume remoto criptografado Como codificar pastas individuais?
- Como criptografar diretórios com o eCryptfs no Ubuntu 16,04
- YouTube: Como criptografar a pasta no Ubuntu
Use a criptografia do diretório inicial do usuário: