Inleiding
Dit document beschrijft het basisconcept voor het maken van scripts om een configuratie op te slaan vanuit Cisco Secure Email and Web Manager (SMA).
Voorwaarden
Vereisten
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. Het Cisco Technical Assistance Center kan geen aangepaste externe scripts schrijven, bijwerken of problemen oplossen. Alvorens u probeert en om het even welke scripts construeert, zorg ervoor dat u scripting kennis wanneer u het definitieve script construeert hebt.
Cisco raadt kennis van de volgende onderwerpen aan:
Handmatige back-up van configuratiebestanden
De configuratie back-up kan handmatig worden opgeslagen met het gebruik van de opdracht saveconfig
of mailconfig
van de CLI, of via de SMA GUI > System Administration > Configuration File
.
Met een masker met wachtwoorden kan het apparaat geen configuratie laden, omdat het apparaat geen wachtwoorden voor de lokale beheerdersaccounts in het configuratiebestand kan uitlijnen.
Om een effectieve back-up te hebben die kan worden geladen en toegepast op een SMA, is het het beste om wachtwoorden te versleutelen.
Daarna wordt een melding verwacht dat het bestand in de configuratie op de betreffende machine is opgeslagen.
sma01.local> saveconfig
Choose the passphrase option:
1. Mask passphrases (Files with masked passphrases cannot be loaded with loadconfig command)
2. Encrypt passphrases
[1]> 2
The file M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
has been saved in the configuration directory on machine "sma01.local".
Hoe kan ik back-ups van configuratiebestanden automatiseren of scripts schrijven?
Het gewenste resultaat is toegang krijgen tot het apparaat, een opdracht geven om de huidige configuratie te genereren, en deze op afstand opslaan of een e-mail-exemplaar verzenden, zonder tussenkomst van de gebruiker.
Om deze taak op een efficiƫnte manier te kunnen uitvoeren, moet u:
- Genereer een SSH-sleutelpaar zonder dat u handmatig een wachtwoord hoeft in te voeren.
- Maak een script om in te loggen op het apparaat, sla de configuratie op en verstuur het naar op afstand of per post.
Opmerking: Soortgelijke logica kan worden toegepast in elke OS-scripttaal zoals VB of batch scripts voor Windows.
Een SSH-sleutelpaar genereren
Hiervoor is het nodig om een Private/Public RSA-sleutel(s) te maken. Dit kan worden bereikt door gebruik te maken van:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Script om configuratie op te slaan naar een gespecificeerde host
Dit is een voorbeeld van een script dat kan worden gebruikt om:
- Log in op SMA via SSH.
- Sla de configuratie op voor versleutelde wachtwoorden.
- Verzend de uitvoer op externe host met het Secure Copy Protocol (SCP)-protocol.
Het script bevat variabelen, die aangepast moeten worden op basis van de zakelijke behoeften.
- HOSTNAME is de volledig gekwalificeerde domeinnaam (FQDN) of IP-adres van de SMA.
- Gebruikersnaam is de vooraf ingestelde gebruikersbenamingsaccount op de SMA.
- BACK-UP_PATH is de gewenste map waarin u de configuratie moet opslaan.
Opmerking: voor elke constructie zorg ervoor dat u scripting kennis en een goed begrip van deze variabelen.
Zodra het script gemaakt is, maak het uitvoerbaar en voer het script uit.
chmod +x sma_backup.sh
./sma_backup.sh
#!/usr/bin/env bash
#
# Simple script to save the SMA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME= [FQDN/IP ADDRESS of SMA]
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your SMA.
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
BACKUP_PATH= [/local/path/as/desired]
#
# $FILENAME contains the actual script that calls the SMA and issues the 'saveconfig 2' command.
# The rest of the string removes the unnecessary part and isolates the name of the configuration file <model>-<serial number>-<timestamp>.xml.
#
FILENAME=$(ssh -q $USERNAME@$HOSTNAME 'saveconfig 2' | awk '/xml/ {print $3}')
#
# Notification that new generated config file saved locally.
echo
echo "Processing SMA config ${FILENAME}"
#
# SCP saves the configuration to the respective folder that has been defined under "BACKUP_PATH"
scp -q ${USERNAME}@${HOSTNAME}:/configuration/${FILENAME} ${BACKUP_PATH}
#
# Notification that configuration saved properly on the desired folder.
echo "Saving ${FILENAME} under path ${BACKUP_PATH}"
#
# </SCRIPT>
#
De uitvoer van het script moet de volgende indeling hebben:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
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.
Het UNIX/Linux cron-configuratiebestand heeft 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 goede voorbeeldingang om dit script elke dag uit te voeren om 1:00 AM kijkt als:
00 01 * * * /home/etrianti/sma_backup.sh
Problemen oplossen
- Gebruik
cli_logs
om na te gaan of het script correct is uitgevoerd en te beoordelen wat er is gedaan:
User
login
definieert dat gebruiker met succes kon inloggen op SMA.
executed batch command: 'saveconfig 2'
onthult de opdracht die is uitgevoerd op het script om de configuratie op te slaan.
scp -f /configuration/
definieert de configuratie die uit SMA is gehaald
Voorbeeld van een succesvolle oproep van het script:
sma01.local> tail cli_logs
Press Ctrl-C to stop.
Thu Apr 20 12:25:33 2023 Info: PID 61539: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:34 2023 Info: PID 61539: User admin executed batch command: 'saveconfig 2'
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin executed batch command: 'scp -f /configuration/M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml'
- Opdracht Toevoegen
set -x
in de bovenkant van het script, om debug-modus in bash in te schakelen en te bevestigen dat het script goed wordt uitgevoerd. Het commando set
staat u toe om bepaalde vlaggen in uw Bash script toe te laten zodat het script bepaalde gedragingen en kenmerken heeft.
Waarschuwing: SMA met welkomstbericht geconfigureerd onder CLI > adminaccessconfig for appliance administration login
, staat geen script toe om SCP uit te voeren. In dit geval moet het welkomstbericht worden verwijderd, terwijl er geen probleem is met het bannerbericht.
Gerelateerde informatie