Sistemaren ezarpenetan VPN zerbitzu gordeta bat duzu, eta terminalak hura abiaraztea nahi duzu. macOS-en onartutako bidea scutil --nc da, baina sistemaren sare-konexioen kudeatzaileak berak dituen zerbitzuetarako soilik. Menu-barra ez da APIa: hirugarrenen bezeroek normalean beren automatizazioa dute, eta kudeaketa-zerbitzu batek bidalitako profilak tokiko abiaraztea ukatu dezake. Hau da jarraitzen dudan kontrol-zerrenda: aurkitu zerbitzu zehatza, irakurri haren egoera, abiarazi, itxaron egoera aldatu arte, eta gero egiaztatu trafikoak tunela benetan erabiltzen duela. Gelditu bat ez datorren lehen urratsean, geroagoko komando bakoitzak aurrekoa ondo joan dela suposatzen baitu.

Aurkitu zerbitzua abiarazten saiatu aurretik

Hasi inbentarioarekin, gogoratzen duzun profil-izenarekin beharrean:

scutil --nc help
scutil --nc list

Lerro bakoitzak egoera bat lotzen du zerbitzu-identifikatzaile, mota eta bistaratze-izen batekin. Identifikatzailea da scriptak idazteko balioa, bistaratze-izenak errepikatu eta editatu egin baitaitezke. Apple-ren scutil eskuliburua sare-konexio modua dokumentatzen du, eta instalatutako --nc help da Mac horretako azpikomandoen zerrenda autorizatua; ez suposatu gida zaharrago bateko bandera bat zure macOS bertsioan oraindik badagoenik.

Zerrenda hutsa emaitza da, ez errorea. Saltzaile baten bezeroak edo kudeaketa-profil batek sortutako zerbitzua aktiboa izan daiteke hemen ikusezina den bitartean, edo kontrolatzaile natiboak gidatu ezin duen mota batekin ikusgai. Kasu horretan, erabili saltzailearen tresna edo profilaren dokumentazioa. Profil natibo paralelo bat sortzea abiarazteko zerbait izateagatik soilik negozio txarra da.

Irakurri uneko egoera eta berretsi hautatzailea

Galdetu zerbitzuari abiarazi aurretik, abiarazte arrakastatsu batek zer aldatu behar duen jakiteko:

scutil --nc status "Office VPN"

Bi zerbitzuk bistaratze-izen bera partekatzen badute, izena anbiguoa da. Eman identifikatzailea horren ordez; komandoak biak onartzen ditu, baina identifikatzaileak soilik du zerbitzu bat hautatzeko bermea. Egiaztatu egoera-hitza ezagutzen duzun bat dela — normalean Connected, Disconnected, Connecting edo Disconnecting — script batean aztertu aurretik. Egiaztatu ere profila kudeatuta dagoen, konfigurazio blokeatuak komandoa onartu eta hala ere alde batera utzi edo berrespena eska baitezake.

Egoera-dei hau merkea da, beraz erabili guarda gisa automatizazioan: abiarazi soilik egoera Disconnected denean, eta ez hartu Connecting huts egite gisa. Zerbitzua jada Connected badago, saltatu abiaraztea tunel bat eten beharrean.

Abiarazi konexioa eta itxaron egoera egonkortu arte

Abiarazte-eskaera asinkronoa da. Komandoa eskaera onartu denean itzultzen da, ez autentifikazioa amaitzean edo bideak instalatzean. Exekutatu, gero inkestatu egoera itxaronaldi mugatuarekin, eta irten zerbitzua Disconnected-era erortzen bada:

scutil --nc start "Office VPN"
n=0
while [ "$n" -lt 30 ]; do
  state=$(scutil --nc status "Office VPN" | head -n 1)
  [ "$state" = "Connected" ] && break
  [ "$state" = "Disconnected" ] && { echo "start failed"; exit 1; }
  sleep 2
  n=$((n + 1))
done

Inoiz konpontzen ez den Connecting egoerak normalean kredentzial, MFA edo zerbitzarira seinalatzen du, ez scutil-era. Komandoak ezin du saio-hasiera interaktiborik eman, beraz token edo hardware-gako bat itxaroten duen profila Connecting-en geratuko da eta azkenean atzera egingo du. Irakurri egoera-hitza berriro saiakera gehigarriak gehitu aurretik; autentifikazio-eskaera baten aurka begizta batek ezin du arrakastarik izan.

