Żomm bosta tunnels vpnc ħajjin b’provi għal kull profil
L-iskritt tar-rikonnessjoni li jiġi mal-pakkett jassumi tunnel wieħed. Agħti lil kull profil vpnc il-port tiegħu, ipprova servizz reali, u katina l-provi f’ordni fissa waħda.
Profil vpnc wieħed jerġa’ jikkonnettja nadif wara roaming; tlieta minnhom jaqbdu jkissru wara xulxin is-sockets, ir-rotot u l-istat tar-resolver ta’ xulxin. L-iskritt tar-rikonnessjoni li jiġi mal-pakkett huwa miktub għal tunnel wieħed, mela jerġa’ jibda kull profil kull darba li wieħed minnhom ikun ’l isfel. Biex dan jiġi ssettjat hemm bżonn tliet affarijiet: ports lokali separati, prova li tittestja servizz reali għal kull profil, u katina ordnata waħda li qatt ma tniedi żewġ konnessjonijiet flimkien.
Agħti lil kull profil il-port lokali tiegħu stess
Profil vpnc li jitħalla fuq il-port lokali awtomatiku jikkompeti mal-profil li diġà għaddej. It-tieni konnessjoni tfalli waqt li l-ewwel iżżomm il-port, u l-linja tal-log tidher bħala problema tal-gateway u mhux konflitt lokali. Minflok poġġi linja waħda għal kull fajl ta’ profil:
Local Port 0Iż-żero jħalli lill-kernel jagħżel port temporanju, mela żewġ profili jistgħu jiġu stabbiliti fl-istess ħin. Semmi kull fajl għall-gateway u l-grupp li jaqdi, żommu jinqara mill-root biss, u dejjem ikkonnettja bil-profil li jaqbel u mhux ma’ awtomatiku kondiviż. Fajl awtomatiku kondiviż huwa l-mod kif skritt jerġa’ jikkonnettja t-tunnel ħażin wara li xi ħadd ibiddel isem profil.
Il-fajls tal-profil iġorru l-kredenzjali, għalhekk il-permessi huma parti mid-disinn u mhux mix-xogħol tad-dar. Fajl li jinqara minn kulħadd taħt /etc/vpnc jagħti s-sigriet tal-grupp lil kull utent lokali. Żomm il-mod fuq 0600 bir-root bħala sid, u ħalli l-iskritti jaqraw il-fajl bħala root minflok ma jikkupjaw sigrieti fl-argumenti. Huwa għalhekk ukoll li skritt tal-prova qatt m’għandu jikteb il-kontenut tal-fajl fil-log.
Ipprova servizz wieħed għal kull profil, mhux l-indirizz tat-tunnel
Talba echo lejn l-indirizz tat-tunnel stess l-aktar li turi hija li l-interface teżisti. Ma tgħid xejn dwar jekk l-host warajha għadux jilħaq l-applikazzjoni li tiġġustifika t-tunnel. L-interface tista’ tkun ’il fuq waqt li r-rotta warajha diġà marret.
Ipprova servizz wieħed għal kull profil b’terminu TCP qasir u erġa’ kkonnettja biss il-profil li l-prova tiegħu ffalliet. Żewġ sekondi jifirdu triq mejta minn waħda bil-mod, u prova TCP ma tiddependix mill-fatt li ICMP ikun permess f’xi mkien tul it-triq. Ibdel biss il-mira u l-isem tal-konfigurazzjoni bejn il-profili:
#!/bin/bash
set -eu
if ! nc -z -w 2 10.63.7.20 8443; then
/usr/sbin/vpnc-connect ops.conf
fiSalva dan bħala /usr/local/bin/ensure-vpn-ops.sh, agħmel eżegwibbli, u erġa’ agħmel għal kull profil billi tibdel biss il-mira tal-prova u l-isem tal-konfigurazzjoni. Prova li twieġeb mistoqsija tal-protokoll tgħix minn gateways li jwarrbu l-echo waqt li għadhom jgħaddu s-servizzi li jimpurtaw mill-utenti.
Katina l-provi biex qatt ma jitħabtu
L-iskritt tar-rikonnessjoni li jiġi mal-pakkett jista’ jsejjaħ il-provi tiegħek fis-sekwenza, u s-sekwenza hija l-punt kollu. Żewġ sejħiet ta’ vpnc-connect li jaħdmu flimkien jerġgħu jiktbu t-tabella tar-routing f’ordni li ħadd ma jikkontrolla, u hekk profil b’saħħtu jitlef ir-rotta tiegħu.
Żomm is-sejħiet quddiem, żid dewmien qasir ta’ stabbilizzazzjoni għall-interface ta’ taħt, u ppjana l-katina mit-tabella cron tar-root, għax ir-root biss jista’ jerġa’ jikteb ir-rotot tat-tunnel:
#!/bin/bash
sleep 20
/usr/local/bin/ensure-vpn-ops.sh
/usr/local/bin/ensure-vpn-lab.shŻomm l-ordni l-istess bejn l-iskritt tal-boot u d-dħul cron, għax katina li fl-istartjar taħdem b’ordni differenti fil-fatt hija programm ieħor. Meta profil wieħed jiddependi mir-rotot ta’ ieħor, poġġi d-dipendenza l-ewwel u ħalli l-prova ta’ wara tfalli bla ħsara waqt li t-tunnel ta’ qabel għadu tiela’.
Wettaq il-log, imbagħad ikser wieħed apposta
Irreġistra linja waħda għal kull marat mal-profil, il-mira tal-prova, ir-riżultat u l-azzjoni meħuda. Mingħajrha, tunnel li joxxilla kull minuta jidher eżatt bħal wieħed li qatt ma waqa’, u bug fil-prova ma jistax jiġi distint minn qtugħ tal-gateway. Il-log jipprova wkoll li l-katina messet biss il-profil li falla. Iktbu f’post li jgħix wara restart, inkella l-evidenza titlaq mal-proċess.
Imbagħad ikser tunnel apposta u ara x’jiġri. Waqqaf profil wieħed u kkonferma liema proċessi u rotot għadhom preżenti:
pgrep -a vpnc
ip -4 route show | grep -E '10[.]63|10[.]90'
tail -n 5 /var/log/ensure-vpn.logIl-profil imwaqqaf biss għandu jerġa’ jiġi konness, u s-sessjonijiet l-oħra għandhom iżommu kemm il-proċessi kif ukoll ir-rotot tagħhom. Jekk żewġ profili jerġgħu jibdew, il-katina tiegħek qed taħdem b’mod parallel f’xi mkien li ma kontx tistenna.
X’ma għandux jagħmel il-watchdog
Watchdog li jerġa’ jibda kollox kull darba li xi ħaġa tfalli jidher b’saħħtu waqt l-ittestjar u jikkawża qtugħ fi tieqa ta’ manutenzjoni. Erġa’ ibda għal kull profil, qatt globalment.
Ippreferi klijent mantnut meta l-gateway joffri wieħed għall-istess protokoll, u qatt ma tpoġġi password fil-hardcode fl-iskritt jew tgħaddiha fuq linja tal-kmand, għax il-fajl tal-profil diġà jżomm is-sigriet. Jekk kompitu jrid jaħdem bħala utent ordinarju ladarba t-tunnel ikun ’il fuq, naqqas il-privileġġi minn ġewwa l-iskritt minflok ma tħalli l-katina kollha taħdem taħt dak il-kont. Fl-aħħar, erġa’ aqra r-rotot wara rikonnessjoni, għax profil jista’ jerġa’ jiġi b’indirizz assenjat differenti u jħalli rotta skaduta li ebda prova diretta lejn l-indirizz tat-tunnel qatt ma tinduna biha.