Как да конфигурирате Fail2ban за защита на вашия Linux сървър

Последна актуализация: 3 Септември на 2026
Автор: TecnoDigital

ИТ специалист, работещ с лаптоп в модерен център за данни, идеален за въвеждане на сървърна сигурност.

Да имате Linux сървър, изложен на мрежата, е по същество като да пуснете магнит за ботове. Ако не сте конфигурирали никакви мерки за сигурност, вероятно вече имате хиляди неуспешни опити за влизане в лог файловете си; има автоматизирани машини, които постоянно опитват комбинации от потребителско име и парола, за да се опитат да поемат контрола над вашата машина чрез атаки с груба сила.

Тук се намесва Fail2ban, инструмент, който действа като неуморен пазач. Той не е защитна стена в най-строгия смисъл на думата, а по-скоро анализира системните лог файлове и когато засече, че някой се опитва да проникне, затръшва вратата пред лицето му, като блокира IP адреса му с помощта на инструменти като iptables или nftables. Нека видим как да го конфигурирате, за да направите сървъра си корав орех за счупване.

Какво точно е Fail2ban и как работи?

Казано по-просто, Fail2ban е демон, който непрекъснато следи лог файловете на вашите услуги. Когато открие подозрителни модели, които съответстват на предварително дефинирани правила, наречени филтри , той започва да брои неуспехите. Ако даден IP адрес достигне лимита на разрешените опити в рамките на определено време, програмата изпълнява действие , което обикновено включва добавяне на този IP адрес към черния списък на защитната стена.

Тези конфигурации са организирани в така наречените „джейлове“ . Джейлът е основно набор от правила, прилагани към конкретна услуга (като SSH, Apache или MySQL). По този начин можете да имате много строга политика за отдалечен достъп и по-разрешителна такава за уеб сървъра, като гарантирате, че нарушителите се блокират автоматично, без да се налага ръчно да проверявате лог файловете на всеки пет минути.

  Най-добрите уеб ресурси за Linux: Пълно ръководство

Символ на кибератака с човек, държащ хакерска маска до стелажи с Linux сървъри.

Инсталация според вашата Linux дистрибуция

В зависимост от това коя система използвате, командата за инсталирането ѝ варира леко, но като цяло е достъпна в почти всички официални хранилища.

  • В Ubuntu и Debian: Много е просто, просто трябва да бягаш sudo apt update последвано от sudo apt install fail2ban.
  • В Rocky Linux или AlmaLinux: Тъй като това са Enterprise дистрибуции, първо трябва да активирате EPEL хранилището с sudo dnf install epel-release и след това инсталирайте пакета с sudo dnf install fail2ban fail2ban-firewalld.
  • В Alpine Linux: Използвайте APK мениджъра с sudo apk add fail2ban И тъй като използва OpenRC, трябва да го активирате с sudo rc-update add fail2ban default и започнете с sudo rc-service fail2ban start.

Професионален детайл на сървърни стелажи в център за данни със синьо осветление, представляващ сървърната инфраструктура.

Главна конфигурация: Тайната на .local файла

Много често срещана грешка е директното редактиране на файла. jail.confНе го правете! Този файл може да бъде презаписан, когато актуализирате системата. Златното правило е да създадете копие, наречено jail.localВсички параметри, които добавите към този втори файл, ще имат предимство пред оригинала и промените ви ще бъдат презаписани. защитен от актуализации.

За начало можете да клонирате оригиналния файл с sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local и след това го отворете с любимия си редактор, като например nano или vim. В секцията [ПО ПОДРАЗБИРАНЕ] Тук определяте цялостното поведение на системата:

  • време за забрана: Продължителността на времето, през което злонамереният IP адрес ще остане замразен. Това може да бъде в секунди или с помощта на „m“ за минути (напр. 10 м).
  • време за намиране: Интервалът от време, в който Fail2ban проверява за грешки. Ако някой се провали 5 пъти за един час, но времето за намиране е 10 минути, той няма да бъде баннат.
  • макс. повторен опит: Броят на неуспешните опити, разрешени преди системата да каже Стига и блокирай IP адреса..
  • игнорирай ip: Важно е да избегнете самозабраняване. Тук трябва да въведете вашето публичен IP адрес или вашия VPN диапазон.
  Квалификации и сертификати: пълно ръководство за подобряване на вашия профил

