Jinsi ya kusakinisha Fail2ban kwenye Rocky Linux na AlmaLinux


Imeandikwa katika Python, Fail2ban ni Mfumo wa Kuzuia Uingiliaji wa bure na huria (IPS) ambao hulinda seva dhidi ya mashambulizi ya nguvu.

Baada ya idadi fulani ya majaribio ya nenosiri lisilo sahihi, anwani ya IP ya mteja imepigwa marufuku kufikia mfumo kwa muda maalum au hadi msimamizi wa mfumo aifungue. Kwa njia hii, mfumo unalindwa dhidi ya mashambulizi ya mara kwa mara ya nguvu kutoka kwa mwenyeji mmoja.

[ Unaweza pia kupenda: Jinsi ya Kulinda na Kuimarisha Seva ya OpenSSH ]

Fail2ban inaweza kusanidiwa sana na inaweza kusanidiwa ili kulinda maelfu ya huduma kama vile SSH, vsftpd, Apache, na Webmin.

Katika mwongozo huu, tunazingatia jinsi unavyoweza kusakinisha na kusanidi Fail2ban kwenye Rocky Linux na AlmaLinux.

Hatua ya 1: Hakikisha Firewalld Inatumika

Kwa chaguo-msingi, Rocky huja na Firewalld inayoendesha. Walakini, ikiwa sivyo hivyo kwenye mfumo wako, anza Firewalld kwa kutekeleza:

$ sudo systemctl start firewalld

Kisha iwezeshe kuanza kwa wakati wa kuwasha:

$ sudo systemctl enable firewalld

Kisha uthibitishe hali ya Firewalld

$ sudo systemctl status firewalld

Kwa kuongeza, unaweza kuthibitisha sheria zote za Firewalld zinazotekelezwa kwa sasa kwa kutumia amri:

$ sudo firewall-cmd --list-all

Hatua ya 2: Sakinisha EPEL kwenye Rocky Linux

Kama sharti la usakinishaji wa fail2ban na vifurushi vingine vinavyohitajika, unahitaji kusakinisha hazina ya EPEL ambayo hutoa vifurushi vya ziada vya ubora wa juu kwa usambazaji unaotegemea RHEL.

$ sudo dnf install epel-release

Hatua ya 3: Sakinisha Fail2ban kwenye Rocky Linux

EPEL ikiwa imesakinishwa, endelea na usakinishe fail2ban na kifurushi cha fail2ban-firewalld.

$ sudo dnf install fail2ban fail2ban-firewalld

Hii husakinisha seva ya fail2ban na sehemu ya firewalld pamoja na vitegemezi vingine.

Usakinishaji wa fail2ban ukiwa umekamilika, anza huduma ya fail2ban.

$ sudo systemctl start fail2ban

Na uwezeshe kuanza kwa wakati wa kuwasha.

$ sudo systemctl enable fail2ban

Unaweza kuthibitisha hali ya huduma ya fail2ban kwa kutekeleza amri:

$ sudo systemctl status fail2ban

Matokeo ni uthibitisho kwamba Fail2ban inafanya kazi kama tungetarajia.

Hatua ya 4: Kusanidi Fail2ban katika Rocky Linux

Kuendelea, tunahitaji kusanidi fail2ban ili ifanye kazi kama ilivyokusudiwa. Kwa hakika, tungehariri faili kuu ya usanidi - /etc/fail2ban/jail.conf. Walakini, hii inakatishwa tamaa. Kama suluhisho itanakili yaliyomo kwenye faili ya usanidi ya jail.conf kwa faili ya jail.local.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Sasa, fungua faili ya jail.local kwa kutumia kihariri unachopendelea.

$ sudo vim /etc/fail2ban/jail.local

Chini ya sehemu ya [DEFAULT], hakikisha kuwa una mipangilio ifuatayo jinsi inavyoonekana.

bantime = 1h
findtime = 1h
maxretry = 5

