Scriptek VPN bezeroak egileak aukeratutako geruzan abiarazten dituzte, eta geruza hori gutxitan da lanak behar zuen hura. Hornitzailearen komando-lerroak, sistema eragilearen markatzaileak eta aplikazio mugikor bateko intentak denak itzultzen dira konexioaren bizitzako momentu desberdinetan. Sekretua modu desberinean ere kudeatzen dute, eta alde horrek erabakitzen du pasahitza makina bereko erabiltzaile guztiek ikus dezaketen. Aukeratu geruza scriptaren lehen lerroa idatzi aurretik.

Geruza 1: hornitzailearen komando-lerroa

Mahaigaineko bezero gehienek profil-izena eta, gehiegietan, pasahitza onartzen dituen komando-lerro bat daukate. Cisco-ren bezero zaharrak connect aditza onartzen zuen erabiltzaile- eta pasahitz-argumentuekin; macOS-ek networksetup bidez ematen du zerbitzu integratua; NetworkManager-ek nmcli-ri erantzuten dio. Dei hauek komandoa amaitzean itzultzen dira, eta hori ez da tunela erabilgarri bihurtzen den momentua. Irakurri hornitzailearen dokumentazioa zabaltzen duzun bertsiorako, interfaze hauek aldatzen baitira eta batzuk guztiz kentzen dira.

nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"

Abantaila da hornitzaileak bere profil-biltegia ezagutzen duela, beraz deiak GUIak erabiliko lukeen konfigurazio bera erabiltzen du. Desabantaila da hornitzaile bakoitzak bere aditzak asmatzen dituela, eta bezero baterako idatzitako script bat ez dela beste batera eramaten. Hartu geruza hau bide laburrena bezala bezeroa finkatuta dagoenean eta bertsioa iltzatuta dagoenean.

Geruza 2: sistema eragilearen berezko zerbitzua

Windows-en markatzailea sistema eragilearen parte da, eta telefono-koadernoko sarrera baten aurka egiten du lan, hornitzailearen profil-biltegiaren ordez. Horrek bezeroen artean eramangarriagoa eta zerbitzu-kontu batetik scriptatzeko errazagoa egiten du. Gainera, konexioa leku batean egon daitekeela eta bestean ez esan nahi du, zerrenda okerrean begiratzen dutenak nahasten dituena.

rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus

Erabili PowerShell gainazala sarrera sortu edo kendu behar duzunean, markatu beharrean. WMI eta cmdlet geruzek objektu berberak erakusten dituzte izen desberdinekin, eta kentzea deskonexiotik bereizitako eragiketa da. Soilik markatzen duen script batek sarrera zaharkituak utziko ditu migrazio baten ondoren. Egiaztatu zure automatizazioak zein biltegira idazten duen garbiketa gertatuko dela agindu aurretik.

Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection

macOS-en baliokidea sare-zerbitzuen zerrenda da, non lehendik dagoen zerbitzu bat izenaren bidez konektatzen den, unean sortu beharrean.

Kredentzialek geruza guztietan ihes egiten dute, beraz aukeratu kanala

Komando-lerroan pasatzen duzun edozein gauza prozesu-taulan agertzen da tokiko erabiltzaile bakoitzarentzat, eta normalean shell-historialean ere bizirik irauten du. OpenVPN-ek onartzen duen alternatiba hau da: sekretua fitxategi batetik irakurtzea --askpass erabiliz, eta fitxategiak berak zuk harengan jartzen duzun konfiantzarekin bat datorren baimenak behar ditu. Izeneko tutu batek sekretua diskoan idaztea saihesten du, baina ireki dezakeen edozein prozesuri han idazten uzten dio. Windows-en, gorde sekretua kredentzialen kudeatzailean edo zerbitzu-kontuak soilik irakur dezakeen fitxategi batean, eta inoiz ez literal gisa batch fitxategi batean.

openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret

Arau bera aplikatzen zaie token eta erabilera bakarreko kodeei: automatizazioak behar baditu, automatizazioak komando-lerroko argumentu ez den kanal bat behar du. Biratu sekretua mekanismoa aldatzen duzunean, balio zaharra nonbait egon delako log batean. Funtzionatzen duen eta ihes egiten duen script bat ez da funtzionatzen duen script bat.

Itxaron egoeraren zain eta gero gainbegiratu jabe bakarra

Dei hauetako bakoitza tunela prest egon aurretik itzultzen da, beraz galdetu bezeroak erakusten duen egoerari edo probatu barruko helmuga bat denbora-muga batekin. Fitxategiak kopiatzea edo datu-baseko konexioa irekitzea konexio-deiaren ondoren berehala lasterketa bat da, eta tarteka huts egiten du sare-akats baten itxura duen moduan.

ip link show tun0
nmcli -t -f GENERAL.STATE connection show "Work VPN"
curl -sS --max-time 5 https://app.internal.example/health -o /dev/null

Deskonexioak arazo bera du alderantziz: prozesuak irten dezake ibilbideak desagertu aurretik. Erabili bezeroaren hookak dauden lekuan, hala nola OpenVPN bezeroaren up eta down scriptak edo systemd unitate baten ExecStartPost, zuk benetan axola duzun puntuan exekutatzen baitira. Hookak deitu zituztenaren pribilegioekin exekutatzen dira, beraz sareak berrabiarazten dituen hook batek arau esplizitua behar du suposizio baten ordez. Mantendu jabe zehatz bat konexioaren bizitza osoan.

Bi gainbegiratzailerek profil bera abiarazi eta gelditzen dutenean, emaitza hornitzailearen etena dirudien berrikonexio-begizta bat da. Runbook-a amaitzen da geruza dokumentatuta dagoenean, sekretuak argv ez den kanala duenean, itxaron-baldintza denbora-mugadun egoera-egiaztapena denean, eta prozesu bakarra dagoenean bizi-zikloaren jabe.

Erlazionatutako artikuluak