Mae'r cleient vpn sy'n dod gyda Cisco AnyConnect yn ymddwyn fel sgwrs: mae'n argraffu anogwr, yn aros am linell, ac yna'n argraffu'r nesaf. Bwydwch y sgwrs honno i mewn o ffeil neu bibell ac mae'r un deuaidd yn rhedeg heb oruchwyliaeth. Y dechneg yw un ailgyfeiriad ynghyd â rhestr drefnus o atebion, a'r rhestr, nid yr ailgyfeiriad, sy'n penderfynu a yw'r sgript yn ddibynadwy.

Mae dau beth yn torri hyn yn ymarferol. Mae trefn yr anogwyr yn symud pan fo porth yn gofyn rhywbeth ychwanegol, ac mae cyfrinair wedi'i storio yn troi un camgymeriad teip yn gloi cyfrif. Triniwch y dilyniant fel data fersiynog y gallwch ei wahaniaethu ar ôl unrhyw newid i'r porth. Methwch yn uchel yn hytrach nag ailgynnig, oherwydd dolen yw'r union ffordd y mae cyfrinair wedi'i deipio'n anghywir yn troi'n gyfrif wedi'i gloi.

Un dilyniant, yn y drefn y mae'r cleient yn gofyn

Rhedwch y cleient yn rhyngweithiol unwaith a nodwch bob anogwr yn y drefn y mae'n ymddangos. Daw'r trawsgrifiad hwnnw'n ffeil atebion. Pan fyddwch yn ailgyfeirio'r ffeil i'r deuaidd, rhaid i'r llinell gyntaf fod y gorchymyn cysylltu ei hun, a dyna pam mae'r dilyniant yn dechrau gydag enw gwesteiwr yn hytrach nag enw defnyddiwr.

connect vpn.example.com
0
<username>
<password>
y
exit

Mae'r 0 noeth yn dewis y proffil cysylltu cyntaf pan fo'r porth yn cynnig rhestr; defnyddiwch ba bynnag fynegrif y mae'ch porth yn ei argraffu. Mae'r y yn derbyn baner fewngofnodi, felly dilëwch y llinell honno os nad oes baner, a mewnosodwch un lle bynnag y mae'ch porth yn gofyn cwestiwn ychwanegol. Yr exit ar y diwedd yw'r hyn sy'n gadael i'r cleient derfynu'n lân pan fo'r ateb olaf wedi'i dreulio.

/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt

Nid yw modd anryngweithiol yn ddewisol yma. Heb -s gall y cleient feddiannu'r derfynell ac anwybyddu mewnbwn a ailgyfeiriwyd; gydag ef darllenir yr atebion o'r ffrwd ac mae'r broses yn dychwelyd. Lle mae'r deuaidd angen braint uwch, lapwch yr alwad yn sudo -n fel bod y sgript yn methu ar unwaith yn hytrach na rhwystro ar anogwr cyfrinair.

Lle mae'r ffeil atebion yn gollwng

Mae ffeil sy'n cynnwys cyfrinair yn gyfrifiaeth, felly rhowch iddi hawliau un: modd 600, yn eiddo i'r cyfrif sy'n rhedeg y gwaith, ac yn byth y tu mewn i gyfeiriadur a rennir neu a gysoniwyd. Crewch hi gyda'r modd eisoes wedi'i osod yn hytrach na'i thrwsio wedyn, oherwydd mae ffeil yn fyr-ddarllenadwy i bawb rhwng yr ysgrifennu a'r chmod.

install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config

Yr hanner arall yw argv. Mae cyfrinair a basiwyd fel dadl yn weladwy i bob defnyddiwr lleol sy'n rhestru prosesau, ac mae hefyd yn glanio yn hanes y plisgyn. Darllenwch ef o ddisgrifydd ffeil neu newidyn amgylchedd yn lle hynny, a dyfynnwch y llwyth fel na all y plisgyn ehangu unrhyw beth y tu mewn iddo.

printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
  | sudo -n /opt/cisco/anyconnect/bin/vpn -s

Gwyliwch y dyfynnu. Y tu mewn i ddyfynodau dwbl gall cyfrinair sy'n cynnwys ! gael ei ehangu gan blisgyn rhyngweithiol cyn i'r cleient ei weld o gwbl, ac mae'r methiant yn cyrraedd fel gwall event-not-found generig sy'n edrych fel problem protocol.

