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

Хоёр гэмтэл, нэг төөрөгдүүлэх лог мөр

Тэд хоёр ажиглалтаар ялгаатай бөгөөд аль нэг нь ч хоёр дахь удаа унших шаардлагагүй. Эхнийх нь бүтэлгүйтэл хэзээ эхэлсэн бэ: хугацаа дууссан күүки хэдэн цаг эсвэл хоногийн ажлын дараа ирдэг бөгөөд солигдсон сертификат гарцын өөрчлөлтийн дараа шууд ирдэг.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-pin deliberately, then restart

Нэг минутын шалгалт бол доорх authenticate ажиллагаа юм. Түүний FINGERPRINT-ийг файл дахь OpenConnect.ServerCert-тай харьцуулна уу. Ижил хурууны хээ, өөр COOKIE бол зөвхөн күүкийг солино. Өөр хурууны хээ нь серверийн сертификат үнэхээр өөрчлөгдсөнийг илтгэнэ, тиймээс зориуд дахин бэхэлж, хэн зөвшөөрснийг тэмдэглэнэ үү.

Материалыг гараар бичихийн оронд үүсгээрэй

ConnMan-д NetworkManager-ээс ялгаатай нь OpenConnect профайл оруулах алхам байхгүй. Энэ нь утгуудыг урьдчилан бэлтгэх ёстой хангамжийн файлыг уншдаг бөгөөд тэдгээрийг бэлтгэх дэмжигдсэн арга нь OpenConnect-ийн authenticate горим юм.

sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
  --authenticate --user myuser vpn.example.com

Гаралт дөрвөн утгыг хэвлэнэ: POST, COOKIE, HOST ба FINGERPRINT. sha256: угтвартай хурууны хээ нь серверийн бэхэлгээ. Күүки бол насан туршийг гарц тодорхойлдог сессийн артефакт юм. Тэдгээрийг өөр төрлийн нууц гэж үзээрэй: тэд өөр хуваарийн дагуу дуусдаг бөгөөд зөвхөн нэг нь өөрчлөгдөнө гэж хүлээгддэг.

Файл хоёуланг нь агуулдаг бөгөөд тэд өөрөөр хөгшрөлтөнд ордог

Хангамжийн файл /var/lib/connman-vpn/-ийн доор байрладаг бөгөөд холболт бүрд VPN демон уншдаг, системийн тавиурын апплет биш. Холболтын нэрийг глобал хэсэгт, протоколын дэлгэрэнгүйг нийлүүлэгчийн хэсэгт хадгална уу.

[global]
Name = Company VPN

[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...

Портал үнэхээр үйлчилдэг хост нэрийг ашиглана уу. Энгийн IP хаяг сертификатын шалгалтыг даваад ч бүтэлгүйтэж болно, учир нь төхөөрөмж виртуал хост руу чиглүүлж, нэрийг хүлээдэг.

systemctl status connman-vpn --no-pager   # is the daemon even installed and running
sudo systemctl restart connman-vpn       # after the file edit
journalctl -u connman-vpn --since '1 hour ago'  # after the connection attempt

Лог үнэндээ юу харуулдаг вэ

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

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

Хугацаа дууссан талбарыг шинэчилнэ үү

authenticate командыг давтаж, OpenConnect.Cookie-ийг сольж, демоныг дахин эхлүүлнэ үү. Шинэ гаралт өөр утга харуулахгүй л бол хурууны хээг хөндөхгүй; тэр тохиолдолд серверийн сертификат үнэхээр солигдсон бөгөөд дахин бэхлэх нь хэн нэгэн бүртгэх ёстой шийдвэр, алдааны мессежээс буулгах зүйл биш.

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

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

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