“Fail2ban” -y “Rocky Linux” we “AlmaLinux” -da nädip gurmaly


Python-da ýazylan Fail2ban, serweri zalym güýçli hüjümlerden goraýan erkin we açyk çeşme çozuşyň öňüni alyş ulgamy (IPS).

Belli bir mukdarda nädogry parol synanyşyklaryndan soň, müşderiniň IP adresi belli bir wagta ýa-da ulgam dolandyryjysy ony açýança girmek gadagan edilýär. Şeýlelik bilen ulgam bir öý eýesinden gaýta-gaýta gazaply hüjümlerden goralýar.

[Şeýle hem halap bilersiňiz: OpenSSH serwerini nädip goramaly we saklamaly]

“Fail2ban” ýokary derejede düzülip bilner we SSH, vsftpd, Apache we Webmin ýaly köp sanly hyzmatlary üpjün etmek üçin döredilip bilner.

Bu gollanmada, “Rocky Linux” we “AlmaLinux” -da “Fail2ban” -y nädip gurnap we sazlap boljakdygyna ünsi jemleýäris.

1-nji ädim: “Firewalld” -yň işleýändigine göz ýetiriň

Düzgüne görä, Roki Firewalld işleýär. Şeýle-de bolsa, ulgamyňyzda beýle bolmasa, “Firewalld” -y ýerine ýetirip başlaň:

$ sudo systemctl start firewalld

Soňra ony ýükleme wagtyndan başlamaga mümkinçilik beriň:

$ sudo systemctl enable firewalld

Soňra “Firewalld” -yň ýagdaýyny barlaň

$ sudo systemctl status firewalld

Mundan başga-da, buýruk ulanyp häzirki wagtda ýerine ýetirilýän Firewalld düzgünleriniň hemmesini tassyklap bilersiňiz:

$ sudo firewall-cmd --list-all

2-nji ädim: EPEL-i Rocky Linux-a guruň

“Fail2ban” we beýleki zerur paketleri gurnamagyň talaby hökmünde, RHEL esasly paýlamalar üçin goşmaça ýokary hilli paketleri üpjün edýän EPEL ammaryny gurmaly.

$ sudo dnf install epel-release

3-nji ädim: “Fail2ban” -y “Rocky Linux” -da guruň

EPEL gurnalansoň, fail2ban we fail2ban-firewalld paketini dowam etdiriň we guruň.

$ sudo dnf install fail2ban fail2ban-firewalld

Bu, beýleki baglylyklar bilen birlikde, fail2ban serwerini we firewalld komponentini gurýar.

“Fail2ban” gurmak bilen, “fail2ban” hyzmatyny başlaň.

$ sudo systemctl start fail2ban

Ony ýükleme wagtyndan başlamaga mümkinçilik beriň.

$ sudo systemctl enable fail2ban

“Fail2ban” hyzmatynyň ýagdaýyny buýrugy işledip barlap bilersiňiz:

$ sudo systemctl status fail2ban

Çykyş, Fail2ban-yň garaşyşymyz ýaly işleýändigini tassyklaýar.

4-nji ädim: “Rocky Linux” -da “Fail2ban” -y sazlamak

Geçmek bilen, şowsuz2ban-yň göz öňünde tutulşy ýaly işlemegi üçin sazlamaly. Iň gowusy, esasy konfigurasiýa faýly - /etc/fail2ban/jail.conf redaktirlärdik. Muňa garamazdan, bu ruhdan düşýär. Iş meýilnamasy hökmünde türme.conf konfigurasiýa faýlynyň mazmunyny türme.local faýlyna göçürer.

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

Indi, islän redaktoryňyzy ulanyp, prison.local faýly açyň.

$ sudo vim /etc/fail2ban/jail.local

[DEFAULT] bölüminiň aşagynda aşakdaky sazlamalaryň bardygyna göz ýetiriň.

bantime = 1h
findtime = 1h
maxretry = 5

