Mantendu hainbat vpnc tunel profil bakoitzeko probekin
Birkonexio script estandarrak tunel bakarra suposatzen du. Eman vpnc profil bakoitzari bere portua, probatu zerbitzu erreala eta kateatu probak ordena finko bakarrean.
vpnc profil bat garbi birkonektatzen da roamingaren ondoren; hirurek txandaka elkarren socket, bide eta ebazlearen egoera hausten dute. Paketean datorren birkonexio scripta tunel bakarrerako idatzita dago, beraz, edozein behera egonez gero, profil guztiak berrabiarazten ditu. Hori konpontzeko hiru gauza behar dira: portu lokal bereiziak, profil bakoitzeko zerbitzu erreal bat probatzen duen proba bat eta inoiz bi konexio aldi berean exekutatzen ez dituen kate ordenatu bat.
Eman profil bakoitzari bere portu lokala
Portu lokal lehenetsian uzten den vpnc profilak lehian egiten du jadanik martxan dagoen profilarekin. Bigarren konexioak huts egiten du lehenak portua eusten duen bitartean, eta erregistro lerroa atebide arazoa dirudi, tokiko gatazka baino. Jarri lerro bat profil fitxategi bakoitzeko:
Local Port 0Zeroak kernelari portu efimero bat aukeratzen uzten dio, beraz bi profil aldi berean ezar daitezke. Izenda ezazu fitxategi bakoitza zerbitzatzen duen atebidearen eta taldearen arabera, mantendu root-ek bakarrik irakur dezan, eta konektatu beti dagokion profilekin, partekatutako lehenetsi batekin beharrean. Partekatutako lehenetsitako fitxategi bat da script batek tunel okerra birkonektatzeko modua norbaitek profila berrizendatu ondoren.
Profil fitxategiek kredentzialak daramatzate, beraz baimenak diseinuaren parte dira, ez etxeko lanena. /etc/vpnc azpiko edonork irakur dezakeen fitxategi batek taldeko sekretua tokiko erabiltzaile bakoitzari ematen dio. Mantendu modua 0600an root jabe gisa, eta utzi scriptei fitxategia root gisa irakurtzen, sekretuak argumentuetara kopiatu ordez. Horregatik ere proba script batek ez luke inoiz fitxategiaren edukia erregistroan islatu behar.
Probatu zerbitzu bat profil bakoitzeko, ez tunelaren helbidea
Tunelaren beraren helbidera egindako oihartzun eskaerak interfazeak badirela frogatzen du batez ere. Ez du ezer esaten atzean dagoen ostalariak tunela justifikatzen duen aplikaziora oraindik iristen den ala ez. Interfazea aktibo egon daiteke atzean dagoen bidea jadanik desagertu den bitartean.
Probatu zerbitzu bat profil bakoitzeko TCP denbora-muga laburrarekin eta birkonektatu huts egin zuen proba duen profila soilik. Bi segundok bide hil bat bide motel batetik bereizten dute, eta TCP proba ez da bidean zehar ICMP baimenduta egotearen mende. Alda ezazu helburua eta konfigurazioaren izena soilik profileen artean:
#!/bin/bash
set -eu
if ! nc -z -w 2 10.63.7.20 8443; then
/usr/sbin/vpnc-connect ops.conf
fiGorde hori /usr/local/bin/ensure-vpn-ops.sh gisa, egin exekutagarri, eta errepikatu profil bakoitzeko probaren helburua eta konfigurazioaren izena soilik aldatuta. Protokolo galdera bati erantzuten dion proba batek oihartzuna botatzen duten atebideen gainetik irauten du, erabiltzaileei axola zaizkien zerbitzuak oraindik ere aurrera bidaltzen dituzten bitartean.
Kateatu probak inoiz lehiatu ez daitezen
Paketean datorren birkonexio scriptak zure probak sekuentzian dei ditzake, eta sekuentzia da kontu osoa. Elkarrekin exekutatzen diren bi vpnc-connect deiek nagusiak diren bideratze taula inork kontrolatzen ez duen ordenan berridazten dute, eta horrela galtzen du profil osasuntsu batek bere bidea.
Mantendu deiak aurrean, gehitu finkatze atzerapen labur bat azpiko interfazerako, eta programatu katea root-en cron taulatik, root-ek bakarrik berridatz baititzake tunelaren bideak:
#!/bin/bash
sleep 20
/usr/local/bin/ensure-vpn-ops.sh
/usr/local/bin/ensure-vpn-lab.shMantendu ordena berbera abiarazte scriptaren eta cron sarreraren artean, abiaraztean ordena desberdinean exekutatzen den katea funtsean beste programa bat baita. Profil batek beste baten bidetik mendekoa denean, jarri mendekotasuna lehenik eta utzi geroagoko proba kalterik gabe huts egiten lehenagoko tunela oraindik igotzen ari den bitartean.
Begiratu erregistroa, eta gero hautsi bat nahita
Erregistratu lerro bat exekuzio bakoitzeko, profilarekin, probaren helburuarekin, emaitzarekin eta hartutako ekintzarekin. Horren gabe, minutuero dardaratzen den tunel bat inoiz erori ez denaren berdin-berdina dirudi, eta proba errore bat ezin da atebidearen etenduratik bereizi. Erregistroak ere frogatzen du kateak huts egin zuen profila soilik ukitu zuela. Idatzi berrabiaraztea gainditzen duen leku batean, bestela froga prozesuarekin batera joaten da.
Gero hautsi tunel bat nahita eta begiratu zer gertatzen den. Gelditu profil bakar bat eta egiaztatu zein prozesu eta bide dauden oraindik:
pgrep -a vpnc
ip -4 route show | grep -E '10[.]63|10[.]90'
tail -n 5 /var/log/ensure-vpn.logGelditutako profila soilik birkonektatu beharko litzateke, eta beste saioek bai prozesuak bai bideak mantendu beharko lituzkete. Bi profil berrabiarazten badira, zure katea paraleloan ari da zuk espero ez zenukeen leku batean.
Zer ez duen zaintzaileak egin behar
Zerbait huts egiten duen bakoitzean dena berrabiarazten duen zaintzaile batek osasuntsu dirudi probetan eta etendura eragiten du mantentze leiho batean. Berrabiarazi profil bakoitzeko, inoiz ez orokorrean.
Hobetsi mantendutako bezero bat atebideak protokolo bererako bat eskaintzen duenean, eta ez kodeatu inoiz pasahitzik scriptan ezta komando lerroan pasa ere, profil fitxategiak sekretua badarama eta. Tunela igota dagoenean zeregin bat erabiltzaile arrunt gisa exekutatu behar bada, murriztu pribilegioak scriptaren barnetik kate osoa kontu horren pean exekutarazi beharrean. Azkenik, irakurri berriro bideak birkonexio baten ondoren, profila beste helbide bat esleituta itzul baitaiteke eta tunelaren helbidera zuzendutako proba inork inoiz antzemango ez duen bide zaharkitu bat utzi.