Овде се слажу три транспортна слоја и сваки има своје уоквиравање. VPN терет путује унутар TLS сесије, та TLS сесија путује унутар TCP везе ка loopback порту, а бајтови те везе путују унутар SSH-а ка relay хосту, који отвара праву TCP везу ка VPN слушаоцу. Ништа у том распореду не мења оно што OpenVPN аутентификује, и ништа у њему не чини UDP слушаоца доступним преко TCP-а. Остатак читајте као опис пута бајтова, а не као рецепт за заобилажење мрежне контроле.

Шта локално прослеђивање заиста преноси

SSH клијент слуша на локалном порту. Када се локални процес повеже, клијент пакује бајтове у свој шифровани канал, а серверска страна отвара нову TCP везу ка одредишту наведеном у захтеву за прослеђивање.

То одредиште разрешава relay, а не ваша машина, зато име које постоји само унутар удаљене мреже и даље ради. То такође значи да relay мора моћи да дође до VPN слушаоца и има повратну руту до њега. Име које се разрешава на вашем лаптопу не говори ништа о томе шта relay види.

Покретање SSH сесије доказује само да је relay доступан и аутентификован. Оно не говори да ли је следећи слушалац активан, да ли ватрени зид између relay-а и слушаоца прихвата везу или да ли ће VPN прихватити ваш профил.

Усмерите клијент на локални слушалац

Објављени пример: relay може да дође до TCP слушаоца на gw.internal.example:443, а високи локални порт излаже тај пут само овој машини.

ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]

OpenSSH приручник описује локално прослеђивање као локално прихватање TCP веза и отварање следеће везе са удаљене стране. Вежите слушалац на loopback, а не на сва интерфејса, јер је прослеђивање доступно из мреже отворени relay са вашим именом. Везивање на сва интерфејса такође излаже порт сваком другом локалном налогу на дељеној машини.

Затим поставите VPN клијент у TCP режим и усмерите га на 127.0.0.1:24011. Ако профил користи UDP, овај дизајн не може помоћи: прослеђивање носи ток бајтова и кроз њега нема пута за датаграме.

Држите две аутентификације одвојено

SSH аутентификује relay хост. OpenVPN и даље аутентификује VPN партнера, а loopback одредиште не мења тај захтев. Искључивање провера сертификата зато што сокет сада показује на localhost најгора је пречица у овом дизајну. Она претвара транспортни распоред у распоред поверења, а на други нико није пристао.

Сачувајте сидро поверења профила, проверу серверске улоге и проверу имена нетакнутим. Ако ваш клијент пореди име сервера са адресом коју је позвао, loopback-у може требати изричито подешавање имена уместо искључене провере, а документација профила је место где се потврђује које поље се пореди.

Третирајте relay као другу страну у причи о поверењу: његов администратор види метаподатке веза и може да преусмери прослеђивање ако се конфигурација промени. Распоред захтева одобрење и relay-а и власника VPN услуге, не само онога коме је потребно данас.

Не градите петљу испод тунела

Када VPN инсталира руте, SSH веза која га носи и даље треба пут до relay-а који не иде кроз тунел. Ако подразумевана рута пређе на VPN, а relay је доступан само кроз исти тунел, транспорт се руши и VPN иде с њим. Квар изгледа као пао тунел, а не као грешка рутирања, зато се погрешно дијагностикује.

Уобичајено решење је host рута до адресе relay-а причвршћена за физички интерфејс пре подизања тунела, плус провера да рута преживи поновно повезивање. Проверите је претрагом руте за адресу relay-а уместо да претпоставите да је редослед био тачан.

Очекујте и да ће овај стек бити спорији и крхкији од директне везе, јер сада постоје два уређена транспорта и још једна крајња тачка за одржавање. То је начин да се пређе мрежна граница, а не техника перформанси.

Затворите слушалац када завршите

Зауставите SSH сесију када тунел више није потребан и потврдите да је локални порт ослобођен. Заборављено прослеђивање држи аутентификован пут отворен на машини која може бити дељена.

Прегледајте и дозвољена одредишта прослеђивања на relay-у, јер дозвољавајућа конфигурација претвара сваки компромитовани налог у општу полугу. Запишите порт, relay и одредиште заједно, да следећа особа зна чему је прослеђивање служило и да ли је још одобрено.

Повезани чланци