הגנה בסיסית על ה-SSH באמצעות fail2ban

שרת ה-VPS שלך, כמו כל שרת אחר, חשוף לניסיונות התקפה. יש היום תולעים ווירוסים באינטרנט שמנסים לפרוף לכל שרת ללא הפסק. אחת ההתקפות לא מתוחכמת היא התקפת מסוג "כוח גס" (Brute Force) .

הרעיוון בהתקפת Brute Force הוא להרי את כל הקומבינציות האפשריות לסיסמה‎
למשל, יושב לו נער פוחז ומפעיל תוכנה אוטומטית שמנסה לפרוץ לשרת שלך עם כל סיסמא אפשרית‎
(לדוגמה: a, b, c… aa, ab, ac, ad… וכן הלאה…) ‎
אופציה אחרת היא להריץ ע"פ מילון‎
יש רשימה של מלא ססמאות נפוצות ‎
והוא מנסה‎
מתחיל בפשוטות כמו 123456‎
או qwerasdf‎
וממשיך עם צירופים נפוצים כמו IAmTheKing‎

כיצד מגינים מפני התקפות כאלו ?
ובכן , ההגנה מול זה היא בד"כ בשני דרכים‎:

  1.  CAPTCHA (קוד בתמונה – שמחשב אינו יכול לזהות)
  2.  חסימה לאחר מספר ניסיונות כושלים‎

