- Pagpapatupad ng isang dynamic na sistema ng pagharang sa IP batay sa pagsusuri ng mga access log.
- Paggamit ng mga .local configuration file upang maiwasan ang pagkawala ng mga setting habang nag-a-update ng system.
- Kakayahang protektahan ang maraming channel para sa mga kritikal na serbisyo tulad ng SSH, mga web server, mga database, at FTP.
- Pamamahala sa mga ban at pag-unban sa totoong oras gamit ang command-line tool na fail2ban-client.

Ang pagkakaroon ng isang Linux server na nakalantad sa network ay parang paglalagay ng magnet para sa mga bot. Kung hindi ka pa nakakapag-configure ng anumang mga hakbang sa seguridad, malamang na mayroon ka nang libu-libong nabigong pagtatangka sa pag-login sa iyong mga log; may mga awtomatikong makina na patuloy na sumusubok ng mga kumbinasyon ng username at password upang subukang kontrolin ang iyong makina sa pamamagitan ng mga brute-force na pag-atake.
Dito pumapasok ang Fail2ban, isang tool na nagsisilbing walang kapagurang bantay. Hindi ito isang firewall sa pinakahuling kahulugan, kundi sinusuri nito ang mga system log at, kapag nakita nitong may pumipilit na pumasok, binabasag nito ang pinto sa harap nila sa pamamagitan ng pagharang sa kanilang IP address gamit ang mga tool tulad ng iptables o nftables. Tingnan natin kung paano ito i-configure upang gawing mahirap lutasin ang iyong server.
Ano nga ba ang Fail2ban at paano ito gumagana?
Sa madaling salita, ang Fail2ban ay isang daemon na patuloy na sinusubaybayan ang mga log file ng iyong mga serbisyo. Kapag nakakita ito ng mga kahina-hinalang pattern na tumutugma sa mga paunang natukoy na panuntunan, na tinatawag na mga filter , sinisimulan nitong bilangin ang mga pagkabigo. Kung ang isang IP address ay umabot sa limitasyon ng mga pinapayagang pagtatangka sa loob ng isang partikular na oras, ang programa ay nagsasagawa ng isang aksyon , na karaniwang kinabibilangan ng pagdaragdag ng IP address na iyon sa blacklist ng firewall.
Ang mga konpigurasyong ito ay nakaayos sa tinatawag na mga jail . Ang jail ay karaniwang isang hanay ng mga patakaran na inilalapat sa isang partikular na serbisyo (tulad ng SSH, Apache, o MySQL). Sa ganitong paraan, maaari kang magkaroon ng isang napakahigpit na patakaran para sa malayuang pag-access at isang mas mapagpahintulot para sa web server, na tinitiyak na ang mga nanghihimasok ay awtomatikong naharang nang hindi mo kinakailangang manu-manong suriin ang mga log bawat limang minuto.

Pag-install ayon sa iyong distribusyon ng Linux
Depende sa kung aling sistema ang iyong ginagamit, ang utos na i-install ito ay bahagyang nag-iiba, ngunit karaniwan itong makukuha sa halos lahat ng opisyal na repositoryo.
- Sa Ubuntu at Debian: Napakasimple lang, kailangan mo lang tumakbo
sudo apt updatesinusundan ngsudo apt install fail2ban. - Sa Rocky Linux o AlmaLinux: Dahil ang mga ito ay mga distribusyon ng Enterprise, dapat mo munang paganahin ang repositoryo ng EPEL gamit ang
sudo dnf install epel-releaseat pagkatapos ay i-install ang pakete gamit angsudo dnf install fail2ban fail2ban-firewalld. - Sa Alpine Linux: Gamitin ang APK manager gamit ang
sudo apk add fail2banAt, dahil gumagamit ito ng OpenRC, dapat mo itong paganahin gamit angsudo rc-update add fail2ban defaultat simulan ito sasudo rc-service fail2ban start.

Pangunahing konpigurasyon: Ang sikreto ng .local file
Ang isang karaniwang pagkakamali ay ang direktang pag-edit ng file. jail.confHuwag mong gawin 'yan! Maaaring ma-overwrite ang file na 'yan kapag na-update mo ang system. Ang ginintuang tuntunin ay ang paggawa ng kopya na tinatawag na jail.localAnumang mga parameter na idadagdag mo sa pangalawang file na ito ay uunahin kaysa sa orihinal, at ang iyong mga pagbabago ay mapapatungan. ligtas mula sa mga update.
Para magsimula, maaari mong i-clone ang orihinal na file gamit ang sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local at pagkatapos ay buksan ito gamit ang iyong paboritong editor, tulad ng nano o vim. Sa seksyong [DEFAULT] Dito mo tinutukoy ang pangkalahatang pag-uugali ng sistema:
- oras ng kainan: Ang tagal ng panahon na mananatiling naka-freeze ang malisyosong IP address. Maaari itong nasa segundo o gamit ang 'm' sa loob ng minuto (hal., 10m).
- oras ng paghahanap: Ang agwat ng oras kung kailan sinusuri ng Fail2ban ang mga error. Kung ang isang tao ay nabigo ng 5 beses sa isang oras ngunit ang findtime ay 10 minuto, hindi sila maba-ban.
- maxretry: Ang bilang ng mga nabigong pagtatangka na pinapayagan bago sabihin ng system Tama na at harangan ang IP.
- ignoreip: Mahalaga para maiwasan ang pag-ban sa iyong sarili. Dito mo dapat ilagay ang iyong pampublikong IP address o ang iyong saklaw ng VPN.

