Gall tudalennau cyhoeddus SaaS aros yn agored i bawb tra bod y gweithrediadau gweinyddol y tu ôl iddynt yn gwrthod unrhyw un y tu allan i’r VPN. Nid yw’r mecanwaith sy’n gwneud hynny’n bosibl yn fwydlen gudd nac yn dudalen mewngofnodi ar wahân; mae’n wirio ar y llwybr rhwydwaith a ddanfonodd y cais. Os gwnaethoch y dystiolaeth gyfeiriad yn anghywir, mae’r gwiriad naill ai’n cloi allan weinyddwyr go iawn neu’n derbyn unrhyw un sy’n gallu teipio pennawd. Dechreuwch gyda’r hyn y mae’r tardd yn ei dderbyn mewn gwirionedd.

Yr hyn y mae’r tardd yn ei dderbyn ar ôl y twnnel

Pan fydd porwr yn cyrraedd y safle cyhoeddus trwy VPN sy’n cario traffig rhyngrwyd hefyd, mae’r porth yn cyfieithu’r cysylltiad cyn iddo adael. Mae’r SaaS yn gweld cyfeiriad allanfa cyhoeddus y porth, fel arfer un cyfeiriad neu ystod fach, ac nid yw byth yn gweld cyfeiriad twnnel y gliniadur. Dyna pam mae ychwanegu 10.90.0.42 at y rhestr a ganiateir yn methu, a dyna pam mae ychwanegu’r holl RFC 1918 yn methu’n uwch: mae’r ail yn derbyn pob rhwydwaith preifat a all gyrraedd atoch. Yr unig gyfeiriad sy’n werth amod arno yw’r un y mae eich sefydliad yn berchen arno mewn gwirionedd wrth yr allanfa.

curl -s https://ifconfig.me
dig +short admin.example.com

Mae twnelu hollt yn torri’r dybiaeth yn dawel. Os yw’r VPN yn cario llwybrau swyddfa preifat yn unig, mae’r cais i’r enw gwesteiwr gweinyddol cyhoeddus yn gadael trwy’r ISP lleol ac mae’r tardd yn gweld cyfeiriad preswyl. Nid yw eicon VPN cysylltiedig yn profi dim am y gyrchfan benodol hon, felly profwch y gyrchfan yn hytrach na’r twnnel.

Stopiwch a thrwsiwch y llwybro cyn i chi ysgrifennu unrhyw bolisi os yw’r cyfeiriad allanfa’n amrywio fesul defnyddiwr. Mae amod sy’n cyfateb i rai gweinyddwyr yn unig yn waeth nag unrhyw amod, oherwydd mae’n cuddio’r broblem tan ddigwyddiad.

Ymddiriedwch yn unig yn y dirprwy sy’n ailysgrifennu’r cyfeiriad

Mae’r rhan fwyaf o safleoedd cyhoeddus y tu ôl i CDN neu ddirprwy gwrthdro, felly mae cyfeiriad soced y tardd yn perthyn i’r rheng flaen honno ac nid i’r ymwelydd. Mae’r rheng flaen fel arfer yn anfon y cyfeiriad gwreiddiol ymlaen mewn pennawd, ac mae’r pennawd hwnnw dan reolaeth ymosodwr oni bai bod y tardd yn ei dderbyn gan ddirprwyon hysbys yn unig. Ffurfweddwch y rhestr ffynhonnell ddibynadwy yn benodol a gwnewch y tardd yn anghyrraeddadwy o unrhyw le arall. Heb yr ail hanner hwnnw, mae ymosodwr yn hepgor y dirprwy ac yn anfon y pennawd yn uniongyrchol.

set_real_ip_from 192.0.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
curl -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin

Mae’r un rhesymu’n berthnasol i brotocol PROXY: dim ond pan fo’r gwrandäwr wedi’i rwymo i ryngwyneb y gall y dirprwy gyrraedd ato ac na all dim arall, y mae’n ddibynadwy. Rhaid i gyd-destun cyfeiriad sy’n eisiau beri i’r gwiriad gwarchodedig fethu yn hytrach na syrthio i ganiatâd diofyn. Nid yw pennawd absennol yn dystiolaeth o lwybr dibynadwy.