תוכנת fail2ban, פועלת בצורה כזו, שהיא סורקת ללא הרף את קבצי ה-LOG [יומן] של השרת, וברגע שהיא מזהה ניסיונות חוזרים ונשנים לפריצה, היא חוסמת את הפורץ.

  1. התקנת תוכנת fail2ban
    היכנס לשרת באמצעות putty והקלד את הפקודה הבאה:

    sudo apt-get install fail2ban

    הסבר מבנה הפקודה : המילה sudo – מיועדת כדי להפעיל את הפקודה עם הרשאות מנהל.
    התוכנה apt-get היא מנהל החבילות [תוכנות] של Ubuntu
    המילה install זה פרמטר שנשלח לapt-get ואומר לו שאני רוצה להתקין תוכנה (ולא להסיר לדוגמה)
    והמילה fail2ban…. היא התוכנה אותה אנחנו מתקינים.
    תוכנת ה-apt-get תמצא את התוכנה במאגרים שלך ותבקש ממך לאשר שאתה מסכים להתקנה (ותכתוב לך כמה היא שוקלת), לחץ על Y וההתקנה תושלם תוך שניות בודדות.

  2.  יצירת העתק של קובץ ההגדרות של fail2ban
    קובץ ההגדרות של fail2ban נמצא כברירת המחדל במיקום /etc/fail2ban/jail.conf.
    מכיון שאנחנו רוצים לשנות הגדרות, ניצור העתק של הקובץ.
    הקלד את הפקודה הבאה:

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

    הסבר הפקודה :
    המילה sudo – מיועדת כדי להפעיל את הפקודה עם הרשאות מנהל,
    הפקודה cp – היא פקודה להעתקת קובץ (קיצור מילולי של המילה copy)
    ואחריה באים המיקום הנוכחי של הקובץ והיעד – כלומר שם הקובץ החדש (ההעתק שאנחנו יוצרים).
    לאחר שהקובץ מועתק, אתה יכול לעשות את כל השינויים בתוך קובץ jail.local החדש.
    בקובץ רשומות הרבה אפשרויות להגנה, כל אפשרות בחלק נפרד, מוגדרת מראש ככבויה.

  3. עריכת קובץ ההגדרות של fail2ban
    פתח את קובץ ההגדרות בתוכנת nano עם הרשאות ניהול.
    לשם כך הקלד

    sudo nano /etc/fail2ban/jail.local

    החלק הראשון ההגדרות בקובץ , מכסה את הכללים הבסיסיים ש- fail2ban מיישם, דברים שהם ברירת מחדל. אך כמובן אם אתה רוצה להגדיר הגנה מורכבת יותר על השרת הווירטואלי שלך, אתה יכול להתאים אישית את ההגדרות בכל קטע.
    ההגדרה הראשונה – היא ignoreip , ובה אתה רושם כתובות IP, שהתוכנה מתעלמת מהן (אינה חושדת בהן כתוקפות). כאן המקום לציין שאם יש לך כתובת IP אישית משלך, כתוב אותה כאן כמובן, כדי למנוע מצב שבו תחסום את עצמך.
    אם אין לך כתובת IP קבועה, תתעלם מזה.
    אם אתה מעוניין להגדיר כמה כתובות, פשוט כתוב אותן אחת אחרי השניה, והפרד בינהן ברווח.
    bantime – ההגדרה הבאה נקראת [bantime [Ban-Time, והיא מתייחסת לכמות הזמן (בשניות) שמישהו שזוהה כתוקף יחסם. ברירת המחדל היא 600 שניות, כלומר 10 דקות.
    כלומר במידה והתוכנה תזהה מישהו כתוקף, היא תחסום אותו למשך 10 דקות.
    זה יעיל מאוד כהגנה מפני כל מיני תוכנות רובוטיות, שברגע שיזהו שהן נחסמו, הן פשוט יעברו למטרה הבאה שלהן ויעזבו את ה- VPS שלך בשקט.
    Maxretry – ההגדרה [Maxretry [Max-Retary , היא כמות הפעמים המרבית שמותר למישהו לנסות להיכנס עם סיסמא שגויה.
    את ההגדרה backend אפשר להשאיר על מצב auto.
    ההגדרה Destemail – היא כתובת מייל, שאליה התוכנה יכולה לדווח אם היא מזהה ניסיונות התקפה, אם מותקן על השרת שלך גם שרת מייל, כתוב שם את המייל שלך.
    ההגדרה [Banaction [Ban-action – שם תוכל להגדיר מה הפעולות ש-fail2ban תעשה במקרה שצריך לחסום כתובת IP חשודה.
    האפשרות – "iptables-multiport" (מומלץ), תפעיל את חומת האש iptables כדי למנוע מכתובת ה-IP החשודה להיכנס.
    שים לב: ברגע שתאתחל את תוכנת fail2ban או את השרת, כל הכללים של iptables ימחקו. ( קובץ ברירת המחדל של חומת האש iptables נמצא במיקום /etc/fail2ban/action.d/iptables-multiport.conf ).

    ההגדרה MTA – היא השם של תוכנת הדואר האלקטרוני ש-fail2ban תשתמש בה כדי לשלוח לך דיווחים על מתקפות.
    בהגדרה Protocol – אתה קובע אם אתה רוצה ש-fail2ban תפקח על tcp או על udp

    עוד כמה הגדרות בנושא SSH
    החלק של ההגדרות של SSH נמצא קצת יותר למטה, ובעיקרון זה כבר מוגדר ומופעל.
    החלק הזה מתחיל בשורה שנראית כך [ssh]
    רוב ההגדרות שם בסדר גמור, אבל אם במדריך הקודם שינית את port ברירת המחדל, אז אתה צריך לשנות אותו גם כאן.
    נעבור על ההגדרות בחלק SSH
    ההגדרה enabled – פשוט מפעילה את ההגנה על SSH, אם אתה לא מעוניין, תחליף את המילה true במילה false.
    ההגדרה port – מתייחסת לפורט שאותו fail2ban סורקת, אם שינית את הפורט, כתוב כאן את הפורט הרלוונטי (לכניסת SSH לשרת הוירטואלי שלך).
    ההגדרה filter – מכוונת כברירת מחדל לsshd, והיא מתייחסת לקובץ ההגדרות שמכילות את הכללים שfail2ban משתמש בהם. במקרה זה כתוב sshd , כלומר הכוונה היא לקובץ / etc/fail2ban/filter.d/sshd.conf.
    ההגדרה log path מתייחסת למיקום של קובץ ה-log ש-fail2ban צריכה לעקוב אחריו.
    את ההגדרה max rerty – אתה יכול להשאיר על ברירת המחדל. ההגדרה מתיחסת לכמות ניסיונות החוזרים עבור SSH.
    כשאתה מסיים לערוך את הקובץ , לחץ Ctrl+x ליציאה ושמור באמצעות Y.

  4. איתחול שירות fail2ban
    אחרי כל השינויים שביצענו , צריך לאתחל את השירות כדי שההגדרות יטענו.
    הקלד את הפקודה
    sudo service fail2ban restart
    ואם תרצה לראות את הכללים ש- fail2ban יישמה בחומת האש iptables, אז הקלד את הפקודה
    sudo iptables -L

 

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *