Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit les étapes pour automatiser les tâches d'importation et d'exportation de la configuration d'alias dans l'appliance de sécurité de la messagerie.
Cisco recommande de connaître les sujets suivants :
Les informations contenues dans ce document sont basées sur les logiciels suivants :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
L'objectif est d'automatiser certaines tâches, mais certains processus nécessitent généralement une intervention manuelle. Cependant, dans le cas de l'importation et de l'exportation de la configuration d'alias actuelle, ces tâches peuvent être entièrement automatisées, ce qui élimine le besoin de saisie manuelle.
Pour importer une table d'alias, commencez par vérifier l'accès SSH et SCP afin de vous assurer que vous pouvez vous connecter à la passerelle de messagerie.
Avant de continuer, une table d'alias doit exister au sein de l'appliance :
(Machine esa1.xyz.iphmx.com) (SERVICE)> clustermode cluster; aliasconfig print
test: test@example.com, test@example2.com, test@example3.com
test2: test@domain.com, test@domain2.com, test@domain3.com
(Cluster Hosted_Cluster) (SERVICE)>
Lorsque vous utilisez la sous-commande export de la commande aliasconfig pour sauvegarder une table d'alias existante, un fichier (portant un nom que vous spécifiez) est généré et enregistré dans le répertoire /configuration pour l'écouteur.
Dans ce cas, un script bash se connecte à votre appliance CES et procède à l'exportation du fichier d'alias
Le script bash est structuré comme suit :
#!/bin/bash
# Configuration of SSH keys and paths
PROXY_KEY="/full/path/folder/.ssh/id_rsa"
SECOND_KEY="/full/path/folder/.ssh/id_rsa"
LOCAL_PORT="2200"
PROXY_USER="dh-user"
PROXY_HOST="f4-ssh.iphmx.com"
TARGET_HOST="esa1.xyz.iphmx.com"
REMOTE_USER="local_server_user"
REMOTE_FILE="/configuration/filename.csv"
LOCAL_DIR="/full/path/folder/Downloads"
LOCAL_FILE_PATH="${LOCAL_DIR}/aliasconfig-file.csv"
# 1. Connect to the proxy and set up the SSH tunnel
echo "Establishing connection to the proxy..."
ssh -i "$PROXY_KEY" -l "$PROXY_USER" -N -f "$PROXY_HOST" -L "$LOCAL_PORT:${TARGET_HOST}:22"
if [ $? -ne 0 ]; then
echo "Error: Failed to establish connection to the proxy."
exit 1
fi
echo "Proxy connection established."
# Pause for 5 seconds before proceeding
sleep 5
# 2. Export the aliasconfig file from the remote system
echo "Exporting aliasconfig file from the remote system..."
ssh -i "$SECOND_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" 'clustermode cluster; aliasconfig export aliasconfig-file.csv' 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to export the aliasconfig file."
exit 1
fi
echo "Aliasconfig file successfully exported."
# Pause for 5 seconds before proceeding
sleep 5
# 3. Download the file to the local directory
echo "Downloading file to the local directory..."
scp -i "$SECOND_KEY" -P "$LOCAL_PORT" -O "$REMOTE_USER"@127.0.0.1:"$REMOTE_FILE" "$LOCAL_DIR" 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to download the file to the local directory."
exit 1
fi
echo "File successfully downloaded to: $LOCAL_FILE_PATH"
# Pause for 5 seconds before finalizing
sleep 5
# Finalizing the script
echo "Process completed successfully."
exit 0
echo "Establishing connection to the proxy..."
ssh -i "$PROXY_KEY" -l "$PROXY_USER" -N -f "$PROXY_HOST" -L "$LOCAL_PORT:${TARGET_HOST}:22"
echo "Exporting aliasconfig file from the remote system..."
ssh -i "$SECOND_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" 'clustermode cluster; aliasconfig export aliasconfig-file.csv' 2>/dev/null
echo "Downloading file to the local directory..."
scp -i "$SECOND_KEY" -P "$LOCAL_PORT" -O "$REMOTE_USER"@127.0.0.1:"$REMOTE_FILE" "$LOCAL_DIR" 2>/dev/null
echo "Process completed successfully."
exit 0
Vous pouvez noter dans le script deux variables PROXY_KEY et HOST_KEY. Ces clés peuvent être identiques ou différentes.
La CLÉ_PROXY est utilisée pour se connecter au cloud proxy qui est obligatoire pour accéder à vos serveurs CESA.
HOST_KEY est la clé utilisée pour se connecter en tant qu'utilisateur local, ce qui élimine le besoin d'un mot de passe.
Remarque : Pour configurer l'accès SSH au proxy CES et configurer une clé SSH pour un utilisateur local sur l'appliance, consultez le guide de configuration.
Une fois le script d'exportation exécuté, vous pouvez vérifier son contenu et vous pouvez constater qu'il contient les mêmes informations que l'original présenté dans la commande CLI aliasconfig de l'appliance.
$ pwd
/full/path/folder/Downloads
$ ls
filename.csv
$ cat filename.csv
# File exported by the CLI at 20250702T125347
test: test@example.com, test@example2.com, test@example3.com
test2: test@domain.com, test@domain2.com, test@domain3.com⏎
Une fois que vous avez exporté le fichier d'alias actuel, vous pouvez le modifier, ajouter les entrées nécessaires, puis l'importer dans la configuration ESA alia.
Le script d'importation bash est structuré comme suit :
#!/bin/bash
# Configuration of SSH keys and paths
SSH_KEY="/full/path/folder/.ssh/id_rsa"
LOCAL_PORT="2200"
REMOTE_USER="local_server_user"
LOCAL_FILE="/full/path/folder/Downloads/new-filename.csv"
OUTPUT_DIR="/full/path/folder/Downloads"
# Get the current local date in the desired format
CURRENT_DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# 1. Upload the new aliasconfig file
echo "Uploading new aliasconfig file to the remote system..."
scp -i "$SSH_KEY" -P "$LOCAL_PORT" -O "$LOCAL_FILE" "$REMOTE_USER"@127.0.0.1:/configuration 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to upload the aliasconfig file."
exit 1
fi
echo "Aliasconfig file successfully uploaded."
# Pause for 5 seconds before proceeding
sleep 5
# 2. Import the new aliasconfig file and commit with a comment
COMMIT_COMMENT="Importing new entries to aliasconfig - $CURRENT_DATE"
echo "Importing the new aliasconfig file and committing changes..."
ssh -i "$SSH_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" "clustermode cluster; aliasconfig import new-filename.csv; commit \"$COMMIT_COMMENT\"" 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to import the aliasconfig file or commit changes."
exit 1
fi
echo "Aliasconfig file successfully imported and committed with comment: '$COMMIT_COMMENT'."
# Pause for 5 seconds before proceeding
sleep 5
# 3. Print the current aliasconfig and save it to a new file
OUTPUT_FILE="${OUTPUT_DIR}/current-aliasconfig-${CURRENT_DATE}.txt"
echo "Printing current aliasconfig and saving it to: $OUTPUT_FILE..."
ssh -i "$SSH_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" 'clustermode cluster; aliasconfig print' > "$OUTPUT_FILE" 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to print the current aliasconfig."
exit 1
fi
echo "Current aliasconfig successfully saved to: $OUTPUT_FILE"
# Finalizing the script
echo "Process completed successfully."
exit 0
CURRENT_DATE=$(date +"%Y-%m-%d_%H-%M-%S")
Voici le nouveau contenu du fichier aliasconfig :
# File exported by the CLI at 20250709T112719
test: new-data@example.com, new-date@example2.com, new-date@example3.com
test2: new-date@domain.com, new-data@domain2.com, new-data@domain3.com⏎
Suivez les instructions pour télécharger le fichier :
echo "Uploading new aliasconfig file to the remote system..."
scp -i "$SSH_KEY" -P "$LOCAL_PORT" -O "$LOCAL_FILE" "$REMOTE_USER"@127.0.0.1:/configuration 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to upload the aliasconfig file."
exit 1
fi
echo "Aliasconfig file successfully uploaded."
COMMIT_COMMENT="Importing new entries to aliasconfig - $CURRENT_DATE"
echo "Importing the new aliasconfig file and committing changes..."
ssh -i "$SSH_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" "clustermode cluster; aliasconfig import new-filename.csv; commit \"$COMMIT_COMMENT\"" 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to import the aliasconfig file or commit changes."
exit 1
fi
echo "Aliasconfig file successfully imported and committed with comment: '$COMMIT_COMMENT'."
OUTPUT_FILE="${OUTPUT_DIR}/current-aliasconfig-${CURRENT_DATE}.txt"
echo "Printing current aliasconfig and saving it to: $OUTPUT_FILE..."
ssh -i "$SSH_KEY" "$REMOTE_USER"@127.0.0.1 -p "$LOCAL_PORT" 'clustermode cluster; aliasconfig print' > "$OUTPUT_FILE" 2>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to print the current aliasconfig."
exit 1
fi
echo "Current aliasconfig successfully saved to: $OUTPUT_FILE"
Une fois le script exécuté, vous pouvez vérifier les modifications dans la table de configuration des alias et vérifier les validations dans les journaux système.
De nouvelles modifications ont été appliquées à la table.
(Machine esa1.xyz.iphmx.com) (SERVICE)> clustermode cluster; aliasconfig print
test: new-data@example.com, new-data@example2.com, new-data@example3.com
test2: new-data@domain.com, new-data@domain2.com, new-data@domain3.com
Cette commande vous permet de suivre et d'examiner les modifications validées pour l'ESA, y compris l'utilisateur qui a effectué la modification et la date à laquelle elle s'est produite.
(Machine esa1.xyz-66.iphmx.com) (SERVICE)> grep "commit" system_logs
Wed Jul 9 11:29:42 2025 Info: PID 95790: User local_server_user commit changes: Importing new entries to aliasconfig - 2025-07-09_11-29-15
Bien que ce script soit actuellement écrit en bash, il peut être facilement adapté ou réécrit dans d'autres langages de script ou de programmation, tels que Python, PowerShell ou Perl, pour mieux s'aligner avec les préférences ou les exigences de différents administrateurs et environnements. Cette flexibilité permet de conserver la logique et le workflow de base tout en exploitant le langage ou les outils les plus adaptés à vos besoins opérationnels.
Ce script d'importation/exportation offre une solution pratique et efficace pour gérer les configurations d'alias directement sur l'appliance. En automatisant le téléchargement, l'importation et la sauvegarde des fichiers de configuration, les administrateurs peuvent introduire des modifications en toute sécurité et fiabilité, sans intervention manuelle. Non seulement le script rationalise le processus, mais il assure également la traçabilité grâce à des sauvegardes horodatées et des commentaires de validation.
En outre, un tel script permet de maintenir la cohérence et la conformité dans votre environnement, en particulier lorsque plusieurs modifications ou mises à jour en masse sont nécessaires. Les sauvegardes régulières de la configuration actuelle offrent une couche de sécurité supplémentaire, permettant une récupération ou une restauration rapide si nécessaire.
Dans l'ensemble, cette approche permet aux équipes de gérer les mises à jour de configuration avec plus de confiance, de contrôle et d'efficacité. Pour tout ajustement futur, le script peut être facilement adapté pour gérer d'autres types de fichiers de configuration ou pour automatiser davantage les tâches de maintenance supplémentaires, le cas échéant.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
14-Jul-2025
|
Première publication |