טיפים להגנה על שרת הלינוקס שלך מפני התקפות חיצוניות

אני מניח שהאנשים שנוהגים שרתי לינוקס הם יודעים ויודעים על DenyHOSTS y fail2ban. למי שלא מכיר אותו אכיר להסביר קצת על שני אלה יישומים.

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

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

Fail2Ban

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

ל- Fail2Ban תצורה נהדרת והוא יכול גם ליצור כללים עבור תוכניות
צדדים שלישיים או שלישיים.

DenyHOSTS

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

ניתן להשתמש ביישומי לינוקס אלה - DenyHosts ו- Fail2ban - בנפרד או ביחד. במקרה שלי, שניהם עובדים יחד.

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

ובכן, התחל לעבוד.

התקנה ותצורה של Fail2Ban

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

התקנה

להתקנה:

יאם להתקין fail2ban 

אם החבילה לא מופיעה, עלינו להוסיף את המאגר הדרוש:

סל"ד -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

עם זה אתה צריך להתחיל להתקין את היישום יחד עם התלות שלו.

כעת עלינו להגדיר את Fail2Ban לניתוח היומנים שאנו רוצים ולחסום
כתובות IP, שליחת התראות באמצעות דואר אלקטרוני. לשם כך עלינו לשנות את הקובץ jail.conf שנמצא ב- / etc / fail2ban

cd / etc / fail2ban
כלא ננו

יש לבצע את הפעולות הבאות בקובץ זה:

  • שינוי הוא הערך של זמן הנטיים, ערך זה קובע את הזמן בשניות שה- IP של התוקף ייחסם, כברירת מחדל הערך מגיע בתוך 600 שניות.
  • מצא את ערך ה- maxretry שיהיה מספר הפעמים ש- IP יכול לקבל אימות נכשל לפני שנחסם.
  • הוסף את ה- ip שלנו בפרמטר ignorip. כאן היישום יתעלם מכתובות ה- IP המאומתות שלנו בפרמטר זה.
[בְּרִירַת מֶחדָל]
# "ignorip" יכול להיות כתובת IP, מסיכת CIDR או מארח DNS. Fail2ban לא
# אסור מארח שתואם כתובת ברשימה זו. מספר כתובות יכולות להיות
# מוגדר באמצעות מפריד רווח.
ignorip = 127.0.0.1

# "bantime" הוא מספר השניות שמארח אסור עליו.
bantime = 600

# מארח אסור אם הוא יצר "maxretry" במהלך "זמן הממצא" האחרון
# שניות.
זמן מציאה = 600

# "maxretry" הוא מספר הכשלים לפני שהמארח ייאסר.
maxretry = 3

דוגמה לאיך זה יכול להיות כדלקמן:

ignorip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

הגדר את Fail2Ban ו- SSH

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

[ssh-iptables] 
מופעל = נכון
פילטר = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # זה יומן שינתח את fail2ban
maxretry = 3 # כל IP שיש לו שלושה ניסיונות כושלים או יותר ייחסם.
bantime = 86400 זמן איסור של 24 שעות מבוטא בשניות

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

יישום זה לא פועל רק לגישה לא מורשית ב- SSH, אלא גם עבור אפאצ'י, לקריאת יומני כוכבית וכו '.

DenyHOSTS התקנה ותצורה

פעולתו מבוססת על שימוש בקובץ /etc/hosts.deny, כלומר על חסימת כתובות המארחים ה"תוקפים ", יצירת רשימה של מארחים שנדחו.

ניתן להשיג את ההתקנה ממאגרים באמצעות הפקודה הבאה:

יאם להתקין denyhosts 

קובץ התצורה נמצא ב /etc/denyhosts.conf

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

שנה את הקובץ denyhosts.conf

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

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 שעה
SYNC_UPLOAD = כן
SYNC_DOWNLOAD = כן
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 שעות

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

ננו /etc/hosts.allow

לדוגמה:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

לאחר מכן, אנו מפעילים מחדש את השירות:

/etc/init.d/denyhosts הפעלה מחדש

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

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

כדי לטהר את הכתובות המאוחסנות מעת לעת, כפי שהוגדר, יש להריץ את הדמון באמצעות הפרמטר –purge:

/etc/init.d/denyhosts מתחילים - לטהר

בנוסף לכך, עלינו לכלול אותו בתחילת המערכת:

chkconfig מכחיש את המארחים

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.