Kerio uz Linux: dot kvnet to MAC, ko serveris sagaida
kvnet tiek izveidots no jauna katrā savienojumā, tāpēc vienreizēja adreses maiņa tiek zaudēta. Nolasiet klienta reģistrēto vērtību un piemērojiet to no āķa pēc savienojuma.
Trīs lietām jāsakrīt, pirms Kerio tunelis pārraida datu plūsmu: adresei kvnet saskarnē, klienta reģistrētajai vērtībai un tam, ko sagaida servera politika vai DHCP. Ja tās nesakrīt, tunelis joprojām autentificējas un joprojām paceļas, un tieši tas padara kļūmi mulsinošu. Saskarne tiek izveidota katram savienojumam, tāpēc ar roku iestatīta adrese pieder tikai šai sesijai un nekam citam. Tāda ir problēmas forma, un risinājums ir āķis, nevis konfigurācijas fails. Pārējais ir, kur nolasīt vērtību un kur to piemērot.
Kāpēc adrese nemitīgi atgriežas
kvnet ir virtuāls adapteris, ko klients izveido savienojuma sākumā un noņem tā beigās. Tāpēc manuāls ip link set saglabājas tieši tik ilgi, cik ilgi pastāv sesija, kurai tas tika piemērots, un nākamais savienojums sākas ar to, ko piešķir klients. Datorā, kur klients nespēj piemērot gaidīto adresi, katrs atkārtotais savienojums atkal ievieš to pašu neatbilstību, un nomas vai piekļuves noteikums atkal noraida ierīci.
Šis modelis pats par sevi ir diagnostisks. Tunelis, kas darbojas vienā sesijā un neizdodas nākamajā, nav akreditācijas datu problēma, jo akreditācijas dati starp savienojumiem nemainās.
Lasiet vērtību no klienta, nevis no saskarnes
Linux klients sarunu detaļas raksta savā atkļūdošanas žurnālā, un adrese, ko tas gatavojas izmantot, tur parādās kā pēdējais adreses formas marķieris savienojuma secībā. Salīdziniet to ar to, ko kodols patiešām tur, un tas ir viena readlink attālumā: cat /sys/class/net/kvnet/address.
Ja abi atšķiras, klients zināja pareizo vērtību un nespēja to piemērot, un āķis, kas to piemēro pēc saskarnes izveidošanas, aizver šo plaisu. Ja žurnālā vispār nav adreses, problēma ir agrāka un pieder klienta versijai vai servera profilam, nevis skriptam.
Piemērojiet to pēc saskarnes izveidošanas
NetworkManager lietotāji var ievietot skriptu tā dispečera direktorijā un rīkoties tikai tad, kad VPN saskarne paceļas. systemd pārvaldītam klientam nepieciešama lielāka rūpība: drop-in, kas darbojas pakalpojuma startā, parasti iedarbojas pirms adaptera izveidošanas, tāpēc āķim jāgaida saskarne, nevis jāpieņem tā. Pēc tam iestatiet adresi, un, ja kodols atsakās, kamēr saite ir pacelta, nolaidiet to, iestatiet adresi un atkal paceliet. Nolasiet izgūto marķieri atpakaļ caur MAC modeli, pirms nododat to ip link, lai negaidīta žurnāla rinda nevarētu kļūt par argumentu.
Visam, kas darbojas kā root no klienta žurnāla, pienākas šaura piederība: failam, kas pieder root, ko citi nevar rakstīt, un bez čaulas interpolācijas ārpus validētās adreses. Turiet modeļa pārbaudi skripta iekšpusē. Neļaujiet žurnāla saturam izlemt, kura komanda darbojas.
Pārbaudiet nomu, nevis saiti
ip -4 -o addr show dev kvnet jārāda adrese gaidītajā diapazonā, ip neigh show dev kvnet jārāda vārteja, un vienam pakalpojumam aiz VPN jāatbild. Pēc tam vienreiz atvienojieties un atkal pievienojieties; ja adrese atgriežas, āķis iedarbojas uz nepareizo notikumu vai neiedarbojas vispār.
Saskarne, kas parādās ar pareizo adresi un nekad nesaņem nomu, norāda uz servera pusi. Tā ir cita pārbaude un parasti cita komanda. Pirms atkal rediģējat āķi, apstipriniet, ka konts ir atļauts un ka kopai joprojām ir adrese.
Pārskatiet apieto risinājumu pēc jaunināšanas
Klienta būvējums, kas pareizi iestata adresi, atstāj jūsu āķi piemērojam novecojušu vērtību, kas ir jauns defekts, ko ieviesis labojums. Tāpat nekad nekopējiet MAC no cita datora vai foruma ieraksta; izmantojiet vērtību, ko šis klients reģistrē šim kontam, un pierakstiet datumu, kad to pārbaudījāt.
Turiet skriptu pietiekami īsu, lai to varētu izlasīt vienā piegājienā. Apietie risinājumi, kas analizē žurnālus, pēc būtības ir pagaidu. Izdzīvo tie, ko nākotnes lasītājs saprot bez sākotnējās pavediena.