Tliet deċiżjonijiet indipendenti jinsabu bejn sit privat u l-internet: liema socket jaċċetta l-konnessjoni, liema triq tista' twassalha, u liema klijenti HTTP iwieġeb is-server magħżul. Blokka tas-server tieħu biss l-ewwel deċiżjoni. Ittratta t-tnejn l-oħra bħala kontrolli separati, inkella s-sit jidher privat waqt li daħla qadima tibqa' miftuħa. Ħafna mill-ħsarat NGINX għall-VPN biss ġejjin mill-ittestjar tal-ewwel saff biss.

L-eżempju juża gateway Linux OpenVPN f'10.90.0.1 fuq tun0, klijenti f'10.90.0.0/24, sorsi ppreservati u TCP 8443 riżervat għal din id-daħla. Aġġusta l-valuri, żomm is-saffi.

Ibda mis-socket, mhux mill-isem tal-host

Orbot il-listener HTTPS mal-indirizz tat-tunnel u port dedikat. Indirizz speċifiku huwa eħfef biex taħseb dwaru minn socket wildcard flimkien ma' verifika tal-isem, għax il-kernel mhux se jagħti l-port lil indirizz lokali ieħor.

server {
    listen 10.90.0.1:8443 ssl;
    server_name admin.corp.example;

    ssl_certificate     /etc/nginx/tls/admin-fullchain.pem;
    ssl_certificate_key /etc/nginx/tls/admin-key.pem;

    root /srv/private-site;

    allow 10.90.0.0/24;
    deny all;

    location / {
        try_files $uri $uri/ =404;
    }
}

Iċ-ċertifikat irid ikun fih l-isem tal-host tas-servizz li jiktbu l-klijenti, u l-veduta DNS privata trid issolvi dak il-host għall-indirizz marbut. server_name jagħżel biss host virtwali; ma jawtentika lil ħadd. Entrata DNS nieqsa tipproduċi żball taċ-ċertifikat li jidher bħal ħsara TLS. Iċċekkja l-isem qabel ma tibdel iċ-ċertifikat.

Aqra l-konfigurazzjoni effettiva qabel ma żżid il-fajl. L-inklużjonijiet u l-listeners wildcard jistgħu jservu l-istess għerq x'imkien ieħor, u server awtomatiku jista' jwieġeb talbiet li l-blokka l-ġdida qatt ma tara.

Agħlaq kull listener ieħor għal dak il-kontenut

Elenka d-direttivi listen u qabbel l-għeruq li jservu. Blokka miżjuda għal applikazzjoni oħra tista' tipproxja għall-istess upstream, u server awtomatiku qadim jista' jkompli jwieġeb wara li jitqiegħed il-ġdid. Dak l-output huwa l-inventarju veru, mhux il-fajl li għadek kif editjajt. Qabbel kull għerq li jservi l-istess kontenut.

sudo nginx -T | grep -n "listen\|server_name\|root\|proxy_pass"

Iċċekkja ż-żewġ familji tal-indirizzi. Rabta IPv4 tħalli socket IPv6 mhux mittiefes, u rekord A ġdid ma jirtirax tweġiba AAAA qadima li għadha tindika triq pubblika.

Irtira l-host virtwali qadim bħala bidla separata. It-tneħħija tat-tewmin pubbliku tal-blokka l-ġdida hija normalment il-pass li verament jagħlaq id-daħla; il-listener privat iżid biss dak maħsub.

Illimita t-triq li tidħol fil-host

L-indirizz tas-smigħ jillimita s-socket, mhux l-interface tad-dħul. Pakkett dirett lejn dak l-indirizz minn x'imkien ieħor xorta jasal bħala input lokali, għalhekk il-firewall tal-host jeħtieġ dikjarazzjoni tiegħu dwar minn fejn tista' tiġi l-konnessjoni. Huwa għalhekk li rabta waħedha rari tissodisfa awditjar.

