כמנהל מערכת תצטרך להתחבר למערכות מרוחקות לביצוע מגוון משימות מנהליות באמצעות מונח הטרמינל. ברוב המקרים לא תשבו מול מסך טרמינל (פיזי), ולכן עליכם להגדיר אופציה להתחברות מרחוק למכונות שתתבקשו לנהל.
בעצם, ככה אמורה להיות הפעולה האחרונה שתבצעו מול מסך פיזי. מסיבות אבטחה, שימוש ב־Telnet למטרה זו אינו רעיון טוב, מאחר שכל התעבורה עוברת דרך הכבלים בטקסט פשוט לא מוצפן.
בנוסף, במאמר זה נבחן כיצד להגדיר שירותי רשת כך שיתחילו אוטומטית בעת האתחול ונלמד כיצד להגדיר פתרון שמות רשת ומארחים באופן סטטי או דינמי.

התקנת ואבטחת תקשורת SSH
כדי שתוכלו להתחבר מרחוק לתיבת RHEL 7 באמצעות SSH, עליכם להתקין את החבילות openssh, openssh-clients ו־openssh-servers. הפקודה הבאה לא רק תתקין את תוכנית הכניסה המרחוק, אלא גם את כלי ההעברת קבצים המאובטח, כמו כן כלי ההעתקה המרחקת:
# yum update && yum install openssh openssh-clients openssh-servers
שימו לב שכדאי להתקין את הגרסאות השרתיות מאחר וייתכן שתרצו להשתמש באותה המכונה גם כלקוח וגם כשרת ברגע מסוים.
לאחר ההתקנה, ישנם כמה דברים בסיסיים שעליכם לקחת בחשבון אם ברצונכם לאבטח את הגישה מרחוק לשרת SSH שלכם. הגדרות הבאות צריכות להיות נוכחות בקובץ /etc/ssh/sshd_config
.
1. שנה את הפורט בו השירות של sshd יאזין מ-22 (הערך המוגדר כברירת מחדל) לפורט גבוה (2000 או יותר), אך קודם כל ודא שהפורט שנבחר לא בשימוש.
לדוגמה, נניח שבחרת בפורט 2500. השתמש ב־netstat כדי לבדוק האם הפורט שנבחר בשימוש או לא:
# netstat -npltu | grep 2500
אם netstat אינו מחזיר כלום, תוכל להשתמש בבטחה בפורט 2500 ל-sshd, ועליך לשנות את ההגדרה של הפורט בקובץ התצורה כדלקמן:
Port 2500
2. אפשר רק ל-פרוטוקול 2:
Protocol 2
3. הגדר את זמן הפסקת האימות ל־2 דקות, אל תאפשר כניסת root, והגבל במינימום את רשימת המשתמשים שמורשים להתחברות דרך ssh:
LoginGraceTime 2m PermitRootLogin no AllowUsers gacanepa
4. באפשרותך, השתמש באימות מבוסס מפתחות במקום אימות באמצעות סיסמה:
PasswordAuthentication no RSAAuthentication yes PubkeyAuthentication yes
נניח שכבר יצרת זוג מפתחות עם שם המשתמש שלך במכונת הלקוח שלך והעתקת אותו לשרת כפי שמוסבר כאן.
הגדרת רשת ופיתרון שמות
1. כל מנהל מערכות צריך להיות מוכר היטב עם קבצי התצורה המערכתיים הבאים:
- /etc/hosts משמש לפתירת שמות <—> כתובות IP ברשתות קטנות.
כל שורה בקובץ /etc/hosts
מכילה את המבנה הבא:
IP address - Hostname - FQDN
לדוגמה,
192.168.0.10 laptop laptop.gabrielcanepa.com.ar
2. /etc/resolv.conf
מציין את כתובות ה-IP של שרתי DNS ואת התחום לחיפוש, שמשמש להשלמת שם שאילתה נתון לשם דומיין מובא במלואו כאשר לא סופק סיומת דומיין.
בתנאים רגילים, אין צורך לערוך קובץ זה מאחר שהוא ניהול על ידי המערכת. עם זאת, אם ברצונך לשנות שרתי DNS, יש להקפיד על המבנה הבא בכל שורה:
nameserver - IP address
לדוגמה,
nameserver 8.8.8.8
3. 3. /etc/host.conf
מציין את השיטות והסדר שבו שמות מארחים מפורטים ברשת. כלומר, מספר למפתח השמות אילו שירותים להשתמש בהם, ובאיזה סדר.
אף על פי שקובץ זה מכיל מספר אפשרויות, ההגדרה הנפוצה והבסיסית כוללת שורה כזו:
order bind,hosts
שמציינת כי המפתח צריך לחפש תחילה בשרתי השמות שצוינו ב-resolv.conf
ואז בקובץ /etc/hosts
לפתירת שמות.
4. /etc/sysconfig/network
מכיל מידע על ניתוב ומארח גלובלי עבור כל ממשקי הרשת. ניתן להשתמש בערכים הבאים:
NETWORKING=yes|no HOSTNAME=value
כאשר הערך צריך להיות שם דומיין מובא במלואו (FQDN).
GATEWAY=XXX.XXX.XXX.XXX
כאשר XXX.XXX.XXX.XXX הוא כתובת ה-IP של שער הרשת.
GATEWAYDEV=value
במכשיר עם מספר כרטיסי רשת, ערך הוא המכשיר שער, כמו enp0s3.
5. קבצים בתוך /etc/sysconfig/network-scripts
(קבצי הגדרת מתאמי רשת).
בתוך התיקייה שצוינה למעלה, תמצא מספר קבצי טקסט פשוטים בשם.
ifcfg-name
שבו השם הוא שם ה-NIC כפי שמוחזר על ידי ip link show:

