Sanya rufin TLS a gaban OpenVPN kuma turawar tana samun mai sauraro na biyu, wanda ɗaya kawai daga cikinsu ya kamata ya taɓa fuskantar intanet. Lokacin da ramin yana aiki daga na'urar ɗaya kuma ya kasa daga waje, turawar yawanci tana kan ɗaya daga cikin biyun da ba daidai ba. Abin da dole ne ya daidaita shi ne sarƙa: ƙa'idar jama'a tana isa rufin, kuma haɗin bayan-baya na rufin kansa yana isa ainihin soket ɗin VPN. Tsalle huɗu ne ke ɗaukar wannan sarƙa, kuma kowane ɗayansu na iya kawo ƙarshen binciken da wuri.

Soket biyu, masu mallaka biyu, ɗaya daga cikinsu na jama'a

Rufin yana ƙare TLS don haɗin waje kuma yana ba da rafin byte ɗin da aka buɗe wa mai sauraron OpenVPN TCP na yau da kullum. Waɗannan soket daban-daban ne da fayilolin saiti daban-daban, don haka gyara ɗaya yana barin ɗayan ba a taɓa ba kuma har yanzu da alama lafiya. Hakanan yana nufin biyun na iya watsewa a duk lokacin da aka canza ɗaya ba tare da ɗayan ba.

Yin aiki daga na'urar kanta saboda haka yana tabbatar da kaɗan game da hanyar jama'a. Haɗi kai tsaye zuwa tashar asali yana tsallake rufin, haɗi zuwa rufin a adireshin LAN ɗinsa yana tsallake fassarar, kuma cikakken tsari na gefen abokin ciniki ne kaɗai ke gwada abin da mai amfani daga waje ke yi. Hakanan ana buƙatar karanta sunaye a hankali, domin localhost yana nufin mai masaukin da ke gudanar da wannan ɓangaren, ba mai masaukin da kake bugawa ba da gangan. Riƙe wannan bambanci a cikin bayananka, domin gwajin da aka rubuta ba tare da tsallen da ya rufe ba yana gayyatar kwatanta abubuwa biyu daban-daban.

Inda turawa ke sauka da gaske

Sarƙar ta fi sauƙin riƙewa a matsayin tsalle huɗu fiye da lambobin tasha uku, domin lamba ɗaya na iya nufin abubuwa daban-daban a kowane gefe. Karanta teburin layi-layi: kowane layi soket ɗaya ne wanda dole ne ya karɓi haɗi sannan ya buɗe na gaba. Lokacin da layi ya nufi abokin da ba daidai ba, alamar da ke cikin shafi na ƙarshe ita ce abin da mai amfani ke bayarwa.

HopListens onMust reachSymptom when it points elsewhere
Client machineA local plaintext portThe wrapper's public TLS addressPlain text offered to a TLS endpoint
Router forwardPublic TCP 443The wrapper host on its translated portWrapper records no connection at all
Wrapper, server modeIts accepted port, 8443 hereThe native VPN socket on loopbackHandshake completes, then silence
Native VPN listenerLoopback TCP portIts peer, over TCP onlyA UDP socket behind a byte-stream relay

Ƙa'idar da ta nufi tashar VPN ta asali maimakon rufin tana tsallake ƙarshen TLS gaba ɗaya, wanda shine mafi yawan nau'in wannan kuskure: abokin ciniki yana buɗe musafaha da mai sauraro da ke tsammanin firam ɗin OpenVPN, don haka haɗin na iya buɗewa sannan ya tsaya. Tabbatar da tashar da aka fassara da fayil ɗin saitunan rufin maimakon da ƙwaƙwalwa, domin mai zuwa na gaba da zai gyara wannan fayil ɗin yana iya zaɓar wata lamba. Umarnin biyu da ke ƙasa suna nuna ɓangarorin biyu na wannan tambaya a lokaci ɗaya.

grep -nE '^[[:space:]]*(accept|connect)' /etc/stunnel/stunnel.conf
ss -lntp | grep -E ':443|:8443|:1194'

Adireshin ɗaure da ke ƙi ka

