Толық туннель SSH сессияңызды өлтірді: қайтару маршрутын бекітіңіз
Толық туннель өзіңіздің SSH сессияңызға келетін жауаптарды да ұстап қалады. Ескі шлюз арқылы әкімшілік мекенжайыңыз үшін хост маршрутын бекітіп, қайта қосылғанда оны қайта орнатыңыз.
SSH арқылы жұмыс істеп отырған машинада OpenVPN клиентін іске қосыңыз, және пәрменнің ортасында сессия қатып қалады. Туннель қосылғанын хабарлайды, хост ол арқылы интернетке шығады, ал перне басуларыңыз әлі де келіп жатыр, бірақ ештеңе қайтпайды. Өзгерген нәрсе — туннель емес: бұл сізге адрестелген пакеттердің қайтару жолы, ол қазір жаңа әдепкі маршрутқа сәйкес келеді және қашықтағы шлюз сіздің үстеліңізге жету үшін пайдаланбайтын туннельге кіреді.
redirect-gateway шын мәнінде нені орнатады
Өзінің def1 түрінде redirect-gateway әдепкі маршрутты қайта жазудың орнына 0.0.0.0/1 және 128.0.0.0/1 қосады. Бұл екі жарты бүкіл мекенжай кеңістігін қамтиды және екеуі де 0.0.0.0/0-тан ұзынырақ префикс болып қалады, сондықтан нақтырақ сәйкестігі жоқ кез келген мақсат енді туннельге кіреді. Бұл есте ұстауға тиісті механизм, өйткені төмендегі әрбір түзету нақтырақ сәйкестік орнату арқылы жұмыс істейді.
Сіздің әкімшілік мекенжайыңыз сол мақсаттардың бірі.
VPN сервері өз клиенттерінің трафигін интернетке қарай жібереді. Оның сіз қосылып отырған жария мекенжайға маршруты жоқ, және бұл пакеттерді клиенттен келетін трафиктен өзгеше деп санауға ешбір себебі жоқ, сондықтан ол оларды тастайды. Сол уақытта сіз жіберген сұрау хостқа бәрібір жетті, сондықтан сессия тек бір жағынан тірі болып көрінеді.
ip route show table main | head -n 20
ip route get 198.51.100.23Бастау мекенжайыңызды және туннельге дейінгі жолды табыңыз
Серверде орнатылған SSH қосылымын тізімдеп, оның қайдан келгенін көрсететін тең мекенжайды жазып алыңыз. Дәл сол мекенжайды қайтару маршрутыңыз қамтуы керек, және ол әрдайым сіз ойлаған мекенжай бола бермейді: секіру хосты, NAT шлюзі немесе оператордың аудармашысы басқа бастауды қоюы мүмкін.
Содан кейін туннель басталғанға дейін трафик тасыған физикалық шлюз мен интерфейсті табыңыз. def1 орналасуында әдепкі маршрут жарты-әдепкілердің астында әлі де бар, сондықтан ақпарат қолжетімді, дегенмен ұзын маршруттар кестесін көзбен оқу қателіктерге шақырады.
Екі мәнді және интерфейс атауын бірге жазып алыңыз, өйткені қоспақ болып отырған маршрутқа үшеуі де қажет. Егер хост өзінің жоғарғы арнасын таңдау үшін саясатқа негізделген маршруттау ережесін пайдаланса, қарапайым маршрут мүлдем қарастырылмауы мүмкін, және бұл мүмкіндік түзетуді өзгертеді.
Жарты-әдепкілерден асып түсетін хост маршрутын бекітіңіз
Бір /32 маршруты екі жарты-әдепкінің кез келгенінен ұзынырақ, сондықтан сіздің мекенжайыңызға келетін жауаптар туннельдің орнына соны таңдайды. Келесі хоп — туннельге дейінгі шлюз, ал құрылғы — физикалық интерфейс, бұл пакетті туннель пайда болғанға дейінгі жолда ұстайды.
ip route add 198.51.100.23/32 via 203.0.113.1 dev eth0Кестені қараудың орнына іздеумен тексеріңіз: жауап eth0 және шлюзді атауы керек, ешқашан tun0 емес.
OpenVPN әлдеқашан VPN серверінің өз мекенжайына хост маршрутын сол себепті қосады, сондықтан үлгі таныс және әкімшілік мекенжай жай ғана тағы бір ерекшелік. Мұны түзету үшін route-nopull қолданбаңыз, өйткені ол туннельге қажет итерілген маршруттарды тастайды, оның ішінде қашықтағы желі мен DNS параметрлері.
Оны қайта қосылуға төзімді етіңіз
Қолмен қосылған маршрут клиент қайта қосылып өзінің маршрутын орнатқанда жоғалады, бұл түзетуді қайталанатын үзіліске айналдырады. Пәрменді маршруттар орнатылғаннан кейін іске қосылатын нәрсеге байлаңыз.
Мысалы, route-up скрипті де, желі менеджерінің pre-up ілгегі де жұмыс істейді, ал сенімді тексеру — қайта қосылу және одан кейін сол іздеу.
Windows-та баламасы — -p арқылы қосылатын тұрақты маршрут, ол қайта жүктеулерге төзеді, бірақ желі өзгергеннен кейін дұрыс шлюзге нұсқауы керек. Платформа қандай болса да, маршруттың қасына себебін жазыңыз: келесі әкімші оның басқару сессиясын қорғау үшін бар екенін білуі керек, желі дизайны талап еткендіктен емес.
Бекітілген маршрут әлі де жеткіліксіз болғанда
Кері жол сүзгісі бір интерфейске келіп, екіншісінен шығатын пакетті тастауы мүмкін, және бекітілген маршрут дәл соны жасайды. Бірдеңені жаһандық өшіруден бұрын rp_filter тиімді мәнін тексеріңіз, және тексеруді өшірудің орнына асимметрияны түзетуді таңдаңыз. Интерфейс бойынша параметр қолданылады, ал loose режимі пакетті тастаудың орнына көбіне асимметрияны ғана жазады. Сүзгі кінәлі деп қорытынды жасамас бұрын екеуін де оқыңыз.
Саясатқа негізделген маршруттауы бар хосттарға маршрутпен қатар ереже де қажет, өйткені ережелер базасы ондағы маршрут қарастырылмас бұрын кестені таңдайды. main кестесіндегі маршрут басқа кестеге нұсқайтын ережеге сәйкес келетін ағынға көрінбейді. main-ға бірдеңе қоспас бұрын ережелерді оқыңыз. Егер ереже басқару трафигін әлдеқашан қамтыса, ерекшелік сол ереженің кестесіне тиесілі.
Сынау кезінде жолақтан тыс консольді ашық ұстаңыз, және пайдаланып отырған логинді ажыратпас бұрын екінші логиннен қайта тексеріңіз. Өз басқару трафигіңізді туннельге жіберетін маршрут оны жөндеп жатқан қосылымыңызды үзеді. Сонда қайта кіру сериялық консоль немесе құтқару жүктеуін талап етеді, бұл бір тексеру қадамын өткізіп жіберу үшін нашар айырбас.