Copias de seguridad remotas seguras mediante duplicidad

Copias de seguridad remotas seguras mediante duplicidad

El recienteeliminación de espacios de códigoMe hizo pensar en los procesos de copia de seguridad externos (que actualmente realizo manualmente con el ingreso de una contraseña). Estaba leyendotutorialesmostrando cómo automatizar copias de seguridad a través de la duplicidad. Estos tienden a girar en torno al uso de una clave SSH para automatizar el proceso de autenticación en el servidor de respaldo.

Sin embargo, esto me parece lleno de agujeros. Si el servidor del que se realiza la copia de seguridad está comprometido hasta el punto en que el usuario malintencionado obtuvo acceso, entonces podría iniciar sesión automáticamente en el servidor de copia de seguridad y eliminar las copias de seguridad. Suponiendo que el administrador usó /usr/bin/nologinel /etc/passwdarchivo para el usuario de respaldo (no tengo idea de en qué medida se puede confiar en esto o si de todos modos evitaría que la duplicidad trabaje de forma remota), entonces el usuario malintencionado aún podría obtener duplicidad para borrar las copias de seguridad usando El duplicity remove-older-than [time now]comando.

La única solución segura es enviar los archivos al servidor de respaldo usando rsync sobre ssh y hacer que un "usuario maestro" en el servidor de respaldo realice copias de seguridad iterativas locales de todas las cuentas de usuario en su propia área de almacenamiento (por ejemplo, solo él tiene permisos para su propios archivos, pero tiene permiso para leer todos los archivos de otras cuentas)? ¿O hay alguna manera de evitar la duplicidad al eliminar las copias de seguridad y evitar el inicio de sesión remoto?

Respuesta1

La duplicidad AFAIK no puede hacer una copia de seguridad de un directorio remoto en un directorio local. Resuelvo el problema en dos pasos. En el servidor de respaldo haga:

  1. Ejecute rsync sobre ssh usando claves ssh para sincronizar el directorio remoto con un directorio local

    rsync -avz -e ssh usuario@remoto:/remoto/directorio directorio_local

  2. Ejecute duplicidad de un directorio a otro. Utilice claves GnuPG asimétricas, para que no necesite frases de contraseña durante el cifrado.

    duplicidad --encrypt-key=YOUR_KEYID archivo_directorio_local://directorio_respaldo

o sin cifrar la copia de seguridad:

duplicity --no-encryption local_directory file://backup_directory

Respuesta2

Después de cargar la copia de seguridad, puede usarla chattr +ipara hacerla inmutable para que no pueda modificarse ni eliminarse. Sólo el root puede establecer o borrar este indicador.

Como alternativa, puede transferir chownlos archivos a otro usuario después de cargarlos para que la cuenta de respaldo ya no tenga acceso a ellos.

información relacionada