RADIUS an OpenVPN abannen: Plugin oder Skript-Hook?
Den ale RADIUS-Plugin hänkt um Server-Build, fir deen en kompiléiert gouf. Den auth-user-pass-verify-Hook ersetzt en, awer verlagert d'Vertrauen an Äre Skript.
De Plugin gëtt nach ëmmer a Fiedem recommandéiert, déi méi al sinn wéi déi aktuell Builds, an op engem Server, deen gëschter kompiléiert gouf, fällt en beim Lueden aus. Dat ass kee Konfiguratiounsfehler, dee sech mat engem Pad reparéiere léisst. De Plugin an de Skript-Hook léisen déiselwecht Problematik op verschiddenen Niveauen, an de Wiessel vun engem op deen aneren ännert, wat installéiert muss ginn, wat mat Serverrechter leeft, a wat eng feelgeschloe Umeldung Iech tatsächlech seet.
De Mythos: de Plugin ass den ënnerstëtzten Wee
E Plugin ass en gedeelt Objet, deen an den OpenVPN-Prozess geluede gëtt, dofir muss en zu der Schnëttstell passen, déi dee Prozess ubitt. Builds änneren sech, d'Verpakung ännert sech, an eng Bibliothéik, déi fir eng méi al Schnëttstell kompiléiert gouf, refuséiert einfach ze lueden. Nichts an der Serverkonfiguratioun kann dës Lück iwwerbrécken, dofir endet den Rot "installéier just radiusplugin" mat engem Server, deen net start.
De Skript-Hook steet amplaz baussen dem Prozess. OpenVPN féiert e Programm aus, gëtt him d'Zougangsdaten an liest en Urteel zeréck. Dës Entkopplung ass et, déi en Updates iwwerliewe léisst, an et ass och déi, déi en zu Ärer Verantwortung mécht op eng Manéier, wéi de Plugin et ni war.
Keen vun den zwou Approchen ass vu senger Konstruktioun hier méi sécher. Dee een féiert frieme Code am Daemon aus; deen aneren féiert Ären Code niewendrun aus, mat den Zougangsdaten an der Hand. Déi richteg Fro ass, wéi ee vun dësen zwou Risiken Dir tatsächlech bedreiwe kënnt.
Wat de Plugin zesumme gebonnen huet
De Plugin hat seng eege Konfiguratiounsdatei mam RADIUS-Host, dem gedeelte Geheimnis, der Zuel vu Widderhuelungen an dem Timeout, an d'Serverkonfiguratioun huet drop mat enger eenzeger Zeil referenzéiert. D'Behandlung vun den Zougangsdaten ass am Serverprozess bliwwen, dat heescht d'Passwuert huet ni eng Prozessgrenz iwwerschratt, déi den Administrateur misst sécheren.
De Präis war d'Kopplung. All OpenVPN-Update huet eng inkompatibel Schnëttstell riskéiert, an all Verdeelung, déi de Pak nei gebaut huet, huet eng Bibliothéik riskéiert, déi net méi passt. Wann dat geschitt, ass de Feeler haart an direkt, an dat ass déi eenzeg Gnode vum Design.
Wann esou e Plugin nach op Ärem Build lued, ka et déi méi kleng operationell Fläch sinn. Bestätegt d'Schnëttstell, fir déi en gebaut gouf, haalt en um Build fest, deen Dir getest hutt, an behandelt all Update als Ännerung, déi en vollstännegen Umeldungstest erfuerdert, net als Routine-Pakupdate.
Worop de Skript-Hook wierklech vertraut
Den Hook gëtt mat auth-user-pass-verify an engem Liwwermechanismus konfiguréiert: Ëmweltvariabelen oder eng temporär Datei. An der Ëmweltform verlaangt OpenVPN script-security 3, den dokumentéierte Niveau, deen d'Preisgabe vum Passwuert un Skripte erlaabt. Dee Niveau ass eng bewosst Schwächung vum Standard, an en soll als Erlaabnis mat enger begräifter Begrënnung behandelt ginn.
Alles, wat de Skript beréiert, ierft dëst Vertrauen. Et muss am Besëtz vu root sinn, net vun der Grupp oder aneren beschreiwbar, mat engem absolute Pad referenzéiert a fräi vun all Plaz, wou en onvertrauenswürdege Wäert eng Shell erreecht. Setzt all Variabel an Anführungszeechen, lehnt onerwaart Zeechen of, a baut ni eng Kommando aus dem ugeliwwerten Benotzernumm. E Skript, dat bei all Umeldungsversuch als root leeft, verdéngt eng Iwwerpréiwung just wéinst dësen véier Eegenschaften.
ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh
D'Dateiliwwerform ëmgeet de Problem vun der Ëmweltierwen an iwwerreecht dem Skript d'Zougangsdaten duerch eng temporär Datei mat ageschränkte Rechter. Wann Äre Client dat ënnerstëtzt, ass et meeschtens dee bessere Standard, och wann et en zousätzlechen Objet bäisetzt, deen beim Feeler muss botzt ginn.
D'Exit-Code entscheeden, ob Dir oppe feelt
Den Exit-Status vum Skript ass den Urteel: null akzeptéiert, net-null verwëft. D'Muster, dat Problemer mécht, ass e Shell-Skript, dat nëmmen akzeptéiert, wann d'RADIUS-Antwert en bestëmmten Akzeptanz-Token enthält, a fir alles anescht Feeler zréckgëtt, well et domat dräi verschidden Evenementer an eng Äntwert schmëlzt. E falscht Passwuert, en onereechbare Server an eng deforméiert Äntwert ginn all déiselwecht Oflehnung.
Trennt dës Fäll am Skript, och wann den Hook nëmmen Akzept oder Oflehnung zréckginn kann. Loggt d'Backend-Resultat separat, alarméiert bei Timeouts an Transportfeeler, a maacht am Monitoring kloer, wéini d'Authentifikatioun feelt, well den Déngscht ënnen ass, an net well d'Benotzer sech vertippen.
Zwou Gewunnechte halen de Rescht vernünfteg. Wann RADIUS d'Autoritéit ass, sollt et déi eenzeg Plaz sinn, wou e Passwuert geprüft gëtt, well eng Schiedtabell zwee Äntwerten op déiselwecht Fro schaaft an déi zweet eng Ugrëffsfäche ass, déi keen observéiert. An erënnert Iech, datt den Hook bei all Widderhuelung erëm opgeruff gëtt, sou datt e luesen Skript mat engem ongedëllege Client en Verstäerker fir d'Passwuert-Roden gëtt, ausser Dir bäisetzt eng Verzögerung oder eng Politik op der RADIUS-Säit.
Wat Dir opgitt, wann den Zertifikat fort ass
Vill Deployementer vun dëser Form schalten d'Prüfung vum Client-Zertifikat komplett aus a loossen e Benotzernumm an e Passwuert als déi ganz Fuerderung vum Client. Wat mat dëser Astellung verschwënnt, ass d'Identitéit op Basis vum Zertifikat. De Kanal bleift verschlësselt, awer dat eenzegt, wat de Client nennt, ass den Urteel vum RADIUS. Alles floss of, wat fréier op e Zertifikatssujet gebaut huet, muss elo op de Benotzernumm bauen.
Haalt de Schutz vum Kontrollkanal op der Plaz, sou datt e net authentifizéierte Peer den Handshake net kann sondéieren oder iwwerfluten, a benotzt username-as-common-name, wann d'Konfiguratioun pro Benotzer vum gemeinsamen Numm ofhänkt. Gestiounit Gateways léisen dat dacks anescht, andeem se d'Zertifikatsauthentifikatioun un engem Gateway ophalen, deen EAP-TLS mat RADIUS schwätzt, an an deem Fall gëllt keng vun dësen Serverdirektiven. Kopéiert de Modell, deen Är eege Plattform dokumentéiert, net deen vun engem Noperprodukt. Déi Direktiven, déi zielen, ënnerscheede sech genuch, datt hir Meschung eng Konfiguratioun ergëtt, déi parst an duerno keen authentifizéiert.