Ugrás a tartalomhoz

Sütibeállítások

Típusonként válassza ki, mely sütiket engedélyezi. Választását bármikor módosíthatja a Sütibeállítások linken, amely minden oldal alján megtalálható. Adatvédelmi nyilatkozat

Szükséges

Mindig bekapcsolva

A bejelentkezéshez, a kosár megőrzéséhez és a választásai megjegyzéséhez szükségesek. Ezek mindig be vannak kapcsolva.

Milyen sütik?
  • weboke_sessie, weboke_klant, weboke_remember: a munkamenet és a bejelentkezve maradás
  • weboke_basket: a kosár
  • wkBtwIncl: az árak megjelenítése ÁFÁ-val vagy anélkül
  • wok_cookies: a sütiválasztás, 12 hónap

Méri, melyik hirdetés vezet látogatáshoz vagy rendeléshez, hogy ne fizessünk hatástalan hirdetésekért.

Milyen sütik?
  • Google Ads a Google Tag Manageren keresztül (_gcl_au, _gcl_aw), legfeljebb 90 napig
  • OpenAI Ads, hirdetések a ChatGPT-ben
  • wok_aff: melyik partnerünk ajánlására érkezett (partnerprogram), 60 nap

4,6

Ország és nyelv

Minden országnak saját oldala van, az adott ország áraival és ÁFA-jával.

Megtekintés

fail2ban a jelszótalálgatás ellen

Modul 5: A hálózat védelme · Olvasási idő: 10 perc

Tanulási cél: A lecke után Ön képes lesz a fail2bant SSH-hoz beállítani, a státuszát és a naplóját elolvasni, egy címet újra feloldani, és elmagyarázni, mit véd a fail2ban és mit nem.

Kulcsfogalmak: brute force, jail, szűrő (filter), művelet (banaction), maxretry, findtime, bantime, bantime.increment, ignoreip, backend systemd, jail.conf, jail.local és jail.d, fail2ban-client, recidive

Az internet kilincsrángatói

Nézzen bele egy nappal a telepítés után az SSH naplójába, és látni fogja: több száz bejelentkezési kísérlet, olyan nevekkel, mint root, admin, test, ubuntu és oracle, a világ minden tájáról érkező címekről.

anna@web1:~$ sudo journalctl -u ssh --since today | grep -c "Invalid user"
412
anna@web1:~$ sudo journalctl -u ssh --since today | grep "Invalid user" | tail -n 3
nov 09 14:02:11 web1 sshd-session[20311]: Invalid user admin from 203.0.113.77 port 51522
nov 09 14:02:13 web1 sshd-session[20313]: Invalid user oracle from 203.0.113.77 port 51544
nov 09 14:02:16 web1 sshd-session[20315]: Invalid user test from 203.0.113.77 port 51560

(Ubuntun a szolgáltatás neve ssh, AlmaLinuxon és Rockyn sshd. A folyamat neve az OpenSSH verziójától függően sshd vagy sshd-session lehet.) Ez egy brute force támadás: botok, amelyek egyszerűen végigpróbálják az összes szokásos felhasználónevet és jelszót. Ha kulccsal jelentkezik be, és a jelszavas bejelentkezés ki van kapcsolva (2.2. lecke), soha nem jutnak be, akárhányszor próbálkoznak is. Viszont teleírják a naplót, némi számítási kapacitást is elvesznek, és azoknál a szolgáltatásoknál, ahol mégis jelszó kell (egy webmail, egy kezelőpanel), valóban veszélyesek lehetnek.

A fail2ban naplókat olvas, felismeri a sikertelen kísérleteket, és azt a címet, amely túl sokszor hibázik, egy időre letiltja a tűzfalban.

Hogyan gondolkodik a fail2ban: jailek

A fail2ban jailekkel (cellákkal) dolgozik. Egy jail három dolgot kapcsol össze:

  • egy szűrőt: reguláris kifejezéseket, amelyek egy naplóban felismerik a sikertelen kísérleteket (például a "Invalid user ... from <adres>" sort);
  • egy műveletet: azt, ami túl sok kísérlet esetén történik, többnyire egy tűzfalszabályt, amely letiltja a címet (banaction, Debian 13-on alapértelmezetten nftables segítségével);
  • küszöbértékeket: hány sikertelen kísérlet (maxretry) mennyi időn belül (findtime) vezet mennyi ideig tartó tiltáshoz (bantime).

A jail.conf alapértelmezett értékei: maxretry = 5, findtime = 10m, bantime = 10m. Vagyis: öt sikertelen kísérlet tíz percen belül tíz perc tiltást eredményez.

