Pāriet uz saturu

Sīkdatņu iestatījumi

Izvēlieties, kāda veida sīkdatnes atļaujat. Savu izvēli varat jebkurā laikā mainīt sadaļā Sīkdatņu iestatījumi katras lapas apakšā. Privātuma politika

Nepieciešamās

Vienmēr ieslēgtas

Vajadzīgas, lai pieteiktos, saglabātu grozu un atcerētos Jūsu izvēles. Tās vienmēr ir ieslēgtas.

Kuras sīkdatnes?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsu sesija un pieteikšanās saglabāšana
  • weboke_basket: Jūsu grozs
  • wkBtwIncl: cenu rādīšana ar PVN vai bez PVN
  • wok_cookies: Jūsu sīkdatņu izvēle, 12 mēneši

Mēra, kura reklāma noved pie apmeklējuma vai pasūtījuma, lai mēs nemaksātu par reklāmām, kas neko nedod.

Kuras sīkdatnes?
  • Google Ads ar Google Tag Manager (_gcl_au, _gcl_aw), līdz 90 dienām
  • OpenAI Ads, reklāmas ChatGPT
  • wok_aff: caur kuru partneri nonācāt pie mums (partneru programma), 60 dienas

4,6

Valsts un valoda

Katrai valstij ir sava vietne ar attiecīgās valsts cenām un PVN.

Skatīt

fail2ban pret paroļu minēšanas mēģinājumiem

5. modulis: Tīkla aizsardzība · Lasīšanas laiks: 10 min.

Mācīšanās mērķis: Pēc šīs nodarbības Jūs varēsiet iestatīt fail2ban SSH aizsardzībai, nolasīt tā statusu un žurnālu, atkal atbrīvot adresi un izskaidrot, ko fail2ban aizsargā un ko neaizsargā.

Pamatjēdzieni: brute force, jail, filtrs, darbība (banaction), maxretry, findtime, bantime, bantime.increment, ignoreip, backend systemd, jail.conf, jail.local un jail.d, fail2ban-client, recidive

Interneta durvju klauvētāji

Paskatieties SSH žurnālā dienu pēc instalēšanas, un Jūs to redzēsiet: simtiem pieteikšanās mēģinājumu ar tādiem vārdiem kā root, admin, test, ubuntu un oracle, no adresēm visā pasaulē.

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 sistēmā pakalpojums saucas ssh, AlmaLinux un Rocky sistēmā sshd. Procesa nosaukums var būt sshd vai sshd-session, atkarībā no OpenSSH versijas.) Tas ir brute force uzbrukums: roboti, kas vienkārši izmēģina visus izplatītos vārdus un paroles. Ja pieteikšanās notiek ar atslēgām un pieteikšanās ar paroli ir izslēgta (nodarbība 2.2), tie nekad netiks iekšā, lai cik bieži arī mēģinātu. Taču tie piepilda Jūsu žurnālu, patērē nedaudz skaitļošanas jaudas, un pakalpojumos, kur parole tomēr ir vajadzīga (tīmekļa pasts, pārvaldības panelis), tie var būt patiešām bīstami.

fail2ban lasa žurnālus, atpazīst neveiksmīgus mēģinājumus un uz laiku nobloķē ugunsmūrī adresi, kas pārāk bieži kļūdās.

Kā domā fail2ban: jails

fail2ban strādā ar jails (kamerām). Jail apvieno trīs lietas:

  • filtru: regulārās izteiksmes, kas žurnālā atpazīst neveiksmīgus mēģinājumus (piemēram, rindu "Invalid user ... from <adres>");
  • darbību: kas notiek pēc pārāk daudziem mēģinājumiem, parasti ugunsmūra noteikums, kas bloķē adresi (banaction, Debian 13 sistēmā pēc noklusējuma ar nftables);
  • sliekšņus: cik neveiksmīgu mēģinājumu (maxretry) kādā laikā (findtime) noved pie bloķēšanas uz cik ilgu laiku (bantime).

Noklusējuma vērtības no jail.conf ir: maxretry = 5, findtime = 10m, bantime = 10m. Tātad: pieci neveiksmīgi mēģinājumi desmit minūšu laikā nozīmē desmit minūšu bloķēšanu.

