Бір AWS Client VPN сессиясының артындағы LAN: не қайта жіберіледі
Хостта жұмыс істеп тұрған сессия өздігінен LAN-ға таралмайды. Клиент қолдауын, қайта жіберуді, трансляцияны және жауап жолын осы ретпен тексеріңіз.
Ноутбук AWS Client VPN шеткі нүктесіне қосылады, жеке ішкі желіге жетеді, және бәрі сау көрінеді. Сол LAN-дағы үстел компьютері ешқайда жетпейді, бірақ Linux хостінде де көпір интерфейсі бар және екі машина бір кабельде тұр. Туннельде ешнәрсе дұрыс емес конфигурацияланбаған; жетіспейтін бөлік — маршруттау, ал көпір — жалған із.
Client VPN сессиясын LAN-ға кеңейту — шлюз рөлі. Бұл басқарылатын қызметке созылған Ethernet сегменті емес.
Хост жұмыс істейді, ал LAN — жоқ
Linux машинасындағы туннель интерфейсінің мекенжайы Client VPN клиентінің CIDR ішінде, және шеткі нүкте VPC ауқымдары үшін маршруттарды жіберді. Сол машинада жасалған сұрау — жергілікті құрылған трафик: ол маршрут таңдайды, туннельден шығады және жауап алады. Бұл жол қайта жіберу кодына, LAN интерфейсіне немесе транзитті басқаратын кез келген брандмауэр ережесіне ешқашан тимейді.
Басқа LAN құрылғысынан келетін трафик — басқа ағын. Ол LAN интерфейсіне келеді, туннельге бағытталған маршрут керек, қайта жіберу қосулы болуы керек, оған рұқсат беретін брандмауэр керек және жауап сол хост арқылы қайтуы керек. Төрт шарт, ал жұмыс істеп тұрған ноутбук сынағы олардың біреуін де дәлелдемейді. Үстелден ақау оғаш көрінеді: туннель көтерілген, тіркелгі деректері жарамды, ал меже ешқашан жауап бермейді. Ақау шлюздің қайта жіберу жолында жергілікті, қызметте емес.
Әр клиент шлюз бола алмайды
AWS өзінің Client VPN үстел қолданбасы IP қайта жіберуді қолдамайтынын, ал басқа клиенттер қолдауы мүмкін екенін айтады. Бұл шектеу кез келген пәрменді теруге дейін архитектураны шешеді. Егер жалғыз қолжетімді клиент ресми үстел қолданбасы болса, LAN үшін қайта жіберетін Linux шлюзі — аяқтауға болатын конфигурация емес, және ешқандай masquerading мұны өзгертпейді.
Ауыстыру клиенті шеткі нүктенің аутентификация әдісіне және енгізгіңіз келетін саясатқа да сәйкес болуы керек. Сертификатқа, каталогқа және SAML-ға негізделген шеткі нүктелер бірдей клиент конфигурацияларын қабылдамайды, ал аутентификациядан өтетін, бірақ жіберілген маршруттарды елемейтін үшінші тарап клиенті жақсарту емес.
Клиент таңдауын дизайн қарауының бөлігі ретінде қарастырыңыз. Ол LAN қайта жіберу үлгісінің мүлдем қолжетімді екенін және шеткі нүктенің шлюз артындағы әр құрылғы үшін қандай сәйкестікті көретінін анықтайды. Клиентті және ол сыналған шеткі нүкте конфигурациясын жазып алыңыз. Жарты жылдан кейін клиентті ауыстыру дизайн болжаған мүмкіндікті үнсіз жоюы мүмкін.
LAN-ды туннельге бағыттап, оны трансляциялаңыз
Қолдау көрсетілген клиент орнында болса, қалғаны қарапайым шлюз жұмысы. LAN құрылғыларына VPC ауқымы үшін Linux хостіне бағытталған маршрут керек, ал хостқа қайта жіберу қосулы болуы керек. Егер VPC трафикті ерікті LAN мекенжайы ретінде емес, қосылған клиент ретінде көргенін қаласаңыз, шығыста көзді трансляциялаңыз.
LAN: 10.24.11.0/24
Linux LAN gateway: 10.24.11.15
VPN interface: tun0
Target VPC range: 10.2.0.0/16
iptables -t nat -A POSTROUTING -s 10.24.11.0/24 -d 10.2.0.0/16 -o tun0 -j MASQUERADEЕрежені жоғарыдағыдай туннель интерфейсімен және VPC ауқымымен шектеңіз, хост қайта жіберетіннің бәрін masquerade жасаудың орнына. Тар ереже туралы ойлау оңайырақ, және ол бастапқы көз мекенжайын сақтауға тиіс трафикті үнсіз өзгертпейді.
Мүмкін болса, LAN маршруты өздігінен келсін: DHCP опциясы, маршрутизатор хабарламасы немесе LAN-ды басқаратын нәрсе жіберетін статикалық маршрут. Тек бір сынақ машинасында ғана бар маршрут дизайнды басқа біреу көрген сәтте сынғандай көрсетеді.
Жауапқа да жол керек
Сұрау VPC-ға жеткеннен кейін жауап сол трансляция күйлері арқылы қайтып, шлюзде LAN маршрутын табуы керек. Бұл бөлік әдетте masquerade ережесі орнында болғанда жұмыс істейді, өйткені салыстыру оны орындаған хостта тұрады. VPC жағында жауапты басқа жерге жіберетін маршрут болса, ол бұзылады, сондықтан клиент CIDR маршруты да, шеткі нүктедегі ішкі желіні байланыстыру да маңызды.
Санауыштарды қараңыз, тек ping емес. Нөл пакетті masquerade ережесі сұраудың туннель интерфейсіне ешқашан жетпегенін айтады, бұл LAN маршрутына немесе клиенттің өз маршруттау кестесіне сілтейді. Пакеттері бар, бірақ жауаптары жоқ ереже VPC жағына, авторизация ережелеріне немесе трансляцияланған көзді қабылдамайтын қауіпсіздік тобына сілтейді. Бірдеңені өзгертудің алдында екі бағытты да оқыңыз, өйткені тек бір жақта өсетін сан — баяу емес, бір бағытты жол.
Шеткі нүкте — басқарылатын қызмет екенін ұмытпаңыз. Өңдеуге сервер конфигурациясының файлы да, қосуға client-config директивасы да жоқ, сондықтан клиенттің ішкі желісінің теңшелген маршруттары бар өзін-өзі басқаратын OpenVPN сервері үшін жазылған нұсқаулықтар ауыспайды. AWS-те тұтқалар — ішкі желіні байланыстыру, авторизация ережелері және VPC маршруттау кестелері.
Ортақ сәйкестік — саясат жауап беруге тиіс бөлік
Шлюз артындағы әр құрылғы шлюздің VPN сессиясын пайдаланады. Шеткі нүктенің авторизация ережелері пайдаланушыға немесе топқа қатынау береді, және қызмет тұрғысынан бұл сессияда дәл бір пайдаланушы бар. Жергілікті қайта жіберу бұл сәйкестікті құрылғы бойынша аутентификацияға көбейтпейді және құрылғы күйінің тексерулерін бұрыштағы принтерге дейін кеңейтпейді.
Бұл қабылданатын болуы мүмкін, немесе дизайнның қабылданбау себебі болуы мүмкін. Бұл VPC ресурстары кім қоңырау шалып жатқаны туралы нені болжайтынына байланысты. Авторизация моделіне сәйкес келетін ортақ сәйкестік дұрыс; бір аутентификацияланған сессияны үнсіз бүкіл LAN қатынауына айналдыратыны — жазылуды күтіп тұрған тұжырым.
Егер талап шынымен бүкіл алаңды VPC-ға қосу болса, қашықтан қатынау клиентін кеңейтпес бұрын қолдау көрсетілген алаң-алаң дизайнын салыстырыңыз. Семантика өзгеше, және VPC LAN-ға қосылымдарды бастауы керек болғанда NAT-талған клиент сессиясы алаң байланысының нашар баламасы.
Клиентті, маршрутты, трансляцияны және сәйкестік тарихын осы ретпен шешіңіз. Әрқайсысы келесісін шектейді, және бұл рет хосттың неге жұмыс істейтінін, ал LAN-ның неге жұмыс істемейтінін түсіндіреді.