Sasniegt HTTPS vietni, kas pieejama tikai caur VPN, izmantojot SSH pāradresāciju
Savienojiet vienu HTTPS pakalpojumu, kas pieejams tikai caur VPN, ar lokālu SSH pāradresāciju, saglabājiet īsto resursdatora nosaukumu ar --connect-to un ziniet, ko viena TCP pāradresācija nevar aptvert.
Vienai mašīnai jau ir apstiprināta VPN piekļuve, otrai mašīnai vajadzīgs tieši viens privāts HTTPS pakalpojums, un lokāla SSH pāradresācija var aizpildīt šo plaisu, nedodot otrajai mašīnai tuneli. Pāradresācija pārvieto vienu TCP galamērķi, nevis visu tīklu, un tieši šis ierobežojums ir būtība. Veiciet piecus tālāk minētos soļus secīgi, jo katrs neizdodas cita iemesla dēļ un vēlāks solis nevar glābt agrāku plaisu. Ja trūkst kāda priekšnoteikuma, šis risinājums to neatrisina un nekāda komandu regulēšana nepalīdzēs.
Pirmais solis: apstipriniet trīs priekšnoteikumus
Trim lietām jau jābūt patiesām, pirms kāda komanda iegūst nozīmi. Vajadzīga atļauja izmantot pirmo mašīnu kā pāradresācijas resursdatoru, strādājoša SSH piekļuve tai un servera politika, kas atļauj paredzēto galamērķi. SSH kontā, kas izveidots failu pārsūtīšanai, pāradresācija var būt atspējota, un serveris, kas atļauj pāradresāciju, tomēr var ierobežot, kuri galamērķi ir sasniedzami caur to. Jautājiet pirms testēšanas, jo kolēģa darbstacijas izmantošana kā lēciena punkta bez vienošanās ir politikas problēma, pat ja komanda darbojas nevainojami.
Divas komandas atrisina šī saraksta tehnisko pusi. Pirmā pierāda, ka konts un atslēga darbojas bez interaktīva pieprasījuma, un otrā izdrukā faktisko servera politiku, nevis konfigurācijas failā komentēto piemēru.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
Otrais solis: piesaistiet loopback portu un uzturiet sesiju dzīvu
Mašīnā, kas palaiž klienta lietotni, atveriet lokālu pāradresāciju uz privāto pakalpojumu. Piesaistiet to skaidri loopback, lai tas netiktu publicēts lokālajā tīklā, un izvēlieties augstu portu, ko vēl neaizņem neviens lokāls pakalpojums. Uzturiet sesiju darbojamies, kamēr strādājat, jo tās aizvēršana aizver arī klausītāju. ExitOnForwardFailure noraidītu piesaisti vai aizņemtu portu pārvērš tūlītējā iziešanā, nevis sesijā, kas paliek bez pāradresācijas, un tieši šis atteices režīms iztērē visvairāk laika.
Privātais savienojums tiek izveidots no lēciena resursdatora, tāpēc tā DNS, maršrutiem, VPN politikai un pakalpojuma piekļuvei visiem jādarbojas. SSH sesija nerada sasniedzamību, kāda lēciena resursdatoram nav, un nevar salabot maršrutu, ko VPN nekad nav nosūtījis. Apstipriniet klausītāju tur, kur tas patiešām atrodas, nevis paļaujoties uz komandas klusumu.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
Trešais solis: saglabājiet HTTPS nosaukumu, kad ligzda ir lokāla
Pārlūkošana uz https://127.0.0.1:9443/ maina TLS servera nosaukumu un lietotnes pilnvaru. Sertifikāts, kas izsniegts portal.lab.example, netiks validēts pret loopback adresi, un radusies kļūda izskatās kā salauzts sertifikāts, nevis kā pāradresācijas saīsne. Komandrindas testam saglabājiet īsto URL un mainiet tikai ligzdas galamērķi. To dara --connect-to, un curl rokasgrāmata dokumentē tālāk izmantoto četru lauku formu.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
Nosaukums paliek URL, TLS rokasspiedienā un Host galvenē, bet TCP savienojums iet uz lokālo klausītāju. Bez starpniekservera opcija notur testu uz šo pāradresāciju, nevis ļauj konfigurētam HTTP starpniekserverim to pārtvert, un sertifikāta pārbaudes ieslēgtas saglabāšana ir tas, kas padara rezultātu jēgpilnu.
Ceturtais solis: ziniet, ko viena pāradresācija nevar aptvert
Viena TCP pāradresācija aptver vienu galamērķa portu. Lapai, kas novirza uz otru resursdatora nosaukumu, ielādē resursus no resursdatora privātajā tīklā vai sūta uz citu portu, vajadzīga sava pāradresācija, un katrai no tām vajadzīga tāda pati politikas pārbaude kā pirmajai. Pārlūka darbplūsmas pievieno savas prasības, jo pārlūkam jāpasaka sūtīt īsto nosaukumu uz lokālo portu, izmantojot starpniekservera konfigurāciju vai lokālu kartējumu. Tāpēc veiksmīgs komandrindas tests nepierāda, ka pārlūks arī to spēs, lai gan pierāda ceļu.
UDP, SMB atklāšana un domēna pieteikšanās vispār neiet caur TCP pāradresāciju. Ja patiesā vajadzība ir vispārēja tīkla piekļuve, šis risinājums ir nepareizais rīks, un atbalstīts attālinātās piekļuves vārteja ir pareizais.
Piektais solis: sakārtojiet un pierakstiet
Apturiet sesiju, kad tests ir pabeigts, un apstipriniet, ka klausītājs ir pazudis. Ja izvēlētais ports jau bija aizņemts, izvēlieties citu neizmantotu loopback portu un atjauniniet URL, testa komandu un piezīmi kopā, nevis apturiet nesaistītu lokālu pakalpojumu, lai atbrīvotu numuru. Atstāta atvērta pāradresācija klēpjdatorā pārvērš diagnostiku neapkopētā pakalpojumā.
Pierakstiet lēciena resursdatoru, pāradresēto galamērķi, lokālo portu un to, kas apstiprināja vienošanos. Pāradresācija, kas pastāv tikai kāda shell vēsturē, ir viena pārstartēšana no atkārtotas izmeklēšanas, un nākamā persona nezinās, kurš no trim priekšnoteikumiem jau ir pārbaudīts.