De Start vum nc -uz géint en OpenVPN Server misst bal näischt, an den OpenBSD-Handbuch seet dat an sengen Aschränkungen: UDP-Scans an deem Modus mellen Erfolleg, egal ob eppes lauschtert oder net. Den Exitstatus spigelt de lokale Versand, net deen entfernten Zoustand, dofir hält en Iwwerwaacher, deen him vertraut, en doudege Server als gesond markéiert, soulaang d’Prozesstabell plausibel ausgesäit. En z’ersetzen fänkt domat un ze entscheeden, wéi eng Fro d’Prüfung beäntwere soll, well Prozess, Lauschterer, Authentifikatioun an d’Erreechbarkeet vun der Applikatioun véier verschidde Beobachtunge sinn. Eng Prüfung, déi eng dovun nennt, ass nëtzlech; eng Prüfung, déi all véier implizéiert, ass eng Laascht.

Wat eng UDP-Prüfung ka beobachten a wat net

nc -uz schéckt en Datagramm a geet fort, an de Status, deen en zréckgëtt, beschreift de lokale Versand. En zouene Port ka mat ICMP port unreachable äntweren, awer dat dokumentéiert Verhalen vun dësem Scanmodus mécht doraus keen Echec, an en gefilterte Port gëtt guer keng Äntwert. Dozou kommen Stëllt an Erfolleg fir den Opruffer op datselwecht eraus.

Dat mécht d’Prüfung zu engem Test vum lokale Stack, net vum Server. Si stellt net fest, datt den Host erreechbar ass, datt de Port gebonnen ass, datt den OpenVPN-Prozess leeft oder datt e Client sech géif authentifizéieren. En TCP-Verbindungstest ass méi staark, well den Handshake eng defintiv Äntwert gëtt, awer nëmmen wann d’Deployement wierklech op TCP lauschtert. D’Prüfung op déiselwecht Nummer op TCP ëmzeleeën testt e Lauschterer, deen et vläicht net gëtt, a géint e Server mat nëmmen UDP wäert et engem gesonde Service feele loossen.

D’Prüfung un den konfiguréierten Transport upassen kënnt virum Vertrauen an ee vun den zwee Resultater. En UDP-Deployement brauch en anert Signal, net en anert Protokoll.

Dräi Opruffer, dräi verschidde Froe

Prett ass ofhängeg dovun, wien et freet. E Servicemanager, deen en ofgestürzte Prozess nei start, muss wëssen, datt d’Instanz gestart ass an hire Lauschterer gebonnen huet. E Load Balancer muss wëssen, datt e Client, deen elo kënnt, ugeholl géif ginn. En Iwwerwaachungssystem muss wëssen, datt de Wee vun engem richtege Reseau nach ëmmer eng Sessioun zu enger erlaabter Ressource dréit.

Dat ass net déiselwecht Prüfung, an eng Prüfung kann net all dräi éierlech decken. Wielt fir d’éischt den Opruffer, dann de Beweis.

Baut d’Prüfung aus der aktueller Instanz

OpenVPN schreift eng Startlinn, wann eng Instanz d’Initialiséierung ofschléisst, an déi Linn ass e nëtzleche Beweis iwwer de lokale Start. Liest se aus dem aktuelle Start an net aus dem Enn vun enger ugehängter Datei, well en Erfolleg vun der leschter Woch liest sech genee wéi en Erfolleg vu virun enger Minutt. E Server kann d’Initialiséierung och ofschléissen, ier jeemools e Client verbonnen huet, dofir seet d’Linn näischt iwwer d’Authentifikatioun.

Fir eng Startprüfung, koppelt de Prozesszoustand mat aktuellem Logbeweis an engem Lauschterer, deen zum konfiguréierten Transport passt. D’Prüfung soll feelen, wann de Prozess leeft, awer d’Initialiséierung net fäerdeg huet, wat heescht, datt d’Log-Ufro op dëse Boot an dës Eenheet begrenzt muss ginn.

systemctl is-active openvpn@server
sudo journalctl -u openvpn@server -b --no-pager | grep "Initialization Sequence Completed"
ss -lunp | grep 1194

Dräi Ausgaben, dräi Behauptungen: d’Eenheet ass aktiv, dëse Boot huet d’Initialiséierungslinn produzéiert, an eppes hält den UDP-Port. Keng dovun seet, datt e Client sech ka verbannen. Halt se getrennt op der Statussäit, sou datt en Tëschefall net an engem eenzegen grénge Punkt zesummefällt.

Briecht et mat Absicht a kuckt d’Prüfung un

Eng Prüfung ass nëmmen dann vertrauenswierdeg, wann dir se gesinn hutt feelen. Stoppt de Server, fuert d’Prüfung aus a bestätegt dat erwaart Resultat. Start him duerno erëm a bestätegt, datt d’Prüfung sech ouni aner Ännerung erhollt.

sudo systemctl stop openvpn@server
nc -uz 203.0.113.10 1194; echo "exit=$?"
ss -lunp | grep 1194
sudo systemctl start openvpn@server
ss -lunp | grep 1194

Liest de Block Linn fir Linn. Den Netcat-Befehl dréckt exit=0 aus, wärend näischt gebonnen ass, an dat ass de ganzen Problem an enger Linn. Den éischten ss dréckt näischt aus, de Neistart geléngt, an den zweeten ss weist de Lauschterer erëm. Wann är Prüfung géint de gestoppte Server duerchgeet, misst se de lokale Stack a soss näischt.

De Géigendeel-Echec ass och wichteg. Eng Prüfung, déi géint e gesonde Server feelt, verursaacht Neistarts, déi ni néideg waren, an eng Neistartschleef ass selwer eng Stéierung. Test béid Richtungen, ier dir d’Prüfung mat eppes verbënnt, dat drop ka reagéieren.

Wat d’Statuslinn soll soen

Notéiert, wéi eng Grenz all Prüfung deckt: Prozess, Lauschterer, Authentifikatioun oder Applikatioun. Eng Prüfung deckt seelen méi wéi eng, an eng Statussäit, déi se zu “up” kompriméiert, verstoppt den Ënnerscheed, deen an engem Tëschefall zielt. Fir de Resauswee, benotzt e richtege Client mat enger eegener Identitéit, loosst hien den Handshake an eng harmlos erlaabt Operatioun ofschléissen, a trennt en duerno. Dat übt de Steierkanal, d’Authentifikatiounspolitik an de Lauschterer an engem Schrëtt.

Halt déi Identitéit getrennt vun richtege Benotzer a gitt hir déi minimal Rechter, déi d’Prüfung brauch. Eng Prett-Prüfung mat breedem Zougang ass eng nei Ugriffsfläch, déi aus Bequemlechkeet bäigefüügt gouf. Rotéiert hir Umeldungsinformatiounen wéi bei all anere Kont, well eng Prüfung, déi ophält sech z’authentifizéieren, gesäit genee aus wéi e Server, deen opgehal huet Clienten unzehuelen.

Nennt d’Grenz am Alarmtext, sou datt den éischte Reagéierende weess, ob en d’Eenheet, de Socket, d’Zertifikat oder de Wee kucke soll. Enger Prüfung, déi net ka soen, wat se bewisen huet, gëtt aus dem falsche Grond vertraut, an esou huet d’Netcat-Prüfung iwwerhaapt iwwerlieft.

Ähnlech Artikelen