Cisco AnyConnect-той хамт ирдэг vpn клиент яриа шиг ажилладаг: сануулга хэвлэж, нэг мөр хүлээгээд дараагийг хэвлэдэг. Тэр яриаг файл эсвэл хоолойгоор оруулбал мөн тэр хоёртын файл хяналтгүй ажиллана. Арга нь нэг дахин чиглүүлэлт ба эрэмбэлсэн хариултын жагсаалт бөгөөд скрипт найдвартай эсэхийг дахин чиглүүлэлт биш, харин тэр жагсаалт шийддэг.

Практикт үүнийг хоёр зүйл эвддэг. Гарц нэмэлт зүйл асуухад сануулгын дараалал шилждэг, хадгалсан нууц үг нэг бичгийн алдааг бүртгэлийн түгжээ болгодог. Дарааллыг гарцын аливаа өөрчлөлтийн дараа харьцуулж болох хувилбарласан өгөгдөл гэж үзээрэй. Дахин оролдохын оронд чанга дуугаар бүтэлгүйт, учир нь давталт бол буруу бичсэн нууц үг түгжигдсэн бүртгэл болох зам юм.

Нэг дараалал, клиент асуух дарааллаар

Клиентийг нэг удаа интерактив байдлаар эхлүүлж, сануулга бүрийг гарч буй дарааллаар нь бичээрэй. Тэр бичлэг хариултын файл болно. Файлыг хоёртын файл руу дахин чиглүүлэхэд эхний мөр нь холболтын команд өөрөө байх ёстой, тиймээс дараалал хэрэглэгчийн нэрээр биш хост нэрээр эхэлдэг.

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

Хувцасгүй 0 гарц жагсаалт санал болгоход эхний холболтын профайлыг сонгоно; гарцын чинь хэвлэдэг индексийг ашиглаарай. y нэвтрэх баннерыг хүлээж авдаг тул баннер байхгүй бол тэр мөрийг устгаж, гарц чинь нэмэлт асуулт асуух газарт нэг мөр оруулаарай. Төгсгөлийн exit сүүлийн хариулт зарцуулагдсаны дараа клиентэд цэвэрхэн дуусах боломж олгодог.

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

Интерактив бус горим энд сонголт биш. -s байхгүй бол клиент терминалыг эзэлж, дахин чиглүүлсэн оролтыг үл тоомсорлож болно; түүнтэй хариултууд урсгалаас уншигддаг ба процесс буцдаг. Хоёртын файлд өндөр эрх шаардлагатай газар дуудлагыг sudo -n дотор боож, скрипт нууц үгийн сануулга дээр гацахын оронд шууд бүтэлгүйтэг.

Хариултын файл хаана алдагдах вэ

Нууц үг агуулсан файл бол нэвтрэх мэдээлэл тул түүнд тийм эрх өг: горим 600, ажлыг гүйцэтгэж буй бүртгэлийн өмчлөлд, хэзээ ч хуваалцсан эсвэл синхрончлогдсон хавтас дотор биш. Дараа засахын оронд горимыг урьдчилан хэрэглэж үүсгэ, учир нь файл бичих ба chmod хооронд бүгдэд уншигдах төдий байдаг.

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

Нөгөө хагас нь argv. Аргумент болгон дамжуулсан нууц үг процессыг жагсаасан бүх локал хэрэглэгчид харагдах бөгөөд shell-ийн түүхэнд ч ордог. Үүний оронд файлын дескриптор эсвэл орчны хувьсагчаас уншиж, ачааг хашилтад хий, ингэснээр shell дотор юу ч өргөжүүлж чадахгүй.

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

Хашилтад анхаар. Давхар хашилтын дотор ! агуулсан нууц үгийг клиент харахаас өмнө интерактив shell өргөжүүлж болох бөгөөд алдаа нь протоколын асуудал мэт харагдах ерөнхий event-not-found алдаа болж ирдэг.

Туннелийг нотол, дараа нь хаа

