OpenVPN saio-hasierako script baten irteera bakar batean aritzen da: irteera-egoeran. Scriptak egiten duen beste guztia apaingarria da. Hook batek egiaztatzaile egokira irits daiteke, erantzuna aztertu eta lerro atsegina inprimatu, eta aldi berean egileak nahi zuenaren kontrakoa esan nahi duen egoera itzuli. Irakurri lehenengo kontratua eta idatzi adaptatzailea haren inguruan, eta akats-mota hori guztia desagertzen da.

Kontratua txikia da: identifikatu bidalitako kontua, galdetu egiaztatzaile onartuari nahi den galdera, eta onartu egiaztatzaile horren erantzun positibo dokumentatua soilik eskaera horretarako. Gainerako guztia azpiegitura da.

Hookak itzul ditzakeen hiru egoerak

auth-user-pass-verify rako, OpenVPN 2.6 eskuliburuak 0 irteera-kodea onarpen gisa definitzen du, 1 ukapen gisa eta 2 autentifikazio atzeratu gisa. Hiru erantzun horiek soilik ulertzen ditu zerbitzariak, eta bakoitzak ondorio desberdina du konexiorako. Azken komandoaren egoerarekin irteten den scriptak log-dei edo garbiketa-urrats bati botoa ematen utzi dio. Idatzi egoera esplizituki adar guztietan, egiaztatzailera inoiz iritsi ez ziren adarretan barne.

HTTP arrakasta eta autentifikazio arrakasta geruza bereiziak dira, eta biak nahastea da hook hau gaizki joateko modurik ohikoena. 202 erantzunak eskaera prozesatzeko onartu dela esan nahi du, ez pasahitza egiaztatu denik. Definitu espero den egoera, erantzunaren forma eta azken epaia eman zizuten API kontratutik, eta ez asmatu eremu-izen bat sinesgarria dirudielako.

Erantzuna benetan geroago iristen bada, hori da bide atzeratua eta hala eraiki behar da. Inoiz osatzen ez den saiakera atzeratuak baliabideak atxikitzen ditu denbora-muga iraungi arte.

Irakurri kredentzialen fitxategia idatzita dagoen bezalaxe

Dokumentatutako fitxategi bidezko metodoan, zerbitzariak erabiltzaile-izena eta pasahitza aldi baterako fitxategi baten lehen bi lerro gisa idazten ditu, bide hori scriptari ematen dio eta fitxategia ezabatzen du scripta itzultzean. Irakurri bi lerro horiek datu gisa: inoiz ez egin fitxategiari source, inoiz ez ebaluatu, eta inoiz ez itsatsi haren edukia prozesu-taulak ikus dezakeen komando-lerro batean. Gorde pasahitza bytez byte, erabiltzaile-izen bati aplikatuko zeniokeen normalizazioak kredentziala isilik aldatzen baitu. Aldi baterako fitxategi horretarako direktorioa hedapen-erabakia da, beraz egiaztatu existitzen dela eta hosteko guztiek irakur ez dezaketela.

Eduki egiaztatzailearen kredentziala erabiltzailearenetik bereizita: gateway integrazioarena da, plataformaren sekretu-biltegian bizi da eta egiaztatzeko baimena besterik ez du behar, beraz ez da pertsona jakin bat autentifikatu denaren froga. Ez utzi hooka bigarren pasahitz-egiaztatzaile bilakatzen ere. Haxeen konparazioa eskuz berridaztea ez da seguru bihurtzen begizta optimizatzeagatik, eta mantendutako egiaztatzaile batek jada ulertzen du kontuen biltegiaren eskema gatz eta kostua duena.

Erabaki zer esan nahi duen sailkatu ezin den erantzunak

Denbora-mugek, garraio-erroreek, erantzun gaizki eratuek eta eskuragarri ez dagoen backendek propietate bat partekatzen dute: horietako bat ere ez da egiaztapen positiboa. Hookak itxita huts egin behar du horietako bakoitzean eta operadoreak jardun dezakeen arrazoia erregistratu. Arrazoi hori babestutako log batean dagokio, konektatzen saiatzen ari den pertsonari itzulitako mezuan ez.

Izan zaitez berdin arreta handiz egiaztatzailera batere iristen ez diren bideekin. Konfigurazio-balio bat falta bada, sekretu bat irakurtzen ez bada edo menderatze bat instalatuta ez badago, ukapena sortu behar lukete operazio-marka bereiziarekin, ustekabeko onarpenaren ordez. Probatu adar horiek menderatzea laborategian kenduz, haiei buruz hausnartu ordez. Log egiteko hutsegiteak irteera-egoera alda badezake, log egitea erabakiaren parte bihurtu da eta kaltegabea egin behar da.

Zerbitzariaren konfigurazioak ere badu garrantzia: erabiltzaileak definitutako scriptak soilik errespetatzen dira exekuzio-konfigurazioak behar den segurtasun-mailan baimentzen dituenean, eta ezarpen hori nahita egindako hautua da, igoko den balio lehenetsia ez.

Egiaztatu epaia, ez inprimatutako lerroa

Eraiki irteera-egoera zuzenean aztertzen duen proba bat. Idatzi lagin-kredentzialen fitxategi bat, exekutatu hooka haren aurka jakina ona eta jakina txarra den kontu batekin, eta irakurri shellak jakinarazten duen egoera, scriptak inprimatzen duen testua ordez. Egiaztapen bakar horrek kontratu-errore gehienak harrapatzen ditu bezeroa konektatu baino lehen.

Gero, eraman kasu berak benetako bezero baten bidez produkzioz kanpoko entzule baten aurka eta egiaztatu zerbitzariak zer erregistratu zuen: onartua, ukatua edo atzeratua. Estali desgaitutako kontu bat, pasahitz oker bat, egiaztatzailearen erantzun gaizki eratua, denbora-muga bat eta eskuragarri ez dagoen egiaztatzaile bat. Kasuren bat izendatu ezin duzun egoeran amaitzen bada, adaptatzailea ez dago amaituta.

Eduki egiaztatzailearen emaitzatik irteera-egorara doan mapaketa scriptaren ondoan biltegian, hurrengo ingeniariak kontratua irakur dezan kodea alderantzizko ingeniaritzarik egin gabe.

Erlazionatutako artikuluak