La sekvanta teksto estas la dosiero LEGUMIN
el la pakaĵo.
You may want to read the English version.
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
aŭ /etc/pam.conf
)
auth require pam_sieĝo.so
aŭ auth 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
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---
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.
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
>.