Innskráning í Cisco Secure Client úr Linux-skel, án GUI
Here-document er ekki innskráningarprotokoll. Skráðu raunverulega röð skilaboða, notaðu expect þegar hún breytist og haltu lykilorðinu utan argv og sögunnar.
Trúin er sú að here-document með fjórum línum sé fullkomin ógagnvirk innskráning, og hún heldur þar til hliðið býður tvö hópa, prentar borða eða biður um tóken eftir lykilorðið. Þá skrifar sama skriftan lykilorðið inn í valmynd sem beið eftir tölu. Hægt er að skrifa skriftu fyrir skipanalínuforritið á Linux, en aðeins ef þú gefur því það sem það bíður í raun eftir, ekki það sem kennslan gerði ráð fyrir.
Fasta here-documentið er goðsögn
Linux-forrit Cisco setur upp lítið forrit á /opt/cisco/anyconnect/bin/vpn, og Secure Client 5 sendir það enn. Þegar vpnagentd þjónustan er í gangi les -s flaggið svör af staðalinntaki í þeirri röð sem forritið biður um þau. Sú röð er ekki föst milli þjóna.
Hópvalmynd bætir við einni línu. Innskráningarborði bætir við annarri. Beiðni um tóken eftir lykilorðið brýtur fjögurra línu skriftu algjörlega, því fimmta línan átti aldrei að vera tókenið. Bilunin er hljóðlát: forritið fær ranga strenginn, tengingartilraunin endar og skriftan greinir ekkert gagnlegt.
Keyrðu forritið einu sinni í höndunum gegn sama hliði og útgáfu og skrifaðu niður skilaboðin í þeirri röð sem þau koma. Það uppskrift er forskriftin sem skriftan þín verður að uppfylla.
Hvers forritið bíður
Í venjulegu tilviki með einum hóp er röðin notandanafn, lykilorð og stundum staðfesting á borða. Fyrsta lína here-documents verður aðeins valmyndarvísir þegar þjónninn sýnir í raun valmynd, og þess vegna virkar sama skriftan á einum stað og bregst á þeim næsta.
/opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net <<EOF
0
alice
$VPN_PASSWORD
y
EOF
Lestu þetta sem fjögur svör við fjórum mögulegum spurningum, ekki sem fasta samskiptareglu. Núllið er valmyndarval, ekki lykilorð, og y-ið í lokin samþykkir borða sem mörg hlið senda aldrei.
Notaðu expect þegar röðin er ekki fyrirsjáanleg
Þegar röð skilaboða breytist skaltu hætta að telja línur og bíða eftir skilaboðunum í staðinn. expect-skrifta ræsir skipunina connect, bíður eftir notandanafnsskilaboðum, sendir, bíður eftir lykilorðsskilaboðum, sendir og bíður svo eftir tengdu ástandi. Hver bið hefur sinn eigin tímannörk.
Meðhöndlaðu tímannörk sem bilun og farðu út. Skrifta sem heldur áfram að senda inntak eftir óvænt skilaboð mun fúslega skrifa lykilorðið inn í skel, valmynd eða hvað sem er annað sem er að lesa. Þannig verður innskráningarskrifta að atviki.
expect gefur þér líka uppskrift sem þú getur skráð án leyndarmálsins, og hún er meira virði en útgangskóðinn þegar hlið breytir skilaboðunum sínum eftir uppfærslu.
Leyndarmálið verður að búa einhvers staðar
Öll útgáfa þessa vandamáls á eitt veikt atriði sameiginlegt: lykilorðið verður að vera til í formi sem forritið getur lesið. Að senda það sem rök afhjúpar það í ferlatöflunni. Að bergmála það gegnum pípu setur það oft í sögu skeljarinnar. Bæði eru læsileg af öðrum staðbundnum notendum á sameiginlegri stökksvél.
install -m 600 /dev/null ~/.vpn-secret
umask 077; VPN_PASSWORD=$(cat ~/.vpn-secret) /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net
Skrá með 600 heimildum í eigu reikningsins er lágmarkið, og hún er enn leyndarmál í hreinu texta á diski. secret-tool lookup les úr lyklakippu Linux, og á macOS vinnur security find-generic-password -w sama verk. Þar sem fyrirtækið styður auðkenningu með skírteini eða SAML skaltu velja hana, því geymt lykilorð og MFA geta samt ekki lokið innskráningu án manneskju.
Staðfestu göngin og taktu svo yfir lokunina
Treystu ekki á fjarveru villutexta. Spurðu forritið um stöðu þess og athugaðu viðmótið sérstaklega:
/opt/cisco/anyconnect/bin/vpn state
ip -brief address
Staðan ætti að segja Connected, og gönguviðmót ætti að hafa vistfang. Biddu svo um eina auðlind sem göngin eiga að ná til, því tengt ástand án leiðar er raunveruleg niðurstaða og auðvelt að missa af.
Aftengdu með vpn disconnect og láttu skriftuna sem ræsti göngin sjá um lokunina. Misheppnað verk sem skilur lotu eftir opna eyðir sæti í leyfi og lítur út eins og auðkenningarvandamál fyrir næstu manneskju sem prófar.
Vinnuröð: staðfestu vpnagentd, skráðu raunverulega röð skilaboðanna, veldu here-document eða expect, haltu leyndarmálinu utan argv og sögunnar, staðfestu ástand og eina auðlind og aftengdu svo í sömu skriftu.