Ez hartu shellaren irteera-egoera prestutasun gisa. Seinale erabilgarria egoera-katea da, eta ondoren tunelak trafikoa daramala dioen froga. Isilean itzultzen den abiarazte-komando batek sekula autentifikatzen ez den konexioarekin utz zaitzake.

Egiaztatu tunelak trafikoa daramala, ez soilik Connected esaten duela

Connected-ek konexioa deskribatzen du, ez bideratze-erabakia. PPP eta IKEv2 zerbitzu natiboek ppp edo utun interfazea sortu eta bideak instalatzen dituzte, eta tunel zatituak berariaz uzten du bide lehenetsia ukitu gabe. Ikuskatu interfazeak eta bi helbide-familia:

ifconfig -l
netstat -rn -f inet
netstat -rn -f inet6
scutil --dns

Aurkitu zerbitzuak sortutako interfazea zenbakia asmatu beharrean, gero galdetu bideratze-taulari helmuga jakin batek zein interfaze erabiltzen duen: route -n get 10.0.0.10, barneko ostalari bat jarriz haren ordez. Interfaze fisikoa jakinarazten badu, tunela martxan dago baina ez du fluxu hori eramaten. Egiaztatu tunel zatituaren bideak, ebazlearen ordena eta tunelaren interfazea baina ez prozesua uzten duen tokiko suebaki-araua.

Izenen ebazpena ohiko negatibo faltsua da. Barne-izenak ebazle okerraren bidez ebatz daitezke tunela guztiz osasuntsu dagoen bitartean, eta hori VPN akatsa dela ematen du, baina ez da. scutil --dns erakusten du macOS-ek erabiliko duen ordena; ebazlea aldatu ondoren, hustu cachea dscacheutil -flushcache eta sudo killall -HUP mDNSResponder erabiliz.

Eduki kredentzialak eta pribilegioak komando-lerrotik kanpo

Ez jarri inoiz pasahitzik, aurrez partekatutako gakorik edo tokenik argumentuetan. Argumentuak prozesu-zerrendetan ikusgai daude eta shellaren historian gelditzen dira, eta kopiatutako laguntza-transkripzio batek filtratu ditzake. Profilaren beraren kredentzial-kudeaketa — Keychain elementua, sistemaren eskaera edo bezeroaren autentifikazio-fluxua — da sekretuen lekua.

Komandoa sudo-rekin exekutatzeak ez du saio-hasiera interaktiboa arretarik gabe bihurtzen. Erabiltzaile efektiboa aldatzen du, ez GUI eskaeraren, hardware-tokenaren edo saio-hasierako keychainaren erabilgarritasuna. LaunchAgent batek zerbitzua abiaraz dezake erabiltzailea saioa hasi eta keychaina ireki ondoren; LaunchDaemon batek normalean ezin ditu erabiltzaile-saioaren zati horiek iritsi. Erakunde batek zerbitzua kudeatzen badu, haren bizi-zikloaren arauek tokiko edozein script gainditzen dute.

Gelditu zerbitzua eta egiaztatu geldituta geratu dela

Gelditu abiarazteko erabili zenuen hautatzaile berarekin, gero irakurri egoera berriro tunela desagertu dela suposatu beharrean:

scutil --nc stop "Office VPN"
scutil --nc status "Office VPN"

Disconnected-era itzultzen den geldialdi batek gauza bat egiaztatzeko uzten du oraindik: profila eskaeran konektatzeko konfiguratuta dagoen, eta horrek zure scripta gabe itzul baitezake. Beste bezero batek Mac berean bideak baditu, bide horiek geldialdi natibo bat gaindi dezakete. Egiazta ezazu bidea berriro makina VPN-tik kanpo dagoela ondorioztatu aurretik.

Eskuz exekutatzen duzun bilgarri batentzat, mantendu ordena finkoa: zerrenda, egoera, abiaraztea, inkesta, bide-proba, gelditzea, egiaztapena. Ez aztertu izen atsegina formatu libreko irteeratik identifikatzailea eskuragarri dagoenean, eta ez hartu abiarazte-komandoaren irteera prestutasun gisa. Konexio-kudeatzaileak egoera jakinarazten du; zure froga egoera eta tunelera seinalatzen duen bide bat dira.

Erlazionatutako artikuluak