המדידות הבטחוניות המומלצות להגנת שרתיך

הקדם

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

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

מפתחים SSH

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

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

כדי להגדיר SSH עם אימות מפתח, צריך לשים את המפתח הציבורי שלך על השרברב באתר הצפוי (בדרך כלל ~/.ssh/authorized_keys). כדי ללמוד עוד על איך SSH-מפתח-מבוססת האימות עובדת, קרא את הבנה על הצפנה ותהליך החיבור של SSH.

איך מפתחי SSH מרחיבים את הבטיחות?

אם תהיה SSH, כל סוג של אימות — כולל אימות בסיסמה — מוצפן לגמרי. אולם, כאשר מותרות התחברויות מבוססות סיסמה, משתמשים מרושעים יכולים לנסות שוב ושוב באופן אוטומטי לגשת לשרת, בעיקר אם יש לו כתובת IP פומבית. למרות שיש דרכים לגרום לנעילת גישה אחרי מספר נסיונות כשלוניים מאותה IP, ומשתמשים מרושעים יהיו מוגבלים במעשה על עקובת המהירות בה הם יכולים לנסות להתחבר לשרת שלך, כל מצב בו משתמש יכול לנסות בהצלחה לצבוע גישה לערימה שלך על ידי תקיפות חזקה חוזרות יצור סיכון אבטחה.

הגדרת אימות SSH עם מפתחות מאפשרת לך לנטרל אימות מבוסס סיסמה. מפתחות SSH נוטלים בדרך כלל יותר ביטים של נתונים מאשר סיסמה — אתה יכול ליצור מפתח SSH באורך 128 תווים מסיסמה באורך 12 תווים — מה שהופך אותם הרבה יותר קשים לחיזור. כמה אלגוריתמי צפנה נחשבים אולם לניתן לניפוץ על ידי מנסיון להפוך מנוגד את המפתחות של הסיסמה מספיק פעמים על מחשב חזק מספיק. אחרים, כולל המפתח RSA המוגדר כברירת מחדל שנוצר על ידי מועדפי SSH מודרניים, אינם עדיין סבירים לניפוץ.

איך ליישם מפתחות SSH

מפתחות SSH הם הדרך המומלצת להתחבר לכל סביבת שרת Linux בינתראצית. זוג מפתחות SSH ניתן ליצור על המכשיר המحلא שלך באמצע

להקים מפתחות SSH על השרת שלך, ניתן לעקוב אחרי איך להקים מפתחות SSH עבור Ubuntu, Debian או CentOS.

למען החלקים במחסן שלך הדורשים גישה בסיסמה, או שנתקלים במתקפות בצע חזק, ניתן ליישם פתרון כמו fail2ban על השרתים שלך כדי להגביל את הניחושים בסיסמה.

זהו דבר טוב לא לאפשר למשתמש root להתחבר ישירות דרך SSH. במקום זה, התחבר כמשתמש לא מורשה ואז הרימו את ההרשאות ככל הצורך באמצעות כלי כמו sudo. הגישה הזו להגבלת ההרשאות נודעת כעקרון הכי מעט ההרשאות. ברגע שחברת לשרת שלך ויצרת חשבון לא מורשה שאימתת שעובד עם SSH, ניתן לנטרל את ההתחברות של root על ידי הגדרת האופציה PermitRootLogin no בקובץ /etc/ssh/sshd_config על השרת שלך ואז להפעיל מחדש את תהליך SSH של השרת עם פקודה כמו sudo systemctl restart sshd.

שומרי על

משגר-חומה הוא מכשיר תוכנה או חומרי ששולט כיצד שרותים מוצגים לרשת, ואילו סוגים של תנועה מותרים להיכנס ולצאת משרת או שרתים מסוימים. משגר-חומה שהוגדר כראוי יבטיח שרק שרותים שצריך להיות זמינים לציבור יכולים להיות מגיעים מחוץ לשרתים או לרשת שלך.

