Miski fail2banis ei viska paketti iseenesest: see kutsub välja toimingu ja just see toiming nimetab protokolli ja pordi. Kui jail teatab banist, samal ajal kui deemon jätkab sisselogimiste vastuvõtmist, on ban tavaliselt tõeline ja kitsam, kui logi vihjab. Klient, kes taasühendub teise transpordi kaudu, ei kohta kunagi paigaldatud reeglit. Enne millegi muutmist võrrelge, mida toiming paigaldas, sellega, mida deemon kuulab, sest tõend asub tulemüüri ahelas, mille toiming kirjutas, mitte jaili loendis.

Lugege ahelat, mitte jaili kokkuvõtet

fail2ban sisestab oma ahela teenuse ahela ette, nii et loendurite loend näitab täpselt, mis olemas on. Jaili järgi nimetatud ahel, mis hoiab üht reeglit, mille protokolli veerg näitab udp, on täielik seletus jätkuvalt saabuvatele TCP-sisselogimistele. Ainult keelatud allika UDP-paketid lükatakse tagasi. Teenusel on TCP-kuulaja ja miski selles ahelas ei puuduta seda.

Pöörake tähelepanu ka naaber-jaili mõjule. Üks host võib paista täiuslikult seadistatud ainult sellepärast, et teine jail annab puuduva poole, ja sama build ei tee midagi seal, kus seda jaili pole paigaldatud.

Toiming nimetab üht protokolli ja just seal see katkeb

Iga banaction on tulemüüri käsu mall ja protokoll asub ühes selle kohatäitjas. Kitsus on tahtlik, sest veebi-jailil ja DNS-jailil pole midagi teha identsete portide blokeerimisega. See muutub lõksuks, kui teenus kuulab rohkem kui üht transporti, mida VPN-i deemonid tavaliselt teevad. Filter võib jälgida ebaõnnestunud sisselogimisi mõlemast transpordist, samal ajal kui toiming katab ühe.

SoftEtheri ja OpenVPN paigaldused kuulavad tavaliselt korraga UDP-l ja TCP-l ning kuna logirida näeb mõlemal juhul ühtemoodi välja, jälgib filter mõlemat. Asümmeetria ei ilmne kunagi jaili enda raportis. fail2ban luges ebaõnnestumised õigesti kokku ja paigaldas seejärel reegli, mis kehtib poolele liiklusest, millel need ebaõnnestumised saabusid.

Laske banil katta mõlemad transpordid

Parandage see hoopis jaili definitsioonis; käsitsi kirjutatud reeglid aetakse järgmise uuestilaadimisega segamini. Kirjutage välja kaks toimingut, üks iga protokolli jaoks:

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"]

Ärge proovige seda lühendada valikuga protocol = all. Vaikimisi banaction on multiport-toiming ja see laieneb kujule -p <protocol> -m multiport --dports <port>; ilma L4-protokollita pole pordi vastendusel midagi testida, seega iptables lükkab reegli tagasi, samal ajal kui jail teatab endiselt edukast banist. Kõiki porte hõlmav toiming nagu iptables-allports või nftables-allports võtab ühe kirje vastu, kuid blokeerib sellel allikal iga pordi, mis on teistsugune otsus ja nõuab oma põhjendust. Jätke protocol väärtusele tcp või udp ja nõustuge kahe kirjega.

Tõestage, et reegel on olemas, selle asemel et seadistust usaldada, sest seadistus kirjeldab kavatsust seni, kuni ahel seda hoiab:

iptables -S f2b-vpn-tcp
iptables -S f2b-vpn-udp

Iga ahel peaks loetlema ühe reegli, esimeses -p tcp ja teises -p udp, mõlemad nimetavad keelatud aadressi. Seejärel kinnitage, et sama aadress lükatakse tagasi mõlemas transpordis. Ban, mida te ahelas näinud ei ole, on lootus, ja järgmine raport samast sümptomist maksab jälle sama tunni.

Mida ban endiselt mööda laseb, ja järgmine juhtum

Toiming lükkab tagasi ühe allika ja ainult selles loetletud portidel. See ei tee midagi ründaja vastu, kes pöörleb aadresse, ja ei suuda eraldada vaenulikku masinat sadade kasutajate jagatud operaatoritasandi NAT-väljundist, kus üks ban lõikab välja inimesed, kes ei teinud midagi. Veenduge, et filter loeb aadressi, mis kliendil tegelikult on, mitte edastatud päist ega puhverserveri aadressi. Hoidke aken piisavalt lühike, et viga ise aegub.

Miski sellest ei õigusta protokolliparanduse vahelejätmist; see õigustab kahe idee korraga hoidmist. Ban on kitsam, kui jaili kokkuvõte vihjab, ja isegi täielik ban on ohust kitsam. Asetage tulemüüri ahel deemoni kuulajate loendi kõrvale ja võrrelge protokoll protokolli haaval, sest need kaks loendit otsustavad, kas ban üldse teenuseni jõuab.

Hoidke uuestilaadimise käsk ja ahelate loend jaili kõrval runbookis. Järgmine inimene vajab mõlemat ja jaili kokkuvõte ei ütle talle kummastki midagi.

Seotud artiklid