Конфигуриране на Fail2ban в Debian/Ubuntu
19 Jan 2025, 19:16:30
В днешния свят на киберзаплахи сигурността на сървърите се превръща в приоритет за всеки администратор. Един от най-ефективните инструменти за защита на вашия сървър е Fail2ban. В тази статия ще споделя опита си в конфигурирането на Fail2ban в системите Debian и Ubuntu, както и ще предложа практически съвети и препоръки.Какво е Fail2ban?
Fail2ban е софтуер, който следи логовете на сървъра и блокира IP адреси, които показват подозрителна активност. Например, ако някой се опитва многократно да отгатне паролата за SSH, Fail2ban автоматично ще блокира този IP адрес за определен период от време. Това ви позволява да защитите сървъра си от brute force атаки и други видове злонамерена дейност.Защо да използваме Fail2ban?
- Защита срещу brute-force атаки: Fail2ban ефективно защитава вашите услуги, като SSH, FTP и уеб сървъри, от атаки с груба сила на паролата.
- Лесно персонализиране: Конфигурирането на Fail2ban не изисква задълбочени технически познания и може да бъде извършено дори от начинаещ администратор.
- Гъвкавост: Можете да конфигурирате Fail2ban за защита на различни услуги и да персонализирате настройките за блокиране според нуждите си.
Инсталиране на Fail2ban
Инсталирането на Fail2ban в Debian или Ubuntu е много лесно. Следвайте следните стъпки:Стъпка 1: Актуализиране на системата
Уверете се, че системата ви е актуализирана, преди да инсталирате fail2ban:apt update
apt upgradeСтъпка 2: Инсталиране на Fail2ban
След обновяването изпълнете следната команда, за да инсталирате Fail2ban:apt install fail2ban iptablesСтруктура на Fail2ban
Конфигурационните файлове на fail2ban се намират в директорията /etc/fail2ban/:- fail2ban.conf – настройки по подразбиране на услугата fail2ban;
- fail2ban.d/*.* – потребителски настройки за услугата fail2ban;
- jail.conf – настройки по подразбиране на джейла за защитени услуги;
- jail.d/*.* – потребителски настройки на джейла за защитени услуги;
- filter.d/*.* – конфигуриране на модели за търсене в системните дневници (logs);
- action.d/*.* – настройки на действието;
- paths*.conf – настройки за отделните операционни системи.
Конфигуриране на Fail2ban
След като Fail2ban е инсталиран, е време да го конфигурирате. Конфигурацията включва промяна на конфигурационния файл, за да се определи кои услуги искате да защитите.Стъпка 1: Базови настройки
При обновяване на пакетите системата може да презапише файловете с настройки на джайла по подразбиране, затова препоръчвам да създадете персонализирани файлове с настройки.Също така трябва да деактивирате настройките по подразбиране за защита на SSH в Fail2ban:
>/etc/fail2ban/jail.d/defaults-debian.confСтъпка 2: Конфигуриране на сигурността на SSH
Създайте файл /etc/fail2ban/jail.d/sshd.conf със следното съдържание:[sshd]
enabled = true
bantime = 1800
findtime = 600
maxretry = 3
- enabled - включва джайл
- maxretry - максимален брой неуспешни опити за влизане в системата в секунди findtime
- bantime - време за блокиране в секунди
За Дебиан 12 също трябва да добавите един ред, за да откриете правилно SSH:
echo "sshd_backend = systemd" >> /etc/fail2ban/paths-debian.confСтъпка 3: Проверка на работата на услугата
С това конфигурацията на jail sshd за fail2ban е завършена и трябва да рестартирате услугата:systemctl restart fail2banПроверка на работата на услугата:
systemctl status fail2banСтъпка 4: Проверете списъка за блокиране на IP адреси
За да получите списък на IP адресите, блокирани от jail sshd, използвайте командата:fail2ban-client status sshd
Стъпка 5: Управление на блокирането на IP адреси в jail
За да деблокирате даден IP адрес, използвайте командата:fail2ban-client set sshd unbanip 1.2.3.4За да добавите IP към „белия списък“, т.е. за да предотвратите бъдещо блокиране на IP, използвайте командата:
fail2ban-client set sshd addignoreip 1.2.3.4За да получите списък на всички IP адреси, които се игнорират, използвайте командата:
fail2ban-client get sshd ignoreipМожете да премахнете даден IP адрес от този списък с командата:
fail2ban-client set sshd delignoreip 1.2.3.4Всички тези промени са временни и ще бъдат възстановени, когато услугата Fail2ban или сървърът като цяло бъдат рестартирани.
Стъпка 6: Управление на постоянни блокировки в jail
Постоянно блокираните IP адреси могат да бъдат записани в конфигурационния файл на jail /etc/fail2ban/jail.d/sshd.confignoreip = 1.1.1.1 2.2.2.2В параметъра ignoreip, както в конфигурационния файл на jail, така и за временно управление, IP адресите се задават в списък, разделен с интервал.
Не е необходимо да посочвате собствени IP адреси на сървъри. Те се игнорират по подразбиране.
За да приложите тези промени, вече трябва да рестартирате услугата fail2ban:
systemctl restart fail2banАнализ на работата на fail2ban
По време на работа fail2ban записва цялата информация в системния дневник (log файл) /var/log/fail2ban.log.По-долу ще изброя няколко полезни команди за анализ.
Списък на всички блокирани IP адреси:
fail2ban-client bannedПолучаване на джайл, на който IP е блокиран:
fail2ban-client banned 1.2.3.4Списък на всички блокирани IP адреси от джайла sshd:
fail2ban-client get sshd bannedЗа други опции за анализиране или управление на fail2ban вижте изхода на командата:
fail2ban-client -hПо подразбиране fail2ban блокира използването на iptables. Ако желаете, можете да го конфигурирате отново за ipset, което е за предпочитане при големи списъци с блокиращи елементи.
Можете да проверите списъка с блокирани IP адреси в джайла sshd в защитната стена с командата:
iptables -nL f2b-sshd