Како локалното преземење на SSH носи TCP OpenVPN сесија
Еден локален порт, две автентификувани врски, три транспорти. Што пренесува SSH преземењето и каде сѐ уште важат јамката и проверките на сертификатот.
Овде се наредени три транспорти и секој има свое рамкирање. VPN товарот патува внатре во TLS сесија, таа TLS сесија патува внатре во TCP конекција кон loopback порт, а бајтите на таа конекција патуваат внатре во SSH кон relay хост, кој ја отвора вистинската TCP конекција кон VPN слушателот. Ништо во распоредот не го менува тоа што OpenVPN го автентификува, и ништо во него не прави UDP слушател достапен преку TCP. Остатокот читајте го како опис на патеката на бајтите, а не како рецепт за заобиколување на мрежна контрола.
Што всушност пренесува локалното преземење
SSH клиентот слуша на локален порт. Кога локален процес ќе се поврзе, клиентот ги пакува бајтите во својот шифриран канал, а серверската страна отвора нова TCP конекција кон дестинацијата наведена во барањето за преземење.
Таа дестинација ја решава relay, а не вашата машина, затоа име што постои само внатре во далечната мрежа сѐ уште работи. Тоа значи и дека relay мора да може да го достигне VPN слушателот и да има повратна рута кон него. Име што се решава на вашиот лаптоп не кажува ништо за тоа што relay може да го види.
Започнувањето на SSH сесијата докажува само дека relay е достапен и автентификуван. Тоа не кажува дали следниот слушател е активен, дали firewall меѓу 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 и дестинацијата заедно, за да може следниот човек да знае за што било преземењето и дали сѐ уште е одобрено.