Бір хосттағы екі басқару кіреберісі, бір қызмет порты және екеуіне де көмектесуі керек болған саясат ережесі. Ереже бастауыш порт 22-ге сәйкес келеді, іздеуді тек WAN әдепкісін білетін кестеге жібереді, және VPN кіреберісі жаңа кірулерге жауап беруді тоқтатады, ал тікелей кіреберіс жұмысын жалғастырады. Селектор дұрыс оқылса, мұның бәрінде жұмбақ жоқ. Бастауыш порт қызметті анықтайды, қосылым келген жолды емес.

Екі кіреберіс, бір қызмет порты

Хостта LAN жағындағы мекенжай мен VPN мекенжайы бар, және sshd екеуінде де тыңдайды. Сондықтан тікелей сессия мен туннель сессиясы қызмет портын бөліседі және тек қосылымды қай жергілікті мекенжай қабылдайтынымен ерекшеленеді.

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

Әр кіреберіске өз портын беру де жұмыс істер еді, және мұны талап ретінде қарастыру — SSH қасиеті емес, дизайн таңдауы.

Ережені оқыңыз, содан кейін кестені

Саясат ережесі реттелген селектор, және пайдалы жауап қайтаратын бірінші ереже іздеуді аяқтайды. Тізімді ретімен оқып, қай ереже жеңе алатынын байқаңыз.

Содан кейін сол ереже көрсететін кестені оқыңыз, өйткені сәтті шешілетін ереже пайдалы шешілетін ереже бола бермейді. Тек әдепкі маршруты бар кесте VPN-тен шыққан жауапты WAN интерфейсінен сыртқа жібереді. Кейінгі кестедегі нақтырақ маршрут ешқашан қаралмайды, сондықтан екінші кесте қосу соншалықты жиі ештеңені өзгертпейді. Таңдалған кесте — тексерілуі керек нәрсе.

ip -4 rule show
ip route show table 100
ip route show table main

Осы екі шығыс бірге нәтижені түсіндіреді; олардың әрқайсысы жеке-дара қате тұжырымға шақырады.

Ережені өзіңіз меңзеген ағынмен шектеңіз

Екі кіреберісті бөлетін атрибут — жергілікті бастауыш мекенжай. Сол мекенжайға сәйкес келетін ереже тек туннель сессияларын жеке кестеге жібереді және тікелей сессияларды негізгі кестеде қалдырады.

Бұл ереже жеке маршрут пен сол ішкі желінің қайтару жолын қамтитын кестемен жұптасуы керек. Екеуін де хосттағы әр қызметке емес, басқару трафигімен шектеңіз. Сол мекенжайдан барлық трафикті ұстайтын ереже хост содан жіберетін қалғанның бәрін де қайта бағыттайды. Мұнда тарлық ақылдылықтан басым, өйткені келесі адам оны оқуы керек.

sudo ip rule add from 10.90.0.1 lookup 100 priority 100
sudo ip route add 10.90.0.0/24 dev wg0 table 100
ip route get 10.90.5.20 from 10.90.0.1

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

Тыңдаушыны, рұқсатты және жауап таңдауын бөлек ұстаңыз

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

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

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

Мұны ескі емес, жаңа сессиямен дәлелдеңіз

Орнатылған терминал ештеңені дәлелдемейді, өйткені ол өзгеріске дейін қабылданған. Әр көзделген кіреберіс арқылы жаңа сессия ашыңыз.

ss -ltnp | grep ':22'
sudo sshd -T | grep -i listenaddress
ssh -v [email protected] true
sudo journalctl -u ssh -n 30

Содан кейін VPN-ның қайта қосылуын қайталап, қайтадан көріңіз, өйткені қайта қосылуға шыдайтын маршрут қайта қосылу тазалайтын кестеге қосылған маршрутпен бірдей емес. Қабылданбаған көздерді рұқсат етілгендерден бөлек бақылаңыз, бұғатталған әрекет жұмыс істеп тұрған сессияның артында жасырынбауы үшін. Нәтиженің қасында жергілікті мекенжайды, ережені және кестені сақтаңыз. Егер оның орнына порттарды бөлсеңіз, мұны SSH шектеуі емес, операциялық шешім ретінде жазып қойыңыз.

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