SSH lokāla pāradresācija uz esošu HTTP starpniekserveri: divas loopback adreses
Esošs starpniekserveris SSH saimniekā var apkalpot vienu lietotni ar vienu lokālu pāradresāciju. Šķiriet divas loopback adreses un starpniekservera protokolu.
Jūsu apstiprinātais starpniekserveris darbojas lēciena saimniekā, kur tas klausās tikai loopback, tāpēc nekas ārpus šīs mašīnas to nevar sasniegt. Jums nav vajadzīgs VPN vai jauns starpniekserveris; jums vajadzīgs viens šīs mašīnas ports, kas pārnests uz vienu jūsu portu. Lokāla pāradresācija dara tieši to, un tai vajadzīga viena komanda plus viens lietotnes iestatījums. Apjukums parasti rodas, sajaucot, kura loopback adrese pieder kurai mašīnai.
Izlemiet, vai fiksēts starpniekserveris jau pastāv
Šī metode pāradresē pakalpojumu, kas jau darbojas. Ja attālajā saimniekā ir tikai SSH dēmons un nav starpniekservera, nekāds pāradresācijas apjoms to neradīs, un savienojums tiks noraidīts no attālās puses. Pārliecinieties, ka starpniekserveris ir piesaistīts, kāds ir tā ports un vai tas klausās 127.0.0.1 vai konkrētā saskarnes adresē, jo tieši šī adrese ir pāradresācijas mērķis.
Ja to pārbaudāt vispirms, jūs izvairīsities no tāda tuneļa atkļūdošanas, kas nekad nav bijis ar kaut ko savienots.
Izveidojiet pāradresāciju un izlasiet komandu
Vēlamā forma piesaista loopback portu jūsu klēpjdatorā un no servera puses savieno to ar starpniekservera adresi tā, kā serveris to redz.
ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
-L 127.0.0.1:13128:127.0.0.1:3128 [email protected]-N nomāc attālo komandu, un -T nomāc termios piešķiršanu, jo jums vajadzīgs tunelis, nevis čaula. Pirmā loopback adrese ir vieta, kur klausās klēpjdators; otro atrisina SSH serveris, tāpēc 127.0.0.1 tur nozīmē starpniekserveri tajā mašīnā. ExitOnForwardFailure liek komandai skaļi neizdoties, ja lokālais ports jau ir aizņemts, tā vietā lai sāktu sesiju, kas neko nepāradresē. Rakstiet mērķa adresi tā, kā to atrisina serveris, jo vārds, ko var atrisināt tikai jūsu klēpjdators, otrā pusē neizdosies.
Paša servera politika ir spēkā, pirms kaut kas no šī darbojas. AllowTcpForwarding tam ir jāļauj, un PermitOpen var ierobežot, kuras destinācijas un portus sesija var sasniegt, tāpēc serveris joprojām var noraidīt pāradresāciju, ko klients pieņem. Noraidījums klientā parādās kā pāradresācijas vai kanāla kļūda, un šo ziņojumu ir ātrāk izlasīt nekā rediģēt komandu.
Novirziet vienu lietotni uz pāradresāciju
Konfigurējiet lietotni izmantot HTTP starpniekserveri adresē http://127.0.0.1:13128, ar akreditācijas datiem, ja attālais starpniekserveris tos pieprasa. Saglabājiet pašas lietotnes sertifikātu pārbaudi HTTPS mērķiem, jo starpniekservera tunelis to neaizstāj. Šī ir fiksēta viena pakalpojuma pāradresācija, tāpēc lietotnei ir jāpasaka par starpniekserveri, nevis jāatstāj tai pašai to atklāt.
Ātra pārbaude pirms jebkādas pastāvīgas konfigurācijas: curl -x http://127.0.0.1:13128 -I https://example.com, kas pārbauda HTTP CONNECT metodi, kuru starpniekserverim ir jāatbalsta.
Saglabājiet pilnvaras tur, kur tās bija
Attālais starpniekserveris joprojām izlemj, kuras destinācijas un metodes tas atļauj, un SSH pieteikšanās nedrīkstētu klusi piešķirt katram kontam vispārēju tīmekļa releju. Piesaiste 127.0.0.1 klēpjdatorā ļauj izvairīties no porta publicēšanas jūsu vietējā tīklā, un tā nepadara portu privātu pret citiem procesiem tajā pašā mašīnā. Šīs piesaistes aizstāšana ar aizstājējzīmes adresi, lai dalītos ar starpniekserveri, ir veids, kā rodas nepārvaldīts atvērts relejs.
SSH transports aizsargā lēcienu līdz serverim. Aiz šī punkta starpniekserveris atver savu savienojumu, tāpēc vienkāršs HTTP pieprasījums uz destināciju paliek vienkāršs arī aiz servera, lai gan pirmais posms bija šifrēts.
Pārbaudiet abus galus, tad sakārtojiet
Lokālā tuneļa iestatīšana un attālā pakalpojuma panākumi ir dažādi rezultāti, un komandas izejas statuss jums stāsta tikai par pirmo. Pārbaudiet, vai klausītājs pastāv, izmantojot ss -ltn, pēc tam veiciet atļautu lietotnes pieprasījumu un pieprasījumu, kuru starpniekserverim vajadzētu noraidīt. Ja abi uzvedas kā gaidīts, ceļš ir īsts; ja tunelis darbojas un katrs pieprasījums neizdodas, starpniekserveris noraida vai nevar sasniegt destināciju.
Kad esat pabeidzis, apturiet to īpašo SSH procesu, noņemiet starpniekservera iestatījumu no lietotnes un apstipriniet, ka lokālais ports ir pazudis, nevis atstājiet klausītāju, kas pārdzīvos uzdevumu.