المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

تصدير جدول الأسماء المستعارة واستيراده

تصدير جدول الاسم المستعار باستخدام نص أساسي

الشرح

1.- تكوين مفاتيح SSH والمسارات

2.- الاتصال بالوكيل وإعداد نفق SSH

3.- توقف لمدة 5 ثوان قبل المتابعة

4.- تصدير ملف aliasconfig من النظام البعيد

5.- تنزيل الملف إلى الدليل المحلي

إنهاء البرنامج النصي

مفاتيح SSH

التحقق من الملف المصدر

إدراج جدول الاسم المستعار باستخدام برنامج نصي أساسي

الشرح

1.- تكوين مسار ومفتاح SSH

2- الحصول على التاريخ والوقت الحاليين

3.- تحميل ملف Aliasconfig الجديد إلى خادم ESA البعيد

4.- إستيراد ملف Aliasconfig الجديد والالتزام بتعليق

5.- طباعة Aliasconfig الحالي وحفظه في ملف محلي جديد

التحقق من التغييرات

التحقق من إدخالات جدول Aliasconfig الجديدة

التحقق من تنفيذ التغييرات

مرونة البرنامج النصي

الأفكار النهائية

روابط مرجعية

المقدمة

يصف هذا المستند الخطوات اللازمة لأتمتة مهام تكوين الاسم المستعار للاستيراد والتصدير داخل جهاز أمان البريد الإلكتروني.

المتطلبات الأساسية

المتطلبات

توصي Cisco بمعرفة الموضوعات التالية:

- Cisco Secure Email Gateway (SEG / ESA) AsyncOS 16.0.2

- وصول واجهة سطر الأوامر إلى جهاز السحابة

- Linux CLI

- برمجة Shell

المكونات المستخدمة

أسست المعلومة في هذا وثيقة على هذا برمجية:

- أجهزة أمان البريد الإلكتروني للسحابة (CESA)

- باش

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

والهدف هو أتمتة مهام معينة، ولكن بعض العمليات تتطلب عادة تدخلا يدويا. ومع ذلك، في حالة إستيراد تكوين الاسم المستعار الحالي وتصديره، يمكن تشغيل هذه المهام تلقائيا بالكامل، مما يقلل من الحاجة إلى الإدخال اليدوي.

تصدير جدول الأسماء المستعارة واستيراده

لاستيراد جدول اسم مستعار، ابدأ بالتحقق من صحة SSH والوصول إلى SCP لضمان إمكانية الاتصال ببوابة البريد الإلكتروني.

قبل المتابعة، يجب أن يكون جدول الاسم المستعار موجودا داخل الجهاز:

(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)>

عند إستخدام الأمر الفرعي export من الأمر aliasconfig لإجراء نسخ إحتياطي لأي جدول اسم مستعار موجود، يتم إنشاء ملف (باسم تقوم بتحديده) وحفظه في دليل /configuration للمصغي.

تصدير جدول الاسم المستعار باستخدام نص أساسي

في هذه الحالة، يربط نص تنفيذي أساسي مع جهاز CES ويمضي مع تصدير ملف الاسم المستعار

يبنى النص الأساسي كما هو موضح:

#!/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

الشرح

1.- تكوين مفاتيح SSH والمسارات

- Proxy_Key و second_Key: المسار الكامل لملف مفتاح SSH الخاص المستخدم للمصادقة. يتم تعيين كلا المفتاحين على نفس المسار في هذه الحالة.

- مثال: /full/path/folder/.ssh/id_rsa

- منفذ محلي: يحدد المنفذ المحلي (2200) لنفق SSH.

- Proxy_user: اسم المستخدم المستخدم المستخدم للاتصال بالخادم الوكيل.

- proxy_host: اسم المضيف للخادم الوكيل.

- target_host: اسم المجال المؤهل بالكامل (FQDN) للمضيف الهدف، تم تحديثه إلى esa1.xyz.iphmx.com.

- Remote_user: اسم المستخدم المستخدم المستخدم المستخدم للاتصال بالجهاز البعيد عبر نفق SSH.

- Remote_FILE: المسار الموجود على النظام البعيد حيث يتم تخزين الملف المصدر (/configuration/filename.csv).

- المحلي_dir: تم تعيين الدليل المحلي لحفظ الملف إلى /full/path/folder/Downloads.

- LOCAL_FILE_PATH: تم تحديث المسار المحلي الكامل للملف الذي تم تنزيله إلى ${LOCAL_DIR}/aliasconfig-file.csv.

2.- الاتصال بالوكيل وإعداد نفق SSH

echo "Establishing connection to the proxy..."

ssh -i "$PROXY_KEY" -l "$PROXY_USER" -N -f "$PROXY_HOST" -L "$LOCAL_PORT:${TARGET_HOST}:22"

