Unu banaction, du transportoj: ripari fail2ban-VPN-jail
Bano estas nur tiom larĝa kiom la protokolo en ĝia ago. Komparu la nombrilojn de la ĉeno kun la aŭskultantoj, poste kovru ambaŭ transportojn en la jail mem.
Nenio en fail2ban faligas paketon per si mem: ĝi alvokas agon, kaj tiu ago estas tio, kio nomas protokolon kaj pordon. Kiam la jail raportas banon dum la demono daŭre akceptas ensalutojn, la bano kutime estas reala kaj pli mallarĝa ol la protokolo sugestas. Kliento, kiu rekonektas per la alia transporto, neniam renkontas la instalitan regulon. Komparu tion, kion la ago instalis, kun tio, kion la demono aŭskultas, antaŭ ol vi ŝanĝos ion, ĉar la pruvo kuŝas en la fajroŝirma ĉeno, kiun la ago skribis, ne en la listo de la jail.
Legu la ĉenon, ne la resumon de la jail
fail2ban enmetas sian propran ĉenon antaŭ la ĉeno de la servo, do listo de nombriloj montras precize tion, kio ekzistas. Ĉeno nomita laŭ la jail, tenanta unu regulon kies protokola kolumno legas udp, estas kompleta klarigo por TCP-ensalutoj, kiuj daŭre alvenas. Nur UDP-paketoj de la malpermesita fonto estas rifuzataj. La servo havas TCP-aŭskultanton, kaj nenio en tiu ĉeno tuŝas ĝin.
Atentu ankaŭ la efikon de la najbara jail. Unu gastiganto povas aspekti perfekte agordita nur ĉar alia jail liveras la mankantan duonon, kaj la sama konstruo faras nenion tie, kie tiu jail ne estas instalita.
La ago nomas unu protokolon, kaj ĝuste tie ĝi rompiĝas
Ĉiu banaction estas ŝablono de fajroŝirma komando, kaj la protokolo sidas en unu el ĝiaj lokokupiloj. La mallarĝeco estas intenca, ĉar reteja jail kaj DNS-jail nenion havas komunan kun blokado de identaj pordoj. Ĝi fariĝas kaptilo, kiam la servo aŭskultas pli ol unu transporton, kion VPN-demono rutine faras. La filtrilo povas observi malsukcesajn ensalutojn de ambaŭ transportoj, dum la ago kovras unu.
SoftEther- kaj OpenVPN-instalaĵoj kutime aŭskultas samtempe sur UDP kaj TCP, kaj ĉar la loglinio aspektas same en ambaŭ kazoj, la filtrilo observas ambaŭ. La nesimetrio neniam aperas en la propra raporto de la jail. fail2ban nombris la malsukcesojn ĝuste kaj poste instalis regulon, kiu validas por duono de la trafiko, sur kiu tiuj malsukcesoj alvenis.
Igu la banon kovri ambaŭ transportojn
Riparu ĝin en la difino de la jail; permane skribitaj reguloj estos miksitaj de la sekva reŝarĝo. Skribu du agojn, unu por ĉiu protokolo:
action = %(banaction)s[name=%(__name__)s-tcp, actionname=%(__name__)s-tcp, protocol="tcp", port="%(port)s", chain="%(chain)s"]
%(banaction)s[name=%(__name__)s-udp, actionname=%(__name__)s-udp, protocol="udp", port="%(port)s", chain="%(chain)s"]
Ne provu mallongigi tion per protocol = all. La defaŭlta banaction estas multiporta ago, kaj ĝi etendiĝas al -p <protocol> -m multiport --dports <port>; sen L4-protokolo ekzistas nenio, kion la porda kongruo testu, do iptables rifuzas la regulon dum la jail ankoraŭ raportas sukcesan banon. Ago por ĉiuj pordoj kiel iptables-allports aŭ nftables-allports akceptas unu esprimon, sed ĝi malpermesas ĉiun pordon sur tiu fonto, kio estas alia decido kaj bezonas propran pravigon. Lasu protocol je tcp aŭ udp kaj akceptu la du esprimojn.
Pruvu, ke la regulo ekzistas, anstataŭ fidi la agordon, ĉar agordo priskribas intencon ĝis ĉeno tenas ĝin:
iptables -S f2b-vpn-tcp
iptables -S f2b-vpn-udp
Ĉiu ĉeno devus listigi unu regulon, kun -p tcp en la unua kaj -p udp en la dua, ambaŭ nomante la malpermesitan adreson. Poste konfirmu, ke la sama adreso estas rifuzata sur ambaŭ transportoj. Bano, kiun vi ne vidis en la ĉeno, estas espero, kaj la sekva raporto pri la sama simptomo denove kostos la saman horon.
Kion bano ankoraŭ maltrafas, kaj la sekva kazo
Tion, kion la ago faras, estas rifuzi unu fonton, kaj nur sur la pordoj listigitaj en ĝi. Ĝi faras nenion kontraŭ atakanto, kiu rotacias adresojn, kaj ĝi ne povas apartigi malamikan maŝinon de eliro de ĉarĝant-nivela NAT kunhavata de centoj da uzantoj, kie unu bano ellasas homojn, kiuj faris nenion. Certigu, ke la filtrilo legas la adreson, kiun la kliento vere havas, ne plusenditan kaplinion aŭ prokuran adreson. Tenu la fenestron sufiĉe mallonga, ke eraro mem finiĝu.
Nenio el tio argumentas por preterlasi la protokolan riparon; ĝi argumentas por teni du ideojn samtempe. La bano estas pli mallarĝa ol sugestas la resumo de la jail, kaj eĉ kompleta bano estas pli mallarĝa ol la minaco. Metu la fajroŝirman ĉenon apud la aŭskultantolisto de la demono kaj komparu protokolon post protokolo, ĉar tiuj du listoj decidas, ĉu bano entute povas atingi la servon.
Tenu la reŝarĝan komandon kaj la ĉenan listigon en la runbook apud la jail. La sekva persono bezonos ambaŭ, kaj la resumo de la jail diros al li nek unu nek alian.