Холбогдсон төлөв нь клиент сесс байна гэж итгэж байгааг л нотолно. Зөвхөн корпорацийн сүлжээний дотроос хариулдаг хост сонгож, өөр юу ч хийхээс өмнө нэг удаа туршаарай. Тэндхийн бүтэлгүйтэл нь чиглүүлэлт эсвэл бодлогын гэмтэл бөгөөд нэвтрэлтийг дахин ажиллуулбал өөрчлөгдөхгүй.

/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

Салгахаас өмнө болон дараа төлөвийн гаралтыг шалга. Хуучирсан сесс үлдсэн клиент дараагийн холболтоос татгалзаж болох бөгөөд скрипт амжилт гэж мэдээлсээр байдаг, энэ бүтэлгүйтлийн хэлбэр нь зөвхөн гаралтын кодыг харвал үл үзэгдэнэ. Хоёр дахь уншилтад ганцааранг нь итгэхийн оронд хоёрыг харьцуул. Shell профайл дахь өөр нэрнүүд өдөр тутмын хэрэглээнд хангалттай, харин төлөвлөсөн бүхэн бусад хяналтгүй ажлын нэгэн адил нэвтрэх мэдээлэл, хувь хүний хяналтад хамрагдах ёстой.

Тогтмол жагсаалт аюулгүй байхаа болих үед

Хариултын файл өнөөдрийн сануулгын дарааллыг кодчилдог. Өөрчлөгдсөн баннер, албадан нууц үг солих, хоёр дахь хүчин зүйлийн сорилт нь бүртгэлийг түгжиж болох давталт болгодог тул скрипт дахин эхлүүлэхийн оронд эхний гэнэтийн хариулт дээр гарах ёстой.

Клиентийн хэвлэснийг барьж ав, тэгээс ялгаатай статус буцаа, шийдвэрийг дуудагчид үлдээ. Гарц хоёр дахь хүчин зүйл шаарддаг газар, шударга хариулт нь тэр профайлд хяналтгүй нэвтрэлт боломжгүй гэсэн үг, дараалалд дахин нэг мөр хэрэгтэй гэсэн үг биш.

Эргэлт мөн адил хяналтад хамаарна. Нэвтрэх мэдээлэл хадгалагддаг бол хэн уншиж болох, хэзээ өөрчлөгдөх, хост дахин бүтээгдэхэд юу устгахыг шийд. Хэн ч нууц үгэнд хүрээгүйгээс нэг жил ажилладаг скрипт бол загвар биш, эргэлтийн бодлогыг хүлээж буй осол юм.

AnyConnect биш профайлууд

Cisco-ийн хоёр хуучин нэвтрэх мэдээллийн хэв маягыг үүнтэй андуурдаг. vpnc профайл IPSec ID асуудаг бөгөөд энэ нь үнэндээ бүлгийн нэр, дараа нь бүлгийн нууц, дараа нь өөрийн нэвтрэх мэдээлэл, гурвуулаа гарцыг удирддаг хүнээс ирдэг. Хуучин Cisco IPsec нь AnyConnect-оос өөр протокол тул vpnc зөвхөн AnyConnect үйлчилгээнд хүрч чадахгүй; openconnect --protocol=anyconnect бол тэр ажлын нээлттэй клиент.

.pcf файл хуучин клиентийн профайлыг дүрсэлдэг. Доторх хост, бүлгийн нэр, бүлгийн нууц үгийг Cisco IPsec ярьдаг клиентэд гараар дахин оруулж болно, гэхдээ файл нь бүх нийтийн импорт биш бөгөөд стандарт бус порт эсвэл туннелийн горим ихэвчлэн шилжүүлэхэд алга болдог.

Гарцын үнэхээр санал болгодгоос эхэлж, тэр протоколыг ярьдаг клиентийг сонго. Профайлыг өөр сайтаас хуулах нь хүмүүс хэзээ ч асуудал байгаагүй нэвтрэх мэдээллийг дибаг хийж эхлэх зам юм.

Холбоотой нийтлэлүүд