הקדמה
כאשר אתה יוצר שרת Rocky Linux 8 חדש, ישנם כמה שלבי הגדרה שצריך לבצע מוקדם כחלק מההגדרה הבסיסית. פעולות אלו יעזרו לך להגביר את האבטחה ואת השימושיות של השרת שלך ויציבו יסוד טוב לפעולות עתידיות.
שלב 1 — התחברות כמשתמש Root
כדי להתחבר לשרת שלך, תצטרך לדעת את כתובת ה-IP הציבורית של השרת שלך. תצטרך גם את הסיסמה או, אם התקנת מפתח SSH לאימות, את המפתח הפרטי לחשבון המשתמש root. אם עדיין לא התחברת לשרת שלך, ייתכן ותרצה לעקוב אחר התיעוד שלנו על איך להתחבר ל-Droplet שלך באמצעות SSH, שמכסה את התהליך הזה בפרט.
אם עדיין לא מחובר לשרת שלך, התחבר כמשתמש root כעת באמצעות הפקודה הבאה (החלף את החלק המודגש בכתובת ה-IP הציבורית של השרת שלך):
קבל את אזהרת האמינות של המארח אם היא מופיעה. אם אתה משתמש באימות סיסמה, ספק את הסיסמה שלך ב־root כדי להתחבר. אם אתה משתמש במפתח SSH המוגן בסיסמת מפתח, עשויים להתבקש להזין את הסיסמא בפעם הראשונה שבה אתה משתמש במפתח בכל הסשן. אם זה הפעם הראשונה שלך שבה אתה נכנס לשרת עם סיסמה, עשויים גם להתבקש לשנות את סיסמת ה־root.
אודות Root
משתמש ה־root הוא משתמש המנהלי בסביבת Linux, ויש לו הרשאות מאוד רחבות. בשל ההרשאות המוגברות של החשבון של ה־root, מומלץ לא להשתמש בו באופן קבוע. הסיבה לכך היא שחלק מהכוח הקיים בחשבון ה־root הוא היכולת לבצע שינויים מסוכנים מאוד, אף בטעות.
לכן, השלב הבא הוא להגדיר חשבון משתמש אלטרנטיבי עם תחום השפעה מופחת לעבודה היומיומית. החשבון הזה עדיין יוכל לקבל הרשאות מורחבות כאשר זה נדרש.
שלב 2 — יצירת משתמש חדש
פעם שאתה מחובר כ־root, אתה יכולול ליצור את חשבון המשתמש החדש שנשתמש בו מעכשיו והלאה.
הדוגמה הזו יוצרת משתמש חדש בשם sammy, אך עליך להחליף אותו בשם משתמש שאתה מעדיף:
לאחר מכן, קבע סיסמה חזקה עבור המשתמש sammy
:
יתבקש ממך להקליד את הסיסמה פעמיים. לאחר עשיית זאת, המשתמש שלך יהיה מוכן לשימוש, אך תחילה נעניק למשתמש הזה הרשאות נוספות להשתמש בפקודת sudo
. זה יאפשר לנו להריץ פקודות כמו root כאשר נדרש.
שלב 3 — הענקת הרשאות מנהל
כעת, יש לנו חשבון משתמש חדש עם הרשאות רגילות. אך לעתים קרובות נצטרך לבצע משימות מנהליות.
כדי למנוע מאיתנו להתנתק מחשב המשתמש הרגיל שלנו ולהתחבר מחדש כמשתמש root, אנו יכולים להגדיר מה שנקרא "משתמש מתקדם" או root עבור החשבון הרגיל שלנו. זה יאפשר למשתמש הרגיל שלנו להריץ פקודות עם הרשאות מנהל על ידי שימוש במילה sudo
לפני כל פקודה.
כדי להוסיף את ההרשאות האלה למשתמש החדש שלנו, עלינו להוסיף את המשתמש החדש לקבוצת wheel. כברירת מחדל, ב- Rocky Linux 8, משתמשים שנמצאים בקבוצת wheel רשאים להשתמש בפקודת sudo
.
כroot, הרץ את הפקודה הזו כדי להוסיף את המשתמש החדש שלך לקבוצת wheel (החלף את המילה שהודגשה בשם המשתמש החדש שלך):
עכשיו, כאשר אתה מחובר כמשתמש רגיל, תוכל להקליד sudo
לפני פקודות כדי לבצע פעולות עם הרשאות של מנהל המערכת.
שלב 4 — הגדרת מגן אש בסיסי
מגני האש מספקים רמת בטיחות בסיסית עבור השרת שלך. אלה היישומים אחראים לדחית תעבורה אל כל פורט בשרת שלך, למעט אלה הפורטים/השירותים שאישרת באופן ספציפי. ב- Rocky Linux יש שירות בשם firewalld
שמבצע את הפונקציה הזו. כלי בשם firewall-cmd
משמש להגדרת מדיניות המגן אש של firewalld
.
הערה: אם השרתים שלך פועלים על DigitalOcean, באפשרותך להשתמש אופציונלית ב־DigitalOcean Cloud Firewalls במקום firewalld
. אנו ממליצים להשתמש רק במגן אש אחד בכל פעם כדי למנוע כללים סותרים שעשויים להיות קשים לאיתור.
התקן תחילה את firewalld
:
הגדרת ברירת המחדל של firewalld
מאפשרת חיבורי ssh
, כך שניתן להפעיל את המגן אש מיד:
בדוק את מצב השירות כדי לוודא שההתחיל:
Output● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago
Docs: man:firewalld(1)
Main PID: 13180 (firewalld)
Tasks: 2 (limit: 5059)
Memory: 22.4M
CGroup: /system.slice/firewalld.service
└─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
שים לב שזה פעיל ומאופשר, מה שאומר שהוא יתחיל באופן ברירת המחדל אם השרת יאותחל מחדש.
עכשיו שהשירות פועל, אנו יכולים להשתמש בתוכנה firewall-cmd
כדי לקבל ולהגדיר מידע על מדיניות הגנה של הגדר.
ראשית בואו נצפה אילו שירותים כבר מורשים:
Outputpublic (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
כדי לראות אילו שירותים נוספים ניתן לאפשר לפי שם, הקלד:
כדי להוסיף שירות שצריך להיות מורשה, השתמש בדגל --add-service
:
זה יוסיף את השירות http
ויאפשר תעבורת TCP נכנסת ליציאה 80
. התצורה תתעדכן לאחר שתטען מחדש את הגדר הגנה:
זכור שתצטרך לפתוח את הגדר ההגנה (עם שירותים או יציאות) מול כל השירותים הנוספים שאולי תגדיר מאוחר יותר.
שלב 5 — אפשר גישה חיצונית למשתמש הרגיל שלך
עכשיו שיש לנו משתמש רגיל לשימוש יומיומי, אנו צריכים לוודא שאנו יכולים להשתמש בו כדי להתחבר ב־SSH אל השרת שלנו.
הערה: עד לאימות שניתן להיכנס ולהשתמש ב־sudo
עם המשתמש החדש שלך, אנו ממליצים להישאר מחוברים כמו root. בכך, אם יש לך בעיות, תוכל לאתר ולבצע שינויים נדרשים כ־root. אם אתה משתמש ב־DigitalOcean Droplet ויש לך בעיות עם החיבור SSH שלך כ־root, תוכל להיכנס ל־Droplet באמצעות הקונסולה של DigitalOcean.
התהליך להגדרת גישת SSH עבור המשתמש החדש שלך תלוי באם חשבון ה־root של השרת שלך משתמש בסיסמה או מפתחות SSH לאימות.
אם חשבון ה־Root משתמש באימות סיסמה
אם התחברת לחשבון ה־root שלך באמצעות סיסמה, אז אימות באמצעות סיסמה מופעל עבור SSH. תוכל להתחבר באמצעות SSH לחשבון המשתמש החדש שלך על ידי פתיחת סשן טרמינל חדש ושימוש ב־SSH עם שם המשתמש החדש שלך:
לאחר הכניסה של סיסמת המשתמש הרגיל שלך, תתחבר. זכור, אם תצטרך להריץ פקודה עם הרשאות מנהל, הקלד sudo
לפני כך כך:
תתבקש להזין את סיסמת המשתמש הרגיל שלך כאשר תשתמש ב־sudo
לפעם הראשונה בכל סשן (ומדי פעם לאחר מכן).
כדי לשפר את אבטחת השרת שלך, אנו ממליצים מאוד להגדיר מפתחות SSH במקום להשתמש באימות בסיסמה. עקוב אחר המדריך שלנו על הגדרת מפתחות SSH ב־Rocky Linux 8 כדי ללמוד איך להגדיר אימות מבוסס מפתחות.
אם חשבון ה־Root משתמש באימות באמצעות מפתחות SSH
אם התחברתם לחשבון ה־root באמצעות מפתחות SSH, אז אימות באמצעות סיסמה מושבת עבור SSH. תצטרכו להוסיף עותק של המפתח הציבורי שלכם לקובץ ~/.ssh/authorized_keys
של המשתמש החדש כדי להתחבר בהצלחה.
מכיוון שהמפתח הציבורי שלך כבר נמצא בקובץ ~/.ssh/authorized_keys
של חשבון ה־root על השרת, אנו יכולים להעתיק את הקובץ ואת מבנה התיקייה לחשבון המשתמש החדש שלנו.
הדרך הפשוטה ביותר להעתיק את הקבצים עם הרשאות ובעלי הקבצים הנכונים היא בעזרת הפקודה rsync
. פקודה זו תעתיק את תיקיית ה־root של המשתמש, תשמור על הרשאות הקבצים, ותשנה את בעלי הקבצים, הכל בפקודה אחת. ודאו לשנות את החלקים המודגשים של הפקודה להתאמה לשם המשתמש הרגיל שלכם:
הערה: פקודת rsync
מטפלת במקורות ויעדים שמסתיימים בסלאש נוסף בצורה שונה מאלה שאינם מסתיימים בסלאש נוסף. כאשר משתמשים ב־rsync
, ודאו שספריית המקור (~/.ssh
) אינה כוללת סלאש נוסף בסופה (וודאו שאינכם משתמשים ב־~/.ssh/
).
אם בטעות הוספתם סלאש נוסף לפקודה, rsync
יעתיק את תוכן ספריית ~/.ssh
של חשבון ה־רוט לתיקיית הבית של משתמש ה־sudo
, במקום להעתיק את כל מבנה ספריית ~/.ssh
. הקבצים יהיו במיקום שגוי וSSH לא תוכל למצוא ולהשתמש בהם.
כעת, חזרו לטרמינל חדש על המחשב המקומי שלכם ופתחו חלון SSH חדש עם משתמש שאינו רוט:
תיכנסו לחשבון המשתמש החדש בלי להשתמש בסיסמה. זכרו, אם תצטרכו להריץ פקודה עם הרשאות מנהל, תקלידו sudo
לפני זאת כך:
תתבקשו להזין את סיסמת המשתמש הרגיל שלכם כאשר תשתמשו ב־sudo
לראשונה בכל הפעלת טום (ומדי פעם לאחר מכן).
סיכום
בנקודה זו, יש לכם בסיס יציב לשרת שלכם. כעת תוכלו להתקין את כל התוכנות שתצטרכו על השרת שלכם.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8