בשרת טיפוסי, מספר שרותים עשויים לפעול כברירת מחדל. אלה יכולים להיות מסווגים לתוך הקבוצות הבאות:

  • שרותים ציבוריים שניתן לגשת אליהם על-ידי כל אדם באינטרנט, לעיתים אנונימית. דוגמה לכך הוא שרת האינטרנט שמשרת את האתר האמיתי שלך.
  • שרותים פרטיים שאמורים להיות נגישים רק על-ידי קבוצה מסוימת של חשבונות מורשים או ממקומות מסוימים. לדוגמה, לוח בקרה למסד נתונים כמו phpMyAdmin.
  • שרותים פנימיים שאמורים להיות נגישים רק מתוך השרת עצמו, בלי לחשוף את השרות לאינטרנט הציבורי. לדוגמה, מסד נתונים שאמור לקבל רק חיבורים מקומיים.

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

איך מחילות מעבדות מגבירות אבטחה?

אפילו אם השירותים שלך מיושמים תכונות אבטחה או מוגבלים לקיומם על הממשקים שאתה רוצה שהם יעבדו, מחילה מעבדת מגבירת האבטחה בתשתית בסיסית על ידי הגבלת החיבורים אליהם ומחוץ לשירותים שלך לפני שיתנהל התנועה.

מחילה מותאמת בצורה נכונה תגביר גישה רק לכל דבר חוץ מהשירותים הספציפיים שאתה רוצה שייצאו פתוחים, בדרך כלל על ידי פתיחת רקעים שקושרים אל השירותים האלה. לדוגמה, SSH נמצא בדרך כלל על רקע 22, והגישה לHTTP/HTTPS דרך דפדפן אינטרנט נמצאת בדרך כלל על רקעים 80 ו-443 בהם הם מקבלים בעצם. הפתיחה רק של מעטים מן התוכנה הולכת להקטין את משטח ההתקף של השרת שלך, מגבילה את הרכיבים הפגיעים להתנגדות.

איך ליישם מחילות

ישנם מחילות רבות למערכות לינוקס, וחלקן מורכבות יותר מאחרות. בעקביות, תצטרך לערוך שינויים בהגדרת המחילה שלך רק כשאתה עושה שינויים בשירותים שמופעלים על השרת שלך. הנה כמה אפשרויות להתחיל:

  • UFW, או מחסה האש הפשוט, מותקן באופן בר-מצב על חלק מההתפציות הלינUX כמו Ubuntu. אתה יכול ללמוד עליו יותר באיך להגדיר מחסה האש בעזרת UFW על Ubuntu 20.04

  • אם אתה משתמש בRed Hat, Rocky, או Fedora Linux, אתה יכול לקרואאיך להגדיר מחסה האש בעזרת firewalldכדי להשתמש בכלי הברירת המחסה הברירת המצב שלהם.

  • רבות מהמערכות הגדולות של מחסוני הרשת כמו UFW ו firewalld יכולות לכתוב את הדיוקרטים המותאמים על ידיהן ישירות לקובץ שנקרא iptables. כדי ללמוד איך לעבד את ההגדרות של iptables ישירות, אתה יכול לבחנה Iptables Essentials: Common Firewall Rules and Commands
    . שים לב שחלק מהתוכנה אחרות שמיישמות דיוקרטים על פורטים בדרך משלהן, כמו Docker, יכולים גם לכתוב ישירות ל iptables, ועשויים להתקיף עם הדיוקרטים שאתה יוצר בעזרת UFW, אז חשוב לדעת איך לקרוא את ההגדרות של iptables במקרים כמו זה.

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

הבה להבטיח שהגדרות של מגינת השרת מוגדרות כמונחות לחסום תנועה לא ידועה. בדרך זו, כל שירות חדש שאתם משדרים לא יישאר פגיע לאינטרנט באופן בלתי מכוון. במקום זאת, תצטרכו לאפשר באופן בר-מציאות, שיאלץ אתכם להעריך איך שירות נעשה, נגיש ומי שיכול להשתמש בו.

רשתות VPC

רשתות VPC (רשתות פרטיות מודמות) הן רשתות פרטיות למשאבים בתשתית שלכם. רשתות VPC מספקות קישור בטחון יותר בין המשאבים בגלל שהממשקים של הרשת אינם נגישים מהאינטרנט הציבורי.

איך רשתות VPC מגבירות את הבטחון?

מחלקות השרתים אומנות מערכת האינטרונetz מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך.

מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך.מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך.

מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך.

