אחד מווקטורי ההתקפה הנפוצים ביותר נגד שרתים הוא ניסיונות התחברות כוח אכזריים. זה המקום בו תוקפים מנסים לגשת לשרת שלך, ומנסים שילובים אינסופיים של שמות משתמש וסיסמאות.
לבעיות מסוג זה הפתרון המהיר והיעיל ביותר הוא הגבלת מספר הניסיונות וחסימת הגישה למשתמש או ל- IP זה לזמן מסוים. חשוב גם לדעת שבשביל זה יש גם יישומי קוד פתוח שתוכננו במיוחד כדי להתגונן מפני מתקפות מסוג זה.
בפוסט של היום, אציג לך אחד נקרא Fail2Ban. פייל 2004Ban שפותחה במקור על ידי סיריל ג'קייר בשנת 2, והיא מסגרת תוכנה למניעת פריצות המגנה על השרתים מפני התקפות כוח אכזרי.
אודות Fail2ban
Fail2ban סורק קבצי יומן (/ var / log / apache / error_log) ואוסרת על כתובות IP המציגות פעילות זדונית, כמו יותר מדי סיסמאות פגומות וחיפוש אחר נקודות תורפה וכו '.
באופן כללי, Fail2Ban משמש לעדכון כללי חומת האש לדחיית כתובות IP למשך פרק זמן מוגדר, אם כי ניתן להגדיר גם כל פעולה שרירותית אחרת (למשל, שלח אימייל).
התקנת Fail2Ban בלינוקס
Fail2Ban נמצא ברוב המאגרים של הפצות הלינוקס העיקריות וליתר דיוק בשימוש הנפוץ ביותר לשימוש בשרתים, כגון CentOS, RHEL ואובונטו.
במקרה של אובונטו, פשוט הקלד את הדברים הבאים להתקנה:
sudo apt-get update && sudo apt-get install -y fail2ban
בעוד שבמקרה של Centos ו- RHEL, עליהם להקליד את הדברים הבאים:
yum install epel-release
yum install fail2ban fail2ban-systemd
אם יש לך SELinux חשוב לעדכן את המדיניות ב:
yum update -y selinux-policy*
לאחר שהדבר נעשה, עליהם לדעת בחזית שקבצי התצורה של Fail2Ban נמצאים ב- / etc / fail2ban.
התצורה של Fail2Ban מחולק בעיקר לשני קבצי מפתח; אלה fail2ban.conf ו- jail.conf. fail2ban.con מגדיר את קובץ התצורה הגדול יותר של Fail2Ban, שבו אתה יכול להגדיר הגדרות כגון:
- רמת היומן.
- הקובץ להיכנס.
- קובץ שקע התהליך.
- הקובץ pid.
jail.conf הוא המקום בו אתה מגדיר אפשרויות כמו:
- תצורת השירותים להגנה.
- כמה זמן לאסור אם צריך לתקוף אותם.
- כתובת הדוא"ל לשליחת דוחות.
- הפעולה שיש לבצע כאשר מתגלה התקפה.
- קבוצה מוגדרת מראש של הגדרות, כגון SSH.
תצורה
עכשיו נעבור לחלק התצורה, הדבר הראשון שאנחנו הולכים לעשות הוא עותק גיבוי של קובץ jail.conf שלנו עם:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ונמשיך לערוך עם nano:
nano /etc/fail2ban/jail.local
מבפנים אנו עוברים לקטע [ברירת מחדל] בו אנו יכולים לבצע כמה התאמות.
כאן בחלק של "ingoreip" כתובות ה- IP שיישארו בחוץ והם יתעלמו לחלוטין על ידי Fail2Ban, זה בעצם ה- IP של השרת (המקומי) והאחרים שאתה חושב שצריך להתעלם מהם.
משם והלאה שאר כתובות ה- IP שנכשלו בגישות, נתונות לחסדין להיות אסורות והמתין למספר השניות שהוא ייאסר (כברירת מחדל זה 3600 שניות) וכי fail2ban פועל רק לאחר 6 ניסיונות כושלים
לאחר התצורה הכללית, כעת נציין את השירות. ל- Fail2Ban כבר יש כמה פילטרים שהוגדרו מראש לשירותים שונים. אז פשוט עשו כמה עיבודים. הנה דוגמה:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
עם השינויים הרלוונטיים שבוצעו, סוף סוף תצטרך לטעון מחדש את Fail2Ban, בריצה:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
עם זאת, בואו נבדוק במהירות כדי לראות ש- Fail2Ban פועל:
sudo fail2ban-client status
בטל את איסור ה- IP
כעת לאחר שאסרנו בהצלחה IP, מה אם נרצה לבטל את איסור ה- IP? לשם כך נוכל להשתמש שוב ב- fail2ban-client ולהגיד לו לבטל את איסור ה- IP הספציפי, כמו בדוגמה שלהלן.
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
איפה "xxx ...." זו תהיה כתובת ה- IP שתציין.