Sit NGINX għall-VPN biss: listener, firewall u lista tal-permessi HTTP
Sit NGINX privat jeħtieġ socket VPN marbut, regola tal-input tal-host limitata u lista tal-aċċess HTTP sħiħa. Ittestja t-tlieta, mhux blokka waħda tas-server.
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.