לדוגמה:

מלבד כרטיס הרשת loopback, תוכל לצפות בהגדרה דומה ל-NIC שלך. שים לב שקיימים משתנים שיכולים לדרוס את אלו הנמצאים ב־/etc/sysconfig/network
עבור ממשק זה בפרט. כל שורה מפורטת להבהרה במאמר זה אך בקובץ האמיתי עליך להימנע מהערות:
HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC TYPE=Ethernet # Type of connection BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case. IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file. NAME=enp0s3 UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb ONBOOT=yes # The operating system should bring up this NIC during boot
הגדרת שמות מארח
ב־Red Hat Enterprise Linux 7, הפקודה hostnamectl משמשת לשאילתה והגדרה של שם המארח של המערכת.
כדי להציג את שם המארח הנוכחי, הקלד:
# hostnamectl status

כדי לשנות את שם המארח, השתמש ב:
# hostnamectl set-hostname [new hostname]
לדוגמה,
# hostnamectl set-hostname cinderella
על מנת שהשינויים ייכנסו לתוקף עליך לאתחל את השירות hostnamed (בצורה זו לא תצטרך להתנתק ולהתחבר מחדש כדי להחיל את השינוי):
# systemctl restart systemd-hostnamed

בנוסף, RHEL 7 כוללת גם את הכלי nmcli שניתן להשתמש בו למטרה זו. כדי להציג את שם המארח, הריץ:
# nmcli general hostname
וכדי לשנות אותו:
# nmcli general hostname [new hostname]
לדוגמה,
# nmcli general hostname rhel7

הפעלת שירותי רשת בהתמצאות קצת
לסיים, בואו נראה איך אפשר לוודא ששירותי הרשת מופעלים אוטומטית בעת ההפעלה. במונחים פשוטים, זה נעשה על ידי יצירת סימלינקים לקבצים מסוימים שצויינו בסעיף [התקן] של קבצי התצורה של השירות.
במקרה של firewalld (/usr/lib/systemd/system/firewalld.service):
[Install] WantedBy=basic.target Alias=dbus-org.fedoraproject.FirewallD1.service
כדי להפעיל את השירות:
# systemctl enable firewalld
מצד שני, ניטור firewalld מחייב הסרת הסימלינקים:
# systemctl disable firewalld

מסקנה
במאמר זה סיכמנו איך להתקין ולאבטח חיבורים דרך SSH לשרת RHEL, איך לשנות את שמו, ולבסוף איך לוודא ששירותי הרשת מופעלים בעת ההפעלה. אם אתה מזהה ששירות מסוים נכשל להתחיל באופן תקין, תוכל להשתמש ב־systemctl status -l [service] וב־journalctl -xn כדי לאבחן אותו.
אל תהסס לספר לנו מה אתה חושב על המאמר באמצעות טופס התגובה למטה. שאלות גם מתקבלות בברכה. אנחנו מצפים לשמוע ממך!
Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/