OpenVPN ичиндеги маршрут кайда тиешелүү: клиенткеби же сервергеби?
Сервер конфигурациясындагы жалаң маршрут серверди өзгөртөт, клиентти эмес. Клиент файлын, глобалдык push же бир клиентке push тандап, эмне келгенин текшериңиз.
Сиз сервер конфигурациясына route 10.60.0.0 255.255.255.0 кошосуз, кайра иштетесиз, ноутбукту кайра туташтырасыз, бирок ички тармак ошол ноутбуктан дагы эле жеткиликсиз. Сап кабыл алынды, кызмат таза башталды жана журналда эч нерсе туура эмес көрүнбөйт. Болгону — маршрут сиз түзөткөн машинага орнотулду: шлюз эми ошол префикске жете алат деп ойлойт, ал эми клиентке эч нерсе айтылган жок. Жайгашуу — бүт маселе, жана ошол эле сап жашай алган төрт жай бар.
Төрт жай жана ар бирин ким алат
Маршрутту клиенттин өз конфигурациясы менен кошууга, глобалдык push аркылуу ар бир клиентке сунуштоого, клиентке тиешелүү файл аркылуу бир клиентке сунуштоого же сервердин өз маршруттоо контекстине жазууга болот.
Бул төрт учур дээрлик бирдей синтаксис колдонот жана таптакыр башка натыйжаларды берет. Алгачкы үчөө клиенттин туннелге эмне жөнөтөрүнө таасир этет; төртүнчүсү сервердин тармакка кантип жетерине таасир этет, бул сервердин өзүнө жол керек болгондо пайдалуу, ал эми бөлүштүрүү менен чаташтырылганда зыяндуу.
Сапты жазганга чейин төртөөнүн кайсынысын каалаарыңызды чечиңиз, анан алуучуну ырастаңыз.
| Placement | Effect | Receiver |
|---|---|---|
| Client profile route | Installed by the client at connect | That client only |
Global push "route ..." | Sent to every client that accepts pushed options | All pulling clients |
| Client-specific push | Sent to the matching client context | One identity |
| Server config route, no push | Added to the server's own table | The gateway itself |
Эмне үчүн жалаң сервер маршруту адамдарды таң калтырат
Сервер конфигурациясы — администраторлор биринчи караган жай, жана ал жердеги маршрут директивасы VPN тармагы тууралуу билдирүү сыяктуу окулат. Андай эмес. OpenVPN аны демон иштеп турган машинадагы жергиликтүү маршрут орнотуусу катары карайт, бул ip route аркылуу жасап, анан унутуп калган так ошондой өзгөртүү.
Бөлүштүрүү маршруттун push аркылуу жөнөтүлүшүн талап кылат, ал эми push клиенттин аны тартышын талап кылат. Тартылган опциялар өчүрүлгөн абалда башталган клиент сунушту толугу менен этибарга албайт. Сервер файлын кайра жазганга чейин бул кол алышуунун эки учун текшериңиз, анткени сервер журналы даттанбайт: анын тарабынан сунуш жөнөтүлдү. Кабыл алынган маршрут да кийинки туташууда гана күчүнө кирет, сиз азыр отурган сессияда эч качан.
Эки аракетти өзүнчө көргөндө, ийгиликсиздик жаамыш болуудан калат: сервер префикске жетет, клиент жете албайт, жана эки бекемдөө тең бир убакта туура.
Клиентке тиешелүү файлдар жана алар дал келген инсандык
Клиентке тиешелүү файл сервер аутентификациялаган инсандыктын аты менен аталат, ал демейде сертификаттын жалпы аты. Иш тактасындагы клиентте достук туташуу аты бул маани эмес, жана дал келбестик эч качан окулбаган файлды жаратат.
Сервер иш жүзүндө колдонгон каталогду текшериңиз, анан файлдын аты аутентификацияланган инсандыкка так дал келерин ырастаңыз, чоң жана кичине тамгаларды кошуп.
grep -n 'client-config-dir' /etc/openvpn/server/server.conf
ls -l /etc/openvpn/ccd/Ошол файлдын ичинде маршрутту дагы push кылуу керек, анткени клиентке тиешелүү контекст — ошол клиенттин сессиясына колдонулуучу опциялардын жыйындысы, жергиликтүү маршруттоо таблицасы эмес. Ал жердеги жалаң маршрут глобалдык файлдагы жалаң маршрут менен бирдей маселеге ээ.
Клиенттин өз файлы жана ага ээлик кылган курал
Клиент конфигурациясына коюлган маршрут ошол клиент туташканда орнотулат жана ажыраганда өчүрүлөт, бул статикалык дарек үчүн туура жашоо циклы.
Эгер профилге тармак менеджери ээлик кылса, ал бул опцияларды бир жолу импорттоп, анан өз көчүрмөсүн сактай алат. Жүктөлгөн файлды кийин түзөтүү эч нерсени өзгөртпөйт, бул "маршрут бар, бирок колдонулбайт" дегендин кеңири тараган себеби.
Жүктөгөн файлды эмес, активдүү профилди текшериңиз жана менеджер көрсөткөн импорттолгон жөндөөлөрдү текшериңиз. Анан туташып, конкреттүү дарек кайсы жолду колдонорун системадан сураңыз, маршрут тексттик файлда болгондуктан туннель жеңди деп божомолдоонун ордуна.
Клиентте текшериңиз, анан кайтуу жолун текшериңиз
Максат тууралуу клиенттин өз маршруттоо таблицасынан сураңыз, сервердикинен эмес. Префикстин ичиндеги бир хостту издөө колдонулуучу интерфейс менен кийинки секирикти көрсөтүүгө жетиштүү.
ip route get 10.60.0.10Издөө туннелди көрсөтсө, бөлүштүрүү иштеди жана калган маселе башка жерде. Эгер ал демейки шлюзду көрсөтсө, маршрут орнотулган эмес, клиент тараптагы опция менен чыпкаланган, же клиент колдонбогон профилге таандык.
Бөлүштүрүү иштеди деп эсептеңиз, бирок эч нерсе жооп бербейт: анда шлюздеги өткөрүүнү, каршы тараптын кайтуу маршрутун жана алардын ортосундагы ар кандай коргоо дубалын текшериңиз. Маршрут жол тандайт, ал кирүү бербейт.