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

Последње ажурирање: КСНУМКС Септембер оф КСНУМКС
  • Имплементација динамичког система блокирања IP адреса на основу анализе логова приступа.
  • Коришћење .local конфигурационих датотека ради спречавања губитка подешавања током ажурирања система.
  • Могућност вишеканалне заштите за критичне сервисе као што су SSH, веб сервери, базе података и FTP.
  • Управљање забранама и одбанама у реалном времену помоћу алатке командне линије fail2ban-client.

ИТ стручњак ради са лаптопом у модерном дата центру, идеалном за увођење безбедности сервера.

Имати Linux сервер изложен мрежи је у суштини као стављање магнета за ботове. Ако нисте конфигурисали никакве безбедносне мере, вероватно већ имате хиљаде неуспелих покушаја пријављивања у својим евиденцијама; постоје аутоматизоване машине које стално покушавају комбинације корисничког имена и лозинке како би покушале да преузму контролу над вашом машином путем напада грубом силом.

Ту на сцену ступа Fail2ban, алат који делује као неуморни чувар. То није заштитни зид у најстрожем смислу, већ анализира системске логове и, када открије да неко покушава да се на силу увуче, залупи му врата пред лицем блокирајући његову IP адресу помоћу алата попут iptables или nftables. Да видимо како да га конфигуришемо да би ваш сервер био тврд орах.

Шта је тачно Fail2ban и како функционише?

Једноставно речено, Fail2ban је демон који континуирано прати лог датотеке ваших сервиса. Када пронађе сумњиве обрасце који одговарају унапред дефинисаним правилима, названим филтери , почиње да броји неуспехе. Ако IP адреса достигне ограничење дозвољених покушаја у одређеном временском периоду, програм извршава акцију , која обично укључује додавање те IP адресе на црну листу заштитног зида.

Ове конфигурације су организоване у такозване затворе (jails ). Затвор је у основи скуп правила која се примењују на одређену услугу (као што су SSH, Apache или MySQL). На овај начин можете имати веома строгу политику за удаљени приступ и попустљивију за веб сервер, осигуравајући да се уљези аутоматски блокирају без потребе да ручно проверавате логове сваких пет минута.

  SteamOS: све информације које су вам потребне да бисте га разумели

Симбол сајбер напада са особом која држи хакерску маску поред регала са Линукс серверима.

Инсталација према вашој Линук дистрибуцији

У зависности од тога који систем користите, команда за његову инсталацију се мало разликује, али је генерално доступна у скоро свим званичним репозиторијумима.

  • На Убунтуу и Дебијану: Веома је једноставно, само треба да трчиш sudo apt update сегуидо де sudo apt install fail2ban.
  • На Rocky Linux-у или AlmaLinux-у: Пошто су ово Enterprise дистрибуције, прво морате омогућити EPEL репозиторијум са sudo dnf install epel-release а затим инсталирајте пакет са sudo dnf install fail2ban fail2ban-firewalld.
  • У Алпском Линуксу: Користите APK менаџер са sudo apk add fail2ban И, пошто користи OpenRC, морате га омогућити помоћу sudo rc-update add fail2ban default и почните са sudo rc-service fail2ban start.

Професионални детаљ серверских регала у дата центру са плавим осветљењем, који представљају серверску инфраструктуру.

Главна конфигурација: Тајна .local датотеке

Веома честа грешка је директно уређивање датотеке. jail.confНе ради то! Та датотека може бити преписана када ажурирате систем. Златно правило је да направите копију под називом затвор.локалниСви параметри које додате овој другој датотеци имаће предност над оригиналом, а ваше измене ће бити преписане. безбедно од ажурирања.

За почетак, можете клонирати оригиналну датотеку помоћу sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local а затим га отворите помоћу свог омиљеног едитора, као што су nano или vim. У одељку [УОБИЧАЈЕНО] Овде дефинишете целокупно понашање система:

  • време забране: Временски период током којег ће злонамерна IP адреса остати замрзнута. Ово може бити у секундама или коришћењем „m“ за минуте (нпр. 10m).
  • пронађи време: Временски интервал у којем Fail2ban проверава грешке. Ако неко не успе 5 пута у сат времена, али је време проналажења 10 минута, неће бити забрањен.
  • макс. поновни покушај: Дозвољени број неуспелих покушаја пре него што систем каже Доста и блокирај ИП адресу.
  • игноришите ip: Важно је избећи да се сами забраните. Овде морате унети своје јавна ИП адреса или ваш VPN опсег.
  Трка са временом у модерној сајбер безбедности

Крупни план оптичких мрежних каблова повезаних са пословним сервером, који илуструје мрежну повезаност и безбедност.

Заштита одређених услуга корак по корак

Када се општа подешавања конфигуришу, време је да активирате затворе за сервисе који вас највише занимају. Да би заштита функционисала, морате подесити enabled = true у одговарајућем одељку унутар jail.local.

SSH приступ (најкритичнија тачка)

Порт 22 је циљ број један. Робусна конфигурација би дефинисала maxretry = 3 и а bantime = 3600 (један сат). Fail2ban ће прочитати датотеку. /вар/лог/аутх.лог (на Дебијану/Убунтуу) или / вар / лог / сецуре (на 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-клијента

Не морате увек да уређујете датотеке и поново покрећете сервис да бисте брзо направили измене. Команда fail2ban-client Омогућава вам да управљате системом у ходу из конзоле.

Да бисте видели који су затвори активни и колико је ИП адреса блокирано, користите sudo fail2ban-client statusАко желите дубље да се позабавите услугом, као што је SSH, покрените sudo fail2ban-client status sshdШтавише, ако грешком Блокирали сте колегу Или можете брзо сами да ослободите ИП адресу помоћу команде sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Одржавање и решавање проблема

Ако приметите да Fail2ban не блокира како би требало, прво место које треба погледати је сопствена датотека дневника алата. /var/log/fail2ban.log. Усандо tail -f Можете видети у реалном времену ко је забрањен и зашто.

  Гном 49: Шта је ново, техничке промене и апликације које постављају курс

Запамтите да Fail2ban чува статус закључавања у SQLite бази података у /var/lib/fail2ban/fail2ban.sqlite3Стога, ако поново покренете сервер, забрањене ИП адресе ће бити одбањене. остаће блокиран док не истекне период казне. Кад год правите измене у конфигурационим датотекама, не заборавите да примените измене са sudo systemctl restart fail2ban.

Имплементација овог алата трансформише ваш сервер од лаке мете у аутоматизовану тврђаву, смањујући оптерећење процесора одбацивањем злонамерног саобраћаја на мрежном слоју и омогућавајући вам да мирно спавате знајући да ботови неће моћи да се пробију грубом силом. Комбиновањем употребе .local датотека, управљања одређеним затворима и сталног праћења логова, постижете систем дубинске одбране неопходан за сваког Linux систем администратора.