Gbigbe awọn byte ti a ti fi pamọ lọ lai diẹ mu iwe-ẹri naa ni ohun ti relay TLS passthrough n ṣe, ati pe ètò yii rọrun ati pe o da rudurudu diẹ ni akoko kanna. Nitori ko si ohun ti a yipada, ko si ohun ti o ni irisi HTTP lati ṣe àyọkà, nitorinaa bulọọki location deede ati awọn ofin iwọle rẹ ko ni anfani nibi. Ipinnu ti NGINX ni o ni nipa asopọ naa funrararẹ: eyi ti peer nẹtiwọọki ti kan ilẹkun, ati boya o yẹ ki a gbe peer yẹn lọ patapata.

Ipinnu wa ninu stream, kii ṣe ninu HTTP

Ninu ipo stream NGINX n ṣiṣẹ pẹlu awọn akoko TCP. O ri adirẹsi peer ti asopọ naa o si le lo awọn ofin allow ati deny ti a ti ṣeto lori rẹ ki byte eyikeyi to de backend. Eyi jẹ ipinnu gbigba pipe ati pe ko nilo kọkọrọ ikọkọ, iwe-ẹri tabi itupalẹ HTTP.

MechanismWhat it decidesWhere it lives
stream allow/denyWhether this TCP peer is relayedstream server block
ssl_preread mapWhich backend a named connection goes tostream, with the preread module
HTTP location ruleWhether an HTTP request is servedhttp server block

Awọn ila mẹta wọn kii yipada fun ara wọn. Didaakọ itọnisọna iwọle HTTP sinu eyikeyi faili ti o mẹnuba ibudo 443 ko yi ohunkohun pada, nitori olupin stream kii ka ipo http rara.

Gba asopọ naa laaye ki o to gbe e lọ

Ro pe o wa ni fifi sori ẹrọ ti o wa tẹlẹ pẹlu awọn module stream ati stream-access, awọn onibara VPN n tọju awọn adirẹsi orisun ninu 10.90.0.0/24, ati backend kan ni 192.168.50.20:443 ti o ti n pese idanimọ HTTPS ti a pinnu.

stream {
    server {
        listen 443;

        allow 10.90.0.0/24;
        deny all;

        proxy_pass 192.168.50.20:443;
    }
}

Ka eyi gẹgẹbi apakan ti listener tuntun, kii ṣe rirọpo taara ti iṣeto ti n ṣiṣẹ. Ṣayẹwo awọn listener ati include ti o wa tẹlẹ ni akọkọ, nitori listener keji lori ibudo ti o ti gba tẹlẹ yoo kuna ni reload, kii ṣe ni akoko ibeere.

Ṣe akiyesi ohun ti ko si: ko si listen ... ssl, ko si itọnisọna iwe-ẹri. NGINX n gbe ṣiṣan ti a fi pamọ lọ, backend si pari TLS o si gbekalẹ iwe-ẹri ti onibara n rii daju. Onibara ti o kuna ninu allowlist ni a kọ akoko TCP rẹ, kii ṣe oju-iwe HTTP 403, ati eyikeyi irinṣẹ ti o nireti koodu ipo yoo sọ nkan ti ko wulo.

Ohun ti allowlist n bo ati ohun ti ko bo

Ti relay ba ti yan backend nipasẹ orukọ olupin, ssl_preread ati map le tẹsiwaju iṣẹ yẹn, niwọn igba ti module naa ba wa. Onibara ni o tun n pese orukọ naa, ati pe ko si ohun kan ninu fifi orukọ han ti o fi idi rẹ mulẹ pe onibara ti darapọ mọ VPN.

Ofin apẹẹrẹ bo gbogbo listener stream. Iyẹn jẹ ki o ko yẹ fun aaye iwọle kan ti n ṣe iranṣẹ idapọ awọn aaye gbangba ati awọn aaye VPN nikan, nibiti a yoo nilo iyọkuro fun orukọ kọọkan; awọn listener lọtọ nigbagbogbo jẹ kedere ju eto imulo ti o da lori orukọ ti ẹnikan ko le ka.

O tọ lati darukọ awọn aaye meji miiran. Ibamu prefix ko sọ nkan nipa iru ẹrọ ti packet naa ti wọle, ati pe ofin HTTP kan nibomiran ko le dena listener yii. Mejeji jẹ awọn idi lati tọju eto imulo iwọle ni ipele host ninu aworan dipo ki a ka ila allow kan gẹgẹbi gbogbo aala. Kọ aala naa gẹgẹbi awọn iṣakoso meji ti o gbọdọ gba ara wọn, ki eyikeyi iyipada ninu ọkan ninu wọn le ṣe atunyẹwo.

NGINX n ri adirẹsi ti tani gan?

Olupin fifuye, proxy miiran tabi source NAT le gbe alarinrin si iwaju NGINX, nitorinaa peer ti a rii kii ṣe adirẹsi inu ti onibara VPN. Ṣayẹwo ọna gidi naa ki o to yan prefix, nitori allowlist ti a kọ fun adirẹsi ti ko tọ yoo gba gbogbo eniyan lẹhin olutumọ tabi ẹnikan rara.

Ilana PROXY ati mimu IP gidi jẹ awọn idahun ti o tọ, ati pe wọn yẹ ki a ṣeto fun awọn olufiranṣẹ ti o ni ibamu ati ti a gbẹkẹle ni gbangba nikan. Awọn ọna mejeeji gbagbọ ohun ti olufiranṣẹ sọ, ati pe eyi ni idi ti atokọ olufiranṣẹ gbọdọ jẹ kukuru. Gbigbẹkẹle akọsori idanimọ lati ọdọ eyikeyi onibara intanẹẹti ko jẹ ki alaye orisun jẹ igbẹkẹle lẹẹkansi; o yi ikosile to tọ pada si gbigba ti a ṣe ni iro.

Dan awọn abajade mejeeji ki o to reload

Ṣayẹwo iṣeto naa, ṣe reload, lẹhinna dan lẹẹmeji: akoko tuntun ti a gba laaye ti o gbọdọ ṣiṣẹ, ati akoko ti a kọ ti ko gbọdọ ṣiṣẹ. Tọju ijẹrisi iwe-ẹri backend deede ninu idanwo ti a gba laaye, nitori relay ti o sopọ ṣugbọn ti ko le jẹrisi backend ti yanju iṣoro kan o si ṣẹda omiran.

nginx -t
ss -tnp | grep ':443'

Ṣayẹwo ọna si backend ati idahun naa lọtọ. Lilọ kọja allowlist n jẹri nikan pe NGINX gba akoko naa; ko le fi ipa mu backend ti ko le de lati dahun, ati pe ko le tun ọna ipadabọ ti o ṣe alaini ṣaaju ki o to bẹrẹ.

Àwọn àpilẹ̀kọ tó jọra