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 |
Акыркы сап — бөлүнгөн туннелдин ишинде адамдарды кармаган сап. Өз чечкичиңизди сактоо мыйзамдуу тандоо, жана бул ар бир ички ат эми жеке аймакты көрө албаган чечкичке көз каранды экенин билдирет. Бул өндүрүштө табылуучу терс таасир эмес, атайын кабыл алынуучу кесепет.
Префикс боюнча дал келүү ошондой эле эреженин кийин тынч кеңейиши мүмкүн экенин билдирет. Сервер сиздин текстиңиз менен башталган жаңы опция кошкондо, фильтриңиз эч ким профилиңизди оңдобостон эле ага колдонула баштайт. Бул — каршы долбоорлоо керек болгон ийгиликсиздик режими, ал эми жумшартуу опциянын мүмкүн болушунча көп бөлүгүн дал келтирүү, мүмкүн болушунча азын эмес.
Үч этиш, үч башка натыйжа
accept, ignore жана reject бир идеянын үч жазылышы эмес. Алар кардардын дал келүү менен эмне кылаарына жана бирөө муну билеби же жокпу — ошого жараша айырмаланат.
ignore дал келген опцияны тынч таштайт, бул атайын алмаштырган параметр үчүн керек. reject аны таштайт жана кардарды нааразы кылат, бул анын жоктугу кийин табылганча журналда көрүнүшү керек болгондо керек. accept оң форма, жеке опцияларды алып салуунун ордуна уруксат тизмесин курууда колдонулат.
Кайсы этишти колдонсоңуз да, фильтрлер өз пайда болу тартибинде колдонулат, ошондуктан эки кабатташкан эреже тартипке көз каранды натыйжа берет, аны карап чыгуу абдан кыйын. Ар бир ниетке бир эреже кармап, ар бирине эң так текстти коюңуз. Уруксат тизмеси керек болсо, ошол эле натыйжаны берген ignore эрежелер үймөгүнөн көрө бир аз accept эрежени тандаңыз. Анан карап чыгуучулар файлды жогорудан төмөн окуп, натыйжаны божомолдой алышат, жана бул — масштабдалуучу жалгыз тест.
Колдонулган маршрутту жана чечкичти текшериңиз, профилди эмес
Файлда туура көрүнгөн фильтр да сизди пайдалуу эч нерсени маршруттабаган туннель менен калтырышы мүмкүн. Жиберилген опциялар мурунтан эле колдонулган же ташталган иштеп жаткан системада таасирин текшериңиз:
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/
Алгачкы эки сап сизге жиберилген демейки маршрут келдиби жана канча статикалык жазуу аман калганын айтат. Чечкичке суроо туннель интерфейси иш жүзүндө кайсы серверди колдонорун көрсөтөт, адатта DNS күтүүсүздүгү ошол жерде чыгат. Акыркы сап колдонуучу үчүн маанилүү болгон жалгыз суроого жооп берет.
Ошол жерде жүргөндө эки багытты тең текшериңиз. Жергиликтүү интернетти иштеп турган бойдон калтырып, бирок ички ат чечүүнү тынч бузган эреже үстүртөн текшерүүдөн өтүп, биринчи чыныгы тапшырмада ийгиликсиз болот, ошондуктан ошол эле тестке бир ички ресурс менен бир ачык сайтты кошуңуз.
Четтөөнү жана анын ээсин жазып коюңуз
Фильтр оператордун долбоорунан четтөө, ошондуктан аны себеби жана карап чыгуу пункту менен жазып коюңуз. "Жергиликтүү демейкини сактоо үчүн жиберилген маршруттарды этибарга албайт" карап чыгууга жарактуу; профилдеги жылаңач сап — жараксыз, жана кийинки адам аны өчүрөт же божомол менен кеңейтет.
Версия бул жерде да маанилүү. Дал келүү жүрүм-туруму жана так кабыл алынган синтаксис OpenVPN 2.4, 2.5 жана 2.6 бою жакшыртылган, ошондуктан үлгүнү өзүңүз жеткирген курулуштун колдонмосу менен ырастаңыз, эски версия тууралуу форум жазуусу менен эмес. OpenVPN 2.6 колдонмосу бул опцияны жана анын дал келүү эрежесин документтештирет.
Акырында, четтөөнү серверди башкарган адам менен макулдашыңыз. Атайын сервер саясатына каршы келген кардар тараптагы фильтр — кийинки аудитти күтүп турган колдоо окуясы, жана аны профиль жиберилгенге чейин чечүү, бирөө маршруттардын жоктугун байкагандан кийин чечүүгө караганда алда канча арзан.