Is é an rud a dhéanann athsheachadán TLS passthrough ná beartaíocht chriptithe a sheoladh ar aghaidh gan an teastas a shealbhú riamh, agus tá an socrú áisiúil agus beagáinín mearbhall ag an am céanna. Ós rud é nach ndéantar aon rud a dhíchriptiú, níl aon rud i bhfoirm HTTP le scagadh, mar sin níl aon úsáid sa ghnáth-bhloc location ná ina rialacha rochtana anseo. Baineann an cinneadh atá ar fáil do NGINX leis an nasc féin: cén piaraí líonra a bhuail, agus ar cheart an piaraí sin a sheoladh ar aghaidh ar chor ar bith.

Baineann an cinneadh le stream, ní le HTTP

I gcomhthéacs stream oibríonn NGINX le seisiúin TCP. Feiceann sé seoladh piaraí an naisc agus féadann sé rialacha allow agus deny ordaithe a chur i bhfeidhm air sula sroicheann aon bheart an backend. Is cinneadh ligean isteach iomlán é agus ní theastaíonn eochair phríobháideach, teastas ná parsáil HTTP uaidh.

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

Ní thagann na trí shraith sin in ionad a chéile riamh. Ní athraíonn cóipeáil treoir rochtana HTTP isteach sa chomhad a luann port 443 aon rud, mar ní léann an freastalaí stream an comhthéacs http riamh.

Ligin isteach an nasc sula seoltar ar aghaidh é

Glac le suiteáil atá ann cheana a bhfuil na modúil stream agus stream-access ar fáil inti, cliaint VPN a choinníonn seoltaí foinse in 10.90.0.0/24, agus backend ag 192.168.50.20:443 a sheirbheálann an fhéiniúlacht HTTPS atá beartaithe cheana féin.

stream {
    server {
        listen 443;

        allow 10.90.0.0/24;
        deny all;

        proxy_pass 192.168.50.20:443;
    }
}

Léigh é seo mar mhír de listener nua, ní mar ionadaí díreach ar chumraíocht atá ag obair. Déan athbhreithniú ar na listeners agus na include atá ann cheana ar dtús, mar teipeann ar an dara listener ar phort atá ceangailte cheana ag reload, ní ag am an iarratais.

Tabhair faoi deara a bhfuil ar iarraidh: níl aon listen ... ssl, níl aon treoir teastais. Seolann NGINX an sruth criptithe ar aghaidh, agus críochnaíonn an backend TLS agus cuireann sé an teastas i láthair a bhailíonn an cliant. Faigheann cliant a theipeann ar an allowlist a sheisiún TCP diúltaithe, ní leathanach HTTP 403, agus tuairisceoidh aon uirlis a bhfuil cóid stádais ag súil leis rud éigin gan úsáid.

Cad a chlúdaíonn an allowlist agus cad nach gclúdaíonn

Má roghnaíonn an t-athsheachadán backends de réir ainm freastalaí cheana, féadann ssl_preread agus map leanúint leis an obair sin, ar choinníoll go bhfuil an modúl ar fáil. Soláthraíonn an cliant an t-ainm fós, agus ní chruthaíonn aon rud faoi ainm a chur i láthair go bhfuil an cliant tar éis dul isteach sa VPN.

Clúdaíonn riail an tsampla an listener stream ar fad. Fágann sin mí-oiriúnach é do phointe iontrála amháin a sheirbheálann meascán de shuíomhanna poiblí agus suíomhanna VPN amháin, áit a mbeadh eisceacht de réir ainm ag teastáil; is gnách go mbíonn listeners ar leithligh níos soiléire ná polasaí atá ag brath ar ainm nach féidir le duine ar bith a léamh.

Is fiú dhá bhearna eile a ainmniú. Ní deir comhoiriúnú réimíre aon rud faoin gcomhéadan ar tháinig an paicéad air, agus ní féidir le riail HTTP in áit eile an listener seo a shrianadh. Is cúiseanna iad an dá rud le polasaí iontrála ar leibhéal an óstaigh a choinneáil sa phictiúr seachas líne allow amháin a mheas mar an teorainn iomlán. Scríobh an teorainn mar dhá rialtán nach mór teacht le chéile, ionas go ndéanfar athbhreithniú ar athrú ar cheachtar acu.

Cén seoladh a fheiceann NGINX i ndáiríre?

Is féidir le cothromóir ualaigh, proxy eile nó source NAT idirghabhálaí a chur os comhair NGINX, mar sin ní hé an piaraí a fheictear seoladh inmheánach an chliaint VPN. Scrúdaigh an cosán fíor sula roghnaíonn tú réimír, mar déanann allowlist a scríobhtar don seoladh mícheart gach duine taobh thiar den aistritheoir a ligean isteach nó duine ar bith.

An prótacal PROXY agus láimhseáil IP fíor freagraí dlisteanacha iad, agus ní mór iad a chumrú ach amháin do sheoltóirí comhoiriúnacha a bhfuil muinín shainráite astu. Creideann an dá mheicníocht an rud a deir an seoltóir, agus is ar an gcúis sin go gcaithfidh an liosta seoltóirí a bheith gearr. Ní dhéanann muinín i gceanntásc féiniúlachta ó aon chliant idirlín an t-eolas foinse a dhéanamh iontaofa arís; athraíonn sé diúltú ceart ina ghlacadh bréagach.

Tástáil an dá thoradh sula ndéanann tú reload

Bailíochtaigh an chumraíocht, déan reload, ansin tástáil faoi dhó: seisiún nua ceadaithe a chaithfidh oibriú, agus ceann diúltaithe nár cheart oibriú. Coinnigh gnáthfhíorú teastais an backend sa tástáil cheadaithe, mar tá fadhb amháin réitithe agus ceann eile cruthaithe ag athsheachadán a nascann ach nach féidir leis an backend a bhailíochtú.

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

Seiceáil an bealach chuig an backend agus an freagra ar leithligh freisin. Ní chruthaíonn pasáil an allowlist ach gur ghlac NGINX leis an seisiún; ní féidir leis backend nach féidir a shroicheadh a chur ag freagairt, agus ní féidir leis cosán fillte a bhí ar iarraidh sula dtosaigh tú a dheisiú.

Ailt ghaolmhara