10.77.20.0/24 үчүн пакет OpenVPN серверинде эки өзүнчө чечим кабыл алат: операциялык система аны VPN интерфейсине берүүгө тийиш, ал эми OpenVPN кайсы туташкан кардар ошол префикске ээ экенин билиши керек. Ядронун маршруту жок болсо пакет туннелге чейин түшүп калат, ал эми өнөктөштүн маршруту жок болсо андан кийин түшөт. Эки бузулуу тең алыскы LANдан бирдей көрүнөт, жана кайсынысы сизде экенин диагностикалоо үчүн ар тарапта бирден буйрук керек.

Классикалык колдонуучу мейкиндигиндеги маалымат жолунда ядронун маршруту пакетти туннел процессине жеткирет, ал эми iroute ошол процесске аны кайсы өнөктөш кабыл алышы керектигин айтат. Экөөнүн бири экинчисин алмаштырбайт, жана бирөөнү гана камтыган конфигурация биринчи pingге чейин акылга сыярлык көрүнөт.

Эки чечим, бир маршрут эмес

Аймактар аралык байланышты элестетиңиз, анда 10.77.20.0/24 бир кардардын артында турат. Сервердин ядро маршруту, мисалы ip route add 10.77.20.0/24 dev tun0, тиешелүү пакеттерди туннел түзмөгүнө жөнөтөт. Андан кийин OpenVPN кардардын конфигурация каталогундагы iroute жазууларынан курулган өзүнүн ички таблицасын карап, аларды кайсы өнөктөш байланышы аларын чечет. Ядро маршруту жок болсо пакет процесске эч качан жетпейт, ал эми өнөктөш маршруту жок болсо ал процесске жетет да, эч жакка барбайт.

Бул бөлүнүүнү унутуу оңой, анткени кардар профилиндеги бир маршрут сабы эки ишти тең аткарат окшойт. Андай эмес: маршрутту түртүү кардарларга туннел аркылуу эмнени жөнөтүүнү айтат, ал эми iroute серверге кардардын артындагы дарек диапазону кимге таандык экенин айтат. Алар ар башка файлдарда жашайт, ар башка тарап окуйт жана карама-каршы багыттарда ишке ашпай калат.

iroute кайда таандык жана эмнени айтат

Жазуу кардардын common_name аталышы менен аталган жеке кардар файлына, client-config-dir астына, iroute 10.77.20.0/24 түрүндө жазылат. Файл аталышынын дал келиши косметикалык эмес: OpenVPN аутентификацияланган инсанды издейт жана файлды так ошол ат менен окуйт, ошондуктан site-a деп аталган файл жалпы аты site-a болгон кардарга гана таасир этет. Эгер мындай файлы жок кардарларды толук четке кагуу керек болсо, ccd-exclusive кошуңуз, бул ар бир кардар аймактын дарбазасы болгондо туура параметр. Ар бир дарбазага бир файл кармаңыз жана аны чындыгында берген сертификат субъектисинин аты менен атаңыз.

Алыскы LANды күнөөлөөдөн мурун жазууну серверден текшериңиз. Абал файлы туташкан кардарларды алардын жалпы аттары менен тизмелейт, ал эми --verb 4 менен иштеген сервер өнөктөш туташкан учурда iroute орнотулганын журналга жазат. Туташуу учурунда эч нерсе көрүнбөсө, файл туура эмес каталогдо же туура эмес инсанды атап турат.

Тузок: файл бар, инсан туура эмес

Туура көрүнгөн, бирок туура эмес өнөктөшкө байланган iroute жок файлга караганда көбүрөөк убакыт корот, анткени дискте баары туура көрүнөт. Сертификаттарды кайра атоо, кайталанган жалпы аттар жана натыйжалуу инсанды өзгөрткөн username-as-common-name мунун баарын пайда кылат. Сервер кайсы инсанды аутентификациялаганын текшериңиз, өзүңүз күткөндү эмес: абал чыгышы укуктуу, ал эми файл аты жөн гана издөө ачкычы.

Маршрут өз ээсинен узак жашашы мүмкүн. Статикалык маршруттар жана iroute жазуулары жеткиликтүүлүк кепилдигин эмес, префиксти сүрөттөйт, ошондуктан трафик азыр ажыратылган өнөктөшкө карай багытталуусун уланта алат.

Жолду өнөктөштөн ары бүтүрүңүз

Өнөктөшкө ээлик жолдун ортосу, аягы эмес. Кардар пакеттерди туннелден өз LANына өткөрүүгө тийиш, бул ошол хостто IP өткөрүүнүн күйгүзүлгөнүн жана өтүүгө уруксат берген firewall эрежесин билдирет. Алыскы LANдагы хостторго туннел дареги үчүн кайтуу жолу керек: же дарбазага карай багытталган маршрут, же кардар тарапта атайын долбоорлонгон NAT. Бөлүштүрүүнүн демейки маанисин болжолдоонун ордуна кардардагы өткөрүү жөндөөсүн sysctl net.ipv4.ip_forward менен ырастаңыз.

Эгер башка VPN кардарлары ошол кошумча тармакка жетиши керек болсо, курулуш дагы чоңоёт: серверге client-to-client керек, ал эми ошол кардарлар префиксти туннел аркылуу багытташы керек. Булардын эч бири сервердин өзүнүн маршрут таблицасынан келип чыкпайт.

Бир багытты сервердин өзүнөн эмес, реалдуу булактан текшериңиз. Байланышы жок LAN хосттон кардардын артындагы хостко ping бир кыймылда кайтуу жолун, өткөрүү эрежесин жана өнөктөшкө ээликти сынайт, ал эми ийгиликтүү handshake инсанды гана далилдейт. Андан кийин ээ болгон өнөктөштү ажыратып, маршрут эмне кыларын жазып алыңыз, анткени ошол жооп сиздин бузулуу режимиңиз.

Тектеш макалалар