INSTALACION DE BACULA Y WEBMIN EN CENTOS 6.4 Introducción Bacula es un servicio de respaldo para empresa, es software libre y soporta Windows y Linux. Los respaldos pueden ser por cintas, DVD/CD o en disco duro. Se eligió Bacula por lo estable robusto y gran soporte. Y se eligió Centos por la facilidad del software ofrecido en sus repositorios. repositorios. Bacula se compone de 3 servicios y estos servicios pueden funcionar perfectamente en distintos servidores: Bacula Director: Director: Es el encargado de manejar a los 2 demonios que utiliza Bacula. Es aquí donde se maneja casi todo el uso de Bacula, su archivo de configuración configuración esta en /etc/bacula/bacula-dir.conf /etc/bacula/bacula-dir.conf Bacula Storage: Es el demonio encargado de los dispositivos de respaldo, su función es sincronizarse con el dispositivo para sincronizarlo sincronizarlo con bacula-director. bacula-director. Su archivo de configuración esta en /etc/bacula/bacula-sd.conf /etc/bacula/bacula-sd.conf Bacula File: Es, podría decirse, el demonio cliente que se instala en el servidor o equipo donde se querrá respaldar y se sincroniza con bacula-director según la calendarización calendarización que esté programada. Su archivo de configuración esta en /etc/bacula/bacula-fd.conf Además existe la BConsole donde se programará manualmente los respaldos y restauraciones. restauraciones. Atraves de Bconsole se puede conectar a Bacula-director Bacula-director y programarlo programarlo a gusto de que se deba hacer algo no calendarizado. calendarizado. Su archivo esta en /etc/bacula/bconsole.conf /etc/bacula/bconsole.conf
INSTALACION DE ELEMENTOS BASICOS En Centos se instalarán elementos básicos para compilación, base de datos MySQL, PHP y Apache (Todo esto en modo root). yum install gcc make autmake binutils kernel-devel kernel gcc-c++ autoconf yum install php php-mysql mysql mysql-server mysql-devel httpd Nota: Recuerden configurar la contraseña de root de MySQL, configurar el date.timezone en php.ini, cambiar el ServerName a Apache y reiniciar el servicio. Ejemplo: service mysqld start mysqladmin –u root password ‘contraseña’ vi /etc/php.ini #Se debe configurar configura r la línea que dice date.timezone. Ejemplo: date.timezone = America/Santiago INSTALACION DE BACULA Con esta instrucción se instalará bacula con todas sus herramientas para que funcione con MySQL yum install bacula-director bacula-director-mysql bacula-director-mysql bacula-storage bacula-console bacula-consolebat bacula-traymonitor En este manual no se hablara de bacula-bat ni tampoco de bacula-traymonitor por ser herramientas herramientas gráficas y solo so lo realizaremos configuraciones configuraciones en modo consola y con Webmin. Luego se creará la base de datos bacula con los siguientes scripts: cd /usr/libexec/bacula/ ./grant_mysql_privileges -u root -p ./create_mysql_database -u root –p ./make_mysql_tables -u root –p El scritp no configura contraseña al usuario bacula en mysql así que se hará manualmente con la contraseña backup2013. mysql -u root –p grant all on bacula.* to bacula@localhost identified by ‘backup2013’; exit;
CONFIGURACION DE BACULA DIRECTOR En el archivo de configuración se debe configurar ciertos parámetros que se verán ahora. No se debe reemplazar la configuración original, solo verificar que estén descomentadas descomentadas en el archivo. vi /etc/bacula/bacula-dir. /etc/bacula/bacula-dir.conf conf Se debe cambiar la clave por defecto en Director, Storage. En esta configuración se puso passdirector123, passdirector123sd, passdirector123fd, etc. Director { # define myself Name = bacula-dir DIRport = 9101 # where we listen for UA connections QueryFile = "/usr/libexec/bacula/query.sql" WorkingDirectory WorkingDirectory = "/var/spool/bacula" "/var/spool/bacula" PidDirectory = "/var/run" Maximum Concurrent Jobs = 1 Password = "passdirector123" "passdirector123"
# Console password
Messages = Daemon } Storage { Name = File # Do not use "localhost" here Address = 172.16.214.237
# se debe poner la IP del servidor storage
SDPort = 9103 Password = " passdirector123sd " Device = FileStorage Media Type = File } Client { Name = bacula-fd Address = client.example.com FDPort = 9102 Catalog = MyCatalog Password = "passdirector123fd" "passdirector123fd" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months AutoPrune = yes
# six months # Prune expired Jobs/Files
} Catalog { Name = MyCatalog # Uncomment the following line if you want the dbi driver # dbdriver = "dbi:sqlite3"; dbaddress = 127.0.0.1; dbport = dbname = "bacula"; dbuser = "bacula"; dbpassword = "backup2013" #contraseña de bacula SQL }
Console { Name = bacula-mon Password = "passdirector123mon" CommandACL = status, .status } CONFIGURACION DE BACULA STORAGE vi /etc/bacula/bacula-sd.co /etc/bacula/bacula-sd.conf nf Storage { Name = bacula-sd SDPort = 9103
# definition of myself # Director's port
WorkingDirectory WorkingDirectory = "/var/spool/bacula" "/var/spool/bacula" Pid Directory = "/var/run" Maximum Concurrent Jobs = 20 } Director { Name = bacula-dir Password = "passdirector123sd" } Director { Name = bacula-mon Password = "passdirector123mon" Monitor = yes } Device { Name = FileStorage Media Type = File Archive Device = /tmp LabelMedia = yes;
# lets Bacula label unlabeled media
Random Access = Yes; AutomaticMount = yes; RemovableMedia RemovableMedia = no; AlwaysOpen = no; }
# when device opened, read it
CONFIGURACION DE BCONSOLE Director { Name = bacula-dir DIRport = 9101 address = localhost Password = "passdirector123" }
Nótese que algunas contraseñas se repiten para sincronizarse entre director y storage-bconsolestorage-bconsolefile
INSTALACION DE WEBMIN Se dercarga de la pagina web www.webmin.com y luego se importa la key y se instala el rpm de webmin rpm --import http://www.webmin.com/jcameron-key.asc rpm -ivh webmin-1.620-1.noarch.rpm Se debe cambiar la clave de root en Webmin, en este ejemplo es admin /usr/libexec/webmin/changepass.pl /etc/webmin/ root admin /etc/init.d/webmin restart Antes de ingresar a http://ipservidor.mi.dominio.cl:10000/ , se debe abrir el puerto para poder conectarse desde fuera. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT service iptables sabe service iptables restart
Luego se cambia el idioma en Webmin Configuration
Para que sea mas seguro Webmin se debe activar la encriptación SSL para que no capten las instrucciones remotas que se darán al servidor. Click en Encritacion SSL en la configuración de Webmin Se debe instalar antes el modulo perl para SSL yum install perl-Net-SSLeay
Al guardar la nueva configuracion configuracion saldra un mensaje de Ingreso desconfiado asi que se debe entrar a la nueva direccion web https://ipservidor.mi.dominio.cl:10000/ . Se confirma la excepción de seguridad y ya estará adentro nuevamente de Webmin
CONFIGURACION DE BACULA EN WEBMIN Se deben abrir los puertos de Bacula y bacula Storage iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9103 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9101 -j ACCEPT Luego se ingresa en el módulo Sistema > Bacula Backup System, y se pedirá configurarlo. Ingresamos los datos de la BBDD bacula en MySQL , usuario y password
Salvar y volver al modulo
Esta es la pantalla de configuración de Bacula en Webmin. Para completar se debe Iniciar bacula con los siguientes comando o con el botón “Iniciar Bacula” en Webmin service bacula-dir start service bacula-sd start
Si no levanta los servicios, chequee la configuración del director, la configuración de storage o base de datos. El caso más típico es que las contraseñas no se asemejen en los archivos de configuración. Etiquetar volúmenes vo lúmenes Se deben etiquetar los volúmenes para que los Pool funcionen correctamente al momento de nombrar los respaldos
Al momento de crearlos, debe salir un mensaje de .. labelling successful.
Luego de realizar esto se podrá ver los Pool en Grupo de Volúmenes
AGREGAR CLIENTE A BACULA
Para agregar un cliente primero se debe instalar Bacula File: yum install bacula-client bacula-common bacula-common Luego se configuran las contraseñas en el archivo bacula-fd.conf vi /etc/bacula/bacula-fd.co /etc/bacula/bacula-fd.conf nf Director { Name = bacula-dir Password = "passdirector123fd" } Director { Name = bacula-mon Password = "passdirector123mon" Monitor = yes } FileDaemon FileDaemon {
# this is me
Name = bacula-fd FDport = 9102
# where we listen for the director
WorkingDirectory WorkingDirectory = /var/spool/bacula /var/spool/bacula Pid Directory = /var/run Maximum Concurrent Jobs = 20 } Messages { Name = Standard director = bacula-dir = all, !skipped, !restored }
Además se debe abrir el puerto 9103 de bacula client: iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9102 -j ACCEPT service iptables sabe service iptables restart Finalmente arrancar el servicio service bacula-fd start Luego agregar el cliente en la configuración del Director de Webmin “Clientes”. Salvar Para saber si se conectó con el servidor Bacula debes reiniciar el servicio de bacula y poner Mostrar estado en el cliente
Conjunto de Archivos o FileSets
Este módulo, se configura los directorios y archivos que serán respaldados En este ejemplo se respaldara la ruta /home/patrick.munoz en el FileSet llamada “backupcomun” con verificación MD5 y compresion gzip 9
Luego click en Crear Almacenamiento Almacenamiento o Tipo de almacenamiento almacenamiento En este ejemplo se hara un respaldo como archivo, pero también puede ser por cintas y por CD/DVD
Programación Programación de Respaldos o Calendarización de Trabajos
Se creará una programación diaria a nivel Incremental con el Volumen File, siguiente click en el botón “…” y poner todos los días a la hora 17:15
Click en crear Por último se hará el Job o trabajo, que es el proceso que realizara el backup
La características del Job son: Nombre=pruebaderespaldo, Nombre=pruebaderespaldo, Habilitado, Trabajo autónomo, tipo Backup, Nivel Incremental, Incremental, cliente=bacula-fd, cliente=bacula-fd, Fileset=backupcomun, Fileset=backupcomun, Programación=diaria, dispositivo de almacenamiento= File, Pool=File, Mensajes=Standard, Prioridad Por defecto
Para asegurar los cambios se debe reiniciar bacula director. El resultado del respaldo será el siguiente.
RECUPERACION DE BACKUP
Después de entrar al módulo Recuperar Backup, se debe seleccionar el trabajo a recuperar, el dispositivos que se uso y el directorio donde se va a poner el o la carpeta recuperada recuperada
En archivos a recuperar clic en el botón “…” y saldrá una pantalla de Java que se debe Ejecutar
Saldra la pantalla de directorio a que se quiere restaurar, cada carpeta o archivo de debe agregar “Add”. Se termina la selección con Close.
Cuando esté listo, clic en Recuperar ahora
Este es el registro del trabajo
Terminado la recuperación, recuperación, se busca el archivo recuperado en el cliente en la ruta /tmp/bacularestores/home/patrick.munoz/. La ruta puede ser cambiada a elección en la programación de la restauracion
Recuperación Recuperación por comando en BConsole En el servidor bacula Director se debe ejecutar los siguientes comandos bconsole restore Para este ejemplo se seleccionara el respaldo más reciente, 5
Como no tenemos otro cliente, se selecciono bacula-fd, ahora se define el Fileset, 3
Tabla de los backup que se han hecho y saldrá el signo $ para dirigirnos al o los archivos a recuperar. Los comando ls, cd son para navegar por los directorios del respaldo
cd /home/patrick.munoz ls #esta instrucción es para marcar el archivo que se quiere restaurar, pueden ser varios mark oneshot.png
#unmark es para desmarcar el archivo unmark oneshot.png
Cuando se haya terminado, ejecutar done y yes para confirmar
Pantallazo de proceso
Para salir ejecutar exit
RESPALDO CLIENTE WINDOWS Descarga winbacula.exe. Realiza una instalación Custom o Automatic (Luego se deben configurar los archivos)
Acá se ponen los datos del cliente
Y acá los datos del servidor. No olvidar abrir el puerto 9102 y 9101 En esta imagen se me olvido poner la contraseña correcta correcta del director
Luego de instalar se debe configurar los parámetros en los 3 archivos de Configuración Configuración
Edit Client Configuration Se debe configurar el nombre del director, en este caso bacula-dir y la password. Ademas configurar la password de bacula-mon y el director de Messages FileDaemon { # this is me Name = dere203-fd FDport = 9102 # where we listen for the director WorkingDirectory WorkingDirector y = "C:\\ProgramData\ "C:\\ProgramData\\Bacula\\Work" \Bacula\\Work" Pid Directory = "C:\\ProgramData\\Bacula\\Work" #Plugin Directory = "C:\\Program Files\\Bacula\\bin\\fdplugins" Files\\Bacula\\bin\\fdplugins" Maximum Concurrent Jobs = 5 } Director { Name = bacula-dir Password = "passdirector12 "passdirector123fd" 3fd"
} Director { Name = bacula-mon Password = "passdirector12 "passdirector123mon" 3mon" Monitor = yes } Messages { Name = Standard director = bacula-dir = all, !skipped, !restored }
Winbacula instala bconsole para poder manejarla desde nuestro PC de Windows. Para esto se debe configurar los dos archivos restantes Director { Name = bacula-dir DIRport = 9101 address = 172.16.214.237 Password = "passdirector12 "passdirector123" 3" }
En Webmin la configuración es similar pero agregue otro fileset por la Jerarquia de archivos diferentes entre Windows y Linux
Y este es el Job
La menera mas efectiva para restaurar una maquina Windows es por bconsole Restore
Se selecciona el cliente dere203-fd
Se marca el archivo a restaurar y done
Como el respaldo tiene como ruta final /tmp/bacula-restores, /tmp/bacula-restores, entonces debe ejecutar mod
Se modifica el parámetro 9 (Where) e ingresamos la ruta donde queremos la restauración en el cliente C:/restauraciones, enter, yes.
Listo, finalmente se realizó con éxito la restauración
BACULA 1 mensaje
Patrick Muñoz
24 de abril de 2013 18:38
Para: Carlos Ortiz , [email protected] Estimados envío la información de Bacula en el servidor https://172.16.214.237:10000/ root admin otra herramienta que es practica para ver los log http://172.16.214.237/bacula-web --