Sypatlary kesgitläliň:

  • Çekiş möhleti görkezmesi, tassyklamak synanyşyklaryndan soň müşderiniň gadagan ediljek wagtyny kesgitleýär.
  • Gözleg wagty görkezmesi, nädogry parol synanyşyklaryny göz öňünde tutanyňyzda fail2ban göz öňünde tutýan dowamlylygy ýa-da döwri.
  • Maksretri parametri, uzakdaky müşderiniň serwere girmeginiň öňüni almazdan ozal parol synanyşyklarynyň iň köp sanydyr. Bu ýerde, 5 sany tassyklama şowsuzlygyndan soň müşderi gulplanar.

Düzgüne görä, fail2ban iptables bilen işleýär. Şeýle-de bolsa, bu gorag diwarynyň peýdasyna ýatyryldy. “Iptables” -iň ýerine “firewalld” bilen işlemek üçin “fail2ban” -y sazlamaly.

Şonuň üçin buýruk bilen ylgaň:

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

Üýtgeşmeleri ulanmak üçin fail2ban täzeden açyň:

$ sudo systemctl restart fail2ban

5-nji ädim: Fail2ban bilen SSH hyzmatyny üpjün etmek

Düzgüne görä, goramak isleýän hyzmatyňyz üçin türme konfigurasiýasyny açýançaňyz, fail2ban uzakdaky hosty blokirlemeýär. Türmäniň konfigurasiýasy /etc/fail2ban/jail.d ýolunda görkezilýär we türme.local faýlynda görkezilen konfigurasiýany ýok eder.

Bu mysalda, SSH hyzmatyny goramak üçin türme konfigurasiýa faýly dörederis. Şonuň üçin SSH türme faýlyny dörediň.

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

Ondan soň aşakdaky setirleri goýuň:

[sshd]
enabled = true

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

Aboveokardaky konfigurasiýada, SSH giriş synanyşyklaryndan 3 sany şowsuz synanyşykdan soň uzakdaky hostyň 1 günüň dowamynda ulgama girmegi gadagan ediler. Üýtgeşmeleri ýazdyryň we fail2ban hyzmatyny täzeden açyň.

$ sudo systemctl restart fail2ban

Ondan soň, “fail2ban-client” buýruk setirini ulanyp, türmäniň konfigurasiýa ýagdaýyny barlaň.

$ sudo fail2ban-client status

Çykyşdan, “sshd” atly hyzmat üçin düzülen 1 türmäniň bardygyny görüp bileris.

Mundan başga-da, almak opsiýasyny ulanyp, sshd türmesiniň iň ýokary bahasyny tassyklap bilersiňiz.

$ sudo fail2ban-client get sshd maxretry

3

3-nji çap edilen baha sshd.local faýlynda görkezenleriňize laýyk gelmelidir.

6-njy ädim: Fail2ban konfigurasiýasyny barlamak

“Fail2ban” gurup, SSH hyzmaty üçin türme konfigurasiýa faýly döredilenden soň, her bir parol soragy üçin nädogry paroly görkezip, synag işini ýerine ýetireris we 3 sany şowsuz girişi simulasiýa ederis.

Şonuň üçin uzakdaky Linux ulgamyna geçiň we nädogry paroly ulanyp girmäge synanyşyň. 3 gezek şowsuz synanyşykdan soň birikme kesiler we gaýtadan birikdirmek synanyşygy gadaganlyk gutarýança petiklener.

Bloklanan müşderi ulgamlary barada düşünje ýygnamak üçin türmäniň ýagdaýyny barlaň.

$ sudo fail2ban-client status sshd

Müşderini türmeden çykarmak ýa-da aýyrmak üçin buýrugy ýerine ýetiriň:

$ sudo fail2ban-client unban 192.168.2.102

Müşderiniň gadagan edilen IP sanawyna goşulmaýandygyny ýa-da ýokdugyny ýene bir gezek barlaň.

$ sudo fail2ban-client status sshd

Görşümiz ýaly, Fail2ban Linux ulgamyňyzy bozmak isleýän çozuşlardan goranmak üçin örän peýdaly guraldyr. Firewalld bilen bilelikde belli bir mukdarda giriş synanyşyklaryndan soň müşderi ulgamlaryny belli bir möhletde gadagan etmek üçin işleýär. Şeýle etmek bilen, Linux serweriňiz üçin goşmaça gorag gatlagyny üpjün edýär.