Dodavanje --csd-wrapper u profil predaje lokalnu skriptu demonu koji je pokreće tokom prijave, pa je odluka pred vama pregled koda, a ne prekidač preferencije. Opcija postoji da bi se komponenta za provjeru hosta na gatewayu mogla zamijeniti, i prima putanju do skripte koju vi dostavljate. Sve ispod pretpostavlja da je vlasnik instalacije već rekao koja je provjera stanja uređaja potrebna; ako je taj dio još otvoren, riješite ga prvo. Procedura ima četiri koraka: locirajte etapu koja je pala, pročitajte skriptu, odaberite identitet pod kojim se izvršava i dokažite ishod.

Korak 1: Locirajte etapu koja je pala

Posljednja poruka klijenta obično se odnosi na kolačić, što je kraj lanca, a ne njegov početak. HTTPS prijava, provjera certifikata servera, razmjena autentifikacije i komponenta stanja uređaja svi stoje ispred te poruke.

Zabilježite verziju i adresu prijave koja se koristi, zatim ponovite pokušaj s opširnim izlazom zadržanim na vašem terminalu. Pročitajte prvu grešku koja nije ponovni pokušaj, a ne posljednji red transkripta. Ako se zapis zaustavi prije nego što se navede bilo koja komponenta procjene, onda omotač još nije vaš problem. Dodavanje u tom trenutku samo širi površinu koju ćete kasnije morati braniti.

openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/null

Držite transkript lokalno, jer su kolačići i odgovori autentifikacije pristupni materijal. Trag zalijepljen u chat nit je curenje akreditiva čak i kada korak procjene izgleda bezopasno. Podijelite tekst greške i tačku u toku gdje se pojavila, nikada sadržaj.

Korak 2: Pročitajte skriptu prije nego što uđe u profil

Omotač je pouzdan onoliko koliko i revizija koju ste pregledali, zato prikujte tu reviziju i pohranite njen hash uz bilješku o odobrenju. Dvije komande ispod daju vam otisak i jeftinu provjeru sintakse prije nego što pročitate i jedan red. One daju i sljedećoj osobi fiksnu referencu, što je važno kada datoteka živi izvan upravljanja paketima. Nijedna komanda ne govori šta skripta radi, zato ih pokrenite i nastavite čitati.

sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.sh

Pročitajte cijelu datoteku imajući na umu četiri pitanja: pravi li odlazne HTTP pozive, čita li datoteke akreditiva ili varijable okruženja, piše li izvan privremenog direktorija i prijavljuje li neka grana prolazno stanje uređaja bez mjerenja ičega. Taj posljednji obrazac je zaobilaženje politike s priloženim redom zapisa. Kopirani omotači ga obično prokrijumčare iza provjere koja izgleda uvjerljivo. Ako skripta odluči da je uređaj u redu prije nego što pogleda uređaj, zaustavite se tu.

Provjerite i upakovane sadržaje, jer čitljivo zaglavlje ne dokazuje ništa o ostatku datoteke. Preuzimanje skripte s foruma ne čini je pouzdanom samo zato što njeno ime podsjeća na stvarnu komponentu za provjeru hosta. Zabilježite ko je instalirao, odakle dolazi i kako će se ažurirati.

grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.sh

Korak 3: Odaberite identitet pod kojim se omotač izvršava

--csd-user snižava privilegije dok se izvršava program CSD, TNCC ili HIP. Taj račun je dio lokalnog aranžmana izvršavanja, a ne korisničko ime poslano gatewayu.

Dajte omotaču namjenski račun bez interaktivne ljuske, bez sudo prava i bez članstava u grupama koja mu ne trebaju. Dajte pristup čitanju skripte i konkretnih datoteka koje pregleda, zatim testirajte spuštanje privilegija prije nego što dotaknete VPN profil. Pronalaženje problema ovdje je jeftinije od pronalaženja unutar klijenta.

sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.sh

Snižavanje privilegija ograničava štetu koju loša skripta može nanijeti. Ono ne pregleda kod, ne čini izvještaj istinitim i ne utvrđuje da administrator gatewaya prihvaća ovu implementaciju kao usklađenu s politikom uređaja.

Korak 4: Održite promjenu reverzibilnom

Napravite sigurnosnu kopiju profila prije uređivanja i držite omotač pod kontrolom verzija kako bi vraćanje obnovilo poznati hash umjesto traganja za kopijom. Zapišite putanju skripte, hash, korisnika izvršavanja i odobravatelja na jednom mjestu.

Za vraćanje uklonite opciju, ponovo pokrenite klijent i potvrdite da se originalna greška vraća. Ako gateway i nakon vraćanja odbija prijavu, promijenilo se i nešto drugo, a pronalaženje te razlike dolazi prije ponovnog pokušaja s omotačem. Zadržite prethodnu kopiju tokom cijelog perioda promjene, što za većinu timova znači do prolaska sljedećeg termina održavanja.

Nakon uspješnog uvođenja provjerite dvije stvari umjesto jedne: tunel se podiže i uređaj koji bi trebao pasti provjeru stanja i dalje se odbija. Veza koja radi za sve nije dokaz da je procjena preživjela vašu promjenu.

Prečice koje stvaraju drugi problem

Ne dopustite pomoćniku da prijavi usklađeno stanje bez pokretanja potrebnih provjera i ne mijenjajte identitet platforme kako bi odgovarao drugom operativnom sistemu. Tvrdnja o drugoj platformi nije dokaz da stvarni uređaj zadovoljava politiku. To vas ostavlja s klijentom koji laže pri svakoj budućoj prijavi.

Isključivanje provjere servera, ponovno puštanje zastarjelog kolačića i gomilanje nepregledanih skripti svi mijenjaju vidljiv neuspjeh za nevidljiv. Ako instalirani klijent ne može dovršiti podržani tok, zatražite odobrenu alternativu umjesto da savijate onu koju imate.

OpenConnect priručnik dokumentira --csd-wrapper i --csd-user odvojeno, i to je nagovještaj koji je važan: skripta i identitet su dvije odluke. Pregledajte ih odvojeno i zapišite oboje. Tada upit za prijavu prestaje biti misterija koju rješavate lijepljenjem koda.

Povezani članci