כיצד לסנכרן קבצים/תיקיות באמצעות 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 Exemples Pratiques de Commande Rsync sous 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/