Einleitung
In diesem Dokument wird das grundlegende Konzept der Skripterstellung zum Speichern einer Konfiguration über Cisco Secure Email und Web Manager (SMA) beschrieben.
Voraussetzungen
Anforderungen
Hinweis: Dieser Artikel dient als Basis für eine Machbarkeitsstudie. Obwohl diese Schritte erfolgreich getestet wurden, ist dieser Artikel in erster Linie für Demonstrations- und Illustrationszwecke bestimmt. Benutzerdefinierte Skripte sind nicht Bestandteil des Leistungsumfangs und der Unterstützung von Cisco. Das Cisco Technical Assistance Center kann zu keinem Zeitpunkt benutzerdefinierte externe Skripte schreiben, aktualisieren oder Fehler beheben. Bevor Sie versuchen, Skripte zu erstellen, stellen Sie sicher, dass Sie Skriptkenntnisse haben, wenn Sie das fertige Skript erstellen.
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
Backup der manuellen Konfigurationsdatei
Das Konfigurations-Backup kann manuell gespeichert werden, entweder mithilfe des Befehls saveconfig
Oder mailconfig
über die CLI oder SMA GUI > System Administration > Configuration File
.
Masken-Passphrasen erlauben es der Appliance nicht, die Konfiguration zu laden, da die Appliance die Passwörter für die lokalen Administratorkonten in der Konfigurationsdatei nicht hash-fähig machen kann.
Um eine effektive Sicherung zu haben, die geladen und auf eine SMA angewendet werden kann, ist es am besten, Passphrasen zu verschlüsseln.
Anschließend wird erwartet, dass eine Benachrichtigung über das Speichern der Datei in der Konfiguration auf dem jeweiligen Computer erfolgt.
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".
Wie kann ich Backups von Konfigurationsdateien automatisieren oder als Skript erstellen?
Das gewünschte Ergebnis ist der Zugriff auf die Appliance, die Ausgabe eines Befehls zur Erzeugung der aktuellen Konfiguration, die Remote-Speicherung oder das Versenden einer E-Mail-Kopie ohne Benutzereingriff.
Um diese Aufgabe effizient zu erfüllen, müssen Sie:
- Generieren Sie ein SSH-Schlüsselpaar, ohne dass Sie manuell ein Kennwort eingeben müssen.
- Erstellen Sie ein Skript, um sich bei der Appliance anzumelden, speichern Sie die Konfiguration, und senden Sie sie remote oder per E-Mail.
Hinweis: Eine ähnliche Logik kann in jeder Skriptsprache des Betriebssystems angewendet werden, z. B. in VB- oder Batch-Skripts für Windows.
Generieren eines SSH-Schlüsselpaars
Dazu müssen Sie einen privaten/öffentlichen RSA-Schlüssel erstellen. Dies kann durch folgende Maßnahmen erreicht werden:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
Skript zum Speichern der Konfiguration auf einem angegebenen Host
Dies ist ein Beispiel für ein Skript, mit dem Sie:
- Melden Sie sich über SSH bei SMA an.
- Speichern Sie die Konfiguration für verschlüsselte Passphrasen.
- Senden Sie die Ausgabe auf einem Remote-Host mit dem Secure Copy Protocol (SCP)-Protokoll.
Das Skript enthält Variablen, die entsprechend den geschäftlichen Anforderungen geändert werden müssen.
- HOSTNAME ist der vollqualifizierte Domänenname (FQDN) oder die IP-Adresse der SMA.
- USERNAME ist der vorkonfigurierte Benutzername auf der SMA.
- BACKUP_PATH ist das gewünschte Verzeichnis, in dem Sie die Konfiguration speichern müssen.
Hinweis: Stellen Sie vor jeder Konstruktion sicher, dass Sie Skriptkenntnisse und ein gutes Verständnis dieser Variablen haben.
Nachdem das Skript erstellt wurde, machen Sie es ausführbar, und führen Sie das Skript aus.
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>
#
Die Ausgabe des Skripts muss folgendes Format haben:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
Planen der regelmäßigen Ausführung der Aufgabe (UNIX/Linux)
Verwenden Sie cron (UNIX/Linux), um Ihre Arbeit regelmäßig aufzunehmen. Cron wird von einer Crontab-Datei (Cron-Tabelle) gesteuert, einer Konfigurationsdatei, die Shell-Befehle angibt, die regelmäßig nach einem bestimmten Zeitplan ausgeführt werden sollen. Die Crontab-Dateien werden dort gespeichert, wo die Joblisten und andere Anweisungen für den Cron-Daemon gespeichert werden.
Die UNIX/Linux-Cron-Konfigurationsdatei hat in der Regel das folgende Format:
Minute (0-59), Stunde (0-23, 0 = Mitternacht), Tag (1-31), Monat (1-12), Wochentag (0-6, 0 = Sonntag), Befehl
Ein guter Beispieleintrag, um dieses Skript jeden Tag um 01:00 Uhr auszuführen, sieht wie folgt aus:
00 01 * * * /home/etrianti/sma_backup.sh
Fehlerbehebung
- Nutzung
cli_logs
um zu überprüfen, ob das Skript korrekt ausgeführt wurde und auszuwerten, was ausgeführt wurde:
User
login
definiert, dass sich der Benutzer erfolgreich bei SMA anmelden konnte.
executed batch command: 'saveconfig 2'
zeigt den Befehl an, der im Skript ausgeführt wurde, um die Konfiguration zu speichern.
scp -f /configuration/
definiert die Konfiguration, die von SMA abgerufen wurde
Beispiel für einen erfolgreichen Aufruf des Skripts:
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'
- Befehl hinzufügen
set -x
im oberen Teil des Skripts, um den Debug-Modus in bash zu aktivieren und die korrekte Ausführung des Skripts zu bestätigen. Der Befehl set
ermöglicht Ihnen, bestimmte Flags in Ihrem Bash-Skript zu aktivieren, sodass das Skript bestimmte Verhaltensweisen und Eigenschaften hat.
Vorsicht: SMA mit "welcome"-Meldung konfiguriert unter CLI > adminaccessconfig for appliance administration login
nicht zulässt, dass Skripts SCP ausführen. In diesem Fall muss die Willkommensnachricht entfernt werden, während es kein Problem mit der Bannernachricht gibt.
Zugehörige Informationen