- القصد:

- إعداد نفق SSH إلى الخادم الوكيل لتأمين الاتصال بالمضيف الهدف.

- تحديثات:

- يوجد مفتاح SSH الخاص الآن في /full/path/folder/.ssh/id_rsa.

- تم تحديث اسم المضيف الهدف إلى esa1.xyz.iphmx.com.

- حدث خطأ أثناء معالجة:

- في حالة فشل الاتصال، يتم عرض رسالة خطأ، ويخرج البرنامج النصي برمز خطأ (الخروج 1).

3.- توقف لمدة 5 ثوان قبل المتابعة

- القصد:

- يقدم تأخيرا لضمان إنشاء نفق SSH بشكل كامل قبل الانتقال إلى الخطوة التالية.

4.- تصدير ملف aliasconfig من النظام البعيد

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

- القصد:

- يتصل بالمضيف الهدف من خلال نفق SSH ويصدر تكوين الاسم المستعار إلى ملف باسم aliasconfig-file.csv.

- تحديثات:

- تم تحديث اسم الملف المصدر إلى aliasconfig-file.csv.

- إعادة توجيه الإخراج:

- 2>/dev/null يقمع أي رسائل خطأ من الأمر SSH.

- معالجة الخطأ:

- في حالة فشل التصدير، يتم عرض رسالة خطأ، ويتم إنهاء البرنامج النصي.

5.- تنزيل الملف إلى الدليل المحلي

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

- القصد:

- يستخدم بروتوكول SCP لنسخ الملف المصدر بشكل آمن من النظام البعيد إلى الدليل المحلي.

- تحديثات:

- يتم حفظ الملف المحلي ك aliasconfig-file.csv في دليل /full/path/folder/Downloads.

- معالجة الخطأ:

- في حالة فشل تنزيل الملف، يتم عرض رسالة خطأ، ويتم إنهاء البرنامج النصي.

إنهاء البرنامج النصي

echo "Process completed successfully."

exit 0

- القصد:

- ينتج رسالة نجاح ويخرج النص البرمجي برمز نجاح (المخرج 0)، مما يشير إلى أن جميع العمليات تمت بنجاح.

مفاتيح SSH

يمكنك ملاحظة متغيرين PROXY_KEY و HOST_KEY في البرنامج النصي. يمكن أن تكون هذه المفاتيح واحدة أو مختلفة.

يتم إستخدام PROXY_KEY للاتصال بسحابة الوكيل التي تعتبر إلزامية للانتقال إلى خوادم CESA لديك.

HOST_KEY هو المفتاح المستخدم لتسجيل الدخول كمستخدم محلي، مما يقلل من الحاجة إلى كلمة مرور.

ملاحظة: لتكوين وصول SSH إلى وكيل CES وإعداد مفتاح SSH لمستخدم محلي على الجهاز، الرجاء مراجعة دليل التكوين.

التحقق من الملف المصدر

بمجرد تنفيذ البرنامج النصي للتصدير، يمكنك التحقق من محتواه ويمكنك ملاحظة أنه يحتوي على نفس المعلومات الموجودة في الأصل المقدم ضمن أمر واجهة سطر الأوامر (CLI) للجهاز Appliance aliasconfig.

$ 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⏎

إدراج جدول الاسم المستعار باستخدام برنامج نصي أساسي

بمجرد أن تقوم بتصدير ملف الاسم المستعار الحالي، يمكنك تعديله، وإضافة الإدخالات الضرورية ثم إستيراده إلى تكوين ESA ALIA.

تم هيكلة البرنامج النصي للإدراج الأساسي كما هو موضح:

#!/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

الشرح

1.- تكوين مسار ومفتاح SSH

- SSH_KEY: مسار ملف مفتاح SSH الخاص، يستخدم للمصادقة بشكل آمن مقابل الخادم البعيد.

- منفذ محلي: المنفذ المحلي المخصص لنفق SSH.

- Remote_user: حساب المستخدم للمصادقة على الخادم البعيد.

- محلي_file: المسار المحلي إلى ملف Aliasconfig CSV الذي سيتم إستيراده.

- output_dir: المجلد المحلي حيث يتم حفظ نسخة من التكوين الحالي بعد عملية الاستيراد.

2.- الحصول على التاريخ والوقت الحاليين

CURRENT_DATE=$(date +"%Y-%m-%d_%H-%M-%S")

- القصد:

- تخزين التاريخ والوقت الحاليين بتنسيق محدد للاستخدام في أسماء الملفات والتعليقات.

- تحديثات:

- إتاحة سهولة تتبع السجلات والنسخ الاحتياطية وتنظيمها حسب الطابع الزمني.

