Linux VPN-де мекенжай, маршрут, DNS және firewall кімге тиесілі?
Linux VPN әр нысан үшін бір органды қажет етеді: құрылғы, мекенжай, маршруттар, DNS, firewall. Осы картаны жазып, содан кейін жүктелу, қайта қосылу және бөлшектеу нені қалпына келтіретінін анықтаңыз.
Бір маршрут үшін күресетін екі скрипт — Linux VPN мәселесінің әдеттегі түрі, ол маршруттау қатесі ретінде тіркеледі. Бір компонент туннель құрылғысын жасайды, екіншісі әдепкі маршрут қосады, үшіншісі resolver конфигурациясын қайта жазады, төртіншісі firewall ережелерін қайта жүктейді. Олардың кез келгені басқасының жұмысын жоя алады, ал жеңімпаз — жай ғана соңғы орындалған. Жауап беруге тұрарлық сұрақ қай буманы орнату емес, күйдің әр бөлігі үшін қай компоненттің өкілетті екендігі.
Осы картаны бір рет жазыңыз, сонда қайта қосылу сәтсіздіктерінің көбі жұмбақ болудан қалады. Төрт нысан маңызды: құрылғы және оның мекенжайлары, маршруттар мен саясат ережелері, DNS конфигурациясы және firewall.
Құрылғы және оның мекенжайлары
Туннель құрылғысын профильді білетін менеджер немесе біреу қолмен іске қосқан демон жасайды. Екі орналасу да жеке-жеке жұмыс істейді; оларды араластыру — жоқ. Егер профильді NetworkManager ұстаса, ол құрылғыны да ұстасын, және сол туннель атына қарсы басқарылмайтын OpenVPN процесін іске қоспаңыз.
Сессия біткенде құрылғыны кім жоятынын жазыңыз. Өз сессиясынан ұзақ өмір сүретін құрылғы — ескірген мекенжайлардың және олардан кейінгі шатасудың ең көп таралған көзі.
Маршруттар мен саясат ережелері
Дәл маршруттарда иелік қақтығыстары көзге көрінетін зиян келтіреді. Қосылым менеджері туннель үшін әдепкі маршрутты және қашықтағы желі үшін нақтырақ маршрутты орнатады; содан кейін қолмен жазылған скрипт басқа метрикамен өз әдепкісін қосады және уақытқа қарай үнсіз жеңеді немесе жеңіледі. Қай жазбалар қосылымға байланысты, қайсысы тұрақты саясат және қай компонент оларды қайта қосылудан кейін жаңартатынын шешіңіз. Содан кейін басқа компоненттерді сол кестеден тыс ұстаңыз.
Саясат ережелері де сол айқындыққа лайық, өйткені ешкім толтырмайтын кестеге сілтейтін ереже өлі туннельге дәл ұқсайтын қара қуыс жасайды. Егер ереже трафикті бір жерге мәжбүрлеу үшін болса, ол таңдайтын кестені сол ие қамтамасыз етуі керек.
DNS әрқашан бөлек ие
Resolver демоны өз идентитиімен өз процесі ретінде жүреді, сондықтан ол туннельдің маршруттау шешімдерін кездейсоқ мұра етпейді. VPN DNS серверлерін итергенде, бірдеңе оны resolver құрметтейтін әр қосылым конфигурациясына айналдыруы керек, ал кейін бірдеңе оны алып тастауы керек.
Мұндағы миф — профильге атау серверін жазу сұраныстардың қайда кететінін өзгертеді деген. Ол resolver-ге не айтылатынын өзгертеді, resolver жоғарыда қай сокетті қолданатынын емес. Файлға сенудің орнына сұраныс пен маршрут іздеуімен тексеріңіз.
Firewall күйі және оны кім қалпына келтіреді
Firewall ережелері VPN хостта ең жиі қайта жазылатын нысан. Менеджер әр қосылым үшін NAT немесе жіберу ережелерін қосуы мүмкін, ал жүктелу кезіндегі firewall қызметі сақталған ережелер жиынтығын қайта жүктеп, оларды өшіреді. Саясат үшін бір өкілеттік таңдап, екіншісін оның тұтынушысы етіңіз, немесе қайта жүктеу мінез-құлықты үнсіз өзгертетінін қабылдаңыз. Қосылымға байланысты ерекшеліктер сол ие жүктейтін файлда болуы керек, ақаулық іздеу кезінде терілген iptables командасында емес.
Егер ережелер қайта қосылудан аман өтуі керек болса, оны ашық айтыңыз. Егер керек болмаса, оны да айтыңыз, өйткені келесі инженер ыңғайлырақ жауапты болжайды.
Өмірлік цикл: жүктелу, қайта қосылу, бөлшектеу
Осы үш сәттің әрқайсысына ие тағайындаңыз. Жүктелу кезінде алғышарттарды ненің дайындайтынын және қандай ретпен екенін шешіңіз. Жұмсақ қайта жүктеуде құрылғы аман қалуы мүмкін, ал сессия күйі қалмауы мүмкін екенін есте сақтаңыз, сондықтан жасаушы емес, тексеруші жүруі керек. Бөлшектеу кезінде тек осы қосылым жасаған нәрсені жойыңыз, өйткені барлық маршрутты қалпына келтіру немесе бүкіл firewall-ды тазалау бір туннельді қызметтен шығарумен бірдей емес.
Бақылау үшін ip monitor link address route ядро өзгерістерін болған кезде көрсетеді, бірақ ол ниетті емес, оқиғаларды хабарлайды: жойылған маршрут оны қай процесс жойғаны туралы ештеңе айтпайды. Оны иелік картасымен жұптаңыз, сонда шатастыратын өшіру кандидаттардың қысқа тізіміне айналады.
Ерекшеліктердің де құны бар. Қақтығыстан құтылу үшін құрылғылардың бүкіл класын басқарылмайтын деп белгілеу бұл күйді ешкімге бермейді, бұл түзету емес, шешім.