Mae Squid yn ateb cais CONNECT â’r llinell http_access gyntaf sy’n cyfateb, ac mae’r llinell honno’n gallu bod yn wadiad. Mae’r un ffaith hon yn esbonio pam mae eithriad ar gyfer pwynt diwedd VPN fel arfer yn methu ar y cynnig cyntaf, oherwydd nid yw’r cais byth yn cyrraedd y caniatâd a ychwanegodd rhywun ar y diwedd. Mae atgyweiriad cul yn cadw’r gwarchodwyr porth presennol ac yn eu dysgu am un ffynhonnell, cyrchfan a phorth sydd wedi’u hadolygu. Mae popeth arall ar y dirprwy yn ymddwyn yn union fel o’r blaen.

Sut mae Squid yn penderfynu ar gais CONNECT

Mae cais CONNECT yn enwi gwesteiwr a phorth, ac mae Squid yn cerdded y llinellau http_access mewn trefn nes bod un ohonynt yn cyfateb. Mae gwadiad sy’n cyfateb yn gorffen y gwerthusiad ar unwaith ac mae’r cleient yn derbyn 403 gan y dirprwy. Dyna pam mae safle rheol yn bwysicach na’i geiriad. Gall symud yr un llinell un cam i fyny newid y canlyniad yn llwyr.

Mae’r gwarchodwyr confensiynol yn gwadu unrhyw beth y tu allan i Safe_ports ac yn gwadu CONNECT y tu allan i SSL_ports. Enwau ACL a ddiffinnir yn eich cyfluniad eich hun yw’r rhain, felly mae eu cynnwys yn eiddo i chi yn hytrach na’r protocol. Gall dosbarthiad ganiatáu ystod eang o borthladdoedd fel Safe_ports tra’n cyfyngu CONNECT ar wahân. Darllenwch y gwerthoedd byw cyn tybio bod porth wedi’i rwystro yn ôl cynllun.

Cadarnhewch mai’r dirprwy yw’r gydran sy’n gwrthod y cais. Nid yw 403 a gynhyrchir gan Squid yn edrych o gwbl fel rhybudd TLS o’r gweinydd VPN, ac mae uno’r ddau yn un broblem yn costio’r awr gyntaf. Gwiriwch y llinell yn y cofnod mynediad ar gyfer y cais, oherwydd mae’n cofnodi’r weithred a’r rheol a’i cynhyrchodd ill dau.

Adeiladwch un cyfateb cyfun yn lle tair ACL rhydd

Adeiladwch yr eithriad o dri ffaith: ystod ffynhonnell gymeradwy, un cyfeiriad cyrchfan cymeradwy, a’r un porth y mae’r pwynt diwedd yn gwrando arno. Mae dwy ACL rydd ac un cyfateb cyfun yn cynhyrchu polisi hollol wahanol, oherwydd y cyfuniad sy’n cael ei werthuso. Enwch yr ACL gyfun ar gyfer yr hyn y mae’n ei ganiatáu, nid y dull y mae’n ei gario.

Mae’r ffurf isod yn defnyddio ystodau dogfennaeth y mae’n rhaid eu disodli â gwerthoedd adolygedig. Nid yw Squid yn cadw unrhyw un o’r enwau hyn, felly chi sy’n eu dewis ac yn eu cadw’n gyson. Mae’r rysáit hon wedi’i chyfyngu i Squid 6 a 7, y mae eu cyfluniad dogfennedig yn cefnogi’r grŵp all-of. Mae’r cyfeirlyfr presennol yn nodi nad yw’r cyfarwyddiadau hynny ar gael yn Squid 8, felly triniwch hwn fel rysáit sy’n gysylltiedig â fersiwn yn hytrach na llwybr mudo, a gwiriwch y cyfarwyddiad yn erbyn cyfeirlyfr eich fersiwn eich hun cyn ei gymhwyso.

acl pvpn_src src 192.0.2.128/25
acl pvpn_dst dst 198.51.100.77/32
acl pvpn_port port 1194
acl pvpn_ok all-of CONNECT pvpn_port pvpn_dst pvpn_src

Nid yw’r grŵp all-of yn cyfateb oni bai bod pob aelod yn cyfateb, sy’n golygu bod ffynhonnell, cyrchfan a phorth yn cael eu gwirio ar un llinell. Nid yw’r grŵp yn rhoi dim ynddo’i hun, ac ni all cais sy’n cyfateb i ddau o’r tri ffaith yn unig ei fodloni. Mae’r nodwedd honno’n cadw’r eithriad yn gul pan fydd rhywun yn ychwanegu ail borth ar ôl hynny. Naill ai ychwanegir y gyrchfan newydd yn fwriadol, neu mae’r cais yn disgyn yn ôl i’r gwarchodwyr gwreiddiol.

Plygwch y gwarchodwyr porth heb eu dileu

