Kā izveidot SSH tunelēšanu vai ostu pārsūtīšanu Linux


SSH tuneļošana (saukta arī par SSH porta pārsūtīšanu) ir vienkārši novirzīt vietējā tīkla trafiku caur SSH uz attāliem saimniekiem. Tas nozīmē, ka visi savienojumi ir nodrošināti, izmantojot šifrēšanu. Tas nodrošina vienkāršu veidu, kā izveidot pamata VPN (virtuālo privāto tīklu), kas ir noderīgs, lai izveidotu savienojumu ar privātiem tīkliem, izmantojot nedrošus publiskos tīklus, piemēram, internetu.

Jūs varat arī izmantot, lai atklātu vietējos serverus aiz NAT un ugunsmūrus internetā, izmantojot drošus tuneļus, kā tas ir ieviests ngrok.

SSH sesijas pēc noklusējuma ļauj tunelēt tīkla savienojumus, un ir trīs veidu SSH porta pārsūtīšana: vietējā, attālā un dinamiskā porta pārsūtīšana.

Šajā rakstā mēs parādīsim, kā ātri un ērti iestatīt SSH tuneli vai dažādus portu pārsūtīšanas veidus Linux.

Šajā rakstā mēs izmantojam šādu iestatīšanu:

  1. Vietējais resursdators: 192.168.43.31
  2. Attālais resursdators: Linode CentOS 7 VPS ar resursdatora nosaukumu server1.example.com.

Parasti jūs varat droši izveidot savienojumu ar attālo serveri, izmantojot SSH, šādi. Šajā piemērā esmu konfigurējis SSH pieteikšanos bez paroles starp vietējiem un attālajiem resursdatoriem, tāpēc tas nav prasījis lietotāja administratora paroli.

$ ssh [email   

Vietējā SSH ostas pārsūtīšana

Šis porta pārsūtīšanas veids ļauj no vietējā datora izveidot savienojumu ar attālo serveri. Pieņemot, ka esat aiz ierobežojoša ugunsmūra vai izejošais ugunsmūris ir bloķējis piekļuvi lietojumprogrammai, kas darbojas 3000 tālvadības serverī jūsu attālajā serverī.

Jūs varat pārsūtīt vietējo portu (piem., 8080), kuru pēc tam varat izmantot, lai lokāli piekļūtu lietojumprogrammai šādi. Karogs -L nosaka portu, kas pārsūtīts uz attālo resursdatoru un attālo portu.

$ ssh [email  -L 8080: server1.example.com:3000

Ja pievienojat karodziņu -N , neizpildiet attālo komandu, šajā gadījumā jūs nesaņemsit čaumalu.

$ ssh -N [email  -L 8080: server1.example.com:3000

Slēdzis -f uzdod ssh darboties fonā.

$ ssh -f -N [email  -L 8080: server1.example.com:3000

Tagad vietējā mašīnā atveriet pārlūkprogrammu, nevis piekļūstat attālajai lietojumprogrammai, izmantojot adreses server1.example.com:3000, jūs varat vienkārši izmantot localhost: 8080 vai 192.168.43.31: 8080 , kā parādīts zemāk esošajā ekrānuzņēmumā.

Attālā SSH porta pārsūtīšana

Attālā porta pārsūtīšana ļauj izveidot savienojumu no attālās mašīnas ar vietējo datoru. Pēc noklusējuma SSH neatļauj attālinātu ostas pārsūtīšanu. To var iespējot, izmantojot GatewayPorts direktīvu SSHD galvenajā konfigurācijas failā/etc/ssh/sshd_config attālajā resursdatorā.

Atveriet failu rediģēšanai, izmantojot iecienīto komandrindas redaktoru.

$ sudo vim /etc/ssh/sshd_config 

Meklējiet nepieciešamo direktīvu, noņemiet komentāru no tās un iestatiet tās vērtību yes , kā parādīts ekrānuzņēmumā.

GatewayPorts yes

Saglabājiet izmaiņas un izejiet. Pēc tam jums ir jārestartē sshd, lai piemērotu nesen veiktās izmaiņas.

$ sudo systemctl restart sshd
OR
$ sudo service sshd restart 

Pēc tam izpildiet šo komandu, lai tālvadības mašīnā pārsūtītu 5000 portu uz vietējo mašīnu 3000.

$ ssh -f -N [email  -R 5000:localhost:3000

Kad esat sapratis šo tuneļa veidošanas metodi, jūs varat viegli un droši atklāt vietējo attīstības serveri, it īpaši aiz NAT un ugunsmūri, izmantojot internetu, izmantojot drošus tuneļus. Tuneļi, piemēram, Ngrok, pagekite, localtunnel un daudzi citi, darbojas līdzīgi.

Dinamiskā SSH porta pārsūtīšana

Šis ir trešais ostas pārsūtīšanas veids. Atšķirībā no vietējās un attālās portu pārsūtīšanas, kas ļauj sazināties ar vienu portu, tas nodrošina pilnu TCP sakaru diapazonu dažādās ostās. Dinamiska porta pārsūtīšana jūsu ierīci uzstāda kā SOCKS starpniekserveri, kas noklusējuma noklausās 1080. portu.

Iesācējiem SOCKS ir interneta protokols, kas nosaka, kā klients var izveidot savienojumu ar serveri, izmantojot starpniekserveri (šajā gadījumā SSH). Izmantojot opciju -D, varat iespējot dinamisko porta pārsūtīšanu.

Ar šo komandu tiks palaists SOCKS starpniekserveris portā 1080, kas ļaus jums izveidot savienojumu ar attālo resursdatoru.

$ ssh -f -N -D 1080 [email 

Turpmāk jūs varat likt lietojumprogrammām savā datorā izmantot šo SSH starpniekserveri, rediģējot to iestatījumus un konfigurējot tos tā lietošanai, lai izveidotu savienojumu ar attālo serveri. Ņemiet vērā, ka SOCKS starpniekserveris pārtrauks darboties pēc SSH sesijas aizvēršanas.

Šajā rakstā mēs izskaidrojām dažādus ostu pārsūtīšanas veidus no vienas mašīnas uz otru, lai satiksme tiktu tunelēta caur drošu SSH savienojumu. Šis ir viens no ļoti daudziem SSH izmantošanas veidiem. Jūs varat pievienot savu balsi šai rokasgrāmatai, izmantojot zemāk esošo atsauksmju veidlapu.

Uzmanību: SSH porta pārsūtīšanai ir daži būtiski trūkumi, to var ļaunprātīgi izmantot: to var izmantot, lai apietu tīkla uzraudzības un trafika filtrēšanas programmas (vai ugunsmūrus). Uzbrucēji to var izmantot ļaunprātīgām darbībām. Nākamajā rakstā mēs parādīsim, kā atspējot SSH vietējo portu pārsūtīšanu. Paliec pieslēdzies!