3.- تحميل ملف Aliasconfig الجديد إلى خادم ESA البعيد

هذا هو المحتوى الجديد لملف 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⏎

استمر في الإرشادات لتحميل الملف:

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."

- القصد:

- نقل ملف Aliasconfig CSV من الجهاز المحلي إلى دليل /configuration على الخادم البعيد باستخدام SCP عبر SSH.

- تحديثات:

- إذا فشل التحميل، يعرض البرنامج النصي خطأ ويتوقف لمنع الواردات غير المكتملة.

4.- إستيراد ملف Aliasconfig الجديد والالتزام بتعليق

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'."

- القصد:

- الاتصال عبر SSH، واستيراد ملف CSV الذي تم تحميله إلى تكوين الاسم المستعار، وتنفيذ التغييرات باستخدام تعليق مختوم بختم الوقت للتعقب.

- تحديثات:

- في حالة فشل الاستيراد أو الالتزام، يتم عرض رسالة خطأ ويخرج البرنامج النصي للحفاظ على تناسق التكوين.

5.- طباعة Aliasconfig الحالي وحفظه في ملف محلي جديد

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"

- · الغرض:

- الاتصال عبر بروتوكول SSH، وطباعة تكوين الاسم المستعار الحالي، وحفظ الإخراج في ملف محلي مختوم بالوقت للنسخ الاحتياطي والتدقيق.

- تحديثات:

- في حالة فشل العملية، يعرض البرنامج النصي خطأ ويتوقف لتجنب إعطاء نتائج غير مكتملة.

التحقق من التغييرات

بمجرد تنفيذ البرنامج النصي، يمكنك التحقق من التغييرات في جدول تكوين الاسم المستعار والتحقق من الالتزامات الموجودة في سجلات النظام.

التحقق من إدخالات جدول Aliasconfig الجديدة

تم تطبيق تغييرات جديدة على الجدول.

(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

التحقق من تنفيذ التغييرات

يتيح لك هذا الأمر تعقب التغييرات التي تم الالتزام بها ل ESA ومراجعتها، بما في ذلك المستخدم الذي أجرى التغيير وتاريخ حدوثه.

(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

مرونة البرنامج النصي

على الرغم من أن هذا البرنامج النصي مكتوب حاليا بلغة باش، إلا أنه من السهل تكييفه أو إعادة كتابته بلغات أخرى للكتابة أو للبرمجة - مثل Python أو PowerShell أو Perl - ليتوافق بشكل أفضل مع تفضيلات أو متطلبات المسؤولين والبيئات المختلفة. تضمن هذه المرونة إمكانية الحفاظ على المنطق الأساسي وسير العمل مع الاستفادة من اللغة أو الأدوات التي تتوافق بشكل وثيق مع متطلباتك التشغيلية.

الأفكار النهائية

يوفر هذا البرنامج النصي للاستيراد/التصدير حلا عمليا وفعالا لإدارة عمليات تهيئة الاسم المستعار الموجود على الجهاز مباشرة. من خلال أتمتة تحميل ملفات التكوين واستيرادها ونسخها إحتياطيا، يمكن للمسؤولين إدخال التغييرات بشكل آمن وموثوق به دون تدخل يدوي. لا يقوم البرنامج النصي بتبسيط العملية فحسب، لكنه يضمن أيضا إمكانية التتبع من خلال النسخ الاحتياطية التي تم ختمها بختم الوقت وتنفيذ التعليقات.

بالإضافة إلى ذلك، يساعد الحصول على مثل هذا البرنامج النصي على الحفاظ على التناسق والتوافق في بيئتك، خاصة عندما تكون هناك حاجة إلى إجراء تغييرات متعددة أو تحديثات كبيرة. توفر عمليات النسخ الاحتياطي المنتظمة للتكوين الحالي طبقة إضافية من الأمان، مما يتيح إمكانية إسترداد البيانات بسرعة أو التراجع عند الحاجة.

وعموما، يمكن هذا النهج الفرق من إدارة تحديثات التكوين بمزيد من الثقة والتحكم والكفاءة. لأي تعديلات مستقبلية، يمكن تكييف البرنامج النصي بسهولة للتعامل مع أنواع أخرى من ملفات التكوين أو أتمتة مهام الصيانة الإضافية حسب الحاجة.

روابط مرجعية

- الوصول إلى واجهة سطر الأوامر (CLI) لحل أمان البريد الإلكتروني للسحابة (CES)

- تعليمات واجهة سطر الأوامر (CLI): PuTTY [مستخدمو Windows/PC]

- كيفية تكوين مصادقة مفتاح SSH العام لتسجيل الدخول إلى ESA دون كلمة مرور