Layin accept da aka ɗaure da 127.0.0.1 yana amsa mai masaukin kansa kawai, don haka turawar da ta iso a adireshin LAN ba za ta iya haɗawa ba kuma abokin ciniki yana ganin ƙi wanda ke kama da matsalar matatar fakiti. Duba soket ɗin kafin ka taɓa katangar wuta, domin soket ɗin shine amsa mafi arha. Ko dai ka ɗaure rufin da mu'amalar da turawar ke nufi, ko ka ajiye shi a loopback kuma ka sa turawar ta isa loopback ta wani abu da ke aiki da gaske. Waɗannan ƙira biyu ne, kuma kowanne yana buƙatar nasa ƙa'idar.

Haɗa su shi ne yadda rufin da ke aiki ya zama ba a isa gare shi daga waje alhali kowane fayil yana kama da daidai. Binciken da ke ƙasa umarni ɗaya ne, kuma yana amsa tambayar da bitar ƙa'idojin katangar wuta ba za ta iya ba. Idan fitowar ta nuna adireshin loopback alhali turawar tana nufin adireshin LAN, gyaran yana cikin layin accept ba a cikin matatar fakiti ba.

ss -lntp '( sport = :8443 )'

Abin da gwajin gida ya tabbatar da gaske

Nasara da aka rubuta ba tare da tsallen da ta rufe ba ba hujja ba ce game da sauran tsalle-tsalle. Lura da adireshin da gwajin ya yi amfani da shi da kuma tsarin da ya amsa. Sannan sake maimaitawa daga wajen cibiyar sadarwa maimakon daga waya a kan Wi-Fi ɗaya, domin halin ƙugiya ya bambanta tsakanin na'urorin sadarwa kuma haɗin da bai taɓa barin LAN ba zai iya gamsar da abokin ciniki ba tare da turawar ta shiga ba kwata-kwata. Wannan ƙoƙari na biyu ne kawai ke gwada hanyar da baƙo ke bi.

Lokacin da ƙoƙarin ya kasa, bi haɗi ɗaya a cikin duka littattafan biyu: layukan karɓa da haɗa na rufin, sannan littafin zaman daemon ɗin VPN kansa. Iyakar farko da ba ta rubuta komai ita ce inda canji na gaba ya kamata. Da zarar OpenVPN ya fara kwatanta zaɓuɓɓukan abokin tarayya, yi hukunci kan waɗannan saƙonni bisa ƙa'idojin wannan aiwatarwa. Gargadin rashin daidaituwar link-mtu ba ya kashewa kai tsaye, sanya link-mtu a 1500 ba ya tabbatar da cewa rarrabuwa ta tsaya, kuma tattaunawar sirri ta shafi saitin OpenVPN na ciki ba turawar na'urar sadarwa ba.

nc -vz 127.0.0.1 1194
journalctl -u stunnel -n 50 --no-pager

Waɗannan binciken sun shafi soket ɗin baya da littafin rufin, wanda ke raba bayan da aka ƙi da musafaha da aka ƙi. Gudanar da su yayin da ƙoƙari ɗaya ke gudana ba bayan ba. Tambarin lokaci daga ƙoƙari ɗaya ne ke sa kwatancen ya zama abin dogaro.

Shaida biyu, manyan gazawa biyu

Takardar shaidar waje ta rufin ce kuma shaidar ciki ta OpenVPN ce, kuma suna iya fitowa daga hukumomi daban-daban. Kashe ko wanne daga cikin binciken biyu don hanyar ta zama lafiya yana musanya kariya ta gaske da sakamakon kamanni. Riƙe duka tabbacin biyu kuma gyara su cikin tsari, domin jerin saƙonni yana ambaton matakin: matsalar takardar shaidar rufin tana bayyana kafin a tattauna kowane zaɓi na VPN, yayin da gazawar shaidar ciki ke bayyana ne kawai bayan an kafa rafi.

littafin jagora na stunnel yana bayyana accept, connect da yanayin abokin ciniki daidai, kuma waɗannan sassan suna amsa tambayar soket da sauri fiye da hasashe. Lokacin da har yanzu ba za ka iya cewa wane mataki ya amsa ba, karanta takardar shaidar da tashar jama'a ke gabatarwa da umarnin da ke ƙasa. Kasancewar takardar shaidar rufin a cikin fitowar yana nufin turawar ta isa rufin, kuma shiru ko kuskuren yarjejeniya yana nufin ba ta isa ba. Wannan bambanci ɗaya yana ceton lokaci fiye da kowane bincike a nan.

openssl s_client -connect vpn.example:443 -servername vpn.example </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer

Labarai masu alaƙa