Yn eu safleoedd presennol, dyma sut mae’r ddwy linell warchod confensiynol yn edrych. Maent fel arfer yn eistedd ar ôl dilysu ac o flaen y llinellau polisi sy’n caniatáu unrhyw beth.

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

Ychwanegwch y cyfateb cyfun negyddedig at bob un, fel bod eithriad sy’n cyfateb yn goroesi gwarchodydd a fyddai fel arall yn ei wadu. Dim ond y llinellau gwarchod sy’n newid, a hynny dim ond drwy un term ychwanegol yr un.

http_access deny CONNECT !SSL_ports !pvpn_ok
http_access deny !Safe_ports !pvpn_ok

Mae termau ar un llinell fynediad yn cael eu cyfuno, felly nawr dim ond ceisiadau sy’n methu’r gwiriad gwreiddiol a’r eithriad ill dau y mae’r llinell yn eu gwadu. Mae cais ar gyfer y pwynt diwedd cymeradwy yn mynd trwodd, ac mae pob cais arall yn cadw’r hen ymddygiad porth. Mae hyn yn galetach na ychwanegu’r porth at restr SSL_ports fyd-eang, a fyddai’n caniatáu’r porth hwnnw i bob cyrchfan. Os yw’r porth eisoes ar y rhestr honno, nid yw’r ACL hon yn culhau dim ac mae’r caniatâd hŷn, ehangach yn dal i fod yn berthnasol i gyrchfannau eraill, felly darllenwch y rhestr fyw cyn honni bod yr eithriad wedi agor y porth. Mae hefyd yn wrthdroadwy, oherwydd mae dwy linell yn dychwelyd i’w ffurf flaenorol. Mae’r cyfeirlyfr rheoli mynediad yn dogfennu’r drefn a’r gwarchodwyr confensiynol y mae’r newid hwn yn dibynnu arnynt.

Lle na ddylid gosod yr eithriad

Y demtasiwn yw rhoi caniatâd uwchben y gwarchodwyr a gorffen. Mae’r lleoliad hwnnw hefyd yn hepgor y diogeliadau dilysu a chyrchfan leol sydd fel arfer yn eistedd yn agos at ben uchaf cyfluniad gweithredol. Nid eithriad cul yw’r canlyniad, mae’n dwll gyda sylwebydd uwch ei ben. Cadwch unrhyw ganiatâd newydd ar yr un cam adolygedig â gweddill polisi’r cleient.

Gwiriwch beth sydd ei angen ar y cais o hyd ar ôl y gwarchodwyr porth. Mae cyfrif dilys, cyfeiriad cleient a ganiateir a pholisi cyrchfan i gyd yn dal i fod yn berthnasol, ac nid yw’r eithriad yn newid yr un ohonynt. Os yw eich dirprwy eisoes yn caniatáu i’r cyfrif cymeradwy gyrraedd cyrchfannau mympwyol, nid y gwarchodydd porth oedd y rheolaeth wirioneddol erioed.

Ystyriwch a yw’r pwynt diwedd yn TCP o gwbl. Mae eithriad CONNECT yn cario ffrydiau TCP, ac ni fydd proffil OpenVPN sy’n defnyddio UDP yn dod yn gyrraeddadwy trwyddo. Newidiwch y proffil i TCP dim ond os yw’r gweinydd yn gwrando felly ac os yw’r gweithredwr yn derbyn y gwahaniaeth mewn ymddygiad.

Gwiriwch y ffin gyda’r dosrannydd a chais go iawn

Dosrannwch y cyfluniad cyn ail-lwytho, a chadwch ail sesiwn ar agor wrth wneud hynny. Gall gwall cystrawen ar amser ail-lwytho adael y dirprwy ar yr hen gyfluniad neu wrthod yr un newydd yn gyfan gwbl. Mae’r dosrannydd yn adrodd y llinell a wrthodwyd, sy’n fwy nag a fydd gwall y cleient yn ei ddweud wrthych.

Yna ail-lwythwch ac anfonwch un CONNECT go iawn trwy’r dirprwy o ffynhonnell gymeradwy. Mae rhedeg y dosrannydd yn dod yn gyntaf, oherwydd nid yw ail-lwytho â theipos yn eich dysgu unrhyw beth am y polisi.

squid -k parse
squid -k reconfigure
curl -v -p -x http://proxy.lab.internal:3128 https://vpn.lab.internal:1194/ --max-time 5

Profwch dri achos: ffynhonnell a chyfrif cymeradwy, ffynhonnell anghymeradwy, a chyrchfan wahanol ar yr un porth. Y trydydd achos sy’n profi bod yr eithriad yn gul, oherwydd mae’n arfer y porth heb y cyfateb cyrchfan. Darllenwch y cofnod mynediad ar gyfer y tri yn lle ymddiried yn neges y cleient. Mae CONNECT llwyddiannus yn sefydlu ffrwd TCP a dim mwy, felly mae ysgydwad llaw VPN yn parhau i fod yn brawf ar wahân.

Erthyglau cysylltiedig