Instalēšana un Debian 12 slazds

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

Debian un Ubuntu sistēmā SSH jail ([sshd]) pēc instalēšanas jau ir ieslēgts, izmantojot failu /etc/fail2ban/jail.d/defaults-debian.conf.

Ir viens zināms slazds. fail2ban ir jāzina, kur atrodas žurnāls. Agrāk tas bija teksta fails /var/log/auth.log. Kopš Debian 12 rsyslog vairs netiek instalēts pēc noklusējuma, un ziņojumi atrodas tikai systemd žurnālā (journal, nodarbība 6.2). Debian 12 fail2ban pakotne joprojām meklēja /var/log/auth.log, neatrada to un nestartēja. Debian 13 to ir novērsis, failā defaults-debian.conf SSH gadījumā iestatot backend = systemd. Debian 12 sistēmā Jūs to novēršat paši (skatiet zemāk), izdarot to pašu. Ubuntu sistēmā rsyslog pēc noklusējuma joprojām ir, taču backend = systemd darbojas arī tur.

Jūsu pašu iestatījumi: jail.local

Nekad nemainiet jail.conf: šis fails atjaunināšanas laikā tiek aizstāts. Savus iestatījumus ierakstiet failā /etc/fail2ban/jail.local vai failā mapē /etc/fail2ban/jail.d/ ar paplašinājumu .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

Ko dara šīs rindas:

  • bantime = 1h: viena stunda bloķēšanas desmit minūšu vietā.
  • bantime.increment = true: kas pēc bloķēšanas atgriežas, katru reizi saņem ilgāku bloķēšanu.
  • ignoreip: adreses, kas nekad netiek bloķētas. Ierakstiet šeit sava biroja statisko IP adresi, ja Jums tāda ir. Neierakstiet šeit lielus diapazonus "drošības pēc".
  • backend = systemd: lasīt journal, nevis teksta failu (nepieciešams Debian 12, ieteicams visur). Šim nolūkam jābūt instalētai pakotnei python3-systemd; parasti tā jau ir instalēta kā atkarība.

Pārlādēšana un pārbaude:

anna@web1:~$ sudo fail2ban-client -t            # pārbaudīt konfigurāciju
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

Statusa nolasīšana, bloķēšana un atbrīvošana

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" ir adreses, kas jau ir veikušas mēģinājumus, bet vēl nav pārsniegušas slieksni. "Currently banned" ir adreses, kas pašlaik ir bloķētas.

Ja esat nobloķējis pats sevi (piemēram, dažas reizes mēģinot ar nepareizu atslēgu vai lietotājvārdu), piesakieties no cita tīkla vai caur konsoli un atbrīvojiet savu adresi:

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

Paša fail2ban žurnāls atrodas /var/log/fail2ban.log un parāda, kad kura adrese tika bloķēta un atbrīvota:

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

Atkārtotāji: recidive

Daži roboti pēc katras bloķēšanas vienkārši atgriežas. Pret tiem ir divi līdzekļi. bantime.increment (skatiet iepriekš) katru reizi padara bloķēšanu ilgāku. Turklāt ir jail recidive: tas lasa paša fail2ban žurnālu un adresi, kas vienas dienas laikā bieži bloķēta, nobloķē uz nedēļu visos portos. Ieslēgšana Jūsu .local failā:

[recidive]
enabled = true

Ko fail2ban dara un ko nedara

fail2ban ir noderīgs, taču tā nav slēdzene durvīs. Slēdzene ir pieteikšanās ar atslēgu, kad paroles ir izslēgtas (nodarbība 2.2). Tāpēc ziniet arī, ko fail2ban nespēj:

  • Izkliedēts uzbrukums no tūkstošiem adrešu, katrai ar vienu vai diviem mēģinājumiem, nekad nepārsniedz maxretry.
  • Vāja parole paliek vāja. fail2ban palēnina minēšanu, nekas vairāk.
  • Tikai tas, kas ir žurnālā: pakalpojumu, kas nereģistrē neveiksmīgus mēģinājumus, vai žurnālu, ko fail2ban nelasa, tas neredz.
  • Docker: bloķēšana parastajā ugunsmūra ķēdē neattiecas uz publicētiem konteineru portiem (nodarbība 9.3). Pakalpojumiem konteineros ir vajadzīgs atsevišķs iestatījums (darbība ķēdē DOCKER-USER).