Hakbang-hakbang na pagprotekta sa mga partikular na serbisyo
Kapag na-configure na ang mga pangkalahatang setting, oras na para i-activate ang mga jail para sa mga serbisyong pinaka-kinababahala mo. Para gumana ang isang proteksyon, dapat mong itakda enabled = true sa kani-kanilang seksyon sa loob ng jail.local.
Pag-access sa SSH (Ang pinakamahalagang punto)
Ang Port 22 ang pangunahing target. Ang isang matatag na configuration ay magtatakda ng maxretry = 3 at bantime = 3600 (isang oras). Babasahin ng Fail2ban ang file. /var/log/auth.log (sa Debian/Ubuntu) o / var / log / secure (sa CentOS/RHEL) upang matukoy ang mga pagkabigo sa pagpapatotoo at isara ang access sa attacker.
Mga Web Server (Apache at Nginx)
Kung mayroon kang website o online store, susubukan ng mga bot na i-access ang mga sensitibong ruta tulad ng /wp-admin o /login.phpMaaari kang gumawa ng mga custom na filter sa /etc/fail2ban/filter.d/ upang matukoy ang mga pattern na ito. Halimbawa, upang Protektahan ang WordPress403 na mga error o mga nabigong pagtatangka ang minomonitor sa wp-login.php, hinaharangan ang IP kung lumampas ito sa mga limitasyong itinakda sa Apache o Nginx jail.
Mga Database at FTP
Para sa MySQL, maaari mong subaybayan ang error log para sa parirala Tinanggihan ang access para sa userSa kaso ng FTP (tulad ng ProFTPD), mahalagang tiyakin na ang logpath itugma ang aktwal na path sa iyong mga log, dahil kung hindi mahanap ng Fail2ban ang log file, hindi gagana ang proteksyon.
Mas mataas na pamamahala gamit ang fail2ban-client
Hindi mo kailangang palaging i-edit ang mga file at i-restart ang serbisyo para makagawa ng mabilis na mga pagbabago. Ang utos fail2ban-client Pinapayagan ka nitong pamahalaan ang sistema nang walang kahirap-hirap mula sa console.
Para makita kung aling mga kulungan ang aktibo at kung ilang IP ang naharang, gamitin ang sudo fail2ban-client statusKung gusto mong mas malalimang pag-aralan ang isang serbisyo, tulad ng SSH, patakbuhin ang sudo fail2ban-client status sshdBukod pa rito, kung hindi sinasadya Na-block mo ang isang kasamahan O maaari mong mabilis na ilabas ang IP address gamit ang utos sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Pagpapanatili at pag-troubleshoot
Kung mapapansin mong hindi humaharang ang Fail2ban gaya ng nararapat, ang unang dapat tingnan ay ang sariling log file ng tool. /var/log/fail2ban.log. Gamit tail -f Makikita mo agad kung sino ang pinagbabawalan at bakit.
Tandaan na iniimbak ng Fail2ban ang status ng lock sa isang SQLite database sa /var/lib/fail2ban/fail2ban.sqlite3Samakatuwid, kung ire-restart mo ang server, ang mga IP na na-ban ay maa-unban. mananatiling naka-block hanggang sa matapos ang iyong panahon ng parusa. Sa tuwing gagawa ka ng mga pagbabago sa mga configuration file, huwag kalimutang ilapat ang mga pagbabago gamit ang sudo systemctl restart fail2ban.
Ang pagpapatupad ng tool na ito ay magbabago sa iyong server mula sa isang madaling target patungo sa isang awtomatikong kuta, na magbabawas sa CPU load sa pamamagitan ng pagtatapon ng malisyosong trapiko sa network layer at magbibigay-daan sa iyong matulog nang mahimbing dahil alam mong hindi magagawang brute-force ng mga bot ang kanilang pagpasok. Sa pamamagitan ng pagsasama-sama ng paggamit ng mga .local file, pamamahala ng mga partikular na jail, at patuloy na pagsubaybay sa log, makakamit mo ang isang sistemang may malalim na depensa na mahalaga para sa sinumang administrador ng system ng Linux.