Telepítés és a Debian 12 csapdája

anna@web1:~$ sudo apt install fail2ban
anna@web1:~$ sudo systemctl status fail2ban

Debianon és Ubuntun az SSH-hoz tartozó jail ([sshd]) a telepítés után már be van kapcsolva, a /etc/fail2ban/jail.d/defaults-debian.conf fájlon keresztül.

Van egy ismert csapda. A fail2bannak tudnia kell, hol található a napló. Korábban ez a /var/log/auth.log szöveges fájl volt. A Debian 12 óta az rsyslog alapértelmezetten már nincs telepítve, és az üzenetek csak a systemd journaljában szerepelnek (6.2. lecke). A Debian 12 fail2ban csomagja még a /var/log/auth.log fájlt kereste, nem találta, és nem indult el. A Debian 13 ezt úgy oldotta meg, hogy a defaults-debian.conf fájlban az SSH-hoz beállította a backend = systemd értéket. Debian 12-n ugyanezt Önnek kell megtennie (lásd lent). Az Ubuntun az rsyslog még alapértelmezetten megvan, de a backend = systemd ott is működik.

Saját beállítások: jail.local

A jail.conf fájlt soha ne módosítsa: egy frissítéskor ezt a fájlt lecseréli a rendszer. Saját beállításait a /etc/fail2ban/jail.local fájlba vagy a /etc/fail2ban/jail.d/ mappában egy .local kiterjesztésű fájlba írja:

