Seguridad Informática #BOFHers

Inicio » BOFHers » Usando el FTP Backup de 1&1 como unidad remota montada en Linux

Usando el FTP Backup de 1&1 como unidad remota montada en Linux

Archivo

Haz clic para seguir este blog y recibir notificaciones de nuevos mensajes por correo electrónico.

Twitter

Error: Twitter no responde. Por favor, espera unos minutos y actualiza esta página.

Si estás leyendo esto seguramente tengas algún tipo de servidor dedicado, vps o similar en 1&1, si además usas el servicio de backup ftp de esta empresa, esta información te puede ser de ayuda, sobre todo para ahorrar espacio con backups de paneles de control como el Parallels Plesk.

Imaginemos el siguiente escenario:

  • VPS con 200 GB de almacenamiento, 180 GB para /var de los cuales tenemos ocupados 90 con datos en /var/www/vhosts muchos de ellos archivos ya comprimidos en una aplicación web de gestión documental.
  • Dicho VPS está configurado con CentOS Linux 6.x x86_64 y la última versión del panel de control Parallels Plesk.
  • Tenemos contratado el servicio de backup externo de 1&1 que consiste en una cuenta de FTP con 250 GB de almacenamiento en otro servidor y que podemos configurar en el propio panel Plesk para dejar ahí nuestros backups diarios.
  • El archivo de backup comprimido ocupa 64 GB.

En estas circunstancias nos encontraremos con un problema para usar el servicio de backup automatizado de Plesk, este genera copias de seguridad de cada dominio alojado y posteriormente genera un solo archivo que es el que se pasa vía FTP al llamado Repositorio FTP Personal que apunta al servicio de FTP Backup de 250 GB.

El problema es que la suma de los archivos de backup de cada dominio ocupa 64 GB, y el archivo que es la suma de todos generado posteriormente ocupará otras 64 GB, requiriendo un total de 128 GB de espacio libre en el disco duro de nuestro servidor para poder hacer todo el proceso, tendiendo en cuenta que disponemos de unas 90GB libres en este escenario, el backup no finalizará satisfactoriamente.

Existen varias soluciones, hacernos nuestro propio script que vaya comprimiendo por dominio y pasando los datos al FTP de manera externa al panel Plesk o convertir la cuenta de FTP en una unidad montada más en nuestro sistema y hacer que el sistema automatizado de Plesk haga las copias directamente ahí, manteniendo la posibilidad de hacer recuperaciones desde el propio panel, algo bastante útil para los clientes más manazas, que podrán seguir recuperando los archivos que se han cargado sin molestarnos.

Para ello haremos uso de una utilidad llamda Curlftpfs.

Aunque es un proyecto que está bastante abandonado, sigue siendo perfectamente funcional, para ponerlo en marcha necesitaremos instalar unos cuantos paquetes antes en el sistema:

yum install gcc fuse* libcurl* glib* glibc.i686 file-libs file-devel file-static curl

Tras esto descargaremos el código fuente de Curlftpfs, lo compilaremos e instalaremos en el sistema:

cd /usr/local/src/

wget http://downloads.sourceforge.net/project/curlftpfs/curlftpfs/0.9.1/curlftpfs-0.9.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcurlftpfs%2Ffiles%2F%3Fsource%3Dnavbar&ts=1360498557&use_mirror=garr

tar xvfz curlftpfs-0.9.1.tar.gz

cd curlftpfs-0.9.1

./configure

make

make install

Nota: la última versión de curlftps es la 0.9.2, se usa la 0.9.1 porque no da los problemas que sí da la última versión en CentOS 6.x 64 bits, sobre todo en temas de reconexión.

Guardaremos los datos de acceso al ftp en el archivo /root/.netrc (root es el usuario que ejecuta el backup de Plesk):

machine backupXXX.onlinehome-server.info
login bakXXXXX
password MICLAVE

Nos aseguramos de que nadie más que root pueda ver los datos y creamos el punto donde montaremos la cuenta de FTP:

chmod 600 /root/.netrc
mkdir /mnt/backupftp

El sistema ya está listo para montar la cuenta de ftp como si de otra unidad del sistema se tratase, no vamos a cambiar el propietario del punto de montaje porque nos interesa que sea root quien pueda usarla por lo ya comentado, que es este usuario el que realiza el backup de Plesk:

curlftpfs backupXXX.onlinehome-server.info /mnt/backupftp -o allow_root

Si ahora hacemos un ls en /mnt/backupftp veremos el contenido de la cuenta de ftp, pudiendo copiar archivos, borrar, mover, etc como si se tratase de cualquier compartición samba o nfs.

Si queremos desmontar la unidad:

fusermount -uz /mnt/backupftp

Pero no queremos, así que ahora pasaremos a cambiar algunas cosas en el sistema para no tener que cambiar la configuración base de Plesk, ya que pued suponer un problema cuando el software del panel de control se actualiza.

Moveremos el directorio donde se realizan las copias de seguridad a la  nueva unidad:

cd /var/lib/psa

cp -r dumps /mnt/backupftp/

Si el proceso de copia ha sido satisfactorio:

rm -rf dumps

ln -s /mnt/backupftp/dumps/ dumps

Movido el directorio creamos el enlace simbólico para que Plesk siga encontrando /var/lib/psa/dumps, aunque ahora estará haciendo las copias de seguridad directamente contra nuestra cuenta de FTP Backup.

En el panel de control Plesk, menú Herramientas y Configuración, Administrador de Backups, pincharemos en el botón Configuración de Backups Programados y seleccionaremos la opción Guardar Backup en Repositorio del Servidor:

Configuración de Backups Programados

El número máximo de backups en el repositorio depende de cuanto ocupe nuestro backup y el espacio libre del que dispongamos en el FTP.

Y listo, nos podemos despreocupar de los problemas de espacio que hemos tenido previamente.

BOLA EXTRA

Para que la nueva unidad se monte automáticamente al reiniciar el servidor podemos añadir a /etc/fstab la siguiente línea:

curlftpfs#backupXXX.onlinehome-server.info /mnt/backupftp fuse rw,user,noauto,allow_root 0 0

Podemos encontrarnos con problemas de espacio por el uso de temporales que hace Plesk, /usr/local/psa/PMM/tmp por ejemplo, que podemos borrar, y enlazar con ln a un temporal dentro de /var que es donde disponemos de más espacio o bien directamente también contra la unidad montada de FTP.

OJO: antes de borrar el directorio dumps o este tmp, detén el servicio psa:

/etc/init.d/psa stop

Cuando finalices debes volver a iniciarlo.

Anuncios
A %d blogueros les gusta esto: