Le pedimos a la inteligencia artificial Gemini de Google que nos explique cómo instalar y configurar Amanda en Linux
Explicanos detalladamente cómo instalar y configurar Amanda en LinuxAmanda ( Advanced Maryland Automatic Network Disk Archiver ) es una potente y flexible solución de código abierto para realizar copias de seguridad de múltiples máquinas en red a un servidor centralizado. Aunque históricamente se asoció con cintas, Amanda es perfectamente capaz de realizar copias de seguridad de disco a disco (D2D), de disco a disco a cinta (D2D2T), y de disco a nube.
Esta guía detallará cómo instalar y configurar Amanda en un entorno Linux, cubriendo tanto el servidor Amanda (donde se gestionan y almacenan las copias de seguridad) como los clientes Amanda (las máquinas de las que se realizan las copias de seguridad).
Conceptos Clave de Amanda
Servidor Amanda: La máquina central que orquesta las copias de seguridad. Contiene la configuración, los discos de retención (holding disks) y puede gestionar los dispositivos de almacenamiento (cintas o archivos de disco).
Cliente Amanda: Las máquinas de las que se desea hacer una copia de seguridad. Ejecutan el agente de Amanda que se comunica con el servidor.
Configuración (Config Set): Un conjunto de archivos que define una política de copia de seguridad (qué, cuándo, cómo y dónde se guarda). Puedes tener múltiples configuraciones (ej. "diaria", "mensual").
DLE ( Dump List Entry ): Una entrada en la configuración que especifica un sistema de archivos o directorio en un cliente que debe ser respaldado.
Holding Disk : Espacio en disco en el servidor Amanda donde las copias de seguridad se almacenan temporalmente antes de ser enviadas al destino final (cinta o almacenamiento de disco). Esto mejora el rendimiento.
Tapetype : Define las características de un dispositivo de almacenamiento (ya sea una cinta física o, en el caso de D2D, un "dispositivo" simulado en disco).
Dumptype : Define la política de copia de seguridad para un DLE (ej. con o sin compresión, nivel de copia de seguridad, tipo de autenticación).
Requisitos Previos
Dos Máquinas Linux: Una para el servidor Amanda y al menos una para el cliente Amanda. Pueden ser máquinas virtuales.
Acceso Root/Sudo: En ambas máquinas.
Conectividad de Red : Asegúrate de que el servidor Amanda pueda acceder al cliente Amanda y viceversa.
Sincronización de Tiempo ( NTP ): Es crucial que la hora esté sincronizada en todas las máquinas.
Espacio en Disco:
Servidor : Suficiente espacio para los " holding disks " (el tamaño de tus DLEs más un extra) y para el destino final de los backups (archivos de disco o cintas virtuales).
Cliente: Espacio para el software del cliente.
Paso 1: Instalación de Amanda ( Servidor y Cliente )
Los paquetes de Amanda suelen estar disponibles en los repositorios estándar de la mayoría de las distribuciones Linux.
1. En el Servidor Amanda
Actualizar el sistema:
Ubuntu/Debian:
Bash
sudo apt update
sudo apt upgrade -y
CentOS/RHEL/Fedora:
Bash
sudo dnf update -y
Instalar paquetes del servidor Amanda:
Ubuntu/Debian:
Bash
sudo apt install amanda-server amanda-client -y
CentOS/RHEL/Fedora:
Bash
sudo dnf install amanda-server amanda-client -y
(Nota: amanda-client se instala en el servidor por si el propio servidor necesita ser respaldado por Amanda).
2. En el Cliente Amanda:
Actualizar el sistema: ( Similar al servidor )
Ubuntu/Debian:
Bash
sudo apt update
sudo apt upgrade -y
CentOS/RHEL/Fedora:
Bash
sudo dnf update -y
Instalar paquetes del cliente Amanda
Ubuntu/Debian:
Bash
sudo apt install amanda-client -y
CentOS/RHEL/Fedora:
Bash
sudo dnf install amanda-client -y
(La instalación creará automáticamente el usuario y grupo amanda en ambas máquinas. La mayoría de los archivos de configuración de Amanda se encuentran en /etc/amanda/.)
Paso 2: Configuración del Servidor Amanda
Vamos a crear una configuración simple para copias de seguridad de disco a disco.
1. Crear una Nueva Configuración (Config Set):
Amanda opera con "conjuntos de configuración". Crearemos uno llamado daily (diario).
Cambia al usuario amanda:
Bash
sudo su - amanda
Crea el directorio para la nueva configuración:
Bash
mkdir -p /etc/amanda/daily
Ahora, puedes usar amanda para inicializar los archivos de configuración base o crearlos manualmente. La forma más sencilla es usar amcheck que creará los directorios y archivos si no existen.
Bash
amcheck daily
Esto creará el directorio /etc/amanda/daily y los archivos amanda.conf y disklist dentro si no existen.
2. Editar amanda.conf:
Este es el archivo principal de configuración. Abrelo para editarlo como el usuario amanda (o como root si no estás como amanda):
Bash
nano /etc/amanda/daily/amanda.conf
Aquí está una configuración de ejemplo para D2D (Disk-to-Disk). Ajusta los valores según tus necesidades:
# -----------------------------------------------------------
# GLOBAL SETTINGS
# -----------------------------------------------------------
org "MiOrganizacion" # Nombre de la organización (para informes)
mailto "admin@example.com" # Dirección de correo para los informes
dumpuser "amanda" # El usuario que ejecuta los comandos de Amanda
# -----------------------------------------------------------
# DUMP LOGISTICS
# -----------------------------------------------------------
runtapes 1 # Número de cintas (o archivos simulados) a usar por ejecución
dumpcycle 1 day # Frecuencia de los respaldos completos (FULL)
runspercycle 1 # Cuántas veces amdump se ejecuta por ciclo de respaldo
tapecycle 1 # Cuántas cintas (o archivos simulados) se usan en un ciclo completo. Para D2D, 1 es común.
# -----------------------------------------------------------
# DIRECTORIES
# -----------------------------------------------------------
infofile "/var/lib/amanda/daily/curinfo" # Estado actual de las copias de seguridad
logdir "/var/log/amanda/daily" # Directorio de logs
indexdir "/var/lib/amanda/daily/index" # Directorio de índices (para restauraciones)
# -----------------------------------------------------------
# HOLDING DISK
# -----------------------------------------------------------
# Define un área de retención (holding disk) en el servidor.
# Asegúrate de que este directorio exista y el usuario 'amanda' tenga permisos de escritura.
# El tamaño debe ser suficiente para almacenar los DLEs antes de moverlos al destino final.
holdingdisk hd1 {
comment "Main holding disk"
directory "/var/lib/amanda/holding"
use 5000 mb # Cantidad de espacio a usar en MB
chunksize 1 gb # (Opcional) Tamaño de los chunks de escritura
}
# -----------------------------------------------------------
# TAPE DEVICE SIMULATION (DISK-TO-DISK)
# -----------------------------------------------------------
# Amanda siempre necesita un "dispositivo de cinta", incluso si es virtual.
# Este será un directorio donde se almacenarán los archivos de respaldo.
# Asegúrate de que este directorio exista y el usuario 'amanda' tenga permisos de escritura.
tapedev "file:/var/lib/amanda/vtapes/daily"
# Define el tipo de "cinta" virtual
tapetype DUMPTYPE
# Algoritmo de Tape (importante para D2D)
# 'first' es bueno para D2D ya que prioriza el movimiento del holding disk
taperalgo "first"
autoflush yes # Vaciar el holding disk automáticamente
# -----------------------------------------------------------
# DEFINITIONS
# -----------------------------------------------------------
# Definición del tipo de "cinta" virtual para D2D
define tapetype DUMPTYPE {
comment "Virtual tape for disk backups"
length 10000 mb # Tamaño máximo de un "archivo de cinta" en MB (ajustar)
file_size 10000 mb # Igual que length para simplificar
# fsm_splitsize 1000 mb # (Opcional) Tamaño máximo de un archivo segmentado
fsf 1 # Número de archivos por segmento de cinta
}
# Definición de tipos de dump (políticas de backup)
# Puedes crear múltiples dumptypes con diferentes opciones.
# 'auth "bsd"' es para autenticación basada en .amandahosts (simple, pero menos segura que 'ssh')
# 'compress client fast' o 'compress server fast' para compresión.
# 'exclude list' para excluir directorios.
define dumptype comp-root {
comment "Full backup with compression for root partition"
program "GNUTAR" # Usar GNU tar para la copia de seguridad
auth "bsd" # Autenticación (se configura en el cliente)
compress client best # Compresión en el cliente (recomendado para ahorrar ancho de banda)
index yes # Crear índice para búsquedas rápidas
exclude list "/etc/amanda/exclude.conf" # Excluir directorios listados en este archivo
estimate server # Estimación de tamaño en el servidor (o "client" si el cliente tiene muchas CPU libres)
# Ejemplo de inclusión si solo quieres ciertas cosas
# include list "/etc/amanda/include.conf"
}
define dumptype comp-home {
comment "Daily backup with compression for home directories"
program "GNUTAR"
auth "bsd"
compress client best
index yes
exclude list "/etc/amanda/exclude.conf"
estimate server
}
# -----------------------------------------------------------
# MISC
# -----------------------------------------------------------
# Otros parámetros que podrías querer ajustar:
# netusage 10000 Kbits # Limitar el ancho de banda (en Kbits/seg)
# maxdumps 1 # Número máximo de DLEs simultáneos por cliente
# MaxHostDump 1 # Número máximo de DLEs simultáneos por host
# record no # Deshabilitar el registro de las cintas (si solo usas disco)
# report_next_tape_label yes # Incluir la etiqueta de la próxima cinta en los informes
Crear Directorios y Archivos de Configuración:
Asegúrate de que los directorios holdingdisk, tapedev, infofile, logdir, indexdir existan y el usuario amanda tenga permisos de escritura.
Bash
# Como usuario root (o sudo)
sudo mkdir -p /var/lib/amanda/holding
sudo mkdir -p /var/lib/amanda/vtapes/daily
sudo mkdir -p /var/lib/amanda/daily
sudo mkdir -p /var/log/amanda/daily
sudo chown -R amanda:amanda /var/lib/amanda
sudo chown -R amanda:amanda /var/log/amanda
# Crear el archivo de exclusión
sudo nano /etc/amanda/exclude.conf
Contenido de /etc/amanda/exclude.conf (ejemplo):
/tmp/*
/var/tmp/*
/proc/*
/sys/*
/dev/*
/run/*
/mnt/*
/media/*
/lost+found/*
3. Editar disklist :
Este archivo (/etc/amanda/daily/disklist) especifica qué sistemas de archivos (DLEs) deben ser respaldados en qué clientes y con qué dumptype.
Abrelo para editarlo como el usuario amanda (o como root):
Bash
nano /etc/amanda/daily/disklist
Añade una línea por cada DLE que quieras respaldar. Reemplaza cliente.example.com con el nombre de host o la IP real de tu cliente Amanda.
# Hostname Disk/Directory Dumptype
cliente.example.com / comp-root
cliente.example.com /home comp-home
# Puedes añadir más DLEs de este cliente o de otros clientes
# otro_cliente.example.com /var/www comp-home
4. Configuración Inicial del Volumen Virtual (para D2D):
Amanda necesita inicializar las "cintas" virtuales.
Cambia al usuario amanda:
Bash
sudo su - amanda
Crea una "etiqueta" para tu primera "cinta" virtual:
Bash
amlabel daily daily-001
Esto creará el primer archivo de "cinta" en /var/lib/amanda/vtapes/daily/daily-001 y lo registrará.
Paso 3: Configuración del Cliente Amanda
1. Configurar Autenticación (en el Cliente):
El servidor Amanda necesita poder comunicarse con el cliente. Usaremos la autenticación bsd que es sencilla para empezar, pero en producción se recomienda ssh por seguridad.
Crear .amandahosts: Cambia al usuario amanda en el cliente Amanda:
Bash
sudo su - amanda
Crea o edita el archivo .amandahosts en el directorio home del usuario amanda:
Bash
nano ~/.amandahosts
Añade una línea con el nombre de host del servidor Amanda y el usuario amanda:
servidor.example.com amanda
Guarda y sal. Establece permisos estrictos:
Bash
chmod 600 ~/.amandahosts
Configurar amanda-client.conf (Opcional, pero recomendado para clientes): En el cliente Amanda, edita el archivo de configuración global del cliente:
Bash
sudo nano /etc/amanda/amanda-client.conf
Ajusta estas líneas:
conf "daily" # El nombre del conjunto de configuración en el servidor
index_server "servidor.example.com" # Nombre de host del servidor Amanda
dump_server "servidor.example.com" # Nombre de host del servidor Amanda
auth "bsd" # Tipo de autenticación (debe coincidir con amanda.conf del servidor)
# Algunas versiones de amanda-client.conf pueden requerir la ruta completa a amandad
# client_name "cliente.example.com" # Nombre de host del cliente (opcional, suele ser el hostname)
2. Configurar Permisos para amandad (en el Cliente):
El agente de Amanda (amandad) se ejecuta bajo el usuario amanda, pero necesita permisos de root para leer la mayoría de los sistemas de archivos (como /).
Esto se hace configurando sudo de forma específica.
En el cliente Amanda, edita el archivo sudoers:
Bash
sudo visudo
Añade la siguiente línea al final del archivo. Asegúrate de que la ruta a amandad sea correcta para tu distribución (común es /usr/lib/amanda/amandad).
amanda ALL = (root) NOPASSWD: /usr/lib/amanda/amandad
Guarda y sal.
Paso 4: Configuración del Firewall (Servidor y Cliente)
Amanda utiliza puertos específicos para la comunicación.
Servidor Amanda : Necesita aceptar conexiones entrantes de los clientes.
Puertos: 10080-1008x (TCP/UDP, para amanda-client) y 7937-7938 (TCP/UDP, para servicios antiguos/cliente amandad si no usa amanda-client).
UFW (Ubuntu/Debian):
Bash
sudo ufw allow 10080:10089/tcp comment "Amanda Server"
sudo ufw allow 10080:10089/udp comment "Amanda Server"
sudo ufw allow 7937:7938/tcp comment "Amanda Older Client"
sudo ufw allow 7937:7938/udp comment "Amanda Older Client"
sudo ufw reload
Firewalld (CentOS/RHEL/Fedora):
Bash
sudo firewall-cmd --permanent --add-port=10080-10089/tcp
sudo firewall-cmd --permanent --add-port=10080-10089/udp
sudo firewall-cmd --permanent --add-port=7937-7938/tcp
sudo firewall-cmd --permanent --add-port=7937-7938/udp
sudo firewall-cmd --reload
Cliente Amanda : Necesita aceptar conexiones entrantes del servidor.
Puertos: 10080-1008x (TCP/UDP, para amanda-client) y 7937-7938 (TCP/UDP).
UFW (Ubuntu/Debian):
Bash
sudo ufw allow from servidor.example.com to any port 10080:10089 proto tcp comment "Allow Amanda server"
sudo ufw allow from servidor.example.com to any port 10080:10089 proto udp comment "Allow Amanda server"
sudo ufw allow from servidor.example.com to any port 7937:7938 proto tcp comment "Allow Amanda server (old)"
sudo ufw allow from servidor.example.com to any port 7937:7938 proto udp comment "Allow Amanda server (old)"
sudo ufw reload
Firewalld (CentOS/RHEL/Fedora):
Bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="10080-10089" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="10080-10089" protocol="udp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="7937-7938" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="7937-7938" protocol="udp" accept'
sudo firewall-cmd --reload
Paso 5: Probar la Configuración
Una vez que la configuración está en su lugar, es hora de probarla.
1. Verificación en el Servidor:
Cambia al usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
Ejecuta amcheck:
Bash
amcheck daily
Si todo está bien, deberías ver "amcheck daily OK" al final.
Errores comunes de amcheck :
CLIENT_AMANDA_NOCONF: Cliente no configurado correctamente (.amandahosts o amanda-client.conf).
CLIENT_NOT_RESPONDING: Firewall, problema de red, servicio amandad no accesible en el cliente.
NO_DUMP_INFO_FILE: infofile no creado o permisos incorrectos.
NO_HOLDING_DISK: holdingdisk no creado, sin espacio o permisos.
NO_TAPE_DEVICE: tapedev no creado, sin espacio o permisos.
PERMISSIONS_BAD: Permisos incorrectos en archivos/directorios de Amanda.
2. Ejecutar la Primera Copia de Seguridad (Server):
Si amcheck fue exitoso, puedes ejecutar la primera copia de seguridad completa.
Asegúrate de estar como el usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
amdump daily
amdump puede tardar un tiempo en completarse, dependiendo del tamaño de los DLEs. Puedes monitorear su estado:
Bash
amstatus daily
Y revisar los logs:
Bash
tail -f /var/log/amanda/daily/amdump.X.log
Cuando amdump finalice, recibirás un correo electrónico (si mailto está configurado y el envío de correo funciona en el servidor) o verás un resumen en el log.
3. Generar un Informe (Server):
Después de que amdump haya terminado, puedes generar un informe:
Bash
amreport daily
Esto te dará un resumen de la copia de seguridad, incluyendo qué DLEs fueron respaldados, su tamaño, y si hubo algún error.
Paso 6: Restauración de Datos (Básica)
La capacidad de restaurar datos es el objetivo final de cualquier sistema de copia de seguridad.
1. Usar amrecover (Servidor):
Cambia al usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
amrecover daily
Esto te dará un prompt AMRECOVER>.
2. Seleccionar Cliente y Disco:
sethost cliente.example.com (Reemplaza con el nombre de tu cliente)
setdisk / (Reemplaza con el sistema de archivos o directorio que quieres restaurar)
3. Listar Archivos y Restaurar:
lp (Para listar los archivos disponibles en el DLE seleccionado)
cd /path/to/directory (Navega al directorio dentro del backup)
get filename (Para restaurar un archivo específico)
get directory/ (Para restaurar un directorio completo)
quit (Para salir del modo de recuperación)
Los archivos restaurados se colocarán en un subdirectorio amrecover dentro del directorio de trabajo actual.
Consideraciones Adicionales y Consejos para la Producción
Autenticación SSH (Recomendado): Para entornos de producción, la autenticación SSH es mucho más segura que bsd. Requiere configurar claves SSH sin contraseña entre el usuario amanda del servidor y el usuario amanda del cliente, y configurar auth "ssh" en amanda.conf y amanda-client.conf.
Planificación (Cron): Para automatizar las copias de seguridad, añade amdump daily a un cron job del usuario amanda en el servidor.
Bash
crontab -e
# Añade una línea como (ej. todos los días a la 01:00 AM):
0 1 * * * /usr/sbin/amdump daily >/dev/null 2>&1
Múltiples Configuraciones: Puedes crear diferentes configuraciones (ej. weekly, monthly) para diferentes ciclos de respaldo o políticas de retención.
Monitoreo: Monitorea el espacio en los holding disks y el destino final de los backups. Configura alertas para los informes de amreport.
Backups Consistentes: Para bases de datos o aplicaciones en funcionamiento, considera usar scripts pre-dump (que congelen/vuelquen la base de datos) y post-dump (que la descongelen) o utilizar LVM/ZFS/BTRFS snapshots para asegurar una copia de seguridad consistente.
Depuración: Si tienes problemas, puedes aumentar el nivel de depuración en amanda.conf (ej., debug_amcheck 5) o usar opciones de depuración con los comandos (ej., amcheck -D client daily).
Amanda es una herramienta muy potente. Esta guía te proporciona los fundamentos para una configuración D2D básica. Para escenarios más complejos (cintas físicas, integración con otras herramientas, etc.), siempre consulta la documentación oficial de Amanda (https://wiki.amanda.org/).
tapecycle 1 # Cuántas cintas (o archivos simulados) se usan en un ciclo completo. Para D2D, 1 es común.
# -----------------------------------------------------------
# DIRECTORIES
# -----------------------------------------------------------
infofile "/var/lib/amanda/daily/curinfo" # Estado actual de las copias de seguridad
logdir "/var/log/amanda/daily" # Directorio de logs
indexdir "/var/lib/amanda/daily/index" # Directorio de índices (para restauraciones)
# -----------------------------------------------------------
# HOLDING DISK
# -----------------------------------------------------------
# Define un área de retención (holding disk) en el servidor.
# Asegúrate de que este directorio exista y el usuario 'amanda' tenga permisos de escritura.
# El tamaño debe ser suficiente para almacenar los DLEs antes de moverlos al destino final.
holdingdisk hd1 {
comment "Main holding disk"
directory "/var/lib/amanda/holding"
use 5000 mb # Cantidad de espacio a usar en MB
chunksize 1 gb # (Opcional) Tamaño de los chunks de escritura
}
# -----------------------------------------------------------
# TAPE DEVICE SIMULATION (DISK-TO-DISK)
# -----------------------------------------------------------
# Amanda siempre necesita un "dispositivo de cinta", incluso si es virtual.
# Este será un directorio donde se almacenarán los archivos de respaldo.
# Asegúrate de que este directorio exista y el usuario 'amanda' tenga permisos de escritura.
tapedev "file:/var/lib/amanda/vtapes/daily"
# Define el tipo de "cinta" virtual
tapetype DUMPTYPE
# Algoritmo de Tape (importante para D2D)
# 'first' es bueno para D2D ya que prioriza el movimiento del holding disk
taperalgo "first"
autoflush yes # Vaciar el holding disk automáticamente
# -----------------------------------------------------------
# DEFINITIONS
# -----------------------------------------------------------
# Definición del tipo de "cinta" virtual para D2D
define tapetype DUMPTYPE {
comment "Virtual tape for disk backups"
length 10000 mb # Tamaño máximo de un "archivo de cinta" en MB (ajustar)
file_size 10000 mb # Igual que length para simplificar
# fsm_splitsize 1000 mb # (Opcional) Tamaño máximo de un archivo segmentado
fsf 1 # Número de archivos por segmento de cinta
}
# Definición de tipos de dump (políticas de backup)
# Puedes crear múltiples dumptypes con diferentes opciones.
# 'auth "bsd"' es para autenticación basada en .amandahosts (simple, pero menos segura que 'ssh')
# 'compress client fast' o 'compress server fast' para compresión.
# 'exclude list' para excluir directorios.
define dumptype comp-root {
comment "Full backup with compression for root partition"
program "GNUTAR" # Usar GNU tar para la copia de seguridad
auth "bsd" # Autenticación (se configura en el cliente)
compress client best # Compresión en el cliente (recomendado para ahorrar ancho de banda)
index yes # Crear índice para búsquedas rápidas
exclude list "/etc/amanda/exclude.conf" # Excluir directorios listados en este archivo
estimate server # Estimación de tamaño en el servidor (o "client" si el cliente tiene muchas CPU libres)
# Ejemplo de inclusión si solo quieres ciertas cosas
# include list "/etc/amanda/include.conf"
}
define dumptype comp-home {
comment "Daily backup with compression for home directories"
program "GNUTAR"
auth "bsd"
compress client best
index yes
exclude list "/etc/amanda/exclude.conf"
estimate server
}
# -----------------------------------------------------------
# MISC
# -----------------------------------------------------------
# Otros parámetros que podrías querer ajustar:
# netusage 10000 Kbits # Limitar el ancho de banda (en Kbits/seg)
# maxdumps 1 # Número máximo de DLEs simultáneos por cliente
# MaxHostDump 1 # Número máximo de DLEs simultáneos por host
# record no # Deshabilitar el registro de las cintas (si solo usas disco)
# report_next_tape_label yes # Incluir la etiqueta de la próxima cinta en los informes
Crear Directorios y Archivos de Configuración:
Asegúrate de que los directorios holdingdisk, tapedev, infofile, logdir, indexdir existan y el usuario amanda tenga permisos de escritura.
Bash
# Como usuario root (o sudo)
sudo mkdir -p /var/lib/amanda/holding
sudo mkdir -p /var/lib/amanda/vtapes/daily
sudo mkdir -p /var/lib/amanda/daily
sudo mkdir -p /var/log/amanda/daily
sudo chown -R amanda:amanda /var/lib/amanda
sudo chown -R amanda:amanda /var/log/amanda
# Crear el archivo de exclusión
sudo nano /etc/amanda/exclude.conf
Contenido de /etc/amanda/exclude.conf (ejemplo):
/tmp/*
/var/tmp/*
/proc/*
/sys/*
/dev/*
/run/*
/mnt/*
/media/*
/lost+found/*
3. Editar disklist :
Este archivo (/etc/amanda/daily/disklist) especifica qué sistemas de archivos (DLEs) deben ser respaldados en qué clientes y con qué dumptype.
Abrelo para editarlo como el usuario amanda (o como root):
Bash
nano /etc/amanda/daily/disklist
Añade una línea por cada DLE que quieras respaldar. Reemplaza cliente.example.com con el nombre de host o la IP real de tu cliente Amanda.
# Hostname Disk/Directory Dumptype
cliente.example.com / comp-root
cliente.example.com /home comp-home
# Puedes añadir más DLEs de este cliente o de otros clientes
# otro_cliente.example.com /var/www comp-home
4. Configuración Inicial del Volumen Virtual (para D2D):
Amanda necesita inicializar las "cintas" virtuales.
Cambia al usuario amanda:
Bash
sudo su - amanda
Crea una "etiqueta" para tu primera "cinta" virtual:
Bash
amlabel daily daily-001
Esto creará el primer archivo de "cinta" en /var/lib/amanda/vtapes/daily/daily-001 y lo registrará.
Paso 3: Configuración del Cliente Amanda
1. Configurar Autenticación (en el Cliente):
El servidor Amanda necesita poder comunicarse con el cliente. Usaremos la autenticación bsd que es sencilla para empezar, pero en producción se recomienda ssh por seguridad.
Crear .amandahosts: Cambia al usuario amanda en el cliente Amanda:
Bash
sudo su - amanda
Crea o edita el archivo .amandahosts en el directorio home del usuario amanda:
Bash
nano ~/.amandahosts
Añade una línea con el nombre de host del servidor Amanda y el usuario amanda:
servidor.example.com amanda
Guarda y sal. Establece permisos estrictos:
Bash
chmod 600 ~/.amandahosts
Configurar amanda-client.conf (Opcional, pero recomendado para clientes): En el cliente Amanda, edita el archivo de configuración global del cliente:
Bash
sudo nano /etc/amanda/amanda-client.conf
Ajusta estas líneas:
conf "daily" # El nombre del conjunto de configuración en el servidor
index_server "servidor.example.com" # Nombre de host del servidor Amanda
dump_server "servidor.example.com" # Nombre de host del servidor Amanda
auth "bsd" # Tipo de autenticación (debe coincidir con amanda.conf del servidor)
# Algunas versiones de amanda-client.conf pueden requerir la ruta completa a amandad
# client_name "cliente.example.com" # Nombre de host del cliente (opcional, suele ser el hostname)
2. Configurar Permisos para amandad (en el Cliente):
El agente de Amanda (amandad) se ejecuta bajo el usuario amanda, pero necesita permisos de root para leer la mayoría de los sistemas de archivos (como /).
Esto se hace configurando sudo de forma específica.
En el cliente Amanda, edita el archivo sudoers:
Bash
sudo visudo
Añade la siguiente línea al final del archivo. Asegúrate de que la ruta a amandad sea correcta para tu distribución (común es /usr/lib/amanda/amandad).
amanda ALL = (root) NOPASSWD: /usr/lib/amanda/amandad
Guarda y sal.
Paso 4: Configuración del Firewall (Servidor y Cliente)
Amanda utiliza puertos específicos para la comunicación.
Servidor Amanda : Necesita aceptar conexiones entrantes de los clientes.
Puertos: 10080-1008x (TCP/UDP, para amanda-client) y 7937-7938 (TCP/UDP, para servicios antiguos/cliente amandad si no usa amanda-client).
UFW (Ubuntu/Debian):
Bash
sudo ufw allow 10080:10089/tcp comment "Amanda Server"
sudo ufw allow 10080:10089/udp comment "Amanda Server"
sudo ufw allow 7937:7938/tcp comment "Amanda Older Client"
sudo ufw allow 7937:7938/udp comment "Amanda Older Client"
sudo ufw reload
Firewalld (CentOS/RHEL/Fedora):
Bash
sudo firewall-cmd --permanent --add-port=10080-10089/tcp
sudo firewall-cmd --permanent --add-port=10080-10089/udp
sudo firewall-cmd --permanent --add-port=7937-7938/tcp
sudo firewall-cmd --permanent --add-port=7937-7938/udp
sudo firewall-cmd --reload
Cliente Amanda : Necesita aceptar conexiones entrantes del servidor.
Puertos: 10080-1008x (TCP/UDP, para amanda-client) y 7937-7938 (TCP/UDP).
UFW (Ubuntu/Debian):
Bash
sudo ufw allow from servidor.example.com to any port 10080:10089 proto tcp comment "Allow Amanda server"
sudo ufw allow from servidor.example.com to any port 10080:10089 proto udp comment "Allow Amanda server"
sudo ufw allow from servidor.example.com to any port 7937:7938 proto tcp comment "Allow Amanda server (old)"
sudo ufw allow from servidor.example.com to any port 7937:7938 proto udp comment "Allow Amanda server (old)"
sudo ufw reload
Firewalld (CentOS/RHEL/Fedora):
Bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="10080-10089" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="10080-10089" protocol="udp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="7937-7938" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_SERVIDOR_AMANDA" port port="7937-7938" protocol="udp" accept'
sudo firewall-cmd --reload
Paso 5: Probar la Configuración
Una vez que la configuración está en su lugar, es hora de probarla.
1. Verificación en el Servidor:
Cambia al usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
Ejecuta amcheck:
Bash
amcheck daily
Si todo está bien, deberías ver "amcheck daily OK" al final.
Errores comunes de amcheck :
CLIENT_AMANDA_NOCONF: Cliente no configurado correctamente (.amandahosts o amanda-client.conf).
CLIENT_NOT_RESPONDING: Firewall, problema de red, servicio amandad no accesible en el cliente.
NO_DUMP_INFO_FILE: infofile no creado o permisos incorrectos.
NO_HOLDING_DISK: holdingdisk no creado, sin espacio o permisos.
NO_TAPE_DEVICE: tapedev no creado, sin espacio o permisos.
PERMISSIONS_BAD: Permisos incorrectos en archivos/directorios de Amanda.
2. Ejecutar la Primera Copia de Seguridad (Server):
Si amcheck fue exitoso, puedes ejecutar la primera copia de seguridad completa.
Asegúrate de estar como el usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
amdump daily
amdump puede tardar un tiempo en completarse, dependiendo del tamaño de los DLEs. Puedes monitorear su estado:
Bash
amstatus daily
Y revisar los logs:
Bash
tail -f /var/log/amanda/daily/amdump.X.log
Cuando amdump finalice, recibirás un correo electrónico (si mailto está configurado y el envío de correo funciona en el servidor) o verás un resumen en el log.
3. Generar un Informe (Server):
Después de que amdump haya terminado, puedes generar un informe:
Bash
amreport daily
Esto te dará un resumen de la copia de seguridad, incluyendo qué DLEs fueron respaldados, su tamaño, y si hubo algún error.
Paso 6: Restauración de Datos (Básica)
La capacidad de restaurar datos es el objetivo final de cualquier sistema de copia de seguridad.
1. Usar amrecover (Servidor):
Cambia al usuario amanda en el servidor Amanda:
Bash
sudo su - amanda
amrecover daily
Esto te dará un prompt AMRECOVER>.
2. Seleccionar Cliente y Disco:
sethost cliente.example.com (Reemplaza con el nombre de tu cliente)
setdisk / (Reemplaza con el sistema de archivos o directorio que quieres restaurar)
3. Listar Archivos y Restaurar:
lp (Para listar los archivos disponibles en el DLE seleccionado)
cd /path/to/directory (Navega al directorio dentro del backup)
get filename (Para restaurar un archivo específico)
get directory/ (Para restaurar un directorio completo)
quit (Para salir del modo de recuperación)
Los archivos restaurados se colocarán en un subdirectorio amrecover dentro del directorio de trabajo actual.
Consideraciones Adicionales y Consejos para la Producción
Autenticación SSH (Recomendado): Para entornos de producción, la autenticación SSH es mucho más segura que bsd. Requiere configurar claves SSH sin contraseña entre el usuario amanda del servidor y el usuario amanda del cliente, y configurar auth "ssh" en amanda.conf y amanda-client.conf.
Planificación (Cron): Para automatizar las copias de seguridad, añade amdump daily a un cron job del usuario amanda en el servidor.
Bash
crontab -e
# Añade una línea como (ej. todos los días a la 01:00 AM):
0 1 * * * /usr/sbin/amdump daily >/dev/null 2>&1
Múltiples Configuraciones: Puedes crear diferentes configuraciones (ej. weekly, monthly) para diferentes ciclos de respaldo o políticas de retención.
Monitoreo: Monitorea el espacio en los holding disks y el destino final de los backups. Configura alertas para los informes de amreport.
Backups Consistentes: Para bases de datos o aplicaciones en funcionamiento, considera usar scripts pre-dump (que congelen/vuelquen la base de datos) y post-dump (que la descongelen) o utilizar LVM/ZFS/BTRFS snapshots para asegurar una copia de seguridad consistente.
Depuración: Si tienes problemas, puedes aumentar el nivel de depuración en amanda.conf (ej., debug_amcheck 5) o usar opciones de depuración con los comandos (ej., amcheck -D client daily).
Amanda es una herramienta muy potente. Esta guía te proporciona los fundamentos para una configuración D2D básica. Para escenarios más complejos (cintas físicas, integración con otras herramientas, etc.), siempre consulta la documentación oficial de Amanda (https://wiki.amanda.org/).