B'politika tad-dħul ta' ċaħda awtomatika u mingħajr permess usa' għal dan is-servizz, regola limitata ssemmi t-tunnel, il-firxa tas-sors, id-destinazzjoni u l-port flimkien:

sudo ufw allow in on tun0 proto tcp from 10.90.0.0/24 to 10.90.0.1 port 8443

Aqra l-ordni effettiv tal-firewall qabel ma tapplikah. Aċċettazzjoni wiesgħa preċedenti tista' tegħleb ir-restrizzjoni, u twarrib terminali preċedenti jista' jżomm din il-permess milli jintlaħaq. Tnaddafx regoli mhux relatati u tmxgħilx il-firewall biex jaqbel l-eżempju.

Dik ir-regola hija input tal-host, mhux rotta lejn magna LAN oħra, u l-listener OpenVPN ta' barra tal-gateway jibqa' servizz separat. Jekk is-sit kien pubbliku qabel, ippjana kif id-daħla l-qadima tiġi rtirata u kif jiġu ttrattati s-sessjonijiet eżistenti.

Żomm il-lista HTTP sħiħa waqt li jinbidlu l-postijiet

NGINX jevalwa l-entrati allow u deny fl-ordni, u l-lista fil-livell tas-server hawn fuq tammetti l-grupp iddikjarat qabel id-deny finali. Il-modulu tal-aċċess jirreġistra wkoll li post li jiddefinixxi kwalunkwe entrata tal-aċċess juża l-lista tiegħu stess minflok il-lista prinċipali. L-ordni hija importanti daqs l-entrati stess.

Dak ir-reset huwa r-regressjoni tas-soltu. Post ġdid ta' upload, API jew saħħa li jżid entrata waħda jissostitwixxi bil-kwiet ir-restrizzjoni fil-livell tas-server, u s-sit isir usa' fit-triq miżjuda l-aktar reċentement.

Irrevedi kull post, alias u blokka alternattiva bħala parti mill-istess politika. Jekk il-verifiki tal-IP huma magħquda mal-awtentikazzjoni NGINX, ifhem satisfy: setting any jista' jdaħħal klijent permezz ta' mekkaniżmu waqt li l-ieħor għadu ma għaddiex. Poġġi l-lista tal-aċċess fil-lista tal-verifika tal-postijiet.

Ċaħda HTTP isseħħ wara li l-konnessjoni TCP tasal għand NGINX. Tissupplimenta r-restrizzjoni tan-netwerk, u l-awtorizzazzjoni tal-applikazzjoni stess għadha tapplika għal kull utent.

Ivverifika t-triq ħajja u l-każ tal-ħsara

Mexxi l-parser tal-konfigurazzjoni, ippermetti l-ispezzjoni tas-sockets li qed jisimgħu, imbagħad agħmel talba msemmija ġdida minn klijent maħsub. Ikkonferma li ċ-ċertifikat jivvalida, l-isem DNS jissolvi għall-indirizz marbut u r-risposta tiġi mill-għerq mistenni.

Ittestja sors eskluż u daħla alternattiva wara. Talba permessa li taħdem ma tgħid xejn dwar it-toroq li ridt tagħlaq, u fit-test eskluż jidher listener li baqa' jew aċċettazzjoni wiesgħa tal-firewall.

Errepeti l-każ tal-boot jew tal-irkupru tal-VPN. Jekk NGINX jibda qabel ma jkun hemm l-indirizz tat-tunnel, ir-rabta tista' tfalli anke b'fajl perfett. Ikkordina l-istat tal-indirizz u żomm triq tal-irkupru lokali qabel ma tibdel server web kondiviż.

Irreġistra s-socket, il-port, il-firxa tas-sors u l-lista HTTP li għaddew. Il-bidla li jmiss fil-VPN jew fid-DNS tista' ċċaqlaq kwalunkwe waħda minnhom, u erba' valuri msemmija huma eħfef biex tqabbilhom minn tab tal-browser li jaħdem.

Artikli relatati