Puncte:0

OpenVPN. Cum să furnizați acreditări interactive într-un script

drapel ru

Am un script care instalează și configurează VPN, apoi se conectează la el:

apt install apt-transport-https
wget https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub
apt-key add openvpn-repo-pkg-key.pub
wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-focal.list
actualizare apt
apt install openvpn3
openvpn3 session-start --config profile-59.ovpn

Când îl rulez pe desktop Ubuntu, îmi cere acreditările în mod interactiv: introduceți descrierea imaginii aici

Cum pot ajusta scriptul pentru a trece acreditările evitând solicitarea interactivă? Scopul acestui lucru este ca un container Docker să se conecteze automat la VPN.

bac0n avatar
drapel cn
Există un motiv pentru care nu puteți utiliza opțiunea de configurare `auth-user-pass`?
WinBoss avatar
drapel ru
Nu am auzit niciodata de asta. Cum pot face acest lucru?
Puncte:2
drapel in

Poate doriți să examinați ceva asemănător cu aştepta, ceea ce ți-ar permite să faci ceva de genul acesta:

spawn vpn_connect.sh
așteptați „Nume utilizator de autentificare:”
trimite „protractor-container\r”
așteptați „Parola:”
trimite „superSecretPassword!123\r”

Desigur, acest lucru ar putea să nu fie ideal în cazul în care un număr de persoane au capacitatea de a se conecta la containerul Docker sau de a citi fișierele sursă care sunt împachetate în build, deoarece parolele cu text clar pot crea probleme.

O opțiune ar fi să creați un fișier separat care să conțină acreditările și să îl stocați într-o locație din containerul Docker, cum ar fi /root/.private/vpn-creds. Acest fișier ar conține doar două rânduri:

raportor-recipient
superSecretPassword!123

Apoi vă puteți edita aştepta scriptul să arate astfel:

#!/usr/bin/expect -f

setați fișierul de acces [deschideți „/root/.private/vpn-creds” r]
primește numele de utilizator $passfile
primește parola $passfile
închide $passfile

spawn vpn_connect.sh
așteptați „Nume utilizator de autentificare:”
trimite „$nume utilizator\r”
așteptați „Parola:”
trimite „$parola\r”

Rețineți, dacă toată lumea are rădăcină acces, nu puteți face mare lucru într-un mod automat pentru a ascunde acreditările. O persoană hotărâtă cu sudo cine știe să folosească StackExchange va găsi o modalitate de a obține informațiile dorite

WinBoss avatar
drapel ru
Asta ar necesita stocarea parolei într-un fișier, nu? Putem face asta fără ea?
drapel in
@WinBoss a adăugat un pic pentru a arăta cum să citești acreditările din altă parte, cu o avertizare

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.