Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

fail2ban paroolide arvamise vastu

Moodul 5: Võrgu kaitsmine · Lugemisaeg: 10 minutit

Õpieesmärk: Pärast seda õppetundi oskad seadistada fail2bani SSH jaoks, lugeda selle olekut ja logi, vabastada aadressi blokeeringust ning selgitada, mida fail2ban kaitseb ja mida mitte.

Põhimõisted: brute force, jail, filter, toiming (banaction), maxretry, findtime, bantime, bantime.increment, ignoreip, backend systemd, jail.conf, jail.local ja jail.d, fail2ban-client, recidive

Interneti ukselingi katsujad

Vaata päev pärast paigaldamist SSH logisse ja näed seda kohe: sadu sisselogimiskatseid nimedega nagu root, admin, test, ubuntu ja oracle, aadressidelt üle kogu maailma.

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

(Ubuntus on teenuse nimi ssh, AlmaLinuxis ja Rockys sshd. Protsessi nimi võib olla sshd või sshd-session, olenevalt OpenSSH versioonist.) See on jõurünne (brute force): robotid, mis lihtsalt proovivad läbi kõik levinud nimed ja paroolid. Kui logid sisse võtmetega ja parooliga sisselogimine on välja lülitatud (õppetund 2.2), ei pääse nad kunagi sisse, ükskõik kui palju nad proovivad. Aga nad täidavad su logi, võtavad natuke arvutusvõimsust ning teenustes, kus parool on siiski vajalik (veebipost, halduspaneel), võivad nad olla päriselt ohtlikud.

fail2ban loeb logisid, tunneb ära ebaõnnestunud katsed ja lukustab liiga sageli ebaõnnestuva aadressi mõneks ajaks tulemüüris.

Kuidas fail2ban mõtleb: jailid

fail2ban töötab jailidega (kongidega). Jail ühendab kolm asja:

  • filter: regulaaravaldised, mis tunnevad logis ära ebaõnnestunud katsed (näiteks rea "Invalid user ... from <adres>");
  • toiming: mis juhtub liiga paljude katsete korral, tavaliselt tulemüürireegel, mis aadressi blokeerib (banaction, Debian 13-s vaikimisi nftablesi kaudu);
  • lävendid: mitu ebaõnnestunud katset (maxretry) millise aja jooksul (findtime) toob kaasa kui pika blokeeringu (bantime).

Failis jail.conf on vaikeväärtused: maxretry = 5, findtime = 10m, bantime = 10m. Seega: viis ebaõnnestunud katset kümne minuti jooksul annab kümneminutilise blokeeringu.

Paigaldamine ja Debian 12 lõks

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

Debianis ja Ubuntus on SSH jail ([sshd]) pärast paigaldamist juba sees, faili /etc/fail2ban/jail.d/defaults-debian.conf kaudu.

On üks tuntud lõks. fail2ban peab teadma, kus logi asub. Varem oli see tekstifail /var/log/auth.log. Alates Debian 12-st ei paigaldata rsyslogi enam vaikimisi ja teated on ainult systemd journalis (õppetund 6.2). Debian 12 fail2bani pakett otsis ikka veel faili /var/log/auth.log, ei leidnud seda ega käivitunud. Debian 13 lahendas selle, pannes failis defaults-debian.conf SSH jaoks kirja backend = systemd. Debian 12-s lahendad selle ise (vt allpool), tehes sama. Ubuntus on rsyslog endiselt vaikimisi olemas, aga ka seal töötab backend = systemd.

Sinu enda seaded: jail.local

Ära muuda kunagi faili jail.conf: see asendatakse uuendamisel. Pane oma seaded faili /etc/fail2ban/jail.local või kausta /etc/fail2ban/jail.d/ faili, mille laiend on .local:

# /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

Mida read teevad:

  • bantime = 1h: tunnine blokeering kümne minuti asemel.
  • bantime.increment = true: kes pärast blokeeringut tagasi tuleb, saab iga kord pikema blokeeringu.
  • ignoreip: aadressid, mida kunagi ei blokeerita. Pane siia oma kontori püsiv IP-aadress, kui see sul on. Ära pane siia suuri vahemikke "igaks juhuks".
  • backend = systemd: loe tekstifaili asemel journalit (vajalik Debian 12-s, soovitatav kõikjal). Selleks peab olema paigaldatud pakett python3-systemd; tavaliselt on see sõltuvusena juba olemas.

Laadi uuesti ja kontrolli:

anna@web1:~$ sudo fail2ban-client -t            # seadistuse testimine
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

Oleku lugemine, blokeerimine ja vabastamine

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

"Currently failed" on aadressid, mis on juba katseid teinud, aga pole veel lävendit ületanud. "Currently banned" on aadressid, mis on praegu blokeeritud.

