sshguard

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Sshguard and the translation is 100% complete.
Resources

Az sshguard egy behatolásmegelőző rendszer, amely szervernaplókat elemez, észleli a rosszindulatú tevékenységeket, majd az operációs rendszer tűzfalát használva blokkolja a rosszindulatú kapcsolatok IP-címeit. Az sshguard C programozási nyelven íródott, így nem terheli a parancsértelmezőt, hiszen a forráskódja közvetlen a processzor bináris nyelvére van lefordítva.

Hogyan működik?

Az sshguard egy egyszerű szolgáltatás, amely folyamatosan figyel egy vagy több naplófájlt. Elemzi a naplóeseményeket, amelyeket a többi szolgáltatás küld sikertelen bejelentkezési kísérlet esetén, majd az operációs rendszer tűzfalának frissítésével blokkolja az adott kapcsolatok további próbálkozásait.

Az sshguard neve ellenére nemcsak az SSH naplókat elemzi. Számos levelezőrendszert, valamint néhány FTP rendszert is támogat. A támogatott szolgáltatások teljes listája megtalálható az sshguard.net weboldalon.

Telepítés

Emerge

Telepítse a app-admin/sshguard szoftvercsomagot:

root #emerge --ask app-admin/sshguard

Kiegészítő szoftver

Az sshguard működéséhez a választott init rendszer és a kívánt tűzfal backend függvényein kívül további szoftverek telepítésére lehet szükséges annak érdekében, hogy hatékonyan blokkolja a rosszindulatú szereplőket.

További információ a különböző támogatott backend rendszerekről a man setup súgóoldal elolvasásával érhető el:

root #man 7 sshguard-setup

iptables

Amikor az iptables szoftvert használják az operációs rendszer tűzfalaként.

root #emerge --ask net-firewall/iptables

További információk az IPtables használatáról és beállításáról megtalálhatóak az IPtables cikkben.

nftables

Amikor az nftables rendszertűzfalként van használva:

root #emerge --ask net-firewall/nftables

Beállítás

iptables backend

Tűzfal előkészítése

Amikor sshguard blokkolja a rosszindulatú felhasználókat (az IP-címük blokkolásával), akkor a sshguard láncot fogja használni.

Készítse elő a láncot az iptables segítségével, és győződjön meg róla, hogy az új bejövő kapcsolatok észlelésekor is aktiválódik.

root #iptables -N sshguard
root #iptables -A INPUT -j sshguard

Ezután ellenőrizze, hogy az iptables backend könyvtár megfelelő elérési útja be van állítva a /etc/sshguard.conf fájlban.

FILE /etc/sshguard.confAz iptables könyvtár beállítása az BACKEND számára
# A backend teljes elérési útja. (Kötelező megadni. Nincs alapértelmezett érték beállítva.)
BACKEND="/usr/libexec/sshg-fw-iptables"

Naplófájlok figyelése

Az sshguard alapvető koncepciója az, hogy a rendszergazda az alkalmazásnak adja meg a figyelendő naplófájlokat opcióként – nincs natív sshguard beállításfájl.

A Gentoo operációs rendszeren az opciókat legjobban a /etc/sshguard.conf fájlban lehet beállítani.

FILE /etc/sshguard.confAz sshguard beállítása a /var/log/messages és /var/log/auth.log fájlok olvasására
# Szóközzel elválasztott lista a figyelendő naplófájlokról. (Választható. Nincs alapértelmezett érték.)
FILES="/var/log/messages /var/log/auth.log" 
#
# Hány problémás kísérlet váltja ki a blokkolást?
THRESHOLD=10
# A blokkolások legalább 24 órán át tartanak (60480 másodperc).
BLOCKTIME=60480
# IP-címek nyomon követése 24 órán át (60480 másodperc).
DETECTION_TIME=60480
#
# Az IPv6 blokkolandó alhálózati mérete. Alapértelmezés szerint egyetlen cím, CIDR jelölés. (Választható. Alapértelmezett érték: 128).
IPV6_SUBNET=64
# Az IPv4 blokkolandó alhálózati mérete. Alapértelmezés szerint egyetlen cím, CIDR jelölés. (Választható. Alapértelmezett érték: 32).
IPV4_SUBNET=24
#
# A PID fájl teljes elérési útja. (Választható. Nincs alapértelmezett érték).
PID_FILE=/run/sshguard.pid

Győződjön meg arról, hogy a naplófájlok elérhetőek az sshguard által használt futásidejű felhasználó számára.

Szolgáltatások

OpenRC

Az sshguard alapértelmezés szerint induljon el úgy, hogy hozzáadja a default futási szinthez (annak érdekében, hogy automatikusan elinduljon a szolgáltatás amikor a számítógép indul), majd ezt követően indítsa is el azonnal a szolgáltatást:

