Sida loo otomaatigayo gelitaanka VPN ee sugaya koodhka token
Macaamil VPN oo khadka amarka ah oo terminalka wax weydiiya wuxuu joojiyaa skript kaliya password ku shubta tuubo. Samee shantan hubin ka hor inta aadan expect isticmaalin.
Skript bilaabaya macaamilka VPN ee iibiyaha ayaa laalaada ilaa waqtigu dhammaado, diiwaankuna wuxuu muujinayaa in macaamilku weydiisto koodh xaqiijin ah oo aan cidna qorin. Password-ka waa la bixiyay, sidaas darteed gabagabada muuqata waa in password-ku khaldan yahay. Ma aha. Codsi koodhku waa wada hadal gooni ah oo ku yaal kanaal gooni ah, skriptkaaguna waligiis ma furin.
Samee shanta hubin ee hoose si kala horumarsan. Joogso tan ugu horreysa ee guuldareysata, maxaa yeelay tallaabo kasta oo dambe waxay u qaadanaysaa in kuwii hore ansax yihiin.
Hubin 1: macaamilku ma akhriyaa gelinta caadiga ah?
Tijaabi ka hor inta aadan qorin wax otomaatig ah: tuubo ku shub macaamilka sir been ah oo fiiri waxa dhacaa. Haddii uu daabaco codsigiisa kadibna sugayo, tuubada ma akhriyo.
Macaamillo badan ayaa si toos ah u fura qalabka terminalka, ama diida inay sir ka qaataan qulqul aan terminal ahayn, si tuubo lumay aysan u daadin password. OpenVPN waa ka reebnaanta la diiwaan geliyay, maxaa yeelay --auth-user-pass wuxuu qaataa jid fayl. Macaamillada iibiyayaasha ee weydiista koodh hal mar ah badanaa ma laha ikhtiyaar u dhigma, codsigooduna wuxuu sugayaa terminal aan skriptkaagu waligiis bixin.
Hubin 2: ma leeyahay hannaanka ilmo terminal?
pty wuxuu ilmaha siinayaa terminal, taasoo codsiyada u beddelaysa soo-saar la akhriyi karo oo aad si kala horumarsan uga jawaabi karto.
import pexpect
child = pexpect.spawn("openconnect vpn.example.net", encoding="utf-8", timeout=30)
child.expect("GROUP:")
child.sendline("staff")
child.expect("USERNAME:")
child.sendline("alice")
child.expect("PASSWORD:")
child.sendline(PASSWORD)
child.expect("Connected as", timeout=60)Xargaha codsiga ee kor ku qoran waa tusaale; koobi qoraalka saxda ah ee macaamilkaagu daabaco, oo ay ku jiraan xarfaha waaweyn iyo yaryar iyo calaamadaha. Sugitaan kastaa wuxuu leeyahay waqti xaddidan, ilmaha xiran wuxuu tuurayaa ka-reebnaan halkii uu soo celin lahaa xaalad, sidaas darteed duub wareegga oo u qaado dhammaadka faylka guuldarro. Ogaan waxa qaybtani aanay samayn: ilmuhu wuxuu la dhintaa skriptka, maxaa yeelay pty ma aha hab kala-goyn, disown-na waa amarka shellka oo aan gaari karin hannaanka skriptkaagu abuuray.
Hubin 3: ma jiraa gelin aan is-dhexgal ahayn oo la taageeray?
Xoqidda shaashadda way jabtaa marka macaamilka la cusboonaysiiyo, sidaas darteed marka hore raadi ikhtiyaar la diiwaan geliyay.
Fiiri soo-saarka caawinta ikhtiyaar token ama koodh hal mar ah, oo hubi in adeeggu aqbalaayo koodhka lagu daray goobta password-ka. Meesha macaamilku ka akhriyo fayl aqoonsi, sii faylka halkii codsi:
openvpn --config office.ovpn --auth-user-pass <(printf "%s\n%s\n" "$USER_NAME" "$PASSWORD")Beddelka hannaanku wuxuu macaamilka siinayaa jid la akhriyi karo nidaamyada bixiya /dev/fd. Sirku wali waa sir marka laga eego macaamilka, sidaas darteed ka fogee diiwaannada, taariikhda shellka iyo liisaska hannaanka. Haddii macaamilku diido /dev/fd ama jidka aqoonsiga uu furo in ka badan hal mar, qor fayl dhab ah oo leh fasax adag oo isla skriptkaas ku tirtir.
Hubin 4: tunnel-ku ma ka sii noolaan doonaa skriptka?
Sida caadiga ah tunnel-ku wuxuu la dhintaa waalidkiisa, taasoo ka soo horjeedda waxa skriptka bilaabista u baahan yahay.
disown -h waxay caawisaa kaliya markaad macaamilka ku bilowday shaqo shell, maxaa yeelay waxay tafatirtaa shaxda shaqooyinka shellkaas mana gaarto hannaanka skriptkaagu pty ku abuuray. Maareeyaha adeegga ayaa ah guri ka wanaagsan wax kasta oo ay tahay in si aan la ilaalin dib ugu xirmo, maxaa yeelay wuxuu dib u bilaabaa macaamilka oo diiwaangeliya sababta uu u dhintay. Si kastaba ha ahaatee, filo koodh cusub ka dib isku-xir kasta: token hal mar ah waxaa isticmaala xaqiijinta koowaad ee guulaysata.
Fiiri waxa sudo ku sameeyo taxanaha. Codsiga password-ka sudo ma aha codsiga VPN, jawaabtana password-ka VPN waa habka ugu caansan ee taxanaha sugitaanka ee haddii kale sax ah uu wali guuldareysto.
Hubin 5: koodhka qof ma ku jiraa skript?
Kani waa hubinta dadku dhaafi jiraan. Token waxaa leh qof, halka tunnel-ka ay tahay inuu jadwal ku kaco uu leeyahay mashiinka.
Haddii shaqadu ay tahay in si aan la ilaalin dib ugu xirmo, weydii in shahaadada mashiinka ama akoonka adeeggu beddeli karo gelitaanka is-dhexgalka. Otomaatigaynta koodhka hal mar ee qof waxay qodobka labaad u beddelaysaa sir kaydsan, taasoo ah isbeddel siyaasad ah ee ma aha fududayn skript. Meesha adeeggu labadaba taageero, dooro aqoonsiga u dhigma sida shaqadu dhab ahaan u socoto. Qor jawaabta, maxaa yeelay qofka xiga wuxuu weydiin doonaa sababta skriptku token u haysto.
Sida skript shaqeeya u ekaan karo
Skriptku wuxuu daabacaa tallaabada uu gaaray, waligiis ma daabaco sirta, wuxuuna ku baxaa koodh aan eber ahayn sugitaan kasta oo guuldareystay.
Ku tijaabi si ula kac ah u jebin: password khaldan, koox khaldan, token duugoobay. Guuldarro kastaa waa inay ku joogsataa tallaabo magac leh halkii ay laalaadi lahayd. Kadib hal mar ku socodsii adeegga dhabta ah oo hubi tunnel-ka skriptka dibaddiisa, ee ma aha gudihiisa.