Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

fail2ban prieš slaptažodžių spėliojimą

5 modulis: Tinklo apsauga · Skaitymo laikas: 10 min.

Mokymosi tikslas: Po šios pamokos galėsite nustatyti fail2ban SSH apsaugai, perskaityti jo būseną ir žurnalą, vėl atblokuoti adresą ir paaiškinti, ką fail2ban apsaugo, o ko ne.

Pagrindinės sąvokos: brute force, jail, filtras, veiksmas (banaction), maxretry, findtime, bantime, bantime.increment, ignoreip, backend systemd, jail.conf, jail.local ir jail.d, fail2ban-client, recidive

Interneto durų varstytojai

Praėjus parai po įdiegimo pažvelkite į SSH žurnalą ir pamatysite: šimtai bandymų prisijungti su tokiais vardais kaip root, admin, test, ubuntu ir oracle, iš adresų visame pasaulyje.

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

(Ubuntu sistemoje paslauga vadinasi ssh, AlmaLinux ir Rocky sistemose sshd. Proceso pavadinimas gali būti sshd arba sshd-session, priklausomai nuo OpenSSH versijos.) Tai yra brute force ataka: robotai tiesiog bando visus įprastus vardus ir slaptažodžius. Jei jungiamasi raktais, o prisijungimas slaptažodžiu išjungtas (pamoka 2.2), jie niekada nepateks į vidų, kad ir kiek kartų bandytų. Tačiau jie pildo Jūsų žurnalą, naudoja šiek tiek skaičiavimo galios, o paslaugoms, kuriose slaptažodis vis dėlto reikalingas (žiniatinklio paštui, valdymo skydeliui), jie gali būti tikrai pavojingi.

fail2ban skaito žurnalus, atpažįsta nesėkmingus bandymus ir adresą, kuris per dažnai klysta, kuriam laikui užblokuoja ugniasienėje.

Kaip mąsto fail2ban: jails

fail2ban dirba su jails (kameromis). Kiekviena jail sujungia tris dalykus:

  • filtrą: reguliariąsias išraiškas, kurios žurnale atpažįsta nesėkmingus bandymus (pavyzdžiui, eilutę "Invalid user ... from <adres>");
  • veiksmą: kas nutinka po per daug bandymų, dažniausiai ugniasienės taisyklė, blokuojanti adresą (banaction, Debian 13 sistemoje pagal numatytuosius nustatymus per nftables);
  • ribas: kiek nesėkmingų bandymų (maxretry) per kokį laiką (findtime) lemia kiek trunkantį blokavimą (bantime).

Numatytosios reikšmės iš jail.conf yra: maxretry = 5, findtime = 10m, bantime = 10m. Taigi: penki nesėkmingi bandymai per dešimt minučių reiškia dešimties minučių blokavimą.

Įdiegimas ir Debian 12 spąstai

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

Debian ir Ubuntu sistemose SSH skirta jail ([sshd]) po įdiegimo jau įjungta, per failą /etc/fail2ban/jail.d/defaults-debian.conf.

Yra vieni žinomi spąstai. fail2ban turi žinoti, kur yra žurnalas. Anksčiau tai buvo tekstinis failas /var/log/auth.log. Nuo Debian 12 rsyslog pagal numatytuosius nustatymus nebeįdiegiamas, o pranešimai saugomi tik systemd žurnale (journal, pamoka 6.2). Debian 12 fail2ban paketas vis dar ieškojo /var/log/auth.log, jo nerasdavo ir nepasileisdavo. Debian 13 tai išsprendė, faile defaults-debian.conf SSH nustatydamas backend = systemd. Debian 12 sistemoje tai išspręsite patys (žr. toliau), padarę tą patį. Ubuntu rsyslog vis dar turi pagal numatytuosius nustatymus, tačiau backend = systemd veikia ir ten.

Jūsų nustatymai: jail.local

Niekada nekeiskite jail.conf: atnaujinant šis failas pakeičiamas. Savo nustatymus įrašykite į /etc/fail2ban/jail.local arba į failą kataloge /etc/fail2ban/jail.d/ su plėtiniu .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

Ką daro šios eilutės:

  • bantime = 1h: valandos blokavimas vietoje dešimties minučių.
  • bantime.increment = true: kas po blokavimo grįžta, kaskart gauna ilgesnį blokavimą.
  • ignoreip: adresai, kurie niekada neblokuojami. Čia įrašykite savo biuro fiksuotą IP adresą, jei jį turite. Neįrašykite čia didelių intervalų "dėl visa ko".
  • backend = systemd: skaityti journal vietoje tekstinio failo (būtina Debian 12, rekomenduojama visur). Tam turi būti įdiegtas paketas python3-systemd; dažniausiai jis jau įdiegtas kaip priklausomybė.

Įkelkite iš naujo ir patikrinkite:

anna@web1:~$ sudo fail2ban-client -t            # patikrinti konfigūraciją
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

Būsenos skaitymas, blokavimas ir atblokavimas

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" yra adresai, kurie jau bandė jungtis, bet dar neviršijo ribos. "Currently banned" yra šiuo metu užblokuoti adresai.

Jei užblokavote patys save (pavyzdžiui, kelis kartus bandę su netinkamu raktu ar naudotojo vardu), prisijunkite per kitą tinklą arba konsolę ir atblokuokite savo adresą:

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

