كيفية مزامنة الملفات/المجلدات باستخدام Rsync مع منفذ SSH غير القياسي

اليوم، سنناقش كيفية مزامنة الملفات باستخدام rsync مع منفذ SSH غير القياسي. قد تتساءل لماذا نحتاج إلى استخدام منفذ SSH غير القياسي؟ هو بسبب أسباب أمنية. الجميع يعرف أن 22 هو المنفذ الافتراضي لبروتوكول SSH.

Rsync Files Over SSH Non-standard Port

لذلك، من الضروري تغيير رقم منفذ SSH الافتراضي إلى شيء مختلف يصعب تخمينه. في مثل هذه الحالات، كيف ستقوم بمزامنة ملفاتك/مجلداتك مع الخادم البعيد؟ لا داعي للقلق، إنه ليس صعبًا. هنا سنرى كيفية مزامنة الملفات والمجلدات باستخدام rsync مع منفذ SSH غير القياسي.

كما قد تعلم، rsync، المعروف أيضًا باسم Remote Sync، هو أداة سريعة ومتعددة الاستخدامات وقوية يمكن استخدامها لنسخ ومزامنة الملفات/المجلدات من محلي إلى محلي، أو من محلي إلى مضيف بعيد. لمزيد من التفاصيل حول rsync، تحقق من صفحات الدليل:

# man rsync

أو راجع دليلنا السابق من الرابط أدناه.

  1. Rsync: 10 أمثلة عملية لأمر Rsync في نظام Linux

تغيير منفذ SSH إلى منفذ غير قياسي

كما نعلم جميعًا، يستخدم rsync افتراضيًا منفذ SSH 22 لمزامنة الملفات بين المضيفين المحليين والبعيدين والعكس. يجب علينا تغيير منفذ SSH للخادم البعيد لتعزيز الأمان.

للقيام بذلك، افتح وعدل ملف تكوين SSH /etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config 

ابحث عن السطر التالي. قم بإلغاء تعليقه وقم بتغيير رقم المنفذ الذي تختاره. أوصيك باختيار رقم يصعب تخمينه.

تحقق من هذه المقالة حول netstat لمعرفة الخدمات التي تعمل على منافذ TCP/UDP.

على سبيل المثال، هنا أستخدم رقم المنفذ 1431.

[...]
Port 1431
[...]

احفظ وأغلق الملف.

في أنظمة RPM مثل RHEL، CentOS، وScientific Linux 7، تحتاج إلى السماح بالمنفذ الجديد من خلال جدار الحماية أو الموجه.

# firewall-cmd --add-port 1431/tcp
# firewall-cmd --add-port 1431/tcp --permanent

على RHEL/CentOS/Scientific Linux 6 وما بعدها، يجب أيضًا تحديث أذونات selinux للسماح بالمنفذ.

# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT
# semanage port -a -t ssh_port_t -p tcp 1431

أعد تشغيل خدمة SSH لتطبيق التغييرات.

# systemctl restart sshd        [On SystemD]
OR
# service sshd restart          [On SysVinit]

الآن دعنا نرى كيفية مزامنة الملفات باستخدام rsync مع منفذ غير قياسي.

كيفية المزامنة باستخدام منفذ SSH غير القياسي

قم بتشغيل الأمر التالي من الطرفية لمزامنة الملفات/المجلدات باستخدام rsync مع منفذ ssh غير قياسي.

الصيغة:
# rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder

لأغراض هذا البرنامج التعليمي، سأستخدم نظامين.

تفاصيل النظام البعيد:

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1

تفاصيل النظام المحلي:

Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

دعنا نزامن محتويات مجلد /backup1 على الخادم البعيد مع مجلد النظام المحلي /home/sk/backup2/.

$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email protected]:/backup1 /home/sk/backup2
نتيجة عينة
[email protected]'s password: 
receiving incremental file list
backup1/
backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
        752,876 100%   13.30MB/s    0:00:00 (xfr#1, to-chk=2/4)
backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
      9,676,510 100%   12.50MB/s    0:00:00 (xfr#2, to-chk=1/4)
backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
     56,563,302 100%   11.26MB/s    0:00:04 (xfr#3, to-chk=0/4)

sent 85 bytes  received 66,979,455 bytes  7,050,477.89 bytes/sec
total size is 66,992,688  speedup is 1.00.

دعنا نتحقق من محتويات مجلد /backup1/ على الخادم البعيد.

$ sudo ls -l /backup1/
نتيجة عينة
total 65428
-rw-r--r-- 1 root root  9676510 Dec  9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
-rw-r--r-- 1 root root   752876 Dec  9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
-rw-r--r-- 1 root root 56563302 Dec  9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

الآن، دعنا نتحقق من محتويات مجلد /backup2/ على النظام المحلي.

$ ls /home/sk/backup2/
backup1

كما ترون في الناتج أعلاه، تم نسخ محتويات /backup1/ بنجاح إلى دليل /home/sk/backup2/ على نظامي المحلي.

تحقق من محتويات مجلد /backup1/:

$ ls /home/sk/backup2/backup1/
ناتج عينة
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb            
linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

انظر، لديهما المجلدان على النظام البعيد والنظام المحلي نفس الملفات.

الاستنتاج

مزامنة الملفات/المجلدات باستخدام Rsync مع SSH ليست سهلة فقط، بل هي أيضًا طريقة سريعة وآمنة. إذا كنت وراء جدار ناري يقيد منفذ 22، لا تقلق. ما عليك سوى تغيير المنفذ الافتراضي ومزامنة الملفات كمحترف.

Source:
https://www.tecmint.com/sync-files-using-rsync-with-non-standard-ssh-port/