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

Бірдеңені салыстырмас бұрын интерфейсті атаңыз

OpenSSH клиентінің нұсқаулығы шатастыруға оңай төрт тетікті ажыратады. Қабық немесе қашықтағы команда SSH хостында орындалады. Жергілікті қайта бағыттау клиентте тыңдайтын сокет ашады және әрі қарайғы қосылымды қашық жақтан жасайды. Қашықтағы қайта бағыттау керісінше әрекет етіп, сервер жағында тыңдайды. Динамикалық қайта бағыттау оны пайдалануды білетін бағдарламаларға SOCKS соңғы нүктесін ұсынады.

  • Қабық: бағдарлама қашықтағы машинада жүреді, жергілікті жерде ештеңе тыңдамайды.
  • Жергілікті қайта бағыттау: ноутбугіңізде порт бар, қашықтағы хост сыртқа шығатын қосылымды жасайды.
  • Қашықтағы қайта бағыттау: қашық жақта порт бар, трафик сізге қарай қайтады.
  • Динамикалық: клиенттегі SOCKS проксиі, оны тек проксиді түсінетін қолданбалар пайдаланады.

Бұлардың ешқайсысы маршрут орнатпайды. Прокси параметрлерін елемейтін, немесе UDP-де сөйлейтін, немесе атауларды өзі шешетін бағдарлама, оған белсенді SSH сеансы әсер етпейді. Бұл SSH-тегі ақау емес; бұл сіз таңдаған интерфейстің ауқымы.

Жергілікті, қашықтағы және динамикалық қайта бағыттаулар кімнің тыңдайтынымен ерекшеленеді

Көп жағдайды шешетін айырмашылық — тыңдайтын сокеттің кімге тиесілі екені. Жергілікті қайта бағыттауда клиент тыңдайды және қашық шет мақсатты теріп алады, сондықтан мақсат мекенжайы сервердің көзқарасы бойынша шешіледі. Қашықтағы қайта бағыттауда сервер тыңдайды және қосылым сіздің жаққа қайтарылады, осылайша сіз жергілікті қызметті тікелей жарияламай-ақ ашасыз.

ssh -N -L 5432:db.internal.example:5432 [email protected]
ssh -N -D 1080 [email protected]
ss -ltnp | grep -E '5432|1080'

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

Динамикалық қайта бағыттау өз ескертуіне лайық: ол тек SOCKS-ті құрметтейтін қолданбаларды қамтиды. Шолғышты оған бағыттауға болады, командалық жол құралына оны пайдалануды айтуға болады, бірақ өз қосылым дестесі бар дерекқор драйвері әдетте оны істей алмайды. Машинадағы әр бағдарлама қазір туннельді пайдаланады деп болжау — осы саладағы ең кең тараған қате.

Туннель құрылғысы режимі — жалғыз нақты желілік ерекшелік

OpenSSH -w туннель құрылғысы қайта бағыттауын да қолдайды, ол TCP тыңдаушысының орнына нүктеден нүктеге интерфейсін өткізеді. Бұл нағыз желілік туннель және ол әдейі конфигурацияланады, қабық ашудың жанама әсері емес.

sudo ssh -w 0:0 [email protected]
ip addr show tun0

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

Сонда да туннель қашықтағы хостта аяқталады. SSH көлігі қандай қорғаныс берсе де, ол сонда бітеді, ал әрі қарайғы қосылым — бөлек секіріс. VPN шлюзінің шекарасы да осындай пішінде, сондықтан салыстыру қай құралдың күштірек екені туралы емес, ауқым мен аяқталу туралы болуы керек. Сол шекараны дауыстап атау туннельдің «бәрін шифрлайтыны» туралы дауды да шешеді, өйткені ол анық шифрламайды.

Қолданбаңыз сіз салған интерфейсті пайдаланатынын тексеріңіз

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

curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'

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

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

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