VPN туннель гэж юу вэ, хамгаалалт хаана зогсдог вэ
Туннель сонгосон пакетуудыг таны өмнө нь байсан холбоос дээгүүр хоёр дахь дугтуйд хийдаг. Нэг хүсэлтийг дагаж, сайт яг ямар хаягийг бүртгэдэг болохыг хар.
Клиент холбогдсон гэж хэлж, цоож хаалттай байхад сайт таны орон сууцны хаягийг бүртгэсээр байна. Юу ч бүтэлгүйтээгүй. Туннель таны Wi-Fi эсвэл гар утасны холболтыг орлохгүй; тэрээр сонгосон пакетуудыг хоёр дахь дугтуйд хийж, тэр дугтуйг таны өмнө нь байсан сүлжээгээр илгээдэг. Энэ заль мэхийг ойлгох нь голдуу нэг хүсэлтийг дагаж, дугтуй хаана нээгддэгийг анзаарах асуудал бөгөөд гэрийн хаяг алдагдахаас эхлээд том таталтын гацах хүртэл бараг бүх төөрөгдүүлсэн шинж тэмдэг энэ хилээс гардаг.
Хоёр дугтуй, нэг физик холбоос
Таны зөөврийн компьютер чиглүүлэгчтэй ердийн холболтоо хадгалж, чиглүүлэгч үйлчилгээ үзүүлэгчтэй ердийн холболтоо хадгалдаг. Туннель босох үед тэр замд юу ч өөрчлөгдөхгүй. Өөрчлөгдөх нь сонгосон пакетуудыг виртуал интерфейст шилжүүлж, VPN түнштэй хаягласан шинэ пакет дотор ороож, физик холбоосоор ердийн урсгал хэлбэрээр илгээдэг.
Хүлээн авагч тал нь дугтуйг нээж, анхны пакетыг зорьсон газар руу нь дамжуулдаг төхөөрөмж юм. Хоёр төгсгөлийн хооронд ажиглагч гадаад толгойг хардаг бөгөөд дотоод талаар юу ч хардаггүй, хэрэв протокол үүнийг шифрлэхгүй бол, ихэнх хэрэглэгчийн протоколууд үүнийг хийдэг бөгөөд ерөнхий техник үүнийг шаарддаггүй.
Тиймээс виртуал интерфейс нэгэн зэрэг бодит ба төөрөгдүүлэгч юм. Энэ нь хаяг ба хамгийн их дамжуулах нэгж бүхий цөмийн объект хэлбэрээр оршиж, үйлдлийн систем урсгалыг бусад интерфейс рүү адил түүн рүү чиглүүлдэг. Энэ нь кабель биш бөгөөд оршихуй нь зөвхөн бүрэлдэхүүн суулгасан гэдгийг нотолдог. Таны хөтөч үүнийг ашиглаж байгаа эсэхийг маршрутууд шийддэг, интерфейс асаалттай эсэх нь биш.
Нэг хүсэлтийн аяллыг ажигла
Зорьсон газраа сонгоод цөмөөс аль интерфейсийг ашиглахыг асуу. Энэ ганц команд туннель ямар нэг зүйл хийж байгаа эсэх тухай ихэнх маргааныг шийднэ:
ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0
Хэрэв маршрутын гаралт туннелийн интерфейсийг нэрлэвэл пакет ороогдоно. Хэрэв физик интерфейсийг нэрлэвэл ороогдохгүй бөгөөд клиентийг хэдэн ч удаа дахин эхлүүлсэн ч энэ өөрчлөгдөхгүй. Хоёр дахь команд нь хоёр интерфейсийг зэрэгцүүлэн харуулдаг бөгөөд хаяггүй эсвэл буруу гэр бүлийн хаягтай боссон туннелийг ингэж анзаардаг.
Дараа нь дугтуйн дотроос эхний үсрэлтийг харж, гаднах эхний үсрэлттэй харьцуул:
traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5
Туннелийн дотор эхний үсрэлт нь түншийн дотоод хаяг бөгөөд таны чиглүүлэгч биш. Туннелийн интерфейс дээрх бичлэг дотоод пакетуудыг харуулдаг, энэ нь програмын илгээж байна гэж үздэг урсгал юм. Үүнтэй зэрэгцэн физик интерфейс дээр бичих нь гадаад пакетуудыг харуулдаг бөгөөд хоёулаа хамт туннель үнэхээр юу хийдгийг хамгийн тод харуулна.
Гурван хаяг, сайт зөвхөн нэгийг л хардаг
Хүмүүс эдгээрийг байнга хольж, энэ будлиан хуурамч алдагдлын тайлан үүсгэдэг. Эдгээр нь өөр өөр толгой дахь өөр өөр талбарууд бөгөөд насжилт нь ч өөр.
| Address | Where it appears | Who can see it |
|---|---|---|
| Endpoint address | Outer header, the peer you connect to | Your access network and the path to it |
| Inner tunnel address | Inside the envelope, on the virtual interface | The peer, and anything the peer routes to |
| Exit address | Source of the packet that reaches the website | The website and its upstream |
Виртуал адаптерийн хажуугийн тоо нь хоёр дахь мөр юм. Энэ нь сайтын бүртгэдэг хаяг биш бөгөөд үүнийг таны нийтийн IP гэж дурдах нь зүгээр л буруу. Сайтын хардаг хаягийг гарах гарц өгдөг бөгөөд хувийн сүлжээний туннельд нийтийн гарц огт байхгүй байж болно, учир нь зорьсон газар интернетэд биш, байгууллагын дотор байдаг.
Сайтуудын хоорондын туннель нь өөр төгсгөлийн цэгүүдтэй ижил механизм юм. Хоёр чиглүүлэгч сүлжээнүүдийн хооронд урсгалыг ороодог бөгөөд ямар ч тусдаа төхөөрөмжид клиент суулгаагүй байна. Дугтуй зарчмын хувьд ижил, захиргааны хил биш.
Дугтуй хаана нээгдэж, үүнээс юу амьд үлддэг
Туннель өөрийн түнш дээр дуусдаг. Хэрэв програмын өөрийн шифрлэлт цааш үргэлжилбэл тэр энэ хилээс амьд үлддэг бөгөөд энэ нь HTTPS-ийн ердийн тохиолдол юм: хөтчийн сесс сайт дээр дуусдаг тул гарах гарц уншиж чадахгүй шифрлэсэн текстийг дамжуулдаг.
Бусад нь анхдагчаар амьд үлддэггүй. Шифрлээгүй хүсэлт нь гарах гарц дээр кафены Wi-Fi дээр уншигдаж байсантай яг адил уншигддаг бөгөөд туннель програмд хэзээ ч байгаагүй хамгаалалтыг нэмдэггүй. Мөн адил гарах гарцын галт ханын дүрэм, дамжуулах бодлого нь дараа юу болохыг шийддэг; амжилттай гар барилт нь түнштэй холболтын тухай баримт, аяллын үлдсэн хэсгийн тухай биш.
Илүү зардал нь өөр нэг харагдах үр дагавар юм. Пакет бүр нэмэлт толгой авч явдаг бөгөөд гадаад тээвэр өөрийнхийг нэмж болох тул пакет тутамд ашигтай ачаалал багасдаг. Хамгийн их дамжуулах нэгж нь тогтмол замд яг ийм учраас туннель ping дамжуулж, том байршуулалтыг зогсоож чаддаг.
Програм үнэхээр явсан замыг шалга
Сүүлийн алхам нь ерөнхий машиныг биш, тодорхой програмыг баталгаажуулах юм. Зорьсон газраа шийдэж, тэр хаягийн маршрутыг хар, дараа нь холболт нээлттэй байхад ажигла:
getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'
Хэрэв маршрут туннелийг нэрлэж байтал сокетуудын жагсаалт физик интерфейсийн эх хаягтай холболт харуулбал, програм ямар нэг тодорхой зүйлд холбогдсон, эсвэл хоёр дахь туннель анхдагч маршрутын төлөө өрсөлдөж байна. Энэ бол маршрутжуулалтын асуудал бөгөөд клиентийн төлөв дэлгэцээс биш, энэ гурван гаралтаас хариулах боломжтой.
RFC 4301 аюулгүй байдлын архитектур нь IPsec-ийн хувьд энэ ороолтын IP давхаргын хувилбарыг тайлбарладаг бөгөөд ижил давхаргын логик WireGuard болон OpenVPN-д мөн хамаарна. Дотоод пакет ба гадаад пакетыг тусдаа объект болгон зааж чадсаны дараа туннелийн ихэнх зан төлөв нууцлаг байхаа болиод, таны уншиж болох маршрутын хүснэгт болдог.