Profwch y tiwnel, yna caewch ef

Mae cyflwr cysylltiedig yn profi'n unig fod y cleient yn credu bod ganddo sesiwn. Dewiswch westeiwr sy'n ateb dim ond o du mewn y rhwydwaith corfforaethol a phrofwch ef unwaith cyn gwneud unrhyw beth arall. Mae methiant yno yn ffawt llwybro neu bolisi, ac ni fydd rhedeg y mewngofnodi eto yn newid hynny.

/opt/cisco/anyconnect/bin/vpn state
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://<internal-host>/
/opt/cisco/anyconnect/bin/vpn disconnect

Gwiriwch allbwn y cyflwr cyn ac ar ôl y datgysylltu. Gall cleient a adawyd yn dal sesiwn hen achosi gwrthod y cysylltiad nesaf tra bod y sgript yn dal i adrodd llwyddiant, ac mae'r modd methu hwnnw'n anweledig os mai dim ond codau gadael yr edrychwch arnynt. Cymharwch y ddau ddarlleniad yn hytrach na choelio'r ail ar ei ben ei hun. Mae aliasau mewn proffil plisgyn yn ddigon ar gyfer defnydd bob dydd, tra bod unrhyw beth a amserlennwyd yn haeddu'r un adolygiad o gyfrifiaethau a hunaniaeth ag unrhyw waith arall heb oruchwyliaeth.

Pan fo rhestr sefydlog yn peidio â bod yn ddiogel

Mae ffeil atebion yn amgodio trefn anogwyr heddiw. Mae baner wedi newid, newid cyfrinair gorfodol neu her ail ffactor yn ei throi'n ddolen a all gloi'r cyfrif, a dyna pam y mae'n rhaid i'r sgript allan ar yr ateb annisgwyl cyntaf yn hytrach nag ailgychwyn.

Daliwch yr hyn a argraffodd y cleient, dychwelwch statws di-nod, a gadewch i'r galwr benderfynu. Lle mae'r porth yn mynnu ail ffactor, yr ateb gonest yw nad yw mewngofnodi heb oruchwyliaeth ar gael ar gyfer y proffil hwnnw, nid bod angen un llinell arall ar y dilyniant.

Mae cylchdroi yn perthyn i'r un adolygiad. Os cedwir y gyfrifiaeth, penderfynwch pwy all ei darllen, pryd y mae'n newid, a beth sy'n ei symud pan ailadeiledir y gwesteiwr. Nid yw sgript sy'n gweithio am flwyddyn oherwydd na chyffyrddodd neb â'r cyfrinair yn ddyluniad, ond yn ddamwain sy'n aros am bolisi cylchdroi.

Proffiliau nad ydynt yn AnyConnect

Mae dau arddull cyfrifiaeth Cisco hŷn yn cael eu cymysgu â hwn. Mae proffil vpnc yn gofyn am IPSec ID, sef mewn gwirionedd enw'r grŵp, yna cyfrinach grŵp, yna eich cyfrifiaethau eich hun, ac mae'r tri yn dod oddi wrth bwy bynnag sy'n rhedeg y porth. Mae Cisco IPsec etifeddol yn brotocol gwahanol i AnyConnect, felly ni all vpnc gyrraedd gwasanaeth sy'n unig-AnyConnect; openconnect --protocol=anyconnect yw'r cleient agored ar gyfer y gwaith hwnnw.

Mae ffeil .pcf yn disgrifio'r proffil cleient hŷn. Gellir ail-nodi'r gwesteiwr, enw'r grŵp a chyfrinair y grŵp ynddi â llaw mewn cleient sy'n siarad Cisco IPsec, er nad yw'r ffeil yn fewnforio cyffredinol ac mae unrhyw borthladd neu fodd tiwnelu nad yw'n ddiofyn fel arfer yn diflannu yn y trosglwyddiad.

Dechreuwch o'r hyn y mae'r porth yn ei gynnig mewn gwirionedd, yna dewiswch y cleient sy'n siarad y protocol hwnnw. Copïo proffil o safle arall yw'r ffordd y mae pobl yn dechrau dadnabod cyfrifiaethau nad oeddent erioed yn broblem.

Erthyglau cysylltiedig