Fail2ban-sía fyrir OpenVPN Access Server: real_ip og jails
Access Server skrifar sitt eigið loggsnið, svo stöðluð síur finna ekkert. Festeu á real_ip, skiptu jails eftir yfirborði og athugaðu að heimilisfangið sé ekki proxy.
Þú afritaðir OpenVPN jail úr samfélagspósti, endurræstir fail2ban, og ekkert heimilisfang er nokkurn tíma bannað. Ástæðan er næstum alltaf loggsniðið: Access Server skrifar ekki þær auðkenningarbilunarlínur sem stöðluð sía býst við. Áður en þú snertir síuna skaltu staðfesta að færslurnar séu yfirhöfuð til, því mynstur getur ekki passað við það sem þjónustan skráði aldrei.
Þetta er runbook-ið sem ég fylgi á Access Server vél: staðfesta lögun færslunnar, skrifa eina festa segð, prófa hana á raunverulega logginu, skipta svo jails eftir því yfirborði sem er ráðist á og staðfesta að bannið nái til eldveggjarins.
Staðfestu að bilunarfærslan sé til
Access Server skrifar sínar eigin skipulögðu línur í /var/log/openvpnas.log, og heimilisfang biðlarans er í reit real_ip innan gæsalappa, ekki í upphafi syslog-línu. Leitaðu að misheppnaðri innskráningu sem þú veist að átti sér stað áður en þú skrifar hvaða mynstur sem er:
grep -i 'LOG ERR' /var/log/openvpnas.log | tail -20Ef ekkert birtist er loggstigið næsti grunaði. Access Server hefur kembiforstillingu fyrir logggagnagrunninn í /usr/local/openvpn_as/etc/as.conf (DEBUG_LOGDB=1), og endurræsa þarf þjónustuna eftir að henni er breytt. Líttu á þá forstillingu sem greiningarstillingu sem á að lækka aftur þegar mynstrið þitt er tilbúið, ekki sem varanlega uppsetningu.
Meðan þú ert í skránni skaltu taka eftir því hvaða yfirborð skrifa í hana. Bilun í biðlaragátt, stjórnviðmóti og auðkenningu göngunnar lenda í sömu skrá með mismunandi merkjum, og sú smáatriði ræður síðar útliti jailanna.
Festeu eina síu á real_ip
Haltu segðinni þröngri. Sía sem gerir tilkall til hverrar línu sem inniheldur IP-heimilisfang bannar fólk fyrir venjuleg tengslurof, og á annasamri þjónu er eina einkennið að notendur kvarta yfir því að hafa verið læstir úti fyrir að loka fartölvu. Gerðu tilkall til bilunarfærslunnar og gríptu heimilisfangið innan gæsalappanna:
# /etc/fail2ban/filter.d/openvpnaccess.local
[Definition]
failregex = ^ .*LOG ERR.*"real_ip": "<HOST>".*
ignoreregex =Fremsta bilið er ekki skraut. Access Server dregur færslur sínar inn, og festing á því kemur í veg fyrir að mynstrið geri einnig tilkall til lína sem ótengd þjónustur skrifa í sömu skrá. Ef færslurnar þínar bera í staðinn tímastimpil fremstan skaltu passa við það forskeyti, en festu á eitthvað sem er raunverulega til staðar í hverri færslu sem þú ætlar að gera tilkall til.
Þegar þú þarft nákvæmni eftir yfirborði skaltu þrengja frekar með því að krefjast yfirborðsmerkisins (WEB_CLIENT, WEB_ADMIN eða VPN) í sömu línu. Ein sía með þremur mynstrum er auðveldari í úttekt en þrjár síur sem eru frábrugðnar einu orði.
Prófaðu segðina áður en þú virkjar jail
Virkjaðu aldrei síu sem þú hefur ekki keyrt á framleiðslulogginu. Skjalfesta prófið sendir síuna í gegn tvisvar, einu sinni til að hlaða og einu sinni til að beita, og skýrslan um slepptar línur er sá hluti sem er þess virði að lesa:
fail2ban-regex --print-all-missed /var/log/openvpnas.log \
/etc/fail2ban/filter.d/openvpnaccess.local \
/etc/fail2ban/filter.d/openvpnaccess.local > missed.txtBerðu saman fjölda samsvarana við þær bilanir sem þú staðfestir í fyrsta skrefi. Núll samsvaranir þýða að mynstrið er rangt; samsvaranir á línum sem eru ekki auðkenningarbilanir þýða að það er of breitt. Lestu missed.txt þar til þú getur útskýrt hverja línu sem þú valdir að gera ekki tilkall til.
Gerðu þetta próf á afriti ef loggið er stórt, og endurtaktu það eftir hvers kyns uppfærslu á Access Server. Loggsniðið er viðmótið sem þú passar við, og það er ekki stöðugt API.
Skiptu jailunum eftir yfirborði, ekki eftir daemon
Einn Access Server býður upp á nokkur auðkenningaryfirborð: biðlara- og stjórnvefviðmót á 943/tcp, og gönguna á 1194/udp eða 443/tcp í flestum uppsetningum. Eitt jail sem nær yfir þau öll leyfir giskutilraunum á göngunni að banna heimilisfang sem er líka stjórnleið þín, og það felur hvaða yfirborð er í raun undir árás. Gefðu hverju yfirborði sitt eigið jail með eigin porti og þröskuldum:
# /etc/fail2ban/jail.d/openvpnaccess.local
[openvpnas-web-client]
enabled = true
port = 943
protocol = tcp
filter = openvpnaccess
logpath = /var/log/openvpnas.log
maxretry = 3
findtime = 10m
bantime = 1h
[openvpnas-tunnel]
enabled = true
port = 443
protocol = udp
filter = openvpnaccess
logpath = /var/log/openvpnas.log
maxretry = 5
findtime = 10m
bantime = 1hByrjaðu með litlum teljurum og stuttu banni, og hækkaðu þau þegar þú hefur fylgst með viku af raunverulegri umferð. Ríflegur þröskuldur á sameiginlegu skrifstofufangi refsar hverjum notanda bak við eitt NAT, og árásargjarnt bann á yfirborði göngunnar aftengir lögmæta biðlara sem geymd auðkenni þeirra runnu út á nóttunni.
Staðfestu bannið, backendinn og aukaskemmdirnar
Eftir endurræsingu er stöðuúttakið fljótasta staðfestingin á því að jailið sé til og telji:
fail2ban-client status
fail2ban-client status openvpnas-tunnelStaðfestu svo að bannið nái til eldveggjarins sem þú keyrir í raun, því jail sem er stillt fyrir backend sem enginn framfylgir verndar engu. Með iptables-aðgerð birtast heimilisföngin í keðju sem heitir eftir jailinu (f2b-openvpnas-tunnel); með nftables-aðgerð lenda þau í mengi í eigin töflu fail2ban. Athugaðu það sem vél þín notar í stað þess að gera ráð fyrir því.
Tvær aukaaðgerðir skipta meira máli en bannið sjálft. Fyrst skaltu staðfesta að real_ip sé heimilisfang biðlarans en ekki hleðsludreifir eða öfugt proxy; bak við proxy lendir hvert bann á proxyinu og dregur alla þjónustuna með sér. Annað, skrifaðu niður ferlið til að aflétta banni, því heimilisfangið sem fer yfir þröskuldinn kl. 02:00 tilheyrir venjulega vakthafandi verkfræðingnum: fail2ban-client set openvpnas-tunnel unbanip 203.0.113.24.
Hafðu mörkin í huga meðan þú stillir. Fail2ban er hraðatakmarkari á einu auðkenningaryfirborði, ekki aðgangsstýringarlag. Það kemur ekki í stað MFA, takmarkana á hverjum reikningi eða þess að halda stjórnviðmótinu utan almenningsnetsins, og Access Server hefur sínar eigin autoban-stillingar sem er þess virði að athuga áður en þú staflar tveimur hraðatakmörkurum á sama portið.