# /etc/fail2ban/jail.d/eigen.local
[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5
bantime.increment = true
ignoreip = 127.0.0.1/8 ::1 198.51.100.20

[sshd]
enabled = true
backend = systemd

Mit csinálnak a sorok:

  • bantime = 1h: egy óra tiltás tíz perc helyett.
  • bantime.increment = true: aki egy tiltás után visszatér, minden alkalommal hosszabb tiltást kap.
  • ignoreip: címek, amelyeket soha nem tilt le. Ide írja az irodája fix IP-címét, ha van ilyen. Ide ne írjon nagy címtartományokat "a biztonság kedvéért".
  • backend = systemd: szöveges fájl helyett a journalt olvassa (Debian 12-n szükséges, máshol is ajánlott). Ehhez telepítve kell lennie a python3-systemd csomagnak; függőségként többnyire már az.

Újratöltés és ellenőrzés:

anna@web1:~$ sudo fail2ban-client -t            # konfiguráció tesztelése
OK: configuration test is successful
anna@web1:~$ sudo systemctl reload fail2ban
anna@web1:~$ sudo fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   sshd

A státusz olvasása, tiltás és feloldás

anna@web1:~$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 3
|  |- Total failed:     1288
|  `- Journal matches:  _SYSTEMD_UNIT=ssh.service + _COMM=sshd
`- Actions
   |- Currently banned: 2
   |- Total banned:     117
   `- Banned IP list:   203.0.113.77 198.51.100.140

A "Currently failed" azokat a címeket jelenti, amelyek már próbálkoztak, de még nem lépték túl a küszöböt. A "Currently banned" azok a címek, amelyek jelenleg le vannak tiltva.

Ha saját magát tiltotta ki (például azzal, hogy néhányszor rossz kulccsal vagy felhasználónévvel próbálkozott), jelentkezzen be egy másik hálózatról vagy a konzolon keresztül, és oldja fel a címét:

anna@web1:~$ sudo fail2ban-client set sshd unbanip 198.51.100.20

Magának a fail2bannak a naplója a /var/log/fail2ban.log helyen található, és megmutatja, mikor melyik címet tiltotta le és oldotta fel:

2026-11-09 14:02:16,903 fail2ban.actions [811]: NOTICE  [sshd] Ban 203.0.113.77
2026-11-09 15:02:17,120 fail2ban.actions [811]: NOTICE  [sshd] Unban 203.0.113.77

Visszaesők: recidive

Egyes botok minden tiltás után egyszerűen visszatérnek. Erre két eszköz létezik. A bantime.increment (lásd fent) minden alkalommal meghosszabbítja a tiltást. Emellett ott van a recidive jail: ez magának a fail2bannak a naplóját olvassa, és azt a címet, amelyet egy napon belül sokszor letiltottak, egy hétre az összes porton letiltja. Bekapcsolás a .local fájlban:

[recidive]
enabled = true

Mit csinál a fail2ban, és mit nem

A fail2ban hasznos, de nem ez a zár az ajtón. A zár a kulccsal történő bejelentkezés, kikapcsolt jelszavakkal (2.2. lecke). Ezért azt is tudja, mire nem képes a fail2ban:

  • Egy elosztott támadás több ezer címről, címenként egy-két kísérlettel, soha nem lépi túl a maxretry értéket.
  • Egy gyenge jelszó gyenge marad. A fail2ban lassítja a találgatást, semmi több.
  • Csak azt látja, ami a naplóban van: egy szolgáltatást, amely nem naplózza a sikertelen kísérleteket, vagy egy naplót, amelyet a fail2ban nem olvas, nem vesz észre.
  • Docker: a normál tűzfallánc tiltásai nem vonatkoznak a közzétett konténerportokra (9.3. lecke). A konténerekben futó szolgáltatásokhoz külön beállítás szükséges (művelet a DOCKER-USER láncon).

Amiben a fail2ban jó: nyugodtan tartja a naplót, csökkenti a botok okozta terhelést, és védi azokat a szolgáltatásokat, ahol (még) jelszót használ, például egy webmailt vagy kezelőpanelt. Ilyen szolgáltatásokhoz vannak szűrők nginxhez, Postfixhez, Dovecothoz és sok máshoz.

AlmaLinuxon és Rocky Linuxon

Ott a fail2ban az EPEL-ből érkezik: dnf install epel-release, majd dnf install fail2ban. A fail2ban csomag a firewalld-kapcsolatot is telepíti. Az SSH-szolgáltatás neve sshd. Magát a jailt egy .local fájlban kapcsolja be; a Debiantól eltérően itt nincs automatikusan bekapcsolva.

Összefoglalás

  • A botok egész nap próbálnak bejelentkezni; kulcsokkal és kikapcsolt jelszavas bejelentkezéssel nem jutnak be, a fail2ban emellett távol tartja őket.
  • Egy jail = szűrő + művelet + küszöbértékek (maxretry, findtime, bantime); alapértelmezetten 5 kísérlet 10 percen belül, 10 perc tiltás.
  • Saját beállítások a jail.local vagy a jail.d/*.local helyen, soha nem a jail.conf fájlban; használja a backend = systemd beállítást (Debian 12-n szükséges).
  • A fail2ban-client status sshd megmutatja a letiltott címeket, a set sshd unbanip feloldja őket; a recidive és a bantime.increment kezeli a visszaesőket.
  • A fail2ban nem állítja meg az elosztott támadásokat és a gyenge jelszavakat, és a Docker-portokat sem látja magától.

Kvíz

1. Debian 12-n telepítette a fail2bant, de nem indul el, azzal az üzenettel, hogy nincs naplófájl az sshd jailhez. Mi az oka?



2. Miért a jail.local helyre írja a beállításait, és miért nem a jail.conf fájlba?



3. Az alapértelmezett beállítások: maxretry = 5, findtime = 10m, bantime = 10m. Egy cím 14:00-kor, 14:03-kor, 14:05-kor, 14:08-kor és 14:09-kor tesz sikertelen kísérletet. Mi történik?



4. A szervere naponta több ezer bejelentkezési kísérletet kap, több tízezer címről elosztva, címenként egy kísérlettel. Mit tesz ez ellen a fail2ban?



5. Kitiltotta saját magát, mert néhányszor rossz felhasználónevet írt be. Mi a helyes megoldás?



Feladat

Feladat Z5.3: Behatolási napló olvasása. A ssh-journal-1.txt mintafájlban egy fail2bant használó SSH-szerver journaljának egy részlete található, valamint a fail2ban-client status sshd kimenete. Válaszolja meg: melyik cím próbálta a legtöbb felhasználónevet, melyik címnek sikerült kulccsal bejelentkeznie és melyik felhasználóként, melyik címet tiltotta le a rendszer és hány órakor, és az alapértelmezett beállításokkal (maxretry = 5, findtime = 10m) is letiltotta volna-e ezt a címet? A program a rögzített megoldókulccsal veti össze a válaszait. Ha van saját szervere fail2bannal, ott is nézze meg a fail2ban-client status sshd kimenetét.

Z5.3. feladat: Behatolási napló olvasása

A feladathoz tartozó fájl: ssh-journal-1.txt








Amit beír, és amit találunk, azt nem tároljuk. A böngészője megjegyzi a válaszait és azt, hogy teljesítette e a feladatot. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy a feladat (majdnem) helyes volt; ott ezt is törölheti.

További olvasnivaló

Egy pillanat…

Domainek beállítása

Állítsa be domainenként a névszervereket, a tárhelyhez való kapcsolást és azt, hogy ki legyen a tulajdonos.

Domainek betöltése…