Cysylltwch yr amod â phob gweithrediad gwarchodedig

Rhowch y gwiriad yn y ffin awdurdodi y mae pob gweithrediad gwarchodedig yn mynd drwyddi, nid yn y dudalen sy’n cynhyrchu’r fwydlen. Mae grwpiau llwybr, middleware neu haen polisi i gyd yn gweithio; nid yw copi fesul triniwr yn gweithio, oherwydd ni fydd gan y triniwr y bydd rhywun yn ei ychwanegu’r chwarter nesaf mohono.

user = requireAuthenticatedSession()
requirePermission(user, "admin")
requireVpnEgress(verifiedClientAddress(request))
performProtectedOperation(user, request)

Rhaid i’r un ffin gwmpasu’r JSON API, allforion, URLau lawrlwytho wedi’u llofnodi a chrawnau llaw WebSocket, gan nad oes yr un ohonynt angen i’r dudalen HTML gael ei chwilio gyntaf. Mae dolen lawrlwytho a grëwyd tra oedd y VPN i fyny yn parhau’n ddilys wedyn oni bai bod y pen llwybr lawrlwytho’n ailwirio. Mae angen rheol ailwerthuso ar sesiynau hirhoedlog hefyd, neu bydd un cais dilys yn dod yn esemptiad parhaol. Gwrthodiad diofyn yw’r unig osodiad sy’n goroesi trosiant staff.

Mae cachb dros bennau’n gweithredu o gwmpas y gwiriad. Gall cachb sydd eisoes yn dal ymateb gwarchodedig ei wasanaethu heb gysylltu â’r tardd, felly nodwch ymatebion gweinyddol fel rhai preifat a’u cadw allan o storfa a rennir. Os oes rhaid i gachb eu gwasanaethu, rhaid i’r gwiriad mynediad redeg cyn y gwasanaethu, sy’n golygu fel arfer na all fod yn gachb a rennir o gwbl.

Profwch y ffyrdd osgoi a gauwyd gennych gynnau

Ymarferwch y matrics yn hytrach na’r llwybr hapus: gweinyddwr trwy’r VPN, yr un gweinyddwr hebddi, anweinyddwr trwyddi, a phennawd cyfeiriad ffug. Ychwanegwch gais uniongyrchol i’r tardd a chais ymateb wedi’i gachu, oherwydd y ddau hynny sy’n hepgor y rheng flaen yn gyfan gwbl.

curl -sI https://admin.example.com/export.csv
curl -s -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin
curl -s https://admin.example.com/api/me -o /dev/null -w '%{http_code}\n'

Dylai pob cais ddychwelyd y statws y mae’r polisi’n ei addo, a dylai’r log gofnodi pa dystiolaeth gyfeiriad a ddefnyddiwyd. Gorchuddiwch IPv6 ar wahân, oherwydd gall tardd deu-stac gweld teulu ffynhonnell gwahanol i’r un a brofwyd gennych. Cadwch weithrediadau cwsmer cyffredin yn gweithio y tu allan i’r VPN, neu bydd y newid yn cael ei wrthdroi y tro cyntaf y bydd cwsmer yn cwyno. Ysgrifennwch y canlyniad disgwyliedig ar gyfer pob rhes cyn ei redeg, fel bod pas syndod yn weladwy.

Mae’r cyfeiriad allanfa’n profi llwybr rhwydwaith a ganiateir, nid person ac nid dyfais a reolir. Cadwch ef fel un amod wrth ochr dilysu a chaniatâd, ac mae’r ardal weinyddol yn aros yn gul heb droi’r cynnyrch cyfan yn wasanaeth VPN yn unig. Mae’r gwahanu hwnnw’n rhan o’r dyluniad, nid yn gyfyngiad arno.

Erthyglau cysylltiedig