Żewġ ismijiet DNS, port OpenVPN wieħed: x'jgħażel tassew
Żewġ ismijiet tal-host li jindikaw lejn indirizz wieħed xorta jilħqu semmiegħ wieħed. Il-qasam li jibgħat il-klijent biss jista' jagħżel backend, u OpenVPN nativ ma jibgħat xejn.
Żewġ rekords A, indirizz wieħed, daemon wieħed: liema isem jittajpja l-utent, il-pakkett li jasal huwa identiku, u l-proċess marbut mal-port 1194 m'għandu xejn biex jiddistingwi t-tnejn. Din mhix konfigurazzjoni ħażina li qed tistenna tiswija; din hija l-limitu ta' dak li tista' tesprimi tfittxija tal-isem. Kull ħaġa li tagħżel bejn żewġ istanzi ta' OpenVPN trid tkun valur li l-klijent ipoġġi fil-konnessjoni u li l-quddiem jista' jerġa' jaqra, u klijent OpenVPN standard ma jpoġġix valur bħal dan fil-miftuħ. Dak li ġej huwa fejn dan iħallik, u liema arranġamenti tassew jaqsmu t-traffiku.
Ibda b'dak li jirritorna s-solutur
Klijent jitlob vpn-a.example u jirċievi indirizz; dak l-indirizz flimkien ma' port huwa kollox li jċempel. L-isem jintefa lokalment, waqt it-tfittxija, u qatt ma jsir qasam fuq il-wajer, għalhekk is-semmiegħ fit-tarf l-ieħor ma jistax jara liema tikketta ntużat. Idderieġi vpn-a.example u vpn-b.example lejn host wieħed u ż-żewġ tfittxijiet jagħtu l-istess destinazzjoni, u għalhekk id-daemon jassorbi ż-żewġ konnessjonijiet fi istanza waħda mingħajr ma jirreġistra differenza. Profili bbażati fuq l-indirizz iġibu ruħhom eżatt bħal dawk ibbażati fuq l-isem, għall-istess raġuni.
Dan jagħlaq ukoll familja ta' soluzzjonijiet alternattivi li jħajru: alias addizzjonali, għażla ta' ċertifikat għal kull isem fuq sokit wieħed, jew regola tal-firewall marbuta mal-isem mitlub. L-ebda waħda minnhom ma tista' taġixxi fuq informazzjoni li kienet diġà mormija qabel ma l-ewwel pakkett ħareġ mill-klijent. Jekk żewġ servers iridu jibqgħu separati, is-separazzjoni trid tivvjaġġa mal-konnessjoni nnifisha, jiġifieri indirizz, port, jew qasam tal-payload li jiddefinixxi l-protokoll.
L-uniku selettur li jgħodd jivvjaġġa ġewwa l-pakkett
HTTP jimmaniġġja dan b'header Host, u TLS b'estensjoni tal-isem tas-server fil-ClientHello, u hekk indirizz wieħed iservi ħafna siti wara semmiegħ wieħed. It-tnejn jaħdmu għax il-protokoll fuq il-wajer iġorr talba għal servizz speċifiku. Il-fatt rilevanti dwar OpenVPN huwa li l-ebda wieħed minn dawn il-qasmiet mhu preżenti fil-livell li kaxxa intermedja tiskrutinja.
F'arranġament standard il-handshake TLS li jipproteġi l-kanal tal-kontroll iseħħ wara li tiġi stabbilita s-sessjoni ta' barra u jinġarr ġewwa fiha, għalhekk semmiegħ li ma temmiex dik is-sessjoni jara fluss opak. Xorta jista' jgħid li dan huwa OpenVPN, għax l-opcode u l-inkwadrar fl-ewwel bytes huma rikonoxxibbli, iżda l-isem tas-server, jekk jeżisti, joqgħod fil-parti ċċifrata. Disinn li jistenna jaqra host virtwali mill-pakkett ta' barra qed jaqra qasam li l-protokoll qatt ma jikteb hemm. Dan jiġi minn kif huwa mibni t-tunnell, mhux minn vojt li tqabbil ta' mudell aktar għaqli jista' jagħlaq.
Fejn jieqaf il-qassam tal-protokoll
Multiplexer tat-tip li jiddokumenta l-proġett sslh jisma' fuq port wieħed, jiskrutinja l-ewwel bytes, u jgħaddi l-konnessjoni lil kwalunkwe backend li jitkellem il-protokoll rikonoxxut. Dan huwa valur reali meta port wieħed irid iservi SSH, HTTPS u OpenVPN flimkien.
sslh iżomm sonda separata għal kull protokoll, u s-sonda TLS tiegħu tista' tiġbed isem tas-server jew valur ALPN minn ClientHello ġenwin. Li tagħraf OpenVPN nativ hija klassifikazzjoni differenti milli taqra estensjoni TLS, u t-tnejn ma jingħaqdux, għax klijent li qatt ma jibgħat ClientHello lis-sokit li jisma' jħalli s-sonda mingħajr xejn x'jaqra. Għalhekk regola li taqbel ma' OpenVPN twieġeb “dan huwa klijent OpenVPN” u ma tmurx aktar. Żewġ backends OpenVPN wara dik ir-regola ma jistgħux jiġu distinti, il-quddiem m'għandux bażi għall-għażla, u kull sessjoni tinżel fl-istess post. Il-multiplexing jaqsam port wieħed bejn servizzi differenti; mhuwiex jagħmel hosting virtwali fi ħdan servizz wieħed.
Arranġamenti li tassew jifirdu żewġ servers
L-ifjen separazzjoni onesta hi it-tieni indirizz pubbliku, wieħed għal kull istanza, u l-profili eżistenti diġà jġorru dak li hemm bżonn għax jindikaw lejn indirizzi differenti. Li jmiss huwa port differenti fuq l-istess indirizz, li ma jiswiex xejn ħlief numru f'kull profil. TCP u UDP iżommu tabelli tal-ports separati, għalhekk 1194/tcp u 1194/udp huma sokits mhux relatati u wieħed minn kull wieħed jista' jikkoeżisti fuq host wieħed; din hija separazzjoni tat-trasport u mhux routing bl-isem, u spiss tiġi konfuża miegħu. Iż-żewġ għażliet jgħaddu reviżjoni tal-firewall, għax ir-regola taqbel ma' xi ħaġa li l-pakkett tassew fih.
Jekk il-konfini li għandek bżonn jiġri bejn gruppi ta' utenti minflok bejn żewġ implimentazzjonijiet, istanza waħda b'konfigurazzjonijiet tal-klijent distinti, l-immaniġġjar tagħha stess taċ-ċertifikati u politika ta' aċċess espliċita tista' tkopriha. Dak li jixtri huwa politika fi ħdan server, mhux iżolament bejn servers, u dawn huma rekwiżiti differenti. L-iżolament li jrid jibqa' wieqaf taħt kompromess xorta jeħtieġ l-indirizz jew ix-xifer tal-firewall.
Terminatur TLS imqiegħed quddiem OpenVPN jista' jesponi isem tas-server reali lil quddiem kapaċi, iżda biss meta n-naħa tal-klijent ukoll tkun ikkonfigurata għal dak is-saff addizzjonali. Il-profili eżistenti ma jakkwistawx dan l-imġiba sempliċement billi jiġu indirizzati lejn l-istess indirizz.
Ipprova s-selettur qabel tibni
Semmi l-qasam li se jidentifika backend, imbagħad ikkonferma li l-klijent tassew jibgħatu; jekk it-tweġiba hija indirizz, il-pjan jibqa' wieqaf, u jekk huwa isem tas-server ġewwa handshake li qatt ma jasal għand is-semmiegħ, ebda xogħol DNS mhu se jsalvah. Tliet kmandi jiddeċiedu n-naħa li tisma' malajr.
ss -lntup | grep -E ':443|:1194'
openssl s_client -connect vpn-a.example:443 -servername vpn-a.example </dev/null | head -n 20
journalctl -u openvpn-server@server-a -n 20 --no-pager
Il-linja openssl tagħti ċertifikat biss fejn xi ħaġa f'dak l-indirizz itemm TLS; kontra semmiegħ OpenVPN nativ hija toqgħod jew tfalli, u dan innifsu huwa t-tweġiba dwar x'jesponi s-saff ta' barra. Il-linja journal, moqrija fuq kull backend, turi liema istanza aċċettat is-sessjoni. Il-logs tal-quddiem jirreġistraw dak li ġie kklassifikat u qatt dak li kien maħsub, għalhekk il-backend jibqa' l-unika awtorità dwar fejn l-utent inżel.
Temm b'żewġ profili maħsuba biex jaslu għal servers differenti, qabbadhom wieħed wieħed u noti l-log tal-backend għal kull wieħed. Jekk iż-żewġ sessjonijiet jidhru fl-istess journal, is-selettur huwa nieqes mhux ikkonfigurat ħażin, u s-soluzzjoni hija indirizz jew port li l-klijent jista' jimmira. L-editjar tar-regola tar-routing mhu se jgħin, għax ir-regola qatt ma ngħatat xi ħaġa biex tirrotta fuqha. Ladarba s-separazzjoni tkun reali, iktebha ħdejn il-profili sabiex il-persuna li jmiss ma żżidx alias ieħor u tistenna li jagħmel ix-xogħol.