עברית מחלקות השרתים האומנות מצוין בעדינות המשפחה של מחלקות השרתים שלך במחלקה האומנת האינטרונetz שלך. מחלקות ה

הגדרה ידנית של רשת הפרטית שלך יכולה לדרוש תצורות שרת מתקדמות וידע מתקדם בתחום הרשתות. אלטרנטיבה להקמת רשת VPC היא שימוש בחיבור VPN בין השרתים שלך.

VPNs ורשתות פרטיות

VPN, או רשת פרטית וירטואלית, הוא דרך ליצור חיבורים מאובטחים בין מחשבים מרוחקים ולהציג את החיבור כאילו הוא רשת פרטית מקומית. זה מספק דרך להגדיר את השרותים שלך כאילו הם נמצאים ברשת פרטית ולחבר שרתים מרוחקים דרך חיבורים מאובטחים.

לדוגמה, רשתות הפרטיות של DigitalOcean מאפשרות תקשורת מבודדת בין שרתים באותו חשבון או צוות באותה אזור.

איך VPN מעלה את הביטחון?

שימוש בVPN הוא דרך למפות רשת פרטית שרק השרתים שלך יכולים לראות. התקשורת תהיה מלאה הפרטיות ומאובטחת. יישומים אחרים יכולים להיות מוגדרים כך שיעבירו את התраffic שלהם דרך הממשק הוירטואלי שהתוכנה VPN מחשפת. בדרך זו, רק שרותים שמיועדים לשימוש על ידי לקוחות באינטרנט הציבורי צריכים להיות חשופים ברשת הציבורית.

איך ליישם VPNים

השימוש ברשתות פרטיות בדרך כלל דורש מך לקבל החלטות בנוגע לממשקים הרשת שלך כאשר מגיעים להפליגת שרתיך הראשונים, ולהגדיר את היישומים והחומה שלך כדי להעדיף את הממשקים האלה. בהשוואה אליו, הפליגה של VPNים דורשת התקנה של כלים إضافיים ויצירת נתיבי רשת إضافיים, אך בדרך כלל ניתן להפליג אותם על גבי הארכיטקטורה הקיימת. כל שרת בVPN חייב את הנתונים המשותפים לביטחון והגדרות הנחוצים להקמת חיבור VPN. אחרי שהVPN מופעל ופועל, יש להגדיר את היישומים כדי להשתמש במנהרת הVPN.

אם אתה משתמש באובונטו או CentOS, אתה יכול לעקוב אחר המדריך איך להקים ולהגדיר שרת OpenVPN על Ubuntu 20.04
.

Wireguard
הוא עוד פליגת VPN פופולרית. באופן כללי, VPNים עוקבים אחר אותה העקרון של הגבלת הכניסה לשרתי הענן שלך על ידי הצגת סדרה של ממשקי רשת פרטים מאחורי כמה נקודות כניסה, אבל בעוד שההגדרות של VPC בדרך כלל נחשבות חשובות ביסוד התשתית, VPNים יכולים להפליג באופן יותר מאולתר.

מבחן שירותים

הבטיחות טובה מוצרת מעבדה על מה שהמערכות שלך מעולות, הבנה של המשטחים האקציים הזמינים לתקפים, והחבלה על הרכיבים באופן הטוב ביותר שניתן.

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

איך מבחן השירותים מגביר את הבטיחות?

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

אחרי שתקבל רעיון טוב על מה ששירותים רשת מופעלים על המכונה שלך, תוכל להתחיל לאנליze את השירותים האלה. כשאתה מבצע בחינה של שירותים, תשאל את עצמך את השאלות הבאות על כל שירות מופעל:

  • האם צריך להיות פעיל שירות זה?
  • האם השירות מופעל על ממשקים רשת שהוא לא צריך להיות עליהם?
  • האם השירות צריך להיות קשור בממשק רשת ציבורי או פרטי?
  • האם הנורמות של המחסה שלי מורכבות כך שיעברו תנועה לגיטימית לשירות הזה?
  • האם הנורמות של המחסה שלי מעצים תנועה שאינה לגיטימית?
  • האם יש לי שיטה לקבלת התרעות אבטחה על פגיעות עבור כל אחד מהשירותים האלה?

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

איך לאמץ בדיקת שירות

