Introducción
Este documento describe los conceptos básicos y la comprensión asociada con la creación de scripts para que un host externo realice y recupere actualizaciones en un dispositivo de seguridad Cisco Email Security Appliance (ESA).
Nota: este artículo es una prueba de concepto y se proporciona como base de ejemplo. Aunque estos pasos se han probado con éxito, este artículo se utiliza principalmente con fines de demostración e ilustración. Las secuencias de comandos personalizadas están fuera del alcance y la compatibilidad de Cisco. La asistencia técnica de Cisco no escribirá, actualizará ni solucionará problemas de scripts externos personalizados en ningún momento.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Secuencias de comandos del SO y planificación de tareas
- Configuración y procedimientos del par de claves SSH
¿Cómo puedo automatizar o realizar copias de seguridad de archivos de configuración de scripts?
El archivo de configuración se genera dinámicamente al utilizar saveconfig o mailconfig desde la CLI, o las opciones de copia de seguridad asociadas a través de la GUI (Administración del sistema > Archivo de configuración). Para tener una copia de seguridad efectiva que pueda cargarse y aplicarse a un ESA, es mejor "desenmascarar" las contraseñas. Esto permite que el dispositivo coloque una forma de hash de las contraseñas de las cuentas administrativas locales en el archivo de configuración. Por esta razón, no podemos simplemente copiar un archivo plano de "configuración en ejecución" desde el dispositivo. Este método nos permite acceder primero al dispositivo, ejecutar un comando para crear dinámicamente la configuración actual y guardar o enviar por correo una copia de este archivo en algún lugar de forma remota, sin la intervención del usuario. Una vez que se haya logrado esto, podemos repetir o programar esta tarea para que se lleve a cabo de forma regular.
Para realizar una copia de seguridad rápida y automática de los archivos de configuración con contraseñas desenmascaradas:
- Genere un par de claves SSH para utilizar y compruebe que puede acceder a su dispositivo mediante SSH sin tener que introducir manualmente una contraseña.
- Cree una secuencia de comandos para iniciar sesión en el dispositivo, guardar la configuración y copiarla (o enviarla por correo).
Nota: Se puede aplicar una lógica similar en cualquier lenguaje de scripting del sistema operativo, como VB o scripts por lotes para Windows.
Guardar la configuración en un host especificado mediante saveconfig
#! /bin/bash
#
# Simple script to save the ESA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME=[FQDN OR IP ADDRESS]
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
USERNAME=admin
FILENAME=`ssh $USERNAME@$HOSTNAME "saveconfig yes" | grep xml | sed -e 's/\/
configuration\///g' | sed 's/\.$//g' | tr -d "\""`
scp $USERNAME@$HOSTNAME:/configuration/$FILENAME .
Una vez que haya hecho que la secuencia de comandos sea ejecutable, debería ver algo similar a lo siguiente:
jsmith@linux_server:~$ ./esa_backup
C000V-564D1A718795ACFED603-1A77BAD60A5A-20140902T222913.xml 100% 158KB 157.9KB/
s 00:00
jsmith@linux_server:~$ ls -la
total 1196
drwx------ 10 jsmith jsmith 40960 Sep 2 22:29 .
drwxr-xr-x 13 root root 4096 Aug 13 22:22 ..
-rw-rw---- 1 jsmith jsmith 161642 Sep 2 22:29 C000V-564D1A718795ACFED603-
1A77BAD60A5A-20140902T222913.xml
La ejecución del comando ls -la enumera el contenido del directorio en su sistema local o host. Debe comprobar el nombre de archivo, la marca de tiempo y el tamaño total del archivo XML.
Envío de la configuración por correo electrónico a una dirección de correo electrónico mediante mailconfig
#! /bin/bash
#
# Simple script to email the ESA config to pre-specified email address.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME=[FQDN OR IP ADDRESS]
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
USERNAME=admin
# $MAILDEST is preconfigured email address
MAILDEST=backups@example.com
ssh $USERNAME@$HOSTNAME 'mailconfig $MAILDEST yes'
Programe la ejecución de la tarea de forma regular (UNIX/Linux)
Utilice cron (UNIX/Linux) para iniciar el trabajo con regularidad. Cron está controlado por un archivo crontab (tabla cron), un archivo de configuración que especifica los comandos shell que se ejecutarán periódicamente en una programación determinada. Los archivos crontab se almacenan donde se guardan las listas de trabajos y otras instrucciones al demonio cron.
El archivo cron config de UNIX/Linux suele tener este formato:
minuto (0-59), hora (0-23, 0 = medianoche), día (1-31), mes (1-12), día de la semana (0-6, 0 = domingo), comando
Por lo tanto, un buen ejemplo de entrada para ejecutar este script todos los días a las 2:00 a.m. sería como:
00 02 * * * /home/jsmith/esa_backup
¿Cómo puedo automatizar o realizar copias de seguridad de archivos de configuración de scripts desde un sistema Windows?
Con el siguiente procedimiento, puede realizar copias de seguridad del archivo de configuración de forma regular desde un sistema Windows.
- Instale el emulador de terminal PuTTY.
- Cree un archivo de texto llamado "send_config" con el comando mailconfig y una dirección de correo electrónico válida. (Para simplificar, escríbalo en C:\)
mailconfig example@example.com
- Cree un archivo de texto llamado "send_config_batch" con el siguiente comando PuTTy. (Por motivos de simplicidad, incluya también esta opción en C:\).
C:\putty.exe -ssh hostname -l admin -pw password -m C:\send_config.txt
exit
Nota: Asegúrese de cambiar el nombre de host a FQDN o dirección IP de su ESA, y la contraseña a su contraseña real para la cuenta de administrador.
Programar la ejecución de una tarea de forma regular (Windows)
Utilizando el Programador de tareas, o una herramienta de programación similar en Windows, busque y agregue "send_config_batch" a las tareas programadas de Windows.
El archivo de configuración ESA se enviará a la dirección especificada en el archivo de texto "send_config" según se especifique.
Nota: este artículo es una prueba de concepto y se proporciona como base de ejemplo. Aunque estos pasos se han probado con éxito, este artículo se utiliza principalmente con fines de demostración e ilustración. Las secuencias de comandos personalizadas están fuera del alcance y la compatibilidad de Cisco. La asistencia técnica de Cisco no escribirá, actualizará ni solucionará problemas de scripts externos personalizados en ningún momento.
Información Relacionada