OpenVPN-ийн pull-filter таны зорьсон маршрутаас илүү ихтэй таарна
pull-filter таны текстийг угтвар болгон түлхэгдсэн сонголтуудтай харьцуулдаг тул route нь route-gateway болон route-ipv6-г ч барина. Эхлээд үйл үгсийг, дараа нь маршрутуудыг шалгана уу.
Та локал өгөгдмөл маршрутаа хадгалахын тулд нэг мөр нэмж, дараа нь туннель дотоод DNS серверт хүрэхээ болино. Тэр мөр pull-filter ignore "route" байсан бөгөөд энэ нь "энэ маршрутыг үл хайхрах" гэсэн үг биш. Энэ нь "текст нь тэр таван үсгээр эхэлсэн бүх түлхэгдсэн сонголтыг хаях" гэсэн үг бөгөөд ердийн сервер дээр үүнд маршрутуудын хамт route-gateway, route-metric, route-ipv6 ч багтана. Доорх шалгах хуудас нь өөр хүний ашиглах профайлд хүрэхийн өмнө би гүйцэтгэдэг зүйл юм.
Шүүлтүүр зөвхөн түлхэгдсэн сонголтуудад үйлчилнэ
pull-filter нь туннель тогтоосны дараа серверийн илгээдэг сонголтын мөрүүдэд л нөлөөлөх бөгөөд өөр юунд ч нөлөөлөхгүй. Таны локал файлд бичсэн сонголтууд үүнээс өөрчлөгдөхгүй, програмын урсгал ч мөн адил. Хэрэв та ямар нэг процесс туннель ашиглахаас сэргийлнэ гэж найдаж байсан бол энэ нь огт буруу хэрэгсэл бөгөөд шүүлтүүрийн ямар ч хослол үүнийг хийхгүй.
Энэ хүрээ нь ашигтай, учир нь та серверийн тохиргоог хөндөхгүй орхиж, түүний нэг хэсгийг локал байдлаар татгалзаж болно. Энэ нь тасалбарт бичих үнэ цэнэтэй хязгаарлалт юм: шүүлтүүр нь энэ клиент юу хүлээн авахыг өөрчилдөг, сервер юу санал болгохыг биш. Энэ нь ижил профайлын бусад хэрэглэгчдэд ямар ч нөлөөгүй. Энэ сонголтыг хэрэгжүүлдэггүй өөр клиент рүү шилжихэд ч хадгалагдахгүй бөгөөд үүнийг ажлын урсгал байгуулахаас өмнө мэдэх нь зүйтэй.
Загварыг бичихийн өмнө сервер үнэхээр юу илгээдэг болохыг баталгаажуулаарай. Өндөр нарийвчлалтай үед клиент хүлээн авсан түлхэгдсэн сонголтын мөрийг хэвлэдэг бөгөөд энэ нь таны харьцуулж буй яг текстийн цорын ганц шударга эх сурвалж юм:
sudo openvpn --config /etc/openvpn/corp.ovpn --verb 4
sudo grep -n 'pull-filter' /etc/openvpn/corp.ovpn
Түлхэгдсэн мөрийг таслалаар тусгаарлагдсан сонголтуудын жагсаалт гэж уншиж, сонголтын нэрс болон тэдгээрийн аргументууд зайгаар тусгаарлагддаг гэдгийг анхаараарай. Таны шүүлтүүрийн текст тэр урсгалтай харьцуулагддаг тул дараагийн алхамд зай маш чухал.
Тааруулалт бол угтвар, тиймээс зай бүхнийг шийднэ
Харьцуулалт нь мөрийн угтвар бөгөөд шинжилсэн сонголтын нэр биш. Тиймээс "route" нь route-gateway 10.8.0.1, route-ipv6 2001:db8::/32, route-metric 100-тэй таарна. Төгсгөлд нэг зай нэмэх нь түүнийг таны магадгүй зорьсон гэр бүлд хүртэл нарийсгаж, бүрэн угтвар нь тодорхой очих газар хүртэл улам нарийсгана.
| Filter text | What it actually matches | Typical outcome |
|---|---|---|
"route" | Every option beginning with those letters | Routes, gateway, metric and IPv6 routes all dropped |
"route " | Route entries only, not the hyphenated siblings | The routes go, the rest survives |
"route 10.60." | A single destination range | The narrowest rule, and the easiest to audit |
"dhcp-option DNS" | Pushed DNS settings | Resolver stays local, internal names stop resolving |
Сүүлийн мөр нь хуваагдсан туннелийн ажлын үеэр хүмүүсийг баридаг мөр юм. Өөрийн resolver-оо хадгалах нь хууль ёсны сонголт бөгөөд энэ нь дотоод нэр бүр одоо хувийн бүсийг харж чадахгүй resolver-ээс хамааралтай гэсэн үг. Энэ бол үйлдвэрлэлд илрүүлэх гаж нөлөө биш, санаатайгаар хүлээн авах үр дагавар юм.
Угтвараар тааруулах нь дүрэм хожим чимээгүй өргөжиж болно гэсэн үг. Сервер таны текстээр эхэлсэн шинэ сонголт нэмэх үед хэн ч таны профайлыг засварлахгүйгээр шүүлтүүр түүнд хэрэгжиж эхэлнэ. Энэ бол зохион бүтээх ёстой алдааны горим бөгөөд бууруулах арга нь сонголтын аль болох их хэсгийг тааруулах, аль болох багыг нь биш.
Гурван үйл үг, гурван өөр үр дүн
accept, ignore, reject нь нэг санааны гурван бичиглэл биш. Тэд таарлын үед клиент юу хийдэг, хэн нэгэн үүнийг мэдэх эсэхээрээ ялгаатай.
ignore таарсан сонголтыг чимээгүй хаядаг бөгөөд санаатайгаар сольсон тохиргоонд үүнийг хүснэ. reject түүнийг хаяж, клиентийг гомдоллохыг албаддаг бөгөөд түүний байхгүй байдал дараа нь илрэхийн оронд бүртгэлд харагдах ёстой үед үүнийг хүснэ. accept нь эерэг хэлбэр бөгөөд тусдаа сонголтуудыг хасахын оронд зөвшөөрлийн жагсаалт байгуулахад ашиглагдана.
Ямар ч үйл үг хэрэглэсэн шүүлтүүрүүд гарч ирэх дарааллаар хэрэгжинэ, тиймээс давхцаж буй хоёр дүрэм дарааллаас хамааралтай, хянахад маш хэцүү үр дүн гаргана. Зорилго бүрт нэг дүрэм барьж, тус бүрд нь хамгийн тодорхой текстийг тавь. Хэрэв зөвшөөрлийн жагсаалт хэрэгтэй бол ижил зүйлийг нэгтгэдэг ignore дүрмийн овоолгоос илүү цөөн accept дүрмийг сонго. Тэгвэл хянагчид файлыг дээрээс доош уншиж үр дүнг урьдчилан таамаглаж чадна, энэ нь масштаблах цорын ганц шалгалт юм.
Хэрэгжсэн маршрут болон resolver-ийг шалга, профайлыг биш
Файлд зөв харагдах шүүлтүүр ч таныг ашигтай юу ч чиглүүлдэггүй туннельтай үлдээж болно. Түлхэгдсэн сонголтууд аль хэдийн хэрэгжсэн эсвэл хаягдсан ажиллаж буй систем дээр нөлөөг шалгана уу:
ip route show default
ip route show | grep -c 'proto static'
resolvectl status | grep -A4 'Link.*tun0'
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://intranet.example.internal/
Эхний хоёр мөр танд түлхэгдсэн өгөгдмөл маршрут ирсэн эсэх болон хэдэн статик бичлэг үлдсэнийг хэлнэ. Resolver-ийн асуулга нь туннелийн интерфейс үнэхээр аль серверийг ашиглаж байгааг харуулдаг бөгөөд ихэвчлэн тэнд DNS-ийн гэнэтийн зүйл гарч ирдэг. Сүүлийн мөр нь хэрэглэгчид чухал цорын ганц асуултад хариулна.
Тэнд байхдаа хоёр чиглэлийг шалгаарай. Таны локал интернэтийг ажиллуулж байхын зэрэгцээ дотоод нэрийн шийдлийг чимээгүй эвддэг дүрэм гадаргуугийн шалгалтыг давж, эхний бодит ажилд бүтэлгүйтдэг тул нэг дотоод нөөц, нэг нийтийн сайтыг нэг шалгалтад оруулаарай.
Үл хамаарах зүйл болон түүний эздийг тэмдэглэ
Шүүлтүүр нь операторын загварын үл хамаарах зүйл тул шалтгаан, хянах цэгийн хамт бичиж үлдээгээрэй. "Локал өгөгдмөлийг хадгалахын тулд түлхэгдсэн маршрутуудыг үл хайхардаг" нь хянах боломжтой; профайл дахь нүцгэн мөр нь тийм биш бөгөөд дараагийн хүн түүнийг устгах эсвэл таамаглаж өргөтгөнө.
Хувилбар энд бас чухал. Тааруулах зан төлөв болон хүлээн зөвшөөрөгдсөн яг синтаксийг OpenVPN 2.4, 2.5, 2.6 дээр боловсронгуй болгосон тул та түгээж буй бүтээцийн гарын авлагаар загварыг баталгаажуулж, хуучин хувилбарын тухай форумын постоор биш. OpenVPN 2.6 гарын авлага энэ сонголт болон түүний тааруулах дүрмийг баримтжуулдаг.
Эцэст нь, серверийг ажиллуулдаг хүнтэй үл хамаарах зүйлийг тохиролцоорой. Санаатай серверийн бодлоготой зөрчилдөх клиентийн талын шүүлтүүр нь дараагийн аудитыг хүлээж буй дэмжлэгийн тохиолдол бөгөөд профайлыг илгээхээс өмнө шийдвэрлэх нь хэн нэгэн маршрут дутууг анзаарсны дараа шийдвэрлэхээс хамаагүй хямд.