Wacha tufafanue sifa:

  • Agizo la bantime linabainisha muda ambao mteja atapigwa marufuku kufuatia majaribio yasiyofanikiwa ya uthibitishaji.
  • Maelekezo ya wakati wa kupata ni muda au kipindi ambacho fail2ban itazingatiwa wakati wa kuzingatia majaribio ya mara kwa mara ya nenosiri lisilo sahihi.
  • Kigezo cha maxretry ni idadi ya juu zaidi ya majaribio ya nenosiri yasiyo sahihi kabla ya mteja wa mbali kuzuiwa kufikia seva. Hapa, mteja atafungiwa nje baada ya hitilafu 5 za uthibitishaji.

Kwa chaguo-msingi, fail2ban inafanya kazi na iptables. Walakini, hii imekataliwa kwa niaba ya firewalld. Tunahitaji kusanidi fail2ban kufanya kazi pamoja na firewalld badala ya iptables.

Kwa hivyo, endesha na amri:

$ sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Ili kutumia mabadiliko, anzisha upya fail2ban:

$ sudo systemctl restart fail2ban

Hatua ya 5: Kulinda huduma ya SSH na Fail2ban

Kwa chaguomsingi, fail2ban haizuii seva pangishi ya mbali hadi uwashe usanidi wa jela kwa huduma ambayo ungependa kuilinda. Mipangilio ya jela imebainishwa katika njia ya /etc/fail2ban/jail.d na itabatilisha usanidi uliobainishwa kwenye faili ya jail.local.

Katika mfano huu, tutaunda faili ya usanidi wa jela ili kulinda huduma ya SSH. Kwa hivyo, unda faili ya jela ya SSH.

$ sudo vim /etc/fail2ban/jail.d/sshd.local

Ifuatayo, bandika mistari ifuatayo:

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

Katika usanidi ulio hapo juu, seva pangishi ya mbali itapigwa marufuku kufikia mfumo kwa siku 1 baada ya majaribio 3 ya kuingia katika SSH kushindwa. Hifadhi mabadiliko na uanze upya huduma ya fail2ban.

$ sudo systemctl restart fail2ban

Ifuatayo, thibitisha hali ya usanidi wa jela kwa kutumia shirika la amri ya fail2ban-client.

$ sudo fail2ban-client status

Kutoka kwa matokeo, tunaweza kuona kwamba tuna jela 1 iliyosanidiwa kwa huduma inayoitwa 'sshd'.

Kwa kuongeza, unaweza kuthibitisha thamani ya maxretry ya jela ya sshd kwa kutumia chaguo la kupata.

$ sudo fail2ban-client get sshd maxretry

3

Thamani iliyochapishwa 3 inapaswa kuendana na ulichobainisha kwenye faili ya sshd.local.

Hatua ya 6: Kujaribu Usanidi wa Fail2ban

Baada ya kusanidi fail2ban na kuunda faili ya usanidi wa jela kwa huduma ya SSH, tutafanya jaribio na kuiga logi 3 zilizoshindwa kwa kubainisha nenosiri lisilo sahihi kwa kila neno la nenosiri.

Kwa hivyo nenda kwenye mfumo wa mbali wa Linux na ujaribu kuingia kwa kutumia nenosiri lisilo sahihi. Baada ya majaribio 3 kutofaulu, muunganisho utasimamishwa na jaribio lolote linalofuata la kuunganisha tena litazuiwa hadi muda wa kupiga marufuku uishe.

Ili kukusanya maarifa juu ya mifumo ya mteja iliyozuiwa angalia hali ya jela.

$ sudo fail2ban-client status sshd

Ili kubatilisha au kuondoa mteja kutoka jela, tekeleza amri:

$ sudo fail2ban-client unban 192.168.2.102

Kwa mara nyingine tena, angalia hali ya jela ili kuhakikisha kuwa mteja hajajumuishwa kwenye orodha ya IP iliyopigwa marufuku.

$ sudo fail2ban-client status sshd

Kama tulivyoona, Fail2ban ni zana muhimu sana katika kuwaepusha wavamizi wanaotaka kukiuka mfumo wako wa Linux. Inafanya kazi kwa kushirikiana na Firewalld kupiga marufuku mifumo ya mteja kwa muda uliobainishwa baada ya idadi maalum ya majaribio yasiyofanikiwa ya kuingia. Kwa kufanya hivyo, hutoa safu ya ziada ya ulinzi kwa seva yako ya Linux.