טיפים שימושיים

אבטחת מערכת לינוקס: 11 טיפים לאבטחה

Pin
Send
Share
Send
Send


מקורי: אבטחת לינוקס
הועלה על ידי: כריס ביני
תאריך פרסום: 1 בפברואר 2016
תרגום: א. פאנין
תאריך העברה: 18 במרץ, 2017

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

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

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

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

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

הגן על הטרמינל

אתה יכול להגן על המסוף על ידי הגבלת הרשאות בסיס להשתמש במסופים מסוימים. ניתן לעשות זאת על ידי ציון המסופים שהשורש ישתמש ב- / etc / securetty.

עדיף (אך לא הכרחי) לאפשר גישה לשורש למסוף אחד בלבד, ולהשאיר אחרים למשתמשים אחרים.

שירותי מערכת

לאחר ששניתי את הגדרות ה- DNS במחשב שלי כדי לעבור לכתובת ה- IP שסופקה על ידי ספק האירוח שלי, התחברתי מיד דרך SSH ושניתי את סיסמת השורש כמו שרציתי (כמובן שהיא צריכה להיות שונה מהסיסמה הזו, שהתקבלה בדוא"ל מספק האירוח!). באופן כללי, אני ממליץ לספק האירוח לספק גישה לסיסמת המשתמש הבסיסית המוגדרת מראש אך ורק דרך ממשק האינטרנט (הנגיש דרך פרוטוקול HTTPS). דואר אלקטרוני הוא מנגנון העברת נתונים לא בטוח מדי ואנחנו מקימים שרת שלא צריך להתפשר עליו במשך זמן רב. לזכותו של ספק האירוח, במקרה של SSH, המשתמש מתבקש מייד ליצור מפתח SSH שהוא בטוח יותר מסיסמה רגילה.

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

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

עיין באיור 1 אם אתה מעוניין בפלט הדוגמה מהפקודה free-m. התעניינתי בעיקר בערך הראשון בעמודה "משומשת", שעל בסיסה קל להסיק שלוקח 93 MB זיכרון RAM בלבד כדי לטעון את מערכת ה- Debian שלי עם מספר קטן של שירותי מערכת (השווה את זה למאות מגה-בייט הדרושים לטעינת מערכת שהותקנה לאחרונה. חלונות).

איור 1: בדיקת כמות זיכרון ה- RAM הזמין באמצעות הפקודה -m חופשית.

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

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

כתוצאה מכך מצאתי בצד שמאל של הפלט את שמות שירותי המערכת (לרוב תואמים את שמות הקבצים בספריית /etc/init.d), ובצד ימין יש יציאות רשת פתוחות. המספרים של יציאות אלה מוחלפים בדרך כלל בשמות השירותים המופיעים בקובץ / etc / services.

מיד הפניתי תשומת לב לשני שירותי מערכת שלא הייתי זקוק להם (שעלולים להיות קשורים לסיכונים שונים מבחינת אבטחת המערכת), אותם יש לכבות. לאחר עיון קצר במערכת התברר כי התסריט /etc/init.d/rpcbind אחראי לניהול מצב השירות הראשון, אך מכיוון שמערכת האתחול של ה- init כבר הייתה בעבר, ניצלתי את Systemd עם הפקודה הבאה:

אחריה יש לבצע פקודה אחת נוספת כך ששירות rpcbind לא יתחיל לאחר אתחול מחדש של המערכת:

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

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

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

בשלב הבא החלטתי לשנות את היציאה הסטנדרטית מספר 22 של שרת ה- SSH שנקרא sshd. לשם כך, ערוך את קובץ התצורה / etc / ssh / sshd_config בזהירות יתרה, בטל את החיבור של השורה הראשונה באיור 2 והחלף את הערך 22 בכל מספר יציאה רצוי, למשל, 2222. מניפולציה זו תגן מפני התקפות אוטומטיות ביציאה 22 בשרת שלך.

איור 2: בקובץ התצורה, החלף את מספר היציאה 22 במספר אחר, לדוגמה, 2222 או כל מספר יציאה שרירותי אחר לאחר ביטול החימה של השורה על ידי הסרת תו הלירה הראשון.

אתה יכול גם למנוע ממשתמש השורש לגשת מרחוק למערכת, כאמור. לשם כך, פשוט החלף את ערך הפרמטר PermitRootLogin ללא:

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

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

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

בכדי להפיג את כל הספקות לגבי התצורה הנכונה, בדקתי במהירות את אפשרות הכניסה ל- SSH וחיפשתי ביומן Systemd כדי לחפש הודעות שגיאה אפשריות (לשם כך די להפעיל את הפקודה journalctl -a ולבחון את השורות האחרונות). אני עדיין לא רגיל לעצב את הפלט של יומן ה- Systemd, אך מכיוון שלא היו הודעות הקשורות לשינויים שביצעתי, הרגשתי שלשרת SSH אין בעיות בתצורה החדשה.

בשלב הבא פתחתי את הקובץ /etc/hosts.allow וערכתי מעט את הגדרות מחסנית TCP, מחקתי את כל השורות הלא מצורפות והוספתי את כתובות ה- IP מהן אני אתחבר לשרת:

כעת, ב- SSH, רק לקוחות עם שלוש כתובות ה- IP הרשומות יכולים להיכנס למערכת, ועליהם להשתמש בשמות המשתמש המפורטים לעיל, כגון ליונל. לאחר מכן הוספתי את השורה הבאה לקובץ hosts.deny:

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

היסטוריית צוות

לא נוח לי להשתמש בשילוב המקשים Ctrl + R כדי לחפש בהיסטוריה של פקודות מעטפת, ולכן אני מעדיף להפעיל את מקשי PageUp ו- PageDown. לפעולה זו אין קשר לאבטחת שרתים, אלא מאפשרת לנווט בצורה יעילה יותר בהיסטוריית הפקודות.

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

איור 3: מיטוב מהירות קלט הפקודה על ידי הפעלת מקשי PageUp ו- PageDown.

בית מתוק ביתי

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

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

היי דוור!

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

מיד לאחר ההתקנה, שרת הדואר של Postfix פועל באופן מלא. בתהליך קביעת התצורה שלה, עליך רק לבחור באפשרות "אתר אינטרנט" והזן את שם המארח המלא (כולל ה- FQDN, כלומר שם הדומיין המלא). מעט מאוחר יותר, באפשרותך לשנות את תוכן קובץ התצורה הקלאסי / etc / aliases, המשמש גם ב- Sendmail, כדי לשלוח את כתובת השורש המיועדת לכתובת הדוא"ל שלך.

אתה יכול להתקין את Postfix עם הפקודה הבאה:

בשלב הבא עליך לערוך את קובץ התצורה של הכינויים, להוסיף את כתובת הדוא"ל שלך כדי לקבל הודעות המיועדות למשתמש הבסיס:

וודא כי החל משורש: הקו של קובץ התצורה הזה נראה דומה:

עדכן את מסד הנתונים של כתובת הדוא"ל Postfix באמצעות הפקודה newaliases:

לבסוף, התקן את חבילת התוכנה Logwatch, מייד לאחר ההתקנה כלי זה יפעל כראוי:

הדרך הקלה ביותר להתקשר לכלי השירות Logwatch היא ליצור קובץ משימות cron בספריה הרגילה cron.daily לביצוע יומיומי בזמן נתון, למשל בשעה 06:25, כמו במערכת ג'סי 8.1 שלי. הוסף את זמן ביצוע המשימה לקובץ / etc / crontab או העבר את קובץ /etc/cron.daily/00logwatch לספרייה אחרת וקרא לו בזמן אחר מקובץ / etc / crontab.

לאחר מכן, התחל באופן ידני את שעון העץ ובדוק את הדואר הנכנס:

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

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

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

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

אני לא אדון בנושא החשוב של הגנה על שרת ה- SMTP החדש שלך. אפילו בהתחשב בתכונת הממסר מושבתת כברירת מחדל, תצטרך לבצע מספר פעולות נוספות כדי להגן על שרת ה- SMTP. באתר Ask Ubuntu יש פוסט מועיל המתאר כיצד להגן על שרת הדואר שלך Postfix.

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

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

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

התצורה הבאה עבדה מצוין במערכת "Wheezy" של דביאן. ראשית כל, התקן את חבילת התוכנה libpam-cracklib:

לאחר מכן, ערוך את קובץ התצורה הבא:

יהיה עליך לשנות את ההנחיה הבאה על ידי הוספת לה פרמטרים נוספים (פשוט הגב על הגרסה המקורית של ההנחיה במקום למחוק אותה כך שתוכל לשחזר אותה אחר כך):

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

הפרמטר החביב עלי (שהיה מאוד מעצבן את הקולגות שלי) הוא הפרמטר difok = 6, שמאפשר לך לעשות שימוש חוזר בשש תווים של הסיסמה האחרונה בסיסמה החדשה, והסיסמה הזו צריכה להכיל לפחות שתי ספרות ושתי תווים (או "תווים מיוחדים"). כדי להפעיל את התצורה המתוארת ב- Wheezy, זה הספיק להפעלת הפקודה הבאה:

После этого вы можете протестировать новую конфигурацию, проявляя особую осторожность, так как при неудачном стечении обстоятельств вы не сможете войти в систему под своим именем. Если вы столкнетесь с проблемами в процессе тестирования, вам нужно будет в первую очередь убедиться в наличии параметра UsePAM с значением yes в файле конфигурации /etc/ssh/sshd_config . В случае добавления этого параметра в файл конфигурации вам придется перезапустить системную службу OpenSSH с помощью команды systemctl restart ssh .

Таблица 1 содержит описания полезных параметров, позволяющих ужесточить правила установки паролей, со страницы руководства pam_cracklib , относящейся к программному компоненту libpam-cracklib . Поэкспериментируйте с данными параметрами до достижения оптимальной конфигурации.

Таблица 1. Параметры проверки паролей с помощью Cracklib

Параметрתיאור
retry=Nבקש מהמשתמש להזין את הסיסמה לפחות N פעמים לפני הצגת הודעת השגיאה. ברירת המחדל היא 1.
difok = Nפרמטר זה כברירת מחדל דורש לפחות 5 תווים חדשים שלא נמצאו בסיסמה הישנה כדי להשתמש בסיסמה החדשה.
minlen = Nהאורך המינימלי של הסיסמה החדשה (+1 אם לא לוקחים בחשבון את המספר המרבי של תווים מסוגים מסוימים, שאינו מופעל כברירת מחדל). מידע נוסף על אפשרות זו זמין בדף הידני.
dcredit = N(N> = 0) המספר המרבי של הספרות בסיסמה החדשה. אם הסיסמה שלך כוללת פחות מ- N ספרות, כל ספרה מגדילה את אורך הסיסמה ב -1. ערך ברירת המחדל הוא 1, שמומלץ לסיסמאות שאורכן פחות מ -10 תווים. (N = 0) המספר המקסימלי של אותיות באותיות גדולות בסיסמא החדשה. אם הסיסמה שלך כוללת פחות מ- N אותיות גדולות, כל אות מגדילה את אורך הסיסמה ב -1. ערך ברירת המחדל הוא 1, מומלץ לסיסמאות הנמוכות מ -10 תווים. (N = 0) המספר המרבי של אותיות קטנות בסיסמה החדשה. אם הסיסמה שלך כוללת פחות מ- N אותיות קטנות, כל אות מגדילה את אורך הסיסמה ב -1. ערך ברירת המחדל הוא 1, מומלץ לסיסמאות הנמוכות מ -10 תווים. (N = 0) המספר המרבי של תווים אחרים בסיסמה החדשה. אם לסיסמה שלך יש פחות מ- N תווים אחרים, כל תו כזה מגדיל את אורך הסיסמה ב -1. ערך ברירת המחדל הוא 1, שמומלץ לסיסמאות הנמוכות מ- 10 תווים. (נ המספר המינימלי של כיתות תווים בסיסמה החדשה. כברירת מחדל, הערך הוא אפס. ישנן ארבע שכבות של תווים, כלומר מספרים, אותיות גדולות, אותיות קטנות ותווים אחרים. שלא כמו פרמטרים עם אינדיקציה ברורה של מספר התווים, פרמטר זה אינו מחייב שימוש בשיעור תווים ספציפי. במקום N, ניתן להשתמש בערך של עד ארבעה.
maxrepeat = Nדחה סיסמאות שמכילות יותר מ- N תווים זהים עוקבים. ערך ברירת המחדל הוא 0, מה שאומר שלא נעשה שימוש בסימון זה.
מקסימום = Nדחה סיסמאות המכילות רצפי תווים שאורכם יותר מ- N. ערך ברירת המחדל הוא 0, מה שאומר שלא נעשה שימוש בסימון זה. דוגמאות לרצפים כאלה הם "12345" או "fedcb". שימו לב כי מרבית הסיסמאות הללו לא יעברו את המבחן בפשטות אלא אם רצף כזה הוא רק חלק מהסיסמה.
מקסימום> דחו סיסמאות המכילות יותר מ- N תווים רצופים מאותה כיתה. ערך ברירת המחדל הוא 0, מה שאומר שלא נעשה שימוש בסימון זה.
דחה_וזןבדוק אם שם משתמש עם תווים בסדר הרגיל וההפך, בסיסמה החדשה. במקרה של גילוי, דחו את הסיסמה.
gecoscheckבדוק אם מילים משדה GECOS (בדרך כלל שם המשתמש המלא מאוחסן בשדה זה) באורך של יותר משלושה תווים עם תווים בסדר קדימה ואחורה בסיסמה החדשה. אם נמצאו מילים כאלה, דחו את הסיסמה.
לאכוף_לפני_rootהצגת הודעה על "שגיאה" או "סיסמא שגויה" כדי למנוע שינוי סיסמת השורש. פרמטר זה כברירת מחדל כבוי, כלומר כאשר שינוי סיסמת השורש תוצג אזהרה, אך הסיסמה עצמה תשתנה.
use_authtokפרמטר זה משמש כדי לא לבקש סיסמה מהמשתמש, אלא כדי לקבל אותו ממודול הסיסמה הממוקם מעל הערימה.

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

רעיונות אחרים

לאחר ביצוע השלבים שלעיל, חשבתי כיצד לפקח על מצב מערכת הקבצים. ניתן ליצור קובץ עם בדיקות MD5 של קבצי מפתח לצורך אימות לאחר מכן במקרה של חשד לפשרה בשרת. ניתן גם להתקין כלי מיוחד לבדיקת שלמות הקבצים, למשל כלי השירות AIDE (Advanced Entrusion Detection Enviroment) המאפשר לעקוב אחר כל השינויים במערכת הקבצים.

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

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

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

ניתן גם לשקול להשתמש בכלי לבחינה אוטומטית של מצב המערכת ולחסימת הגישה אליו במקרה של בעיית אבטחה. ניתן לבצע את הפעולות המתוארות באמצעות כלים כמו Bastille Linux ו- Lynis.

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

תהליך זה אינו מסתיים לעולם

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

נסה להשתמש בפקודה זו אם אתה מוטרד מהשאלה הזו:

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

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

אם התקנתי את שרת האינטרנט Apache בשרת המדובר, הייתי מייד מסתיר את תוכן ספריית ה- cgi-bin ומשנה את ערך הפרמטר ServersTokens ל- Prod. אני ממליץ מאוד לקרוא מאמר מצוין באתר Geekflare עם הנחיות לאבטחת שרת האינטרנט של Apache.

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

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

צפו בסרטון: Clay Shirky: Institutions vs. collaboration (אַפּרִיל 2020).

Pin
Send
Share
Send
Send