Ko fail2ban dara labi: uztur žurnālu mierīgu, samazina robotu radīto slodzi un aizsargā pakalpojumus, kuros Jūs (vēl) izmantojat paroles, piemēram, tīmekļa pastu vai pārvaldības paneli. Šādiem pakalpojumiem ir filtri nginx, Postfix, Dovecot un daudziem citiem.

AlmaLinux un Rocky Linux sistēmā

Tur fail2ban nāk no EPEL: dnf install epel-release un pēc tam dnf install fail2ban. Pakotne fail2ban instalē arī sasaisti ar firewalld. SSH pakalpojums saucas sshd. Pašu jail ieslēdziet .local failā; atšķirībā no Debian tas netiek ieslēgts automātiski.

Kopsavilkums

  • Roboti visu dienu mēģina pieteikties; ar atslēgām un izslēgtu pieteikšanos ar paroli tie netiek iekšā, bet fail2ban turklāt tos notur pa gabalu.
  • Jail ir filtrs + darbība + sliekšņi (maxretry, findtime, bantime); pēc noklusējuma 5 mēģinājumi 10 minūtēs, 10 minūšu bloķēšana.
  • Savi iestatījumi failā jail.local vai jail.d/*.local, nekad jail.conf; izmantojiet backend = systemd (nepieciešams Debian 12).
  • fail2ban-client status sshd parāda bloķētās adreses, set sshd unbanip atbrīvo; recidive un bantime.increment tiek galā ar atkārtotājiem.
  • fail2ban neaptur izkliedētus uzbrukumus vai vājas paroles un pats no sevis neredz Docker portus.

Tests

1. Jūs esat instalējis fail2ban sistēmā Debian 12, un tas nestartē ar ziņojumu, ka sshd jail nav žurnāla faila. Kāds ir cēlonis?



2. Kāpēc savus iestatījumus ierakstāt failā jail.local, nevis jail.conf?



3. Noklusējuma iestatījumi ir maxretry = 5, findtime = 10m, bantime = 10m. Kāda adrese veic neveiksmīgu mēģinājumu plkst. 14:00, 14:03, 14:05, 14:08 un 14:09. Kas notiek?



4. Jūsu serveris katru dienu saņem tūkstošiem pieteikšanās mēģinājumu, kas izkliedēti pa desmitiem tūkstošu adrešu, katrai pa vienam mēģinājumam. Ko fail2ban pret to dara?



5. Jūs esat nobloķējis pats sevi, dažas reizes ierakstot nepareizu lietotājvārdu. Kāds ir pareizais risinājums?



Uzdevums

Uzdevums Z5.3: Ielaušanās žurnāla lasīšana. Piemēra failā ssh-journal-1.txt ir SSH servera ar fail2ban journal fragments, kā arī fail2ban-client status sshd izvade. Atbildiet: kura adrese izmēģināja visvairāk lietotājvārdu, kurai adresei izdevās pieteikties ar atslēgu un kā kuram lietotājam, kura adrese ir bloķēta un cikos, un vai šī adrese ar noklusējuma iestatījumiem (maxretry = 5, findtime = 10m) arī būtu bloķēta? Programma salīdzina ar fiksēto atbilžu atslēgu. Ja Jums ir savs serveris ar fail2ban, apskatiet tur arī fail2ban-client status sshd.

Uzdevums Z5.3: Ielaušanās žurnāla lasīšana

Fails šim uzdevumam: ssh-journal-1.txt








To, ko ievadāt, un to, ko atrodam, mēs nesaglabājam. Jūsu pārlūkprogramma atceras Jūsu atbildes un to, vai esat izpildījuši uzdevumu. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums bija (gandrīz) pareizs; tur to varat arī dzēst.

Vairāk lasīt

Lūdzu, uzgaidiet…

Iestatiet savus domēnus

Katram domēnam norādiet vārdu serverus, piesaisti hostingam un to, kurš būs turētājs.

Ielādē Jūsu domēnus…