Kui oled ennast blokeerinud (näiteks proovides paar korda vale võtme või kasutajanimega), logi sisse teise võrgu või konsooli kaudu ja vabasta oma aadress:

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

fail2bani enda logi asub failis /var/log/fail2ban.log ja näitab, millal milline aadress blokeeriti ja vabastati:

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

Kordajad: recidive

Mõned robotid tulevad pärast iga blokeeringut lihtsalt tagasi. Selleks on kaks vahendit. bantime.increment (ülal) teeb blokeeringu iga kord pikemaks. Lisaks on olemas jail recidive: see loeb fail2bani enda logi ja blokeerib aadressi, mis on ööpäeva jooksul sageli blokeeritud, nädalaks kõigil portidel. Lülita see sisse oma .local-failis:

[recidive]
enabled = true

Mida fail2ban teeb ja mida mitte

fail2ban on kasulik, aga see ei ole lukk uksel. Lukk on võtmega sisselogimine, kui paroolid on välja lülitatud (õppetund 2.2). Seepärast tea ka, mida fail2ban ei suuda:

  • Hajutatud rünne tuhandetelt aadressidelt, igaüks ühe või kahe katsega, ei ületa kunagi väärtust maxretry.
  • Nõrk parool jääb nõrgaks. fail2ban aeglustab arvamist, rohkem mitte.
  • Ainult see, mis on logis: teenust, mis ebaõnnestunud katseid ei logi, või logi, mida fail2ban ei loe, see ei näe.
  • Docker: blokeeringud tavalises tulemüüriahelas ei kehti avaldatud konteineriportidele (õppetund 9.3). Konteinerites olevate teenuste jaoks on vaja eraldi seadistust (toiming ahelal DOCKER-USER).

Mida fail2ban teeb hästi: hoiab logi rahulikuna, vähendab robotite koormust ja kaitseb teenuseid, kus kasutad (veel) paroole, näiteks veebiposti või halduspaneeli. Selliste teenuste jaoks on filtrid nginxile, Postfixile, Dovecotile ja paljudele teistele.

AlmaLinuxis ja Rocky Linuxis

Seal tuleb fail2ban EPEL-ist: dnf install epel-release ja siis dnf install fail2ban. Pakett fail2ban paigaldab ka sidumise firewalldiga. SSH teenuse nimi on sshd. Lülita jail ise sisse .local-failis; erinevalt Debianist ei ole see automaatselt sees.

Kokkuvõte

  • Robotid proovivad terve päeva sisse logida; võtmete ja väljalülitatud paroolisisselogimisega nad sisse ei pääse, fail2ban hoiab neid lisaks eemal.
  • Jail on filter + toiming + lävendid (maxretry, findtime, bantime); vaikimisi 5 katset 10 minuti jooksul, 10 minutit blokeeringut.
  • Oma seaded pane faili jail.local või jail.d/*.local, mitte kunagi faili jail.conf; kasuta backend = systemd (vajalik Debian 12-s).
  • fail2ban-client status sshd näitab blokeeritud aadresse, set sshd unbanip vabastab; recidive ja bantime.increment tegelevad kordajatega.
  • fail2ban ei peata hajutatud rünnakuid ega nõrku paroole ega näe Dockeri porte iseenesest.

Test (quiz)

1. Paigaldasid Debian 12-le fail2bani ja see ei käivitu, teatega, et sshd jaili jaoks pole logifaili. Mis on põhjus?



2. Miks paned oma seaded faili jail.local, mitte faili jail.conf?



3. Vaikeseaded on maxretry = 5, findtime = 10m, bantime = 10m. Üks aadress teeb ebaõnnestunud katse kell 14:00, 14:03, 14:05, 14:08 ja 14:09. Mis juhtub?



4. Su server saab iga päev tuhandeid sisselogimiskatseid, mis on jaotunud kümnete tuhandete aadresside vahel, igaüks üks katse. Mida fail2ban selle vastu teeb?



5. Blokeerisid ennast, kirjutades paar korda vale kasutajanime. Mis on korralik lahendus?



Ülesanne

Ülesanne Z5.3: Sissemurdmise logi lugemine. Näidisfailis ssh-journal-1.txt on lõik fail2baniga SSH-serveri journalist ning käsu fail2ban-client status sshd väljund. Vasta: milline aadress proovis kõige rohkem kasutajanimesid, milline aadress suutis võtmega sisse logida ja millise kasutajana, milline aadress blokeeriti ja mis kell, ning kas see aadress oleks ka vaikeseadetega (maxretry = 5, findtime = 10m) blokeeritud? Programm võrdleb vastuseid kindla võtmega. Kui sul on oma server fail2baniga, vaata seal ka käsu fail2ban-client status sshd väljundit.

Ülesanne Z5.3: Sissemurdmise logi lugemine

Selle ülesande fail: ssh-journal-1.txt








Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…