Едър план на оптични мрежови кабели, свързани към корпоративен сървър, илюстриращ мрежовата свързаност и сигурност.

Защита на специфични услуги стъпка по стъпка

След като общите настройки са конфигурирани, е време да активирате затворите за услугите, които ви засягат най-много. За да работи защитата, трябва да настроите enabled = true в съответния му раздел в рамките на jail.local.

SSH достъп (най-критичната точка)

Порт 22 е цел номер едно. Една стабилна конфигурация би определила maxretry = 3 и bantime = 3600 (един час). Fail2ban ще прочете файла. /var/log/auth.log (в Debian/Ubuntu) или / Var / дневник / сигурна (на CentOS/RHEL) за откриване на грешки при удостоверяване и затваряне на достъпа на нападателя.

Уеб сървъри (Apache и Nginx)

Ако имате уебсайт или онлайн магазин, ботовете ще се опитат да получат достъп до чувствителни маршрути, като например /wp-admin o /login.phpМожете да създавате персонализирани филтри в /etc/fail2ban/filter.d/ да открие тези модели. Например, за да Защитете WordPressГрешки 403 или неуспешни опити се наблюдават в wp-login.php, блокирайки IP адреса, ако той надвишава ограниченията, зададени в затвора на Apache или Nginx.

Бази данни и FTP

За MySQL можете да следите лога на грешките за фразата Достъпът е отказан за потребителяВ случай на FTP (като ProFTPD), е жизненоважно да се гарантира, че logpath съпоставете действителния път с вашите лог файлове, защото ако Fail2ban не може да намери лог файла, защитата просто няма да работи.

Разширено управление с fail2ban-client

Не винаги е необходимо да редактирате файлове и да рестартирате услугата, за да правите бързи промени. Командата fail2ban-client Това ви позволява да управлявате системата в движение от конзолата.

За да видите кои затвори са активни и колко IP адреса са блокирани, използвайте sudo fail2ban-client statusАко искате да се задълбочите в услуга, като например SSH, изпълнете sudo fail2ban-client status sshdОсвен това, ако по погрешка Блокирахте колега Или можете бързо да освободите IP адреса сами с командата sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Поддръжка и отстраняване на неизправности

Ако забележите, че Fail2ban не блокира както би трябвало, първото място, където трябва да погледнете, е собственият лог файл на инструмента. /var/log/fail2ban.log. Използвайки tail -f Можете да видите в реално време кой е баннат и защо.

  Отдалечен работен плот на Chrome: Краят на персоналните компютри?

Не забравяйте, че Fail2ban съхранява състоянието на заключване в SQLite база данни в /var/lib/fail2ban/fail2ban.sqlite3Следователно, ако рестартирате сървъра, забранените IP адреси ще бъдат отменени. ще остане блокиран докато изтече периодът на наказанието. Винаги, когато правите промени в конфигурационните файлове, не забравяйте да приложите промените с sudo systemctl restart fail2ban.

Внедряването на този инструмент трансформира вашия сървър от лесна мишена в автоматизирана крепост, намалявайки натоварването на процесора, като отхвърля злонамерен трафик на мрежовото ниво и ви позволява да спите спокойно, знаейки, че ботовете няма да могат да проникнат чрез груба сила. Чрез комбиниране на използването на .local файлове, управлението на специфични jail-ове и постоянно наблюдение на лог файловете, вие постигате система за дълбока защита, необходима за всеки Linux системен администратор.