root #rc-update add sshguard default
root #rc-service sshguard start

systemd

Használja a systemd szokásos módját az szolgáltatás engedélyezéséhez (annak érdekében, hogy automatikusan elinduljon a szolgáltatás amikor a számítógép indul), majd ezt követően indítsa is el azonnal a szolgáltatást:

root #systemctl enable sshguard
root #systemctl restart sshguard

Host számítógépek feketelistára tétele

A feketelistázási opcióval bizonyos számú visszaélés után a támadó IP-címe vagy egy IP-alhálózat véglegesen blokkolásra kerül. A feketelista minden indításkor betöltődik, és működés közben új bejegyzésekkel bővül. A sshguard akkor ad hozzá egy új IP-címet, amikor a visszaélések küszöbértékét túllépte.

A feketelistára került címek soha nem lesznek újra engedélyezve.

Annak érdekében, hogy a fekete listázás engedélyezve legyen, hozzon létre egy megfelelő könyvtárat és fájlt.

root #mkdir -p /var/lib/sshguard
root #touch /var/lib/sshguard/blacklist.db

A feketelista meghatározásakor fontos kizárni a megbízható IP-hálózatokat és host számítógépeket egy fehér listán.

Annak érdekében, hogy fehér listázás engedélyezve legyen, hozzon létre egy megfelelő könyvtárat és fájlt.

root #mkdir -p /etc/sshguard
root #touch /etc/sshguard/whitelist

A fehér listának tartalmaznia kell a loopback interfészt, és legalább egy megbízható IP-hálózatot, például 192.0.2.0/24.

FILE /etc/sshguard/whitelistMegbízható hálózatok fehér listára rárakása
127.0.0.0/8
::1/128
192.0.2.0/24
Note
A 192.0.2.0/24 bejegyzést az egyéni igényekhez kell igazítani.

Adja hozzá a BLACKLIST_FILE és WHITELIST_FILE fájlt a beállításhoz. A példabeállítás minden host számítógépet blokkol az első rossz bejelentkezési kísérlet után. Egy kevésbé agresszív blokkolási politika beállításához módosítsa a THRESHOLD és BLACKLIST_FILE értékét, és állítsa például 10-re a 2 helyett.

FILE /etc/sshguard.confAz sshguard beállítása úgy, hogy feketelistázza a visszaélőket
BACKEND="/usr/libexec/sshg-fw-iptables"
FILES="/var/log/auth.log"
#
THRESHOLD=2
BLOCK_TIME=43200
DETECTION_TIME=604800
#
IPV4_SUBNET=24
IPV6_SUBNET=64
#
PID_FILE=/run/sshguard.pid
#
# Adja hozzá a következő sorokat.
BLACKLIST_FILE=2:/var/lib/sshguard/blacklist.db
WHITELIST_FILE=/etc/sshguard/whitelist

Indítsa újra a sshguard szolgáltatást annak érdekében, hogy a módosítások érvénybe lépjenek:

root #/etc/init.d/sshguard restart

Hibaelhárítás

A /var/log/auth.log fájl eltűnt hozzáadás közben!

Amikor az sshguard elindul, akkor a következő hibát jelenti:

CODE Hibaüzenet, amikor megpróbálunk figyelőt hozzáadni a /var/log/auth.log fájlhoz
Sep 23 03:39:11 foo.bar.com sshguard[64933]: File '/var/log/auth.log' vanished while adding!

Ilyen hiba (az elérési út változhat) akkor fordul elő, amikor a célfájl nem elérhető az operációs rendszeren. Győződjön meg róla, hogy létre van hozva a fájl, vagy frissítse az sshguard beállítását annak érdekében, hogy ne kerüljön hozzáadásra a monitorozáshoz.

Egy syslog-ng szoftvert futtató operációs rendszerben, amely operációs rendszert OpenRC init rendszert futtat, a következő kiegészítés a syslog-ng.conf fájlhoz elegendő lehet:

FILE /etc/syslog-ng/syslog-ng.confcreating auth.log file
log { source(src); destination(messages); };
log { source(src); destination(console_all); };
 
destination authlog {file("/var/log/auth.log"); };
filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
log { source(src);  filter(f_authpriv);  destination(authlog);  };

Töltse be újra a beállítást annak érdekében, hogy a módosítások életbe lépjenek:

root #rc-service syslog-ng reload

További olvasnivaló a témában

  • Fail2ban — a system denying hosts causing multiple authentication errors access to a service.
  • Iptables — a program used to configure and manage the kernel's netfilter modules.

Külső források

A sshguard dokumentáció minden szükséges információt tartalmaz az alkalmazás további finomhangolásához.