Inleiding
Dit document beschrijft basisconcepten en begrip die worden geassocieerd met het maken van scripts voor een externe host om updates uit te voeren en terug te halen tegen een Cisco Email Security Applicatie (ESA).
Opmerking: Dit artikel is een proof-of-concept en wordt als voorbeeld gegeven. Hoewel deze stappen met succes zijn getest, is dit artikel voornamelijk bedoeld voor demonstratie- en illustratiedoeleinden. Aangepaste scripts vallen buiten het bereik en de ondersteunbaarheid van Cisco. Cisco Technical Assistance zal op geen enkel moment aangepaste externe scripts schrijven, bijwerken of problemen oplossen.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- IOS-scripting en taakplanning
- Configuratie en procedures van SSH-sleutelpaar
Hoe kan ik back-ups van configuratiebestanden automatiseren of scripts schrijven?
Het configuratiebestand wordt dynamisch gegenereerd wanneer de opslagconfiguratie of mailconfig van de CLI wordt gebruikt, of wanneer de bijbehorende back-upopties via de GUI worden gebruikt (Systeembeheer > Configuratiebestand). Om een effectieve back-up te hebben die kan worden geladen en toegepast op een ESA, is het het beste om de wachtwoorden te "ontmaskeren". Hiermee kan het apparaat een gehakte vorm van de wachtwoorden voor de lokale beheeraccounts in het configuratiebestand plaatsen. Om deze reden, kunnen wij niet eenvoudig een vlak "lopend configuratie"dossier van het apparaat kopiëren. Met deze methode kunnen we eerst toegang tot het apparaat krijgen, een opdracht geven om dynamisch de huidige configuratie te maken en een kopie van dit bestand op afstand opslaan of verzenden, zonder dat de gebruiker ingrijpt. Zodra dit is bereikt, kunnen we deze taak op regelmatige basis herhalen of plannen.
U kunt snel en automatisch back-ups maken van configuratiebestanden met ontmaskerde wachtwoorden:
- Genereer een te gebruiken SSH-sleutelpaar en controleer of u het apparaat via SSH kunt benaderen zonder dat u handmatig een wachtwoord hoeft in te voeren.
- Maak een script om in te loggen op het apparaat, bewaar de configuratie en kopieer het (of mail het).
Opmerking: Soortgelijke logica kan worden toegepast in elke OS-scripttaal zoals VB of batch scripts voor Windows.
De configuratie opslaan op een gespecificeerde host met behulp van 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 .
Zodra u het manuscript uitvoerbaar maakt, zou u gelijkaardig aan het volgende moeten zien:
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
Het uitvoeren van de opdracht ls -la maakt een lijst van de inhoud van de directory op uw lokale systeem of host. U moet de bestandsnaam, de tijdstempel en de algemene grootte van het XML-bestand controleren.
E-mailen van de configuratie naar een e-mailadres met behulp van mailconfiguratie
#! /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'
Plan uw taak om op een regelmatige basis (UNIX/Linux) te lopen
Gebruik cron (UNIX/Linux) om de taak regelmatig uit te voeren. Cron wordt aangestuurd door een crontab (crontab table) bestand, een configuratiebestand dat shell commando's aangeeft om periodiek op een gegeven schema te werken. De crontab bestanden worden opgeslagen waar de lijsten van taken en andere instructies aan de cron daemon worden gehouden.
UNIX/Linux cron-configuratiebestand volgt doorgaans deze indeling:
minuut (0-59), uur (0-23, 0 = middernacht), dag (1-31), maand (1-12), doordeweekse dag (0-6, 0 = zondag), opdracht
Een goed voorbeeld om dit script elke dag om 2:00 te laten draaien, ziet er zo uit:
00 02 * * * /home/jsmith/esa_backup
Hoe kan ik back-ups van configuratiebestanden automatiseren of scripts schrijven vanuit een Windows-systeem?
Met de volgende procedure kunt u regelmatig een back-up maken van het configuratiebestand vanuit een Windows-systeem.
- Installeer de terminal emulator PuTTY.
- Maak een tekstbestand met de naam "send_config" met de opdracht mailconfig en een geldig e-mailadres. (Voor de eenvoud, surf naar C:\)
mailconfig example@example.com
- Maak een tekstbestand met de naam "send_config_batch" met de volgende opdracht PuThy. (Voor de eenvoud, plaats het ook onder C:\)
C:\putty.exe -ssh hostname -l admin -pw password -m C:\send_config.txt
exit
Opmerking: Verander de hostnaam naar FQDN- of IP-adres van uw ESA en het wachtwoord naar uw eigenlijke wachtwoord voor de admin-account.
Plan uw taak om regelmatig uit te voeren (Windows)
Gebruik Taakplanner of een vergelijkbaar planninggereedschap in Windows om de "send_config_batch" te vinden en toe te voegen aan de geplande taken van Windows.
Het ESA configuratiebestand wordt verstuurd naar het adres dat opgegeven is in het "send_config" tekstbestand.
Opmerking: Dit artikel is een proof-of-concept en wordt als voorbeeld gegeven. Hoewel deze stappen met succes zijn getest, is dit artikel voornamelijk bedoeld voor demonstratie- en illustratiedoeleinden. Aangepaste scripts vallen buiten het bereik en de ondersteunbaarheid van Cisco. Cisco Technical Assistance zal op geen enkel moment aangepaste externe scripts schrijven, bijwerken of problemen oplossen.
Gerelateerde informatie