Үй желісіндегі медиа қорапты елестетіңіз, ол интернетке тек туннель арқылы ғана шығуы керек. Туннель құлағанда қолданба физикалық интерфейс арқылы үнсіз жалғасуынша, тоқтауы керек. Бұл мінез-құлықты алу маршруттау емес, firewall мәселесі, және айырмашылық маңызды, өйткені маршрутты демонды қайта іске қосу арқылы ауыстыруға болады, ал сүзгі өзіңіз қойған жерде қалады. Әрі қарай пакет жолының шын мәнінде қалай шешетінін, содан кейін туннельді қайта қосуға мүмкіндік беретін ерекшеліктерді қалай шектеу керектігін қарастырамыз.

Жергілікті шығыс — жіберуден өзге ілгек

Машинадағы қолданбадан шыққан пакет шығыс ілгегінен өтеді; машина басқа хост үшін маршруттайтын пакет жіберуден өтеді. Тек forward-ді атайтын саясат екіншісін шектеп, біріншісін толық ашық қалдырады, сондықтан көптеген шығыс құлыптары дұрыс көрініп, ештеңе істемейді. Интерфейсті сәйкестендіру сол ережеге жатады: oifname "tun0" accept туннель арқылы әлдеқашан маршрутталған трафикті өткізеді. Маршруттау мен сүзгілеу де бөлек шешім болып қалады, сондықтан сүзгі пакетті қабылдамай тұрғанда жоғары желі маршруты болуы мүмкін. Сіз дәл осы бөлінуге сүйенесіз.

Басқа құрылғылар үшін жіберетін шлюзге екі ілгек те қажет. Тек шығысты құлыптау машинаның өзін қорғайды да, төмендегі әрбір клиентке ағып кету еркіндігін береді.

Ерекшеліктер тізімін соңғы нүктеден сыртқа қарай жазыңыз

Туннельдің соңғы нүктесінен бастаңыз: бір межелік мекенжай немесе шағын бекітілген жиын, тасымалдау протоколы және межелік порт, мысалы udp dport 1194 ip daddr 203.0.113.7 accept. Егер клиент хост атын шешетін болса, бастапқы DNS алмасуға өз ережесі керек, ол шешуші мен 53 портымен шектелуі тиіс, сол шешушінің мекенжайына жалпы рұқсат емес. Әр ерекшелік өзінің бар болу себебін атауы керек. VPN портына барлық UDP трафигіне рұқсат сіз ойлаған жалғыз аутентификацияланған қызметтен әлдеқайда көп нәрсені қамтиды.

Бастапқы шешу — құлыптар әдетте шіритін жер. Таймермен жаңартылатын мекенжайлар жиынына жаңарту сәтсіз болғанда анықталған мінез-құлық керек, және бұл мінез-құлық сәтті болғанша желіні ашу болмауы керек. Туннель тұрған кезде туннель арқылы жаңартыңыз, әйтпесе соңғы белгілі сау соңғы нүктеге қайтыңыз.

Жергілікті әкімшілік те осындай қарым-қатынасты қажет етеді. Басқару ішкі желісі мекенжайлары жеке болғандықтан сенімді бола бермейді, ал оған сенетін ереже құлыптың айналасында екінші жолды шақырады.

Интерфейсті сәйкестендіру сау туннельдің дәлелі емес

tun0-тен шыққанның бәрін қабылдайтын ережелер сол интерфейстегі пакет туннельден келді деп есептейді. Интерфейс атаулары қайта жасалады, ал атау криптографиялық бірегейлік емес. Серіктес кетіп қалса да интерфейс жоғары тұруы мүмкін, бұл ережені өте сенімді әрекетсіздікке айналдырады.

Қосылымдарды бақылау соған ұқсас тұзақ қосады. Орнатылған қосылымдарға арналған кең ереже ағынның бұрын алған рұқсатын қайта ойнатады, сондықтан туннель құлар алдында басталған сессия одан кейін де жұмысын жалғастырады. Күйге негізделген қабылдауды шынымен ойлаған интерфейстер мен мекенжайлармен шектеңіз, әйтпесе өзі ашылатын құлып құрдыңыз. Кіру және шығу ережелері де түрлі сұрақтарға жауап береді, біреуін қатайтып, екіншісін елемеу машинаны ойламаған бағытта қолжетімді етіп қалдырады.

Демонның құлауынан не аман қалады

Туннель көтерілгеннен кейін іске қосылатын скрипт орнатқан сүзгі туннельмен бірге жоғалады, дәл ол қажет болған сәтте. Құлыпты жүктеу кезінде жүктеңіз және демонға тек өз ерекшеліктерін басқаруға рұқсат етіңіз.

Әдепкі маршрутты жою да балама емес. Маршрут — демон иеленетін және қайта жазатын күй, ал оны жою қайта қосылуға қажет жолды алып қоюы мүмкін. IPv6-ға өз жоспары керек, өйткені көршілерді табу және маршрутизатор хабарламалары — қарапайым трафик бұғатталған кезде де жұмыс істеуі тиіс буын қызметтері. DHCP де сол санатқа жатады. Бұларды кейін үзіліс ретінде табуға емес, мақсаты бар ерекшеліктер ретінде жазып қойыңыз.

Орналастыру алдындағы қалпына келтіру жолы

Құлыпты қалай істен шығатынына қарай сынаңыз: туннельсіз жүктеу, демонды өлтіру, соңғы нүктені өзгерту және қайта қосылу. Әр жағдай қолданбаларды тоқтатып, қалпына келтіру арнасын жұмыс қалпында қалдыруы керек. Мұны консольден жасаңыз, өйткені қашықтағы қабық — өз ережеңізбен ең ықтимал құлыпталатын сессия.

Содан кейін қарапайым қолданбаның әлі қайда жете алатынын тексеріңіз: зиянсыз меже мен тексере алатын сұраумен. Қалаған нәтиже — желіде бас тарту және туннель арқылы сәттілік, екеуін де білдіруі мүмкін екіұшты күту емес. Ережелер жиынын бүкіл кестені shell скриптінен ауыстырудың орнына, firewall-дың қалған бөлігімен бір иесінің қарамағында ұстаңыз. Әр рұқсат өзін ақтай алатын саясат, ешкім түсіндіре алмайтын ұзын ережелер жиынынан қымбат.

Қатысты мақалалар