Dodiet attālajam Pi SOCKS starpniekserveri, izmantojot savu SSH klientu
Attālā dinamiskā pāradresācija novieto SOCKS klausītāju uz Pi un veic tālāko savienojumu no jūsu klēpjdatora apstiprinātā VPN ceļa. Bez otra SSH servera.
Jūs pieņemat, ka SOCKS starpniekserverim jādarbojas tur, kur tīkla piekļuve jau pastāv. OpenSSH var novietot klausītāju pavisam citur. Attālā dinamiskā pāradresācija atver SOCKS portu attālinātā resursdatorā un katru savienojumu sāk no jūsu vietējā SSH klienta, kas pārnēsā jūsu klēpjdatora apstiprināto VPN ceļu. Pi iegūst ierobežotu starpniekserveri; tas nemanto jūsu tuneli vai jūsu privilēģijas.
Klausītājs un puse, no kuras rodas savienojums, var atšķirties
Parasts ssh -D 1080 darbina klausītāju jūsu paša mašīnā un sūta savienojumus no turienes. Attālā dinamiskā pāradresācija to apgriež: klausītājs parādās attālinātajā resursdatorā, un katrs tā pieņemtais savienojums tiek atvērts no vietējās puses. OpenSSH klienta rokasgrāmata dokumentē -R bez fiksēta galamērķa tieši kā šo SOCKS4/5 izkārtojumu.
Atbalstīta komanda no klēpjdatora izskatās šādi, kur konts, resursdatori un ports tiek uzskatīti par vietturiem:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
Trīs detaļas tur dara lietderīgu darbu. -S none tur sesiju pa gabalu no koplietota vadības mastera, ExitOnForwardFailure ātri neizdodas, nevis atstāj jūs ar pusatvērtu sesiju, un PermitRemoteOpen ierobežo, ko attālais klausītājs var sasniegt. Izmantojiet autorizētu Pi kontu un pārbaudiet resursdatora atslēgu pirms jebkā no tā pievienošanas.
Ko attālais klausītājs patiešām atklāj
Pārbaudiet servera pāradresācijas politiku, pirms paļaujaties uz klausītāju. Ar GatewayPorts no attālā pāradresācija paliek piesaistīta loopback, un tā ir tā iedarbība, ko vēlaties. Serveris, kas konfigurēts piespiest vispārīgo pāradresāciju, publicē to pašu portu katrā saskarnē, kas personīgo starpniekserveri pārvērš kaut kam, ko vietējais tīkls var sasniegt.
Loopback arī nav robeža starp lietotājiem. Cits process uz Pi var izveidot savienojumu ar 127.0.0.1:1080, ja zina portu, tāpēc Pi vietējie konti un viss, kas tajā darbojas, ir jūsu piekļuves dizaina daļa. Tas ir iemesls turēt galamērķu sarakstu šauru, nevis iemesls izlaist politikas pārbaudi.
Turiet atļauto galamērķi specifisku tai lietotnei, kurai mēģināt piekļūt. Aizstāšana ar neierobežotu pāradresāciju, lai strādātu nesaistīta programma, paplašina ceļu krietni tālāk par problēmu, ar ko sākāt. Galamērķu saraksts arī fiksē, kam sesija bija paredzēta, kas palīdz tam, kurš to vēlāk auditēs. Pierakstiet to blakus izmantotajam kontam.
Izlaidiet vienu lietotni caur starpniekserveri
Klienta programma uz Pi, kas saprot starpniekserveri, pēc tam var veikt pieprasījumu. Prefikss socks5h nodod galamērķa nosaukumu starpniekserverim, tāpēc meklēšana un savienojums notiek abi klēpjdatora pusē, un tas atbilst nosauktajam galamērķim PermitRemoteOpen:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
Saglabājiet parasto sertifikāta validāciju un pašas lietotnes autentifikāciju. Starpniekserveris maina to, kur tiek izveidots TCP savienojums; tas nepadara neautentificētu pakalpojumu drošu un nepārvērš pašparakstītu galapunktu uzticamā.
Klēpjdatoram joprojām vajag savu maršrutu un piekļuvi atrisinātājam gan pie SSH servera, gan pie lietotnes. Tā SSH klienta plūsma ir jāizvēlas apstiprinātajai VPN politikai, un split-tunnel izņēmums var nosūtīt šo plūsmu pa citu ceļu nekā to, kuru pārbaudījāt.
Pierādiet ceļu un aizveriet to
Apstipriniet, ka klausītājs pastāv tur, kur to gaidāt, un ka atbild tikai paredzētais galamērķis:
$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
--proxy socks5h://127.0.0.1:1080 https://app.corp.example/
ExitOnForwardFailure var pierādīt, ka pāradresācija tika izveidota, un tomēr nevar apliecināt, ka pieteikšanās lietotnē turpmāk izdosies. Pārbaudiet lietotni, ne tikai portu. Klausītājs, kas pieņem un pēc tam izgāž katru pieprasījumu, parasti nozīmē, ka galamērķa nosaukums vai klēpjdatora maršruts ir nepareizs, nevis ka tunelis neizdevās.
Šis izkārtojums pārnēsā tikai TCP. UDP, ICMP un programmas, kas ignorē starpniekservera iestatījumus, paliek ārpus tā, un pāradresācija beidzas tajā brīdī, kad beidzas SSH sesija. Apturiet šo sesiju, kad esat pabeidzis, un noņemiet starpniekservera iestatījumu, ko pievienojāt lietotnei.
Pastāvīgai piekļuvei tā vietā izmantojiet tīkla īpašnieka atbalstīto reģistrāciju vai pārvaldītu vārteju. Apgrieztais starpniekserveris ir nepareizais rīks, lai apietu VPN ierīces vai resursu ierobežojumus; lietots to iekšienē, tas ir vienkārši viens autorizēts lietotnes ceļš ar skaidrām robežām.