Szerver védelem – Denyhosts

A denyhosts szoftver segítségével kitilthatjuk azon IP címeket, amelyekről túl sokszor próbálkoznak bejelentkezni a szerverünkre SSH-n keresztül

Sőt a denyhosts rendelkezik egy központi adatbázissal is , ahonnan beállítás esetén automatikusan letölt egy olyan IP címeket tartalmazó adatbázist, amelybe mások által üzemeltetett denyhosts szoftverrel ellátott szerverek is jelentenek. Természetesen ebbe az adatbázisba a mi szerverünk is képes jelenteni, ha engedélyezzük ezt az opciót.

A továbbiakban bemutatom a Denyhosts telepítését és konfigurálását.

Minta rendszer: Ubuntu 12.04 LTS

A Denyhosts kitiltásra az /etc/hosts.deny fájlt fogja használni, ebbe a fájlba írja bele a kitiltott IP címeket. Továbbá ahogy majd látni fogjuk, ezt a fájlt karban is tartja, meghatározott feltételek szerint feloldja a tiltásokat, azaz kivesz adott bejegyzéseket ebből a fájlból.

Denyhosts telepítése:

apt-get install denyhosts

Konfiguráció:

A feltelepítést követően a konfigurációs állomány az /etc/denyhosts.conf útvonalon található.

Következzenek a fontosabb beállítások és magyarázatuk:

SECURE_LOG = /var/log/auth.log

A SECURE_LOG opciónál meg kell adni, hogy hol található az SSH bejelentkezéseket tároló naplóállomány. Ez Ubuntu/Debian esetében a /var/log/auth.log, Redhat alapú rendszerek esetében pedig a  /var/log/secure fájl.

PURGE_DENY = 1w

A PURGE_DENY opció segítségével tudjuk megadni, hogy mennyi idő után oldja fel a Denyhosts egy adott IP cím tiltását. Jelen példában ez 1 hét, de megadható nap (d), óra (h), perc (m) is, de akár év is (y).

PURGE_THRESHOLD = 2

A következő paraméterrel meg tudjuk határozni, hogy hány darab bekerülés és tiltás feloldási ciklus után már többé ne törölje az adott IP címet a tiltottak közül. Jelen esetben ha 3 alkalommal bekerül egy IP cím a tiltottak közé, akkor többet nem fogja kivenni a Denyhosts. Ha itt a 0 értéket adjuk meg akkor kikapcsoljuk ezt a funkciót, azaz ha bekerül egy IP cím a tiltólistára akkor onnan törölve is lesz a PURGE_DENY opciónál megadott időtartam után.

BLOCK_SERVICE  = ALL

Ezzel az opcióval tudjuk megadni, hogy mely szolgáltatások elérését tiltja a Denyhosts. Alapértelmezetten ez az SSH, viszont én javasolnám az ALL megadását, így teljesen kizárjuk a rosszindulatú próbálkozásokat.

</pre>
DENY_THRESHOLD_INVALID = 3
DENY_THRESHOLD_VALID = 3
DENY_THRESHOLD_ROOT = 3

A DENY_THRESHOLD opciókkal tudjuk beállítani, hogy hány sikertelen bejelentkezés után történjen meg a tiltás.

_INVALID: A rendszeren nem létező felhasználónévvel való próbálkozás.
_VALID: A rendszeren  létező felhasználónévvel való próbálkozás.
_ROOT: root felhasználóval történő próbálkozás.

WORK_DIR = /var/lib/denyhosts

A Denyhosts munka könyvtára.


ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25

Az ADMIN_EMAIL opciónál megadhatunk egy email címet, amelyre emailt kapunk ha tiltás történik. Illetve az SMTP opcióknál beállíthatjuk, hogy milyen SMTP szerverrel szeretnénk a levelet küldeni.

SYSLOG_REPORT=YES

Syslogba való naplózást ezzel az opcióval kapcsolhatjuk be.


AGE_RESET_VALID=1d
AGE_RESET_ROOT=1d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes

Az AGE_RESET opciókkal tudjuk meghatározni, hogy mennyi időtartam alatt kell elérni a DENY_THRESHOLD paramétereknél megadott értéket. Ha ennyi idő alatt eléri, akkor tiltásra kerül, ha nem, akkor pedig ismét nullától indul a számlálás.

A RESET_ON_SUCCESS beállítás pedig azt teszi lehetővé hogy a számlálókat ismét 0-ra állítsa a denyhosts egy sikeres belépés esetén. Így például, ha kétszer elírjuk a jelszót de harmadszorra sikerül belépnünk, akkor ismét három esélyünk lesz a legközelebbi belépésnél.

DAEMON_SLEEP = 30s

A DEAMON_SLEEP opcióval határozhatjuk meg, hogy milyen gyakran nézzen rá az SSH belépéseket tartalmazó naplóra a denyhosts, ez alapértelmezetten 30 másodperc. Ha azt szeretnénk, hogy gyorsabban reagáljon, akkor ezt vegyük lejjebb.

DAEMON_PURGE = 1h

Itt tudjuk megadni, hogy milyen időközönként tartsa karban az /etc/hosts.deny fájlt, azaz ellenőrizze, hogy kell-e IP címet törölni (feloldani egy tiltást).

A legfontosabb beállítások ezek voltak, a továbbiakban még bemutatom a bevezetőben említett központi adatbázisra vonatkozó beállításokat.

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911

A központi adatbázis szerver címe.

SYNC_INTERVAL = 1h

SYNC_INTERVAL opcióval tudjuk megadni, hogy milyen gyakran ellenőrizze ezt az adatbázist.


SYNC_UPLOAD = no
SYNC_DOWNLOAD = yes
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5h

Az említett opciók a központi adatbázissal való adatcserére vonatkoznak, azaz:

SYNC_UPLOAD: Töltsön-e fel a mi szerverünk is információt a kitiltott IP címekről

SYNC_DOWNLOAD: Töltsünk-e le a listáról

SYNC_DOWNLOAD_THRESHOLD: Hány másik szervernek kellett az adott IP címet rosszindulatúnak jeleznie, hogy azt letöltse a denyhosts

SYNC_DOWNLOAD_RESILIENCY: A bejelentések között mennyi idő telhet el, ahhoz hogy letöltsük.

Megjegyzés

Ha fix IP címünk van, akkor érdemes felvennünk az /etc/hosts.allow fájlba, hogy magunkat véletlenül se zárjuk ki a rendszerről.

Szólj hozzá

A következő HTML tag-ek használhatók: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>