Každá vystavená služba dostane stejnou radu: nasaďte na ni fail2ban. Pro VPN bránu není tato rada ani špatná, ani dostatečná, a právě přístup k ní jako k zaškrtávacímu políčku při zpevňování vede k tomu, že lidé skončí s vězením (jail), které neblokuje nic užitečného. Fail2ban čte záznamy o selhání, na které ho nasměrujete, a žádá backend pro vynucení, aby zablokoval odpovídající zdroje. Celá jeho hodnota závisí na tom, která plocha ověřování záznam vytvořila, zda je adresa v něm skutečný klient a co se stane se všemi ostatními za touto adresou.

Co je fail2ban mechanicky

Filtr páruje řádky v logu, vězení počítá shody podle zdroje a akce uplatní zákaz přes firewallový backend. Tři pohyblivé části a každá může být špatná nezávisle.

Ani jedna z těch tří se nedotýká cesty ověřování: fail2ban reaguje na důkazy až po faktu a sám nikdy neověřuje přihlašovací údaj. Vězení tak může běžet čistě, zatímco plocha, kterou pojmenovává, zůstává přesně tak vystavená jako dřív.

Posluchač tunelu není přihlašovací formulář

Posluchač OpenVPN chráněný tls-auth nebo tls-crypt zahazuje pakety bez ochrany řídicího kanálu dřív, než začne běžné zpracování TLS. Skenner, který nikdy nemá klíč, nevygeneruje nic, co by váš filtr mohl spočítat. Ověřování certifikátem přidává další bránu, protože není žádné heslo k hádání. Projekt Fail2ban dokumentuje obecný model řízený logy a obecný VPN filtr nepromění neověřený paket ve smysluplnou událost selhání.

Pokud brána přijímá jen certifikáty, příběh o brute-force, proti kterému se bráníte, na tom portu možná vůbec neexistuje.

Tak kterou plochu vlastně chráníte?

Stejný host často vystavuje tři různé věci: posluchač tunelu, portál klientských profilů nebo samoobsluhy a administrační stránku. Portál a admin stránka mají formuláře s heslem a produkují řádky logu, které filtr umí spočítat. Tunel může produkovat jen chyby handshake, které znamenají něco úplně jiného. Párujte vězení s plochou, ne s názvem produktu.

Vězení, které sleduje špatný log, je horší než žádné, protože vytváří jistotu bez pokrytí. Namiřte přihlašovací filtr na chyby handshake tunelu a počítadlo se spustí u skenerů, které nikdy neměly klíč, zatímco útok heslem na portál zůstane nespočítaný. Přečtěte si řádek logu, který filtr páruje, než uvěříte číslu vězení.

Přiřazení zdroje je slabý článek

Zákaz je jen tak dobrý, jak dobrá je adresa, na kterou míří. Když služba stojí za místním reverzním proxy, adresa klienta v logu může být proxy a její zablokování odstraní všechny. Důvěra v předávanou hlavičku z nedůvěryhodného zdroje dává útočníkovi možnost zakázat libovolné adresy. Na UDP lze zdrojové adresy podvrhnout, takže jejich počítání si zaslouží větší péči než počítání dokončeného TCP přihlášení.

Zapište metodu přiřazení zdroje do README vězení, protože předávaná hlavička z nedůvěryhodného skoku mění zákaz ve zbraň.

Vedlejší náklad jsou jiní lidé

Několik zaměstnanců za jednou kancelářskou NAT sdílí adresu, takže jedno zastaralé uložené heslo může po překročení prahu uzamknout celou kancelář. Log ukazuje jeden zdroj a jeden účet, který selhal, ne výpadek celé kanceláře.

Krátké zákazy a mírné prahy to snižují a zdokumentovaná cesta k odblokování snižuje zátěž podpory, když už k tomu dojde. Adresa je hrubý signál, nikoli identita a člověk, který založí tiket, popíše výpadek, ne práh.

Kdy to nasadit a kdy opravit něco jiného

Nasaďte to, když na ploše, kterou ovládáte, existuje skutečné, přiřaditelné a opakované selhání online přihlášení a když backend pro vynucení tuto plochu skutečně pokrývá. Opravte něco jiného, když je problémem slabá politika přihlašovacích údajů, administrační stránka vystavená internetu nebo účet, který se úspěšně přihlašuje, protože byl kompromitován. Zákaz žádný z těchto problémů nespraví a nedokáže pohltit provoz, který už zahltil vaše upstream spojení. Poslední problém patří výš po proudu, někomu, kdo umí filtrovat dřív, než pakety dorazí k vám.

Držte každé vězení svázané s jednou plochou, kontrolujte falešné poplachy a měřte vyhnutou práci ověřování, ne počet zakázaných adres.

Související články