על מנת לבדוק שירותים רשתיים שמפעילים על המערכת שלך, השתמש בפקודה ss כדי לרשום את כל הפורטים TCP וUDP שבשימוש על שרת. פקודה דוגמה שמראה את שמו התוכנה, ה PID והכתובות המשמשות להקשבה לתנועה TCP וUDP היא:

  1. sudo ss -plunt

האפשרויות p, l, u, n, וt פועלות כך:

  • p מראה את התהליך הספציפי שמשתמש בסוג מסויים של סוכת.
  • l מראה רק סוכות שנמצאות בהקשבה פעולה לקישורים.
  • u כוללת סוכות UDP (בנוסף לסוכות TCP).
  • n מראה ערכים תנועה מספריים.
  • t כולל סוקטים TCP (בנוסף לסוקטים UDP).

תקבל פלט דומה לזה:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3)) tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=69226,fd=6),("nginx",pid=69225,fd=6)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=812,fd=4)) tcp LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=69226,fd=7),("nginx",pid=69225,fd=7))

העמודות העיקריות שדרושים את תשומת לבך הן עמודות ה-Netid, ה-Local Address:Port וה-Process name. אם ה-Local Address:Port הוא 0.0.0.0, אז השירות מקבל חיבורים על כל הממשקים הרשתיים של IPv4. אם הכתובת היא [::] אז השירות מקבל חיבורים על כל הממשקים של IPv6. בפלט הדומה למעלה, ה-SSH וה-Nginx מאזינים על כל הממשקים הציבוריים, על גבי מערכי הרשת ה-IPv4 וה-IPv6.

אתה יכול להחליט אם ברצונך שה-SSH וה-Nginx יאזינו על כל הממשקים, או רק על אחד מהם. באופן כללי, כדאי לכבות שירותים שרצופים על ממשקים לא בשימוש.

עדכונים ללא השתתפות

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

איך עדכונים בלי משך מענה את הביטחון?

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

איך ליישם עדכונים בלי משך

אתה יכול להגיע לאיך לשמור על שרתי Ubuntu מעדכניםעבור סקירה אוטומטית על הגדרה של העדכונים בלי משך בUbuntu.

תשתית מפתחות ציבוריים והצפנה SSL/TLS

התשתית של מפתח ציבורי, או PKI, מתייחסת למערכת המתוכננת ליצירה, ניהול ואימות תעודות לזיהוי אנשים ולטקסמה של תקשורת. תעודות SSL או TLS ניתנות לשימוש לאימות של יישויות שונות ביניהן. אחרי האימות, הן יכולות גם לשמש להקמת תקשורת מצופה.

איך PKI מעלה את הבטיחות?

הקמת מפקד תעודות (CA) וניהול תעודות עבור השרתים שלך מאפשר לכל יישות בתשתית שלך לאמת את זהויותיהם של החברים האחרים ולצפות את התנועה שלהם. זה יכול למנוע התקפות man-in-the-middle שבהן התוקף מדמה שרת בתשתית שלך כדי לפגוע בתנועה.

כל שרת יכול להגדרה כך שיבטח מפקד תעודות מרכזי. לאחר מכן, כל תעודה שנחתמה על-ידי המפקד הזה יכולה להיבטח בידע מוקפד.

איך ליישם PKI

שינון מוסד אישורים והקמת תשתית הקוד הציבורי האחרת עלול לדרוש חלק די גדול של מאמץ ראשוני. יותר מכך, ניהול האישורים עלול ליצור עומס ניהולי נוסף כאשר יש צורך ביצירת אישורים חדשים, לחתום או לשלול אותם.

עבור רבים מהמשתמשים, הפלגת תשתית קוד ציבורי מלאה תהיה הגיונית רק כשצריכתם של התשתית שלהם גדלים. הגנת תקשורתים בין המרכיבים על ידי VPN עלולה להיות תדירה טובה יותר עד שתגיעו לנקודה שבה PKI שווה את העלויות הניהוליות הנוספות.

אם ברצונך ליצור מוסד אישורים משלך, יכול להתבסס על המדריכים איך להקים ולשנון מוסד אישורים (CA) בהתאם להפצת לינוקס שאתה משתמש בה.

מסקנה

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

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

Source:
https://www.digitalocean.com/community/tutorials/7-security-measures-to-protect-your-servers