Solución 1:
Si está haciendo una copia de seguridad ingenua (copia única, sobrescribiendo todos los datos), entonces no hay forma de lograr lo que desea:un atacante siempre puede "hacer una copia de seguridad" de una pila de archivos vacíos (o un conjunto de archivos vacío) que dará como resultado todos tus datos se van adiós. Por lo tanto, asumo aquí que está realizando copias de seguridad de archivo adecuadas y que está supervisando sus copias de seguridad lo suficientemente bien como para detectar cualquier intento de erradicar la copia de seguridad mediante el envío de un conjunto de copias de seguridad vacío antes de que se produzca un daño permanente.
Si su rsync-over-(presuntamente)-SSH usa un comando forzado para ejecutar rsync
en el destino, entonces estará tan seguro de que no será borrado como sea posible. Dado que solo desea ejecutar un rsync
específico comando, puede codificar todos los argumentos y luego lo único que puede hacer es escribir nuevos datos. El archivado es lo suficientemente simple al hacer una copia de seguridad en un nuevo árbol cada vez y asociar los archivos sin cambios con la copia de seguridad anterior mediante enlaces duros, lo que ahorra espacio y tiempo de transferencia.
La otra forma de hacerlo es usar copias de seguridad extraíbles, donde el servidor de copia de seguridad inicia y administra el rsync
operación:esto significa que la máquina cliente ni siquiera tiene la capacidad de ejecutar un comando rsync restringido, lo que significa que el atacante no tiene poder para eliminar archivos.
Todo esto asume que su servidor de respaldo es seguro. Si el atacante puede obtener acceso a él a través de otros medios, estás jodido independientemente de lo que hagas.
Solución 2:
Lo más simple probablemente sería ir al otro lado con las copias de seguridad, es decir. extraer del servidor de copia de seguridad. Así es como ejecuto mis copias de seguridad con rdiff-backup.
Solución 3:
Esta es una de las características que me gustan del servicio de copia de seguridad de Tarsnap. Me permite crear subclaves con capacidades de lectura, escritura y/o eliminación.
En mis servidores, generalmente mantengo subclaves con capacidades de lectura y escritura. A veces, cuando necesito/quiero eliminar los archivos de copia de seguridad antiguos, lo hago usando las claves maestras de mi computadora de escritorio local.
Tenga en cuenta que Tarsnap es en sí mismo un servicio de almacenamiento. No puede utilizar el software Tarsnap para crear copias de seguridad en sus propios servidores de almacenamiento.
Solución 4:
Intente usar una capa de sistema de archivos de solo escritura que enmascare su destino real.
Encontré un ejemplo aquí, usando FUSE.
También puede usar un sistema de archivos encriptado en el que cualquiera puede escribir, pero necesita que se altere su certificado de clave (parece la opción más segura, aunque probablemente necesite más planificación durante la implementación). sistema de archivos encriptado) y TrueCrypt
Entonces, mientras que la primera solución "enmascarará" su sistema de archivos, que en realidad está almacenado en otro lugar dentro de la máquina y se puede modificar para los usuarios del sistema con permisos, en la segunda solución solo se puede modificar con las claves adecuadas.
Solución 5:
ftp:por ejemplo, vsftp tiene una opción para deshabilitar las eliminaciones para que solo pueda cargar. Luego, en el otro lado, crea un script que elimina las copias de seguridad de más de x días. Uso esta opción, en el servidor principal, las copias de seguridad son copias de seguridad simples que usan tar + gz, se cargan en un servidor nas a través de sftp y luego el servidor nas elimina copias de seguridad de más de 7 días.
rsync:el servidor rsync tiene una opción para deshabilitar las eliminaciones, por lo que también puede funcionar para usted, pero debe usar rsync protocol/server.refuse options =delete
Pero luego tendría que eliminar manualmente los archivos 'eliminar' de vez en cuando.