Dräi onofhängeg Entscheidungen stinn tëscht enger privater Site an dem Internet: wéi e Socket d'Verbindung unhëlt, wéi e Wee se ka liwweren, a wéi en HTTP-Clienten de gewielte Server äntwert. E Serverblock hëlt nëmmen déi éischt Entscheidung. Behandelt déi aner zwee als getrennte Kontrollen, soss gesäit d'Site privat aus, während en ale Agang op bleift. Déi meescht NGINX-Feeler just fir VPN kommen duerch d'Teste vun nëmmen der éischter Schicht.

D'Beispill benotzt en Linux OpenVPN-Gateway op 10.90.0.1 op tun0, Clienten an 10.90.0.0/24, erhalene Quellen an TCP 8443, dee fir dësen Agang reservéiert ass. Passt d'Wäerter un, behält d'Schichten.

Fänkt mam Socket un, net mam Hostnumm

Bind den HTTPS-Listener un d'Tunneladress an en eegene Port. Eng spezifesch Adress ass méi einfach ze denken wéi e Wildcard-Socket plus eng Nummpréifung, well de Kernel de Port net un eng aner lokal Adress gëtt.

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;
    }
}

D'Zertifikat muss den Déngschthostnumm nennen, deen d'Clienten aginn, an d'privat DNS-Vue muss deen Host op déi gebonnen Adress opléisen. server_name wielt just en virtuellen Host; et authentifizéiert keen. En fehlenden DNS-Entrée produzéiert e Zertifikatsfeeler, deen wéi e TLS-Fehler ausgesäit. Préift den Numm, ier d'Zertifikat ersat gëtt.

Liest déi effektiv Konfiguratioun, ier d'Datei bäigefüügt gëtt. Includes a Wildcard-Listener kënnen dee selwechte Root soss anzwousch bedéngen, an e Standardserver kann Ufroen äntweren, déi de neie Block ni gesäit.

Schléisst all aneren Listener fir deen Inhalt

Lëscht d'listen-Direktiven an vergläicht d'Rooten, déi se bedéngen. E Block, deen fir eng aner Applikatioun bäigefüügt gouf, kann op deeselwechten Upstream proxyen, an en ale Standardserver kann weider äntweren, nodeem den neie steet. Dee Output ass déi richteg Inventur, net d'Datei, déi Dir just geännert hutt. Vergläicht all Root, deen deen selwechten Inhalt bedéngt.

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

Préift béid Adressfamilljen. Eng IPv4-Bindung léisst en IPv6-Socket onberéiert, an en neien A-Rekord zitt keng al AAAA-Äntwert zréck, déi nach op en ëffentleche Wee weist.

Zitt den ale virtuelle Host als separat Ännerung zréck. D'Entferne vum ëffentlechen Zwilling vum neie Block ass meeschtens de Schrëtt, deen den Agang wierklech schléisst; de private Listener füügt just dee virgesinn derbäi.

Begrenzt de Wee, deen erakënnt, um Host

D'Lauschadress begrenzt de Socket, net d'Ingress-Interface. E Pak, deen vun anzwousch soss op déi Adress gerout gëtt, kënnt nach ëmmer als lokalen Input un, dofir brauch d'Firewall vum Host seng eege Deklaratioun, vu wou d'Verbindung komme kann. Dofir erfëllt eng Bindung eleng selten en Audit.

Mat enger Standard-Refus-Politik fir erakommend an ouni breet Erlaabnes fir dëse Service nennt eng begrenzt Regel den Tunnel, de Quellberäich, den Zil an de Port zesummen:

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

Liest déi effektiv Reihenfolg vun der Firewall, ier se ugewannt gëtt. Eng fréier breet Akzeptanz kann d'Restriktioun iwwerwannen, an en fréieren terminalen Drop kann verhënneren, datt dës Erlaabnes iwwerhaapt erreecht gëtt. Spült keng onverbonnen Reegelen a schalt d'Firewall net aus, fir datt d'Beispill passt.

Déi Regel ass Host-Input, keen Trajet op eng aner LAN-Maschinn, an den äusseren OpenVPN-Listener vum Gateway bleift e separate Service. Wann d'Site virdrun ëffentlech war, plangt, wéi den ale Agang zréckgezunn gëtt a wéi bestoend Sessiounen behandelt ginn.

Hält d'HTTP-Lëscht intakt, wann d'Plazen sech änneren

NGINX evaluéiert allow- an deny-Entréeën der Rei no, an d'Lëscht op Serverniveau uewen erlaabt dee erkläerten Pool virum leschten deny. Den Access-Modul registréiert och, datt eng Plaz, déi en Access-Entrée definéiert, seng eege Lëscht amplaz vun der Elterenlëscht benotzt. D'Reihenfolg ass sou wichteg wéi d'Entréeën selwer.

Déi Resett ass déi üblech Regressioun. Eng nei Upload-, API- oder Gesondheetsplaz, déi een Entrée bäisetzt, ersetzt roueg d'Restriktioun op Serverniveau, an d'Site gëtt op dem lescht bäigefüügte Wee méi breet.

Kuckt all Plaz, Alias an alternativen Block als Deel vun der selwechter Politik un. Wann IP-Préifunge mat NGINX-Authentifikatioun kombinéiert ginn, versti satisfy: eng any-Astellung kann e Client duerch ee Mechanismus eraloossen, während deen aneren nach net bestanen huet. Setzt d'Zougrëffslëscht an d'Checklëscht fir d'Plazen.

En HTTP-Refus geschitt, nodeem d'TCP-Verbindung den NGINX erreecht. En ergänzt d'Netzwierkrestriktioun, an d'Applikatioun seng eege Autorisatioun gëllt weider fir all Benotzer.

Verifizéiert de liewegen Wee an de Feelerfall

Führt de Konfiguratiounsparser aus, inspizéiert d'lauschend Sockets, a maacht duerno eng nei benannte Ufro vun engem virgesinnene Client. Bestätegt, datt d'Zertifikat validéiert, den DNS-Numm op déi gebonnen Adress opléist an d'Äntwert vum erwaarten Root kënnt.

Test duerno eng ausgeschloss Quell an en alternativen Agang. Eng funktionéierend erlaabt Ufro seet näischt iwwer d'Weeër, déi Dir wollt zoumaachen, an et ass am ausgeschlossenen Test, wou en iwwerbleiwenen Listener oder eng breet Firewall-Akzeptanz opdaucht.

Widderhëlt de Start- oder VPN-Recovery-Fall. Wann NGINX start, ier d'Tunneladress existéiert, kann d'Bindung och mat enger perfekter Datei feelen. Koordinéiert d'Adressbereetschaft a behält en lokale Recuperatiounswee, ier e gedeelten Webserver geännert gëtt.

Notéiert de Socket, de Port, de Quellberäich an d'HTTP-Lëscht, déi duerchgaange sinn. Déi nächst VPN- oder DNS-Ännerung kann een dovun verréckelen, a véier benannte Wäerter si méi einfach ze vergläichen wéi en funktionéierenden Browser-Tab.

Ähnlech Artikelen