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:
-
~/.Privateonde seus dados criptografados serão armazenados. -
~/Privateem que o diretório~/.Privateserá 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-privateObservaçã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
~/.Privatena pasta local~/.Privateviasshfse 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 ~/.PrivatePara desmontar, use o comando:
fusermount -u ~/.Privateousudo umount -l ~/.Private. -
Em seguida, monte (e descriptografe) o diretório local
~/.Privateto~/Privateecryptfs-mount-private -
Verifique se o arquivo
hello.txtestá 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~/Privatepelo comandosudo umount -l ~/Private. -
O eCryptfs tem bugs e, às vezes,
ecryptfs-mount-privateeecryptfs-umount-privatenão funciona corretamente. -
De acordo com o acima, você pode criar duas funções em
~/.bashrcque 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-umountEntão,
source ~/.bashrce você poderá usarecryptfs-remote-mounteecryptfs-remote-umountcomo 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: