Kichujio cha Fail2ban kwa OpenVPN Access Server: real_ip na jail
Access Server huandika muundo wake wa kumbukumbu, kwa hivyo vichujio vya kawaida havipati chochote. Nanga kwenye real_ip, tenga jail kwa uso na uhakikishe kwamba anwani si proksi.
Ulinakili OpenVPN jail kutoka chapisho la jamii, ukaanzisha fail2ban upya, na hakuna anwani inayozuiwa kamwe. Sababu karibu kila mara ni muundo wa kumbukumbu: Access Server haiandiki mistari ya kushindwa kwa uthibitishaji ambayo kichujio cha kawaida hutarajia. Kabla ya kugusa kichujio, hakikisha kwamba rekodi zipo kabisa, kwa sababu muundo hauwezi kuoana na kile ambacho huduma haikuwahi kuandika.
Huu ni utaratibu ninaofuata kwenye mwenyeji wa Access Server: hakikisha umbo la rekodi, andika usemi mmoja ulionangwa, uujaribu kwenye kumbukumbu halisi, kisha tenga jail kwa uso unaoshambuliwa na uhakikishe kwamba kizuizi kinafika kwenye firewall.
Hakikisha kwamba rekodi ya kushindwa ipo
Access Server huandika mistari yake iliyopangwa kwenye /var/log/openvpnas.log, na anwani ya mteja iko katika uwanja real_ip ndani ya alama za nukuu, si mwanzoni mwa mstari wa syslog. Kabla ya kuandika muundo wowote, tafuta kuingia kumeshindwa ambako unajua kulitokea:
grep -i 'LOG ERR' /var/log/openvpnas.log | tail -20Ikiwa hakuna kitu kinachoonekana, kiwango cha kumbukumbu ndicho mtuhumiwa anayefuata. Access Server ina swichi ya utatuzi wa hifadhidata ya kumbukumbu katika /usr/local/openvpn_as/etc/as.conf (DEBUG_LOGDB=1), na huduma lazima ianzishwe upya baada ya kuibadilisha. Chukulia swichi hiyo kama mpangilio wa uchunguzi ambao utashushwa tena mara muundo wako ukiwa tayari, si kama usanidi wa kudumu.
Ukiwa ndani ya faili, angalia ni nyuso zipi zinaandika ndani yake. Kushindwa kwa lango la mteja, kiolesura cha msimamizi na uthibitishaji wa handaki huishia katika faili moja na alama tofauti, na maelezo hayo huamua baadaye mpangilio wa jail.
Nanga kichujio kimoja kwenye real_ip
Weka usemi mwembamba. Kichujio kinachodai kila mstari wenye anwani ya IP kitazuia watu kwa kukatika kwa kawaida, na kwenye seva yenye shughuli nyingi dalili pekee ni watumiaji kulalamika kwamba walifungwa kwa sababu walifunga kompyuta ya mkononi. Dai rekodi ya hitilafu na ukamate anwani iliyo ndani ya alama za nukuu:
# /etc/fail2ban/filter.d/openvpnaccess.local
[Definition]
failregex = ^ .*LOG ERR.*"real_ip": "<HOST>".*
ignoreregex =Nafasi ya mwanzo si mapambo. Access Server hupeleka rekodi zake ndani, na kunanga hapo huzuia muundo kudai pia mistari ambayo huduma zisizohusiana huandika kwenye faili moja. Ikiwa rekodi zako zina muhuri wa muda mwanzoni badala yake, linganisha kiambishi hicho, lakini nanga kwenye kitu ambacho kipo kweli katika kila rekodi unayokusudia kudai.
Unapohitaji usahihi kwa kila uso, bana zaidi kwa kudai alama ya uso (WEB_CLIENT, WEB_ADMIN au VPN) kwenye mstari huo huo. Kichujio kimoja chenye mifumo mitatu ni rahisi kukagua kuliko vichujio vitatu vinavyotofautiana kwa neno moja.
Jaribu usemi kabla ya kuwezesha jail
Kamwe usiwezeshe kichujio ambacho hukukijaliza kwenye kumbukumbu ya uzalishaji. Jaribio lililoandikwa hupitisha kichujio mara mbili, mara moja kwa kupakia na mara moja kwa kutumia, na ripoti ya mistari iliyokosekana ndiyo sehemu inayofaa kusoma:
fail2ban-regex --print-all-missed /var/log/openvpnas.log \
/etc/fail2ban/filter.d/openvpnaccess.local \
/etc/fail2ban/filter.d/openvpnaccess.local > missed.txtLinganisha idadi ya mechi na kushindwa ulikothibitisha katika hatua ya kwanza. Mechi sifuri inamaanisha muundo ni mbaya; mechi kwenye mistari ambayo si kushindwa kwa uthibitishaji inamaanisha ni mpana mno. Soma missed.txt hadi uweze kueleza kila mstari uliochagua kutoudai.
Fanya jaribio hili kwenye nakala ikiwa kumbukumbu ni kubwa, na ulirudie baada ya kila uboreshaji wa Access Server. Muundo wa kumbukumbu ndio kiolesura unacholinganisha nacho, na si API thabiti.
Tenga jail kwa uso, si kwa daemon
Access Server moja huwasilisha nyuso kadhaa za uthibitishaji: violesura vya wavuti vya mteja na msimamizi kwenye 943/tcp, na handaki kwenye 1194/udp au 443/tcp katika usambazaji mwingi. Jail moja inayozifunika zote huruhusu majaribio ya kubahatisha kwenye handaki kuzuia anwani ambayo pia ni njia yako ya usimamizi, na huficha ni uso gani unashambuliwa kweli. Ipe kila uso jail yake mwenyewe na bandari na vizingiti vyake:
# /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 = 1hAnza na vihesabu vidogo na kizuizi kifupi, kisha vipandishe baada ya kuchunguza wiki moja ya trafiki halisi. Kizingiti cha ukarimu kwenye anwani ya ofisi inayoshirikiwa huadhibu kila mtumiaji aliye nyuma ya NAT moja, na kizuizi kikali kwenye uso wa handaki hukata wateja halali ambao vitambulisho vyao vilivyohifadhiwa viliisha muda wake usiku.
Hakiki kizuizi, backend na madhara ya pembeni
Baada ya kuanzisha upya, matokeo ya hali ndiyo uthibitisho wa haraka zaidi kwamba jail ipo na inahesabu:
fail2ban-client status
fail2ban-client status openvpnas-tunnelKisha hakikisha kwamba kizuizi kinafika kwenye firewall unayoendesha kweli, kwa sababu jail iliyowekwa kwa backend ambayo hakuna anayeitekeleza hailiki chochote. Kwa kitendo cha iptables anwani huonekana katika mnyororo uliopewa jina la jail (f2b-openvpnas-tunnel); kwa kitendo cha nftables huangukia katika seti kwenye jedwali la fail2ban yenyewe. Angalia ile ambayo mwenyeji wako hutumia badala ya kudhani.
Ukaguzi wa pembeni mbili ni muhimu kuliko kizuizi chenyewe. Kwanza, hakikisha kwamba real_ip ni anwani ya mteja na si kusawazisha mzigo au proksi ya nyuma; nyuma ya proksi kila kizuizi huangukia kwenye proksi na kuvuta huduma yote pamoja nayo. Pili, andika utaratibu wa kuondoa kizuizi, kwa sababu anwani inayovuka kizingiti saa 02:00 kwa kawaida ni ya injinia aliye zamu: fail2ban-client set openvpnas-tunnel unbanip 203.0.113.24.
Kumbuka mpaka unaporekebisha. Fail2ban ni kikomo cha kasi kwenye uso mmoja wa uthibitishaji, si tabaka la udhibiti wa ufikiaji. Haichukui nafasi ya MFA, vizuizi kwa kila akaunti au kuweka kiolesura cha usimamizi nje ya intaneti ya umma, na Access Server ina mipangilio yake ya autoban ambayo inafaa kuangaliwa kabla ya kurundika vizuizi viwili vya kasi kwenye bandari moja.