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

Қолданбаға қажет протоколдан бастаңыз

sshuttle 2.0-де протокол қолдауы таңдаған әдісіңізге байланысты. Linux-тың NAT және nft әдістері TCP мен DNS-ті өңдейді, ал TPROXY жалпы UDP қосады. Әр платформа мен әдістің өз шектері бар, ал macOS мүлде басқа механизм арқылы кедергі жасайды. Бірдеңе таңдамас бұрын орнатылған нұсқаны, таңдалған әдісті және қолданбаға қажет протоколдарды жазып алыңыз.

Сондықтан жұмыс істейтін TCP сұранысы UDP қолданбасы немесе әрбір DNS сұранысы туралы өте аз дәлелдейді. sshuttle TCP-ні тұтас IP пакеттерін туннельдеудің орнына ағындар ретінде қарастырады, сондықтан дәстүрлі VPN-нен алынған өткізу қабілеті туралы қорытынды бұл жерге ауыспайды. Шын мәнінде іске қосатын механизмді шын мәнінде бар жүктемемен салыстырыңыз.

ApproachWhat it carriesWhat it needs locally
SSH local forwardOne explicitly named TCP destinationNothing beyond the SSH client
sshuttle, nft or nat methodTCP and DNS to the routed prefixesRoot or sudo for firewall rules
sshuttle, tproxy methodTCP, DNS and general UDPRoot or sudo, and kernel support
IP VPNRouted IP traffic in a tunnelA client with the required privileges

Клиентке жергілікті түрде не қажет

Құжатталған клиенттік құрылым root немесе sudo қажет етеді, өйткені ол туннель интерфейсін жасаудың орнына жергілікті кедергі ережелерін орнатады. Осы бір факт қауіпсіздік тарихын өзгертеді: мұндай құқығы бар процесс бүкіл машинаның трафигін бағыттай алады, тек бір қолданбаныкін ғана емес. Құқықты орнату егжей-тегжейі емес, жобалаудың бөлігі ретінде қарастырыңыз.

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

sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route

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

Қашықтағы жақ нені іске қосады

Қашықтағы жақ рұқсат етілген SSH тіркелгісі және үйлесімді Python көмекші ортасы. Шектеулі қабықша астында сәтті кіру сол көмекшіні іске қосуға автоматты түрде рұқсат бермейді, ал көмекшіні іске қоса алатын тіркелгі әрбір мақсатты қызметке автоматты түрде жете бермейді. Екі факті де ақаулықтарды жою жазбаларына емес, қатынау сұранысына тиесілі.

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

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

Сенім шекарасы қайда жатыр

Жеке API қосылымын SSH арқылы жіберу әрбір API операциясына рұқсат бермейді. Қолданбаның TLS-і және қолданбаға кіру әлі де қолданылады, ал құрал аутентификациясыз қызметті қауіпсіз ете алмайды. Қашықтағы хосттан келесі секіріс те автоматты түрде SSH арнасымен бірдей қорғалған сегмент емес, өйткені бұл екінші қосылым қашықтағы хосттың қандай саясаты болса, соған бағынады.

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

Оны әр протокол бойынша дәлелдеңіз, содан кейін құралды таңдаңыз

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

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

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