La sekvanta teksto estas la dosiero LEGUMIN el la pakaĵo.
You may want to read the English version.


pam_sieĝo

Tio ĉi estas pam-modulo kiu helpas defendi vian kastelon, barante vian pordon por vizitantoj kiuj plurfoje malsukcese provas eniri.

Ĉi tiu programo estas disponigita laŭ permesilo GNU GPL (vidu KOPII).

Por ekuzi ĝin, skribu:

$make
$su -c 'cp pam_siegho.so /lib/security' # loko por la pam-bibliotekoj

Se vi volas fari version kiu ne uzas UTF-8, forigu en pam_siegho.c la linion #define UTF8 1.

Poste por la servoj por kiuj vi volas uzi sieĝo-protekton, aldonu linion al la pam-agordoj (/etc/pam.d/servo/etc/pam.conf) auth require pam_sieĝo.soauth requisite pam_sieĝo.so. Se vi uzas require, pam ĉiam demandos la pasvorton (aŭ alia aŭtentikiga maniero), ĉu la vizitanto jam tro multe provis aŭ ne, per requisite, la vizitanto estos tuj forriglata (en la dua kazo nepre metu la linion antaŭ la aliaj aŭtentikigaj linioj, kiel ekzemple pasvorto). Ekzemplo:

auth requisite pam_siegho.so
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so

Ankaŭ vi faru regularon por pam_sieĝo en /etc/sieĝo (vi povas ŝanĝi la supozatan lokon en pam_siegho.c aŭ per aldono de argumento regularo=loko al la modula linio en la pam-agordoj). La regularo povas esti normala dosiero aŭ dosierujo. Se ĝi estas ujo, la dosiero kun la nomo sama al la pam-servo estos uzata, aŭ aliaj se ĝi ne ekzistas. La ogordoj kiujn vi povas fari estas jenaj (se vi ne indikas agordon, la valoroj donataj ĉi tie estos uzataj; linioj komencantaj per # estas rimarkoj):

notlibro=/var/log/sieĝo
# Kie memori la timon

rekonaĵo=armeo
# Kiel rekoni la vizitanton (ne ĉiuj servoj difinas ĉion; vi ne povas
# uzi nedifinitajn rekonaĵojn). Tio ĉi estas listo de rekonajhoj
# separataj de komoj (,). La eblaj rekonaĵoj estas:
# * anonco (USER: kiun la vizitanto pretendas esti)
# * militisto (RUSER: nomo de la vizitanto en sia propra komputilo)
# * armeo (RHOST: DNS-nomo de la komputilo de la vizitanto)
# Vi konsciu ke la vizitanto povas pretendi kion ajn por anonco, kaj
# eble ankaŭ por militisto. La armeo (DNS-nomo) povas ŝanĝiĝi de tempo
# al tempo kun dinamikaj IP-adresoj.
# Do, se vi volas nombri la provojn de unu homo en unu komputilo,
# eniri kiel unu uzulo ĉe vi, skribu:
#rekonajho=anonco,militisto,armeo

timemo=1m
# Kiom longe memori provojn (s=sekundoj, m=minutoj, h=horoj, t=tagoj).

limo=10
# Nombro da provoj.

daŭro=1t
# Tempo por forrigli vizitanton se la timo superas la limon.

ago=
# Ago kiam la vizitanto estas forriglata.
# Por sendi retmesaĝon, uzu:
#ago=echo "$MILITISTO@$ARMEO --> $ANONCO tro ofte provis eniri" | mail -s "riglite por $ARMEO" root

Nu, kiel funkcias tion ĉi?

Por ĉiu vizitanto, la tempo de la lasta provo kaj la timo estas memorataj (en la notlibro). Ĉiufoje kiam vizitanto provas eniri (kiam pam estas vokata), la timo pliiĝas je unu unuo, kaj malpliiĝas je unu unuo por ĉiu tempo timemo kiu pasis depost la antaŭa provo. Se post tio la timo superas la limon, la vizitanto ne povos eniri kaj la ago estos farata. Se la vizitanto, dum li estas forriglita, ankoraŭfoje provas eniri antaŭ la forpaso de la daŭro , la tempo de la lasta provo renoviĝas (do li devos denove plene atendi la daŭron), sed la ago ne denove fariĝos. Post sukcesa eniro, la gardisto retrankviliĝas pri tiu vizitanto (la timo fariĝas 0).

Ni rigardos ekzemplon: rekonaĵo estas armeo, ago estas sendi retmesaĝon al root, timemo estas unu minuto, limo estas 10 kaj daŭro estas unu tago.

---post du minutoj---

---post duona tago---

---post duona tago---

---post du tagoj---

Ideoj por utiligado

Unu maniero utiligi tion ĉi estas por protekti vian ssh (aŭ alian) servilon kontraŭ atakoj de homoj kiuj provas konjekti pasvorton. Agordu rekonaĵo al armeo. Per ipset (vidu http://www.ipset.netfilter.org/), vi povos do havi agon kiu aldonas la adreson de la atakanto al ip-aro kun forpastempo unu tagon, kaj en viaj iptablaj reguloj, aldoni regulon kiu forbaras pakaĵojn de tiuj adresoj.

Mi trovis eraron / volas kontakti la aŭtoron

Se vi trovis eraron, havas ideojn por plibonigoj, nepre volas rakonti okazintaĵon rilatan tiun ĉi programeton, ... kontaktu la aŭtoron (por programŝanĝoj, patĉoj kompreneble estas bonvenaj): Maarten Deprez <maartendeprez ĉe users punkto sourceforge punkto net>.