Paties fail2ban žurnalas yra /var/log/fail2ban.log ir rodo, kada kuris adresas buvo užblokuotas ir atblokuotas:

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

Pasikartojantys: recidive

Kai kurie robotai po kiekvieno blokavimo tiesiog grįžta. Tam yra dvi priemonės. bantime.increment (aprašyta aukščiau) kaskart prailgina blokavimą. Be to, yra jail recidive: ji skaito paties fail2ban žurnalą ir adresą, kuris per parą buvo dažnai blokuojamas, užblokuoja savaitei visuose prievaduose. Įjunkite ją savo .local faile:

[recidive]
enabled = true

Ką fail2ban daro, o ko ne

fail2ban naudingas, bet tai nėra durų spyna. Spyna yra prisijungimas raktu, kai slaptažodžiai išjungti (pamoka 2.2). Todėl žinokite ir tai, ko fail2ban negali:

  • Paskirstyta ataka iš tūkstančių adresų, kurių kiekvienas bando vieną ar du kartus, niekada neviršija maxretry.
  • Silpnas slaptažodis lieka silpnas. fail2ban tik sulėtina spėliojimą, ne daugiau.
  • Tik tai, kas yra žurnale: paslaugos, kuri neregistruoja nesėkmingų bandymų, arba žurnalo, kurio fail2ban neskaito, jis nemato.
  • Docker: blokavimai įprastoje ugniasienės grandinėje negalioja paskelbtiems konteinerių prievadams (pamoka 9.3). Konteineriuose veikiančioms paslaugoms reikia atskiro nustatymo (veiksmo grandinėje DOCKER-USER).

Ką fail2ban daro gerai: palaiko žurnalą ramų, mažina robotų apkrovą ir saugo paslaugas, kuriose (dar) naudojate slaptažodžius, pavyzdžiui, žiniatinklio paštą ar valdymo skydelį. Tokioms paslaugoms yra filtrų nginx, Postfix, Dovecot ir daugeliui kitų.

AlmaLinux ir Rocky Linux sistemose

Ten fail2ban gaunamas iš EPEL: dnf install epel-release, o tada dnf install fail2ban. Paketas fail2ban įdiegia ir ryšį su firewalld. SSH paslauga vadinasi sshd. Pačią jail įjunkite .local faile; kitaip nei Debian, ji neįjungiama automatiškai.

Santrauka

  • Robotai visą dieną bando prisijungti; kai naudojami raktai, o prisijungimas slaptažodžiu išjungtas, jie nepatenka į vidų, o fail2ban dar ir laiko juos atokiau.
  • Jail yra filtras + veiksmas + ribos (maxretry, findtime, bantime); pagal numatytuosius nustatymus 5 bandymai per 10 minučių, 10 minučių blokavimas.
  • Savo nustatymus laikykite jail.local arba jail.d/*.local, niekada ne jail.conf; naudokite backend = systemd (būtina Debian 12).
  • fail2ban-client status sshd rodo užblokuotus adresus, set sshd unbanip atblokuoja; recidive ir bantime.increment susidoroja su pasikartojančiais.
  • fail2ban nesustabdo paskirstytų atakų ar silpnų slaptažodžių ir savaime nemato Docker prievadų.

Testas (quiz)

1. Debian 12 sistemoje įdiegėte fail2ban, ir jis nepasileidžia, pranešdamas, kad sshd jail neturi žurnalo failo. Kokia priežastis?



2. Kodėl savo nustatymus rašote į jail.local, o ne į jail.conf?



3. Numatytieji nustatymai yra maxretry = 5, findtime = 10m, bantime = 10m. Adresas nesėkmingai bando 14:00, 14:03, 14:05, 14:08 ir 14:09. Kas nutinka?



4. Jūsų serveris kasdien gauna tūkstančius bandymų prisijungti, paskirstytų dešimtims tūkstančių adresų, po vieną bandymą iš kiekvieno. Ką prieš tai daro fail2ban?



5. Užblokavote patys save, kelis kartus įvedę neteisingą naudotojo vardą. Koks tvarkingas sprendimas?



Užduotis

Užduotis Z5.3: Įsilaužimo žurnalo skaitymas. Pavyzdiniame faile ssh-journal-1.txt yra SSH serverio su fail2ban journal ištrauka ir fail2ban-client status sshd išvestis. Atsakykite: kuris adresas išbandė daugiausiai naudotojo vardų, kuris adresas sugebėjo prisijungti raktu ir kaip kuris naudotojas, kuris adresas užblokuotas ir kada, ir ar tas adresas būtų užblokuotas ir su numatytaisiais nustatymais (maxretry = 5, findtime = 10m)? Programa palygina atsakymus su nustatytais teisingais atsakymais. Jei turite savo serverį su fail2ban, peržiūrėkite ir jame fail2ban-client status sshd.

Užduotis Z5.3: Įsilaužimo žurnalo skaitymas

Failas šiai užduočiai: ssh-journal-1.txt








Ko, ką įvedate ir ką randame, nesaugome. Jūsų naršyklė atsimena Jūsų atsakymus ir tai, ar užduotį atlikote. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotis buvo atlikta (ar beveik atlikta); ten tai galite ir pašalinti.

Skaitykite daugiau

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…