Gwnaethoch gopïo OpenVPN gell o bost cymunedol, ailgychwyn fail2ban, ac ni chaiff unrhyw gyfeiriad ei wahardd byth. Y rheswm bron bob amser yw fformat y log: nid yw Access Server yn ysgrifennu'r llinellau methiant dilysu y mae hidlydd safonol yn disgwyl eu cael. Cyn i chi gyffwrdd â'r hidlydd, cadarnhewch fod y cofnodion yno o gwbl, oherwydd ni all patrwm gyfateb i'r hyn na chofnododd y gwasanaeth erioed.

Dyma'r runbook a ddilynaf ar westeiwr Access Server: cadarnhau siâp y cofnod, ysgrifennu un mynegiad angori, ei brofi yn erbyn y log go iawn, yna rhannu'r celloedd yn ôl yr arwyneb sy'n cael ei ymosod a gwirio bod y gwaharddiad yn cyrraedd y wal dân.

Cadarnhewch fod y cofnod methiant yn bodoli

Mae Access Server yn ysgrifennu ei linellau strwythuredig ei hun i /var/log/openvpnas.log, ac mae cyfeiriad y cleient yn byw mewn maes real_ip mewn dyfynbris, nid ar ddechrau llinell syslog. Chwiliwch am fewngofnod a fethodd y gwyddoch iddo ddigwydd cyn ysgrifennu unrhyw batrwm:

grep -i 'LOG ERR' /var/log/openvpnas.log | tail -20

Os na ddaw unrhyw beth i'r golwg, y lefel log yw'r prif amheuyn nesaf. Mae gan Access Server switsh dadfygio ar gyfer y gronfa ddata log yn /usr/local/openvpn_as/etc/as.conf (DEBUG_LOGDB=1), a rhaid ailgychwyn y gwasanaeth ar ôl ei newid. Triniwch y switsh hwnnw fel gosodiad diagnostig y dylid ei ostwng yn ôl unwaith y bydd gennych eich patrwm, nid fel cyfluniad parhaol.

Tra byddwch yn y ffeil, sylwch pa arwynebau sy'n ysgrifennu iddi. Mae methiannau'r porth cleient, y rhyngwyneb gweinyddol a dilysu'r tiwnel yn glanio yn yr un ffeil ond â marcwyr gwahanol, a'r manylyn hwnnw sy'n penderfynu cynllun y celloedd yn ddiweddarach.

Angorwch un hidlydd ar real_ip

Cadwch y mynegiad yn gul. Bydd hidlydd sy'n hawlio unrhyw linell sy'n cynnwys cyfeiriad IP yn gwahardd pobl am ddatgysylltiadau cyffredin, ac ar weinydd prysur yr unig symptom yw defnyddwyr yn cwyno iddynt gael eu cloi allan am gau laptop. Hawliwch y cofnod gwall a dal y cyfeiriad mewn dyfynbris:

# /etc/fail2ban/filter.d/openvpnaccess.local
[Definition]
failregex = ^ .*LOG ERR.*"real_ip": "<HOST>".*
ignoreregex =

Nid yw'r bwlch arweiniol yn gosmetic. Mae Access Server yn mewnoli ei gofnodion, ac mae angori arno yn atal y patrwm rhag hawlio llinellau hefyd a ysgrifennir i'r un ffeil gan wasanaethau di-gysylltiad. Os yw eich cofnodion yn cario stamp amser arweiniol yn lle hynny, cyfatebwch y rhagddodiad hwnnw, ond angorwch ar rywbeth sydd wirioneddol bresennol ym mhob cofnod y bwriadwch ei hawlio.

Pan fyddwch angen manylder fesul arwyneb, culhewch ymhellach drwy fynnu marcwr yr arwyneb (WEB_CLIENT, WEB_ADMIN neu VPN) yn yr un llinell. Mae un hidlydd â thri phatrwm yn haws i'w archwilio na thri hidlydd sy'n gwahaniaethu mewn un gair.

Profwch y mynegiad cyn galluogi cell

Peidiwch byth â galluogi hidlydd nad ydych wedi'i redeg yn erbyn y log cynhyrchu. Mae'r prawf dogfennol yn pasio'r hidlydd ddwywaith, unwaith i lwytho ac unwaith i gymhwyso, a'r adroddiad llinellau a gollwyd yw'r rhan sy'n werth ei darllen:

fail2ban-regex --print-all-missed /var/log/openvpnas.log \
  /etc/fail2ban/filter.d/openvpnaccess.local \
  /etc/fail2ban/filter.d/openvpnaccess.local > missed.txt

Cymharwch y cyfrif cyfateb â'r methiannau a gadarnhawyd gennych yn y cam cyntaf. Mae dim cyfateb yn golygu bod y patrwm yn anghywir; mae cyfateb ar linellau nad ydynt yn fethiannau dilysu yn golygu ei fod yn rhy eang. Darllenwch missed.txt nes y gallwch esbonio pob llinell y gwnaethoch ddewis peidio â'i hawlio.

Gwnewch y prawf hwn ar gopi os yw'r log yn fawr, a'i ail-redeg ar ôl unrhyw uwchraddiad Access Server. Fformat y log yw'r rhyngwyneb yr ydych yn cyfateb ag ef, ac nid yw'n API sefydlog.

Rhannwch gelloedd fesul arwyneb, nid fesul daemon

Mae un Access Server yn cyflwyno sawl arwyneb dilysu: rhyngwynebau gwe cleient a gweinyddol ar 943/tcp, a'r tiwnel ar 1194/udp neu 443/tcp yn y rhan fwyaf o ddefnyddiadau. Mae un gell yn cwmpasu pob un ohonynt yn caniatáu i ymdrechion dyfalu ar y tiwnel wahardd cyfeiriad sydd hefyd yn llwybr gweinyddol i chi, ac mae'n cuddio pa arwyneb sydd dan ymosodiad mewn gwirionedd. Rhowch gell ei hun i bob arwyneb gyda'i borth a'i drothwyon ei hun:

# /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  = 1h

Dechreuwch â chyfrifyddion bach a gwaharddiad byr, yna eu codi unwaith y byddwch wedi gwylio wythnos o draffig go iawn. Mae trothwy hael ar gyfeiriad swyddfa a rennir yn cosbi pob defnyddiwr y tu ôl i un NAT, ac mae gwaharddiad ymosodol ar arwyneb y tiwnel yn datgysylltu cleientiaid dilys y mae eu hundebau cyfredol wedi dod i ben dros nos.

Gwirwch y gwaharddiad, y backend a'r niwed atodol

Ar ôl ailgychwyn, allbwn statws yw'r cadarnhad cyflymaf bod y gell yn bodoli ac yn cyfrif:

fail2ban-client status
fail2ban-client status openvpnas-tunnel

Yna cadarnhewch fod y gwaharddiad yn cyrraedd y wal dân yr ydych yn ei redeg mewn gwirionedd, oherwydd nid yw cell wedi'i ffurfweddu ar gyfer backend nad oes neb yn ei orfodi yn amddiffyn dim. Gyda'r weithred iptables mae'r cyfeiriadau'n ymddangos mewn cadwyn a enwir ar ôl y gell (f2b-openvpnas-tunnel); gyda'r weithred nftables maent yn glanio mewn set yn nhabl fail2ban ei hun. Gwiriwch yr un y mae eich gwesteiwr yn ei ddefnyddio yn lle tybio.

Mae dau wiriad atodol yn bwysicach na'r gwaharddiad ei hun. Yn gyntaf, gwirwch mai real_ip yw cyfeiriad y cleient ac nid cydbwysydd llwyth neu ddirprwy gwrthdro; y tu ôl i ddirprwy mae pob gwaharddiad yn glanio ar y dirprwy ac yn cwympo'r gwasanaeth cyfan gyda hi. Yn ail, ysgrifennwch y weithdrefn ddad-wahardd, oherwydd y cyfeiriad sy'n croesi'r trothwy am 02:00 fel arfer yn perthyn i'r peiriannydd ar alwad: fail2ban-client set openvpnas-tunnel unbanip 203.0.113.24.

Cadwch y ffin mewn cof wrth diwnio. Mae Fail2ban yn gyfyngydd cyfradd ar un arwyneb dilysu, nid yn haen rheoli mynediad. Nid yw'n disodli MFA, cyfyngiadau fesul cyfrif, na chadw'r rhyngwyneb gweinyddol oddi ar y rhyngrwyd cyhoeddus, ac mae gan Access Server ei osodiadau autoban ei hun sy'n werth eu gwirio cyn i chi bentyrru dau gyfyngydd cyfradd ar yr un porth.

Erthyglau cysylltiedig