Mae’r twnnel yn cysylltu o linell gartref ac yn stopio ar rwydwaith gwesty neu swyddfa, ac ni newidiodd symud y gweinydd i borth 443 ddim. Mae’r canlyniad hwnnw’n ddigon cyffredin i fod â siâp: y porth oedd y rhan hawdd, ac mae gweddill y penderfyniad yn perthyn i bopeth sy’n sefyll rhwng y cleient a’r gweinydd. Mae dau gwestiwn yn setlo’r rhan fwyaf o achosion, ac nid yw’r naill na’r llall yn ymwneud â seiffrau. A yw’r rhwydwaith yn derbyn ysgwyd llaw TLS i’r cyfeiriad hwnnw, ac a yw’r cleient yn cadw llwybr at ei droellwr ei hun tra bo’r twnnel i fyny?

Mae’r ysgwyd llaw yn datgelu mwy na’r rhif

Mae gwrandawr VPN brodorol ar TCP 443 yn siarad ei brotocol ei hun o’r pecyn cyntaf. Mae gan ClientHello faes fersiwn, gwerth ar hap a rhestr estyniadau, a gall dyfais sy’n darllen ychydig gannoedd o feitiau weld y gwahaniaeth heb ddadgryptio dim. Mae rhifau porth yn rhad i’w bodloni, a siâp y protocol yw’r hyn y mae’r hidlydd yn ei wirio. Mae rheolau’n cael eu hysgrifennu fesul protocol hefyd, felly nid yw polisi sy’n archwilio TLS yn dweud dim am UDP.

Mae dirprwy tryloyw sy’n mynnu sesiwn TLS ddilys yn gollwng y cysylltiad yn ystod y gosodiad, yn aml ar ôl i’r ysgwyd llaw TCP gwblhau. Mae’r manylyn hwnnw’n bwysig yn ddiweddarach, oherwydd mae’n golygu bod log y cleient yn stopio ar ôl i’r soced gael ei sefydlu.

Mae troelli’r ffrwd yn creu dau bwynt methu

Mae troellwr TLS fel stunnel yn adfer y siâp disgwyliedig: mae’r cleient yn cysylltu â gwrandawr lleol, mae’r troellwr yn agor sesiwn TLS go iawn i’r gweinydd ar 443, ac mae ail droellwr ar y gweinydd yn anfon y beitiau dadgryptiedig at y daemon VPN. Mae’r sesiwn allanol nawr yn edrych fel unrhyw gysylltiad HTTPS arall. Dylai daemon VPN ar y gweinydd wrando ar loopback yn unig, oherwydd nid oes angen i unrhyw beth y tu allan i’r troellwr gyrraedd ato.

Rhaid i dri pheth ar wahân alinio ar gyfer y cynllun hwnnw. Mae proffil y cleient yn pwyntio at y gwrandawr lleol, mae tystysgrif y gweinydd yn cyfateb i’r enw y mae’r cleient yn ei wirio, ac mae’r blaenyrru ar ochr y gweinydd yn targedu’r porth y mae’r daemon yn ei ddefnyddio mewn gwirionedd. Camgymerwch unrhyw un ohonynt a bydd y cysylltiad yn marw cyn cyrraedd haen VPN. Yna mae anghysondeb tystysgrif yn ymddangos fel gwall troellwr yn hytrach na gwall VPN, a dyna pam mae’n werth darllen y ddau log ochr yn ochr.

Y llwybr at y troellwr yw’r fagl

Unwaith y bydd y twnnel i fyny, mae’r llwybr diofyn yn pwyntio iddo, ac mae angen llwybr ar y sesiwn TLS allanol nad yw’n mynd i mewn i’r twnnel y mae’n ei gario. Mae cleient VPN cyffredin yn gwarchod y cyfeiriad y mae’n ei ddeialu; mae cleient wedi’i droelli yn deialu ei loopback ei hun, felly mae cyfeiriad cyrchfan y troellwr yn anweledig i’r warchodaeth honno.

sudo ip route add 198.51.100.20 via 192.168.0.1
sudo openvpn --config client.ovpn
sudo ip route del 198.51.100.20

Chi sydd i lenwi’r cyfeiriadau union, ac mae’n rhaid i’r llwybr fodoli am holl oes y cysylltiad, nid yn unig wrth gychwyn. Mae sgript droellwr fach sy’n ychwanegu’r llwybr cyn y cleient ac yn ei dynnu wedyn yn fwy dibynadwy na gorchymyn sy’n cael ei gofio.

Ar Android, yr hyn sy’n cyfateb i’r eithriad hwnnw yw gosodiad fesul ap: eithriwch y rhaglen droellwr o’r twnnel fel bod ei thraffig ei hun yn gadael drwy’r cysylltiad symudol. Heb yr eithriad mae’r troellwr yn cael ei lwybrbrofi i mewn i’r twnnel y mae’n ceisio ei adeiladu, ac mae’r ddolen ailgysylltu yn edrych fel problem gweinydd.

Darllenwch yr amseru cyn newid unrhyw beth

Mae sesiwn sy’n marw ar ôl yr un cyfwng bob tro yn arwydd polisi ac nid yn fethiant cryptograffig, ac mae terfynau llif hirhoedlog yn cynhyrchu’r union batrwm hwnnw. Mae cysylltiad sy’n ailosod yn syth ar ôl yr ysgwyd llaw yn awgrymu dirprwy nad oedd yn hoffi’r gadwyn dystysgrif.

Cymharwch ddyroddwr tystysgrif safle HTTPS cyffredin o’r ddau rwydwaith. Os yw’r dyroddwr yn wahanol ar y rhwydwaith cyfyngedig, mae rhywbeth yn terfynu TLS yn y canol, ac ni fydd unrhyw droellwr yn goroesi’r rhyng-gipio hwnnw heb newid. Mae’r un gymhariaeth yn dweud wrthych a yw’r bloc yn targedu enw eich gweinydd neu bob sesiwn TLS yn y cyfeiriad hwnnw.

Ysgrifennwch yr ymddygiad a welwyd: pa mor hir y parhaodd y sesiwn, a agorodd y soced, a gofnododd y troellwr ysgwyd llaw. Mae pob un ohonynt yn culhau’r prawf nesaf.

Profwch un newidyn ar y tro

Gwiriwch UDP yn gyntaf, oherwydd mae rhai rhwydweithiau’n ei ollwng yn gyfan gwbl ac nid yw methiant UDP yn dweud dim am 443. Yna rhowch gynnig ar TCP 443 heb y troellwr, wedyn y troellwr ar 443. Darllenwch log y cleient ar bob cam a stopiwch cyn gynted ag y bydd yr ymddygiad yn newid.

Newidiwch un elfen y tro. Mae porth newydd, troellwr newydd a seiffer newydd yn yr un rhediad yn eich gadael heb allu dweud pa un o’r tri a oedd yn bwysig.

Erthyglau cysylltiedig