Backups por FTP secundarios de webs bajo Plesk 8.2
El panel de control de Plesk 8.2 (ya ha salido el 8.3, pero no he tenido tiempo de actualizarlo) permite realizar backups completos que posteriormente se pueden importar y autoinstalar para recuperar un dominio completo en cuestión de segundos. El caso es que ya realizo una copia local en el servidor, que además tiene un Raid 1 (por si casca un disco) y cada cliente puede restaurar su sitio a su gusto determinando su propio criterio de temporalidad… pero y si el servidor entero revienta?? Ahí está nuestra querida compañera la paranoia! Siempre cuidando de nosotros!
Ok, al turrón! Vamos a montar un FTP de emergencia de momento en preproducción usando una máquina virtual con Debian Etch dentro de la DMZ y que grabe en una cinta el contenido de los directorios cada X tiempo. Podríamos meterla en la LAN y autorizar el puerto 21 pero el problema está en que no tengo ganas de romperme la cabeza para que el Plesk funcione en modo activo a la hora de transmitir entre dos redes diferentes gestionadas por el firewall PFSense. De ese tema hablaremos otro día…
El servidor por el que me he decidido es el PureFTP. Sencillamente por que usa un sistema muy simple de gestión de usuarios “virtuales”. La idea es que cada cliente meta un login en el panel de control de Plesk y automáticamente sea dirigido a su repositorio FTP personal con sus backups. Mediante PureFTP, necesitamos crear un solo usuario y grupo y el servidor se preocupa de llevar a cada uno a su sitio al loguearse según un archivo de usuarios propio diferenciado del sistema principal.
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
Pues así de fácil! Creamos el usuario ftpuser y el grupo ftpgroup si somos puristas y luego metemos usuarios con el comando pure-pw especificando los datos de cada usuario. En mi caso he creado una carpeta /home/backups donde existe un directorio para cada cliente.
Existe un problemilla que ha hecho correr rios de posts en diferentes foros… Cuando instalamos el PureFTP mediante apt-get en una Etch netinst se instala dependiendo de inetd. Si queremos arrancar el servidor con la opción de usuarios virtuales (explicado al final del documento linkado) debemos iniciar el servidor con el modificador -l puredb:<ruta a db>. Por lo tanto, si lo paramos a mano y lo intentamos iniciar de nuevo con el modificador nos dirá “Address alredy in use” porque ya se ha preocupado el sistema de levantarlo y es bastante más rápido que nosotros. Si nos fijamos en /etc/inetd.conf nos encontramos esta simpática línea:
#:STANDARD: These are standard services. ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
http://www.penguin-soft.com/penguin/man/8/pure-ftpd-wrapper.html
Pues tenemos dos opciones. O a mano o a máquina. Comentamos la línea y ejecutamos el servidor desde la línea de comandos o lo agregamos a un archivo de inicio del sistema. Yo de momento he instalado rcconf para eliminar el servicio del arranque y lo voy a ejecutar a mano. Aun estoy haciendo pruebas!
pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb &
Volviendo a la cuestión principal del asunto, vamos al Plesk y añadimos la cuenta FTP que hayamos creado a cada uno de los clientes. En Plesk tenemos la opción de guardar por cliente (todos sus dominios juntos) o por dominio suelto. Hay que tener cuidado con esto porque si el cliente ya realiza backups de sus dominios por separado, esos archivos comprimidos forman parte de la cuenta del cliente, por lo que se añadirían a un backup completo de cliente.
Ahora nos falta el tema de la cinta… Pero eso es otra historia. Ahora me voy a ocupar de otros menesteres. Hasta otra!










