GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Al usar un servicio Vps, ¿puedo evitar que el host Vps acceda a los datos?

Usando un proveedor como Digital Ocean, si almaceno información privada/sensible en el VPS, ¿hay alguna forma de proteger esa información (evitando que el host del VPS obtenga acceso) mientras retengo el acceso SFTP y SSH?

Respuesta aceptada:

Desafortunadamente no es posible en absoluto. Aquí hay algunas breves explicaciones sobre esto:

  • Incluso con el cifrado, el proveedor podría tomar una instantánea del estado actual de la memoria y el disco y clonar una nueva instancia para obtener tanto acceso como usted. (fuente)

  • Incluso si está ejecutando un VPS con sistemas de archivos encriptados, todos los datos en la RAM no estarán encriptados, a los que los administradores de sistemas del host VPS tendrían acceso, incluida la frase de contraseña de descifrado. Si realmente tiene requisitos de seguridad tan estrictos, parece que necesita ejecutar sus propios sistemas físicamente seguros o encontrar una empresa de alojamiento de servidores dedicada que se especialice en este tipo de cosas. (fuente)

  • … tenga en cuenta que cualquier persona con acceso a la imagen del VPS puede potencialmente agregar errores a su código para detectar la frase de contraseña que usa. (fuente)

  • [Cifrado] tiene sentido si tiene control sobre el hardware; cuando alguien más controla el hardware, no tiene mucho sentido a menos que confíes en que el anfitrión realmente no quiere mirarlo... (fuente)

  • El acceso físico es acceso raíz, por lo que si alguien tiene acceso físico al servidor, independientemente de si se trata de una máquina virtual o de un servidor completo, tiene acceso raíz. En el caso de KVM, el propietario del host bare metal puede acceder al invitado. Siempre puede cifrar los datos, pero eso puede tener un beneficio limitado ya que los datos se descifrarán cuando acceda a ellos.

    Lo mismo con la red. El propietario de la VM puede ver el tráfico de su red. Nuevamente, puede cifrar parte del tráfico (https, ssh, etc.). (fuente)

Aquí hay una solución particular en caso de que solo desee almacenar algunos datos confidenciales en su VPS:

Cómo crear y usar un directorio encriptado a través de eCryptfs y montarlo de forma remota

Requisitos previos

Instale los paquetes ecryptfs-utils y sshfs y reinicie el sistema:

sudo apt update && sudo apt -y install ecryptfs-utils sshfs
sudo apt update && sudo systemctl reboot

Configuración y uso estándar

Abra una ventana de terminal y ejecute este comando:

ecryptfs-setup-private

Luego se le pedirá que:

  • Enter your login passphrase [<user>]: esta frase de contraseña debe coincidir con la contraseña del usuario actual y se utilizará para desbloquear (descifrar) su información cifrada.

  • Enter your mount passphrase [leave blank ...]: esta frase de contraseña se usará automáticamente cuando sus datos cifrados se estén acumulando, pero la necesitará en caso de que haya una situación de emergencia y deba recuperar sus datos, así que escríbala en un lugar seguro.

El comando anterior creará dos directorios:

  • ~/.Private donde se almacenarán sus datos cifrados.
  • ~/Private donde el directorio ~/.Private se montará como descifrado.

Mientras que ~/.Private no está montado dentro del directorio ~/Private tiene dos archivos con instrucciones.

Cuando inicia sesión en el sistema a través de la contraseña de usuario (login passphrase ) el directorio ~/.Private se montará automáticamente en ~/Private y podrás trabajar allí. Cuando logout o exit , el directorio ~/.Private será desmontado. Para lograr esto manualmente puedes usar los comandos:ecryptfs-mount-private y ecryptfs-umount-private . Puede encontrar más información sobre estas opciones en el artículo eCryptfs de ArchLinux Wiki. Ver también:cómo usar ecryptfs con un directorio aleatorio.

Relacionado:¿Separar datos de 1 columna en varias columnas?

Si autentica su conexión SSH/SFTP a través de una contraseña, lo anterior funcionará. Pero si se autentica mediante un par de claves SSH, debe usar ecryptfs-mount-private para montar ~/.Private . En este caso, primero debe acceder al sistema mediante SSH y ejecutar ecryptfs-mount-private entonces podrá usar SFTP en el directorio ~/Private . Puede agregar el comando ecryptfs-mount-private al final de ~/.bashrc para automatizar este proceso:

echo -e "\n# Mount my Private directory\necryptfs-mount-private\n" | tee -a ~/.bashrc

Montar un directorio cifrado remoto y desbloquearlo (descifrarlo) localmente

En la máquina remota (VPS) y en la máquina local, ejecute el siguiente comando e ingrese datos idénticos para login passphrase y para mount passphrase en ambas máquinas:

ecryptfs-setup-private --nopwcheck --noautomount

En la máquina remota:

  • Ejecute el comando:

    ecryptfs-mount-private
    

    Nota: ¡Mientras probaba este enfoque, tuve que ejecutar el comando anterior dos veces!

  • Crea contenido simple:

    echo "Hello Word!" > ~/Private/hello.txt
    
  • Desmontar ~/.Private :

    ecryptfs-umount-private
    
  • Además, puede eliminar el directorio ~/.ecryptfs (desde el VPS), donde se almacenan sus datos de descifrado.

En la máquina local:

  • Monte la carpeta cifrada remota ~/.Private a la carpeta local ~/.Private a través de sshfs y enmascare la propiedad de los archivos (reemplace <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 el comando:fusermount -u ~/.Private o sudo umount -l ~/.Private .

  • Luego monte (y descifre) el directorio local ~/.Private a ~/Private

    ecryptfs-mount-private
    
  • Compruebe si el archivo hello.txt está ahí:

    $ cat ~/Private/hello.txt
    Hello Word!
    
  • Si tiene problemas con el comando ecryptfs-umount-private (umount.ecryptfs_private ) puede desmontar el ~/Private local directorio mediante el comando sudo umount -l ~/Private .

  • eCryptfs tiene errores y, a veces, ecryptfs-mount-private y ecryptfs-umount-private no funcionan correctamente.

  • De acuerdo con lo anterior, puede crear dos funciones dentro de ~/.bashrc que automatizará todo el proceso (montar/desmontar) (reemplace <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
    

    Luego source ~/.bashrc y podrá usar ecryptfs-remote-mount y ecryptfs-remote-umount como comandos.

Referencias y lecturas adicionales

  • Cree un archivo de almacenamiento encriptado (tar), donde se esconden sus datos confidenciales:

    • Cifrar archivo tar.gz al crear
    • Cómo crear un archivo Tar o Zip cifrado (protegido con contraseña) en Linux
    • ¿Cómo proteger con contraseña los archivos gzip en la línea de comandos?
    • ¿Cómo protejo con contraseña un archivo .tgz con tar en Unix?
  • Cree un directorio encriptado:

    • Copia de seguridad cifrada en un servidor SFTP (WebSpace) con ecryptfs
    • Cómo hacer un volumen remoto cifrado y seguro
    • ¿Cómo encriptar carpetas individuales?
    • Cómo cifrar directorios con eCryptfs en Ubuntu 16.04
    • YouTube:Cómo cifrar una carpeta en Ubuntu
  • Usar encriptación del directorio de inicio del usuario:

    • Carpeta de inicio cifrada
    • Directorio de inicio cifrado:instrucciones
    • CÓMO cifrar su directorio de inicio
    • Acceso a su directorio de inicio cifrado en Ubuntu
    • Migración a un directorio de inicio cifrado
    • Mensaje SSH después de iniciar sesión, luego restrinja el uso de la cuenta por parte del usuario
Relacionado:¿Falta el indicador del administrador de red?
Ubuntu
  1. ¿Cómo acceder a Internet desde una máquina virtual en Gnome Boxes?

  2. ¿Cómo evitar que los usuarios accedan al directorio raíz?

  3. CentOS/RHE 7:Cómo evitar que los usuarios utilicen las últimas 10 contraseñas

  4. CentOS / RHEL:cómo evitar que los repositorios deshabilitados se descarguen en el caché de yum

  5. Permitir el acceso a un servidor virtual Apache solo desde la red local

Cómo evitar que un paquete se actualice en distribuciones de Linux basadas en Ubuntu y Debian

Cómo comprobar la versión de Ubuntu desde la línea de comandos

¿Cómo podemos limitar el acceso SSH con UFW en Linux Mint 20?

¿Cómo bloquear la pantalla usando la nueva pantalla de bloqueo desde la línea de comandos?

¿Cómo puedo eliminar por completo el contenido de mi antiguo VPS?

¿Cómo puedo evitar que se detecten los calamares?