Нэг Linux гарцад хоёр OpenVPN клиент: бодлогыг хуваа
Хоёр туннель хоёулаа босч болох ч клиент бүр нэгийг нь ашигладаг. Эх сурвалжаар шийдэж, бүлэг бүрт өөрийн хүснэгтийг өгөөд, дараа нь сонгосон төхөөрөмж дээр зөвшөөрч, хөрвүүлээрэй.
Хоёр OpenVPN демон хоёулаа амжилттай туннелийн талаар мэдээлж чадна, гэхдээ гарц клиент бүрийг ижил нэгээр нь илгээдэг. Клиент аль туннель ашиглахыг гар барилтад юу ч шийддэггүй; үүнийг цөм шийддэг, пакет бүрээр, бодлогын дүрмүүдээр, дараа нь дүрэм бүрийн нэрлэсэн хүснэгтээр дамжина. Ингэж харвал тохиргоо нь OpenVPN-ийн сонголтуудын тухай байхаа болиод хоёр эзэнтэй чиглүүлэлтийн матриц болно.
Цөм шийднэ, демон биш
Дамжуулах пакет LAN интерфейс дээр ирж, чиглүүлэлтийн код дүрмүүдийн жагсаалтыг тэргүүлэх эрэмбээр үнэлнэ. Сонгогч нь эхлээд таарч буй дүрэм хүснэгтийг нэрлэж, тухайн хүснэгтийн зам гарцын төхөөрөмжийг сонгоно. Хүснэгтэд таарах зам байхгүй бол хайлт дараагийн дүрэм рүү үргэлжилнэ, энэ нарийн ширийн зүйл нь хагас дууссан тохиргоог чанга биш, чимээгүйхэн бүтэлгүйтүүлдэг.
Туннелийн процесс энэ алхалтад хэлэх юмгүй. Тэр интерфейс үүсгэж, замуудыг суулгаж чадна, гэхдээ тодорхой клиентийн пакет тэр интерфейст орж байгаа эсэх нь түүнийг аль хүснэгт рүү илгээснээс бүрэн хамаарна. Тиймээс ижил импортын замтай хоёр туннель өрсөлдөж, сүүлд бичсэн нь бүгдэд ялна. Тиймээс тохиргоо файлуудад тэнцвэртэй харагдаж байсан ч бүх клиентийг нэг демоноор илгээж болно.
Хувилбар бүрт өөрийн нөөцийн багцыг өг
Нэрээс эхэл, учир нь дахин ашигласан нэр нь хоёр хувилбар санамсаргүйгээр төлөв хуваалцаж эхлэх зам юм. Тусдаа туннелийн төхөөрөмж, тусдаа тохиргооны файл, тусдаа нэвтрэх мэдээлэл, тусдаа үйлчилгээний нэгж оноо. Хувилбар бүрийн гадаад төгсгөлийн цэг болон туннелийн хаягийг бодлогын матрицтай ижил хүснэгтэд бич, ингэснээр дараагийн өөрчлөлт харах нэг газартай болно.
dev tun-office
route-nopull
pull-filter ignore "redirect-gateway"
dev tun-lab
route-nopull
route-nopull серверийн түлхэж буй замуудыг орон нутгийн хүснэгтээс гадуур барина, бодлогын хүснэгтүүд тодорхой байх ёстой үед яг үүнийг хүсдэг. Тухайн сервер redirect-gateway сонголтыг мөн түлхэж байгаа эсэх, таны клиентийн хувилбар шүүлтүүрийн хэлбэрийг дэмжиж байгаа эсэхийг таамаглахын оронд гарын авлагаас шалгах нь зүйтэй.
Матрицыг бич: эх сурвалж, хүснэгт, төхөөрөмж
Клиент бүлэг бүрт эх сурвалжийн хаягаар хүснэгт сонгодог дүрэм нэмээд, дараа нь зорьсон замыг тэр хүснэгтэд хий:
ip rule add from 10.8.1.0/24 lookup 100 priority 1000
ip rule add from 10.9.1.0/24 lookup 200 priority 1000
ip route add default dev tun-office table 100
ip route add default dev tun-lab table 200
Хүснэгтэд бүлэгт байх ёстой очих газрын замууд, мөн гарцыг ашиглахад тохиромжтой байлгах аливаа орон нутгийн эсвэл удирдлагын үл хамаарах зүйлс хэрэгтэй. Зөвхөн өгөгдмөл замтай хүснэгт нь тухайн бүлэгт бүрэн туннелийн бодлого бөгөөд энэ нь яг зөв байж болох ч энэ нь орхигдол биш, шийдвэр байх ёстой.
Туннелийн өөрийн тээвэр клиент бүлэгт байхгүй
Демон бүрийн шифрлэгдсэн пакетууд гарц дээр өөрөө үүсч, гадаад түнш рүү чиглэсэн байдаг. Зөвхөн клиентийн эх сурвалжийн угтвартай таарах дүрэм тэдгээр пакетыг тайван орхидог, тиймээс эх сурвалжаар хязгаарласан дүрмүүд бүхэнтэй таардаг дүрмээс илүү аюулгүй. Сонгогчгүй дүрэм туннелийн өөрийн тээврийг барьж аваад, түүнийг дахин туннелээр илгээж чадна, тэгэхэд холболт нийлүүлэгчийн асуудал мэт харагдах байдлаар бүтэлгүйтнэ.
Орон нутгийн удирдлагын сесс болон доод давхаргын замыг бодлогын хүснэгтээс гадуур тодорхой байлга. Тэдгээр үл хамаарах зүйлийг матрицын хажууд бич; тэдгээр нь дизайны хэсэг, ослын үед дахин нээх ёстой арга биш.
Замыг сонгох нь зөвшөөрөхгүй
Дамжуулах зөвшөөрөл нь замд дараа авдаг хоёр дахь шийдвэр. Хоёр дахь туннелээр гарч буй пакетыг хүлээн авдаг галт хананы дүрэм нь чиглүүлэлтийн кодыг түүнийг сонгоход хүргэхгүй, зөв хүснэгт дамжуулах зөвшөөрөл өгөхгүй. Хоёулаа байх ёстой, зөвхөн нэгийг нь баталсан шалгалт нөгөөгийн талаар таныг төөрөгдүүлнэ. Нэг бүлэг ажиллаж, нөгөө нь ажиллахгүй үед хүснэгтүүдийг дахин бичихийн оронд эдгээр хоёр алхмыг тус тусад нь шалга.
Эх сурвалжийн хөрвүүлэлт нь гурав дахь шийдвэр бөгөөд үүнийг эх сурвалжийн бүлэг болон түүнийг үнэхээр тээж буй туннелийн төхөөрөмжөөр хязгаарлах хэрэгтэй. postrouting гинжийг хоослохын оронд хоёр хувилбарт зориулсан тусдаа гинж нэм, учир нь хамааралгүй үйлчилгээнүүд тэнд бичлэгтэй байж болох бөгөөд хоослох нь тэдгээрийг чимээгүйхэн устгадаг.
Нэг туннель унахад юу болдог
Алдааны зан төлөвийг урьдчилан шийд. Туннелийн хүснэгт өөрийн замаа алдвал хайлт дараагийн дүрэм рүү унаж, бүлгийн урсгал ямар ч алдаагүйгээр нөгөө туннел эсвэл ердийн дээд холбоосоор үргэлжилнэ. Хэрэв энэ нь хүлээн зөвшөөрөхгүй бол доод тэргүүлэх дугаарт тэр эх сурвалжид хүрэхгүй үр дүн буцаадаг төгсгөлийн дүрэм нэм, ингэснээр алдагдал шингэхгүйгээр харагдана.
Эх сурвалжийн бүлэг бүрээс шинэ хүсэлт илгээж, дөрвөн баримтыг бич: сонгосон хүснэгт, гаралтын төхөөрөмж, хөрвүүлсэн эх сурвалж, хариу ижил замаар буцаж ирсэн эсэх. Дараа нь нэг туннелийг буулгаж давт. Интерфейсийн жагсаалтад хоёр TUN төхөөрөмж байгаа нь хоёр демон ажиллаж эхэлснийг батална; тодорхой клиент аль нэгийг ашигласныг тэд юу ч хэлэхгүй. Нэг туннельгүй хоёр дахь гүйлт нь таны нөөц дүрэм зорьсон зүйлээ хийж байгаа эсэхийг харуулдаг гүйлт юм.