Hvernig á að setja upp Fail2ban á Rocky Linux og AlmaLinux


Skrifað í Python, Fail2ban er ókeypis og opinn uppspretta Intrusion Prevention System (IPS) sem verndar þjóninn gegn brute-force árásum.

Eftir ákveðinn fjölda rangra tilrauna með lykilorði er IP-tölu viðskiptavinar bannað að fá aðgang að kerfinu í tiltekinn tíma eða þar til kerfisstjórinn opnar það. Þannig er kerfið varið fyrir endurteknum árásum frá einum hýsil.

[Þér gæti líka líkað við: Hvernig á að tryggja og herða OpenSSH Server ]

Fail2ban er mjög stillanlegt og hægt að setja upp til að tryggja mýgrút af þjónustu eins og SSH, vsftpd, Apache og Webmin.

Í þessari handbók leggjum við áherslu á hvernig þú getur sett upp og stillt Fail2ban á Rocky Linux og AlmaLinux.

Skref 1: Gakktu úr skugga um að Firewalld sé í gangi

Sjálfgefið er að Rocky kemur með Firewalld í gangi. Hins vegar, ef þetta er ekki raunin á kerfinu þínu, byrjaðu Firewalld með því að keyra:

$ sudo systemctl start firewalld

Virkjaðu síðan til að byrja á ræsitíma:

$ sudo systemctl enable firewalld

Staðfestu síðan stöðu Firewalld

$ sudo systemctl status firewalld

Að auki geturðu staðfest allar Firewalld reglurnar sem nú er framfylgt með því að nota skipunina:

$ sudo firewall-cmd --list-all

Skref 2: Settu upp EPEL í Rocky Linux

Sem kröfu fyrir uppsetningu á fail2ban og öðrum nauðsynlegum pakka þarftu að setja upp EPEL geymsluna sem veitir viðbótar hágæða pakka fyrir RHEL-undirstaða dreifingar.

$ sudo dnf install epel-release

Skref 3: Settu upp Fail2ban í Rocky Linux

Með EPEL uppsett skaltu halda áfram og setja upp fail2ban og fail2ban-firewalld pakkann.

$ sudo dnf install fail2ban fail2ban-firewalld

Þetta setur upp fail2ban þjóninn og eldvegg íhlutinn ásamt öðrum ósjálfstæðum.

Þegar uppsetningu fail2ban er lokið skaltu ræsa fail2ban þjónustuna.

$ sudo systemctl start fail2ban

Og virkjaðu það til að byrja á ræsitíma.

$ sudo systemctl enable fail2ban

Þú getur staðfest stöðu fail2ban þjónustunnar með því að keyra skipunina:

$ sudo systemctl status fail2ban

Úttakið er staðfesting á því að Fail2ban er í gangi eins og við var að búast.

Skref 4: Stilla Fail2ban í Rocky Linux

Áfram þurfum við að stilla fail2ban til að það virki eins og ætlað er. Helst myndum við breyta aðalstillingarskránni - /etc/fail2ban/jail.conf. Þessu er hins vegar hætt. Sem lausn mun afrita innihald jail.conf stillingarskránnar í jail.local skrána.

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

Opnaðu nú jail.local skrána með því að nota ritilinn sem þú vilt.

$ sudo vim /etc/fail2ban/jail.local

Undir [sjálfgefið] hlutanum skaltu ganga úr skugga um að þú hafir eftirfarandi stillingar eins og þær birtast.

bantime = 1h
findtime = 1h
maxretry = 5

Við skulum skilgreina eiginleikana:

  • Bantime tilskipunin tilgreinir þann tíma sem viðskiptavinur verður bannaður eftir misheppnaðar auðkenningartilraunir.
  • Findtime tilskipunin er tímalengd eða tímabil sem fail2ban mun taka til greina þegar endurteknar rangar tilraunir með lykilorð eru skoðaðar.
  • Maxretry færibreytan er hámarksfjöldi rangra tilrauna með lykilorði áður en ytri biðlari er lokað fyrir aðgang að þjóninum. Hér verður viðskiptavinurinn læstur eftir 5 auðkenningarbilanir.

Sjálfgefið er að fail2ban virkar með iptables. Hins vegar hefur þetta verið afskrifað í þágu eldveggsins. Við þurfum að stilla fail2ban til að vinna við hlið eldveggsins í stað iptables.

Svo skaltu keyra með skipuninni:

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

Til að beita breytingunum skaltu endurræsa fail2ban:

$ sudo systemctl restart fail2ban

Skref 5: Tryggja SSH þjónustu með Fail2ban

Sjálfgefið er að fail2ban lokar ekki á neinn ytri hýsil fyrr en þú virkjar fangelsisstillingu fyrir þjónustu sem þú vilt tryggja. Jail stillingin er tilgreind í /etc/fail2ban/jail.d slóðinni og mun hnekkja stillingunum sem tilgreind eru í jail.local skránni.

Í þessu dæmi munum við búa til stillingarskrá fyrir fangelsi til að vernda SSH þjónustuna. Þess vegna skaltu búa til SSH fangelsisskrána.

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

Næst skaltu líma eftirfarandi línur:

[sshd]
enabled = true

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

Í uppsetningunni hér að ofan verður fjarlægur gestgjafi bannaður aðgangur að kerfinu í 1 dag eftir 3 misheppnaðar SSH innskráningartilraunir. Vistaðu breytingarnar og endurræstu fail2ban þjónustuna.

$ sudo systemctl restart fail2ban

Næst skaltu staðfesta stillingu fangelsisins með því að nota fail2ban-client skipanalínuforritið.

$ sudo fail2ban-client status

Af úttakinu getum við séð að við höfum 1 fangelsi stillt fyrir þjónustu sem kallast „sshd“.

Að auki geturðu staðfest maxretry gildi sshd fangelsisins með því að nota get valkostinn.

$ sudo fail2ban-client get sshd maxretry

3

Gildið prentað 3 ætti að passa við það sem þú tilgreindir í sshd.local skránni.

Skref 6: Prófaðu Fail2ban stillingar

Eftir að hafa sett upp fail2ban og búið til fangelsisstillingarskrá fyrir SSH þjónustuna, ætlum við að framkvæma prufukeyrslu og líkja eftir 3 misheppnuðum innskráningum með því að tilgreina rangt lykilorð fyrir hverja lykilorðabeiðni.

Svo farðu yfir í ytra Linux kerfi og reyndu að skrá þig inn með röngu lykilorði. Eftir 3 misheppnaðar tilraunir mun tengingin falla niður og allar síðari tilraunir til að tengjast aftur verða lokaðar þar til bannstíminn rennur út.

Til að afla innsýnar á biðlarakerfin sem eru læst, athugaðu stöðu fangelsisins.

$ sudo fail2ban-client status sshd

Til að afbanna eða fjarlægja viðskiptavininn úr fangelsinu skaltu framkvæma skipunina:

$ sudo fail2ban-client unban 192.168.2.102

Enn og aftur, athugaðu stöðu fangelsisins til að tryggja að viðskiptavinurinn sé ekki með á bannlista IP-listans.

$ sudo fail2ban-client status sshd

Eins og við höfum séð er Fail2ban mjög gagnlegt tæki til að koma í veg fyrir boðflenna sem reyna að brjóta Linux kerfið þitt. Það virkar í tengslum við Firewalld að banna biðlarakerfi í tiltekinn tíma eftir ákveðinn fjölda misheppnaðra innskráningartilrauna. Með því að gera það veitir það auka verndarlag fyrir Linux netþjóninn þinn.