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

Аль давхарга холболтоос татгалзаж байгааг нотол

VPN клиентээс бүү эхэл. Ижил хост руу энгийн HTTPS хүсэлтээр эхэлж, цагийн фазуудыг унш, учир нь бүтэлгүйтсэн фаз аль төхөөрөмж хариуцлагатайг хэлнэ:

curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect} code=%{http_code}\n' \
  --max-time 8 https://vpn.example.net/

Хариулт байхгүй, connect цаг байхгүй бол TCP хэзээ ч дуусаагүй гэсэн үг тул галт хана, проксийн шаардлага эсвэл буруу очих газар тоглож байна. connect цаг байгаа ч tls цаг байхгүй бол дунд ямар нэгэн зүйл холболтыг хүлээн аваад гар барилтыг зогсоосон, шалгагч прокси клиентийн талаас яг ийм харагдана.

Одоо бодитоор авч буй гэрчилгээг шалга. Сервертэй ярьж байгаа эсэх, эсвэл сессийд дахин гарын үсэг зурсан завсрын хайрцагтай ярьж байгааг мэдэх хамгийн хурдан арга:

openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/null

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

Проксийг мэддэг клиент эхний пакетыг өөрчилдөг, бодлогыг биш

Хэрэв сүлжээ баталгаажсан проксигоор CONNECT шаарддаг бол VPN клиентэд хэлэх ёстой, эс бөгөөс маршрутлаж чадахгүй хаяг руу сокет нээхийг оролдоно. Проксийг клиентээс тусдаа турш, бүтэлгүйтэл нэг тайлбартай байг:

https_proxy=http://proxy.example.edu:3128 curl -v -o /dev/null https://vpn.example.net/
sudo openvpn --config /etc/openvpn/corp.conf --proto tcp-client \
  --remote vpn.example.net 443 --verb 4

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

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

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

443 порт хүрэх боломжтой, зөвшөөрөгдөөгүй

443 дээр туннелийг TLS-д ороох нь хүрэх боломжийг шийднэ, өөр юу ч биш. Портыг шалгадаг шүүлтүүр түүнийг нэвтрүүлнэ; гар барилтын хурууны хээ авдаг шүүлтүүр нэвтрүүлэхгүй, шифрлэгдсэн клиентийн мэндчилгээ серверийн нэрийг хоёр тал дэмжсэн үед л нууна. Туршилтыг ажиллуулж, найдахын оронд ямар шүүлтүүрийн ард байгаагаа мэд.

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

UDP ихэвчлэн эхний хохирол, үүнийг таамаглахын оронд баталгаажуулах нь зүйтэй. Хэрэв WireGuard эсвэл анхдагч OpenVPN гар барилтыг хэзээ ч дуусгахгүй байхад TCP 443 ажиллаж байвал сүлжээ UDP-г хаяж байна, түлхүүр дахин үүсгэх нь үүнийг өөрчлөхгүй:

sudo wg show
dig +short vpn.example.net
dig +short vpn.example.net @1.1.1.1

Өчигдөр ажиллаж байсан хамтрагчийн хажууд хоосон гар барилтын цагийн тэмдэг бол UDP-ийн хариулт. Хоёр DNS асуулт өөр асуултад хариулна: хэрэв орон нутгийн шийдэгч болон нийтийн шийдэгч төгсгөлийн цэгийн хаягийн талаар санал нийлэхгүй бол таныг чиглүүлж байгаа бөгөөд тээврийн үндэслэл буруу.

Машинаас бодитоор юу гарсныг шалга

Клиентийн бүртгэл клиент юунд итгэж байгааг дүрсэлдэг. Бичлэг сүлжээ юу харсныг дүрсэлдэг бөгөөд энэ хоёрын ялгаа нь эдгээр тохиолдлын ихэнх нь шийдэгддэг газар:

sudo tcpdump -ni any -c 20 'tcp port 443 and host 203.0.113.10'
sudo ss -tunp | grep -E ':(443|1194|51820)\b'

SYN пакет харж, SYN-ACK байхгүй бол хаалт дээр талд, клиент гэмгүй. Серверийн биш хаяг руу дууссан гар барилт харвал прокси эсвэл баривчлагчтай ярьж байна. Юу ч харахгүй бол дүгнэлт хийхээс өмнө зөв интерфейс дээр бичсэн эсэхээ шалга.

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

Буцаах, мөн хадгалах үнэ цэнэтэй тэмдэглэл

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

unset https_proxy http_proxy
sudo systemctl stop openvpn-client@corp
sudo ip route show default

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

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

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