Paano Gumamit ng SSH Tunneling upang Ma-access ang Mga Pinaghihigpitang Servers at Ligtas na Mag-browse

Ang isang client ng SSH ay kumokonekta sa isang Secure Shell server, na nagbibigay-daan sa iyo upang magpatakbo ng mga terminal command na parang nakaupo ka sa harap ng isa pang computer. Ngunit pinapayagan ka rin ng isang kliyente ng SSH na "tunnel" ang isang port sa pagitan ng iyong lokal na system at isang remote SSH server.

Mayroong tatlong magkakaibang uri ng SSH tunneling, at lahat sila ay ginagamit para sa iba't ibang mga layunin. Ang bawat isa ay nagsasangkot ng paggamit ng isang SSH server upang mai-redirect ang trapiko mula sa isang network port sa isa pa. Ipinadala ang trapiko sa naka-encrypt na koneksyon ng SSH, kaya't hindi ito maaaring subaybayan o mabago sa transit.

Maaari mo itong gawin sa ssh kasama ang utos sa Linux, macOS, at iba pang mga operating system na tulad ng UNIX. Sa Windows, na hindi kasama ang isang built-in na utos ng ssh, inirerekumenda namin ang libreng tool na PuTTY upang kumonekta sa mga SSH server. Sinusuportahan din nito ang tunneling ng SSH.

Pagpasa ng Lokal na Port: Paganahin ang Remote na Mga Mapagkukunan sa Iyong Lokal na Sistema

Pinapayagan ka ng "pagpapasa ng lokal na port" na mag-access ng mga mapagkukunang lokal na network na hindi nakalantad sa Internet. Halimbawa, sabihin nating nais mong mag-access ng isang database server sa iyong tanggapan mula sa iyong bahay. Para sa mga kadahilanang panseguridad, naka-configure lamang ang server ng database na iyon upang tanggapin ang mga koneksyon mula sa lokal na network ng tanggapan. Ngunit kung mayroon kang access sa isang SSH server sa opisina, at pinapayagan ng SSH server ang mga koneksyon mula sa labas ng network ng tanggapan, maaari kang kumonekta sa SSH server na iyon mula sa bahay at ma-access ang database server na parang nasa opisina ka. Kadalasan ito ang kaso, dahil mas madaling ma-secure ang isang solong SSH server laban sa mga pag-atake kaysa sa pag-secure ng iba't ibang iba't ibang mga mapagkukunan sa network.

Upang magawa ito, magtataguyod ka ng isang koneksyon sa SSH sa SSH server at sasabihin sa kliyente na ipasa ang trapiko mula sa isang tukoy na port mula sa iyong lokal na PC — halimbawa, port 1234 — sa address ng server ng database at port nito sa network ng opisina. Kaya, kapag tinangka mong i-access ang database server sa port 1234 iyong kasalukuyang PC, "localhost", ang trapikong iyon ay awtomatikong "nai-tunnel" sa koneksyon ng SSH at ipinadala sa database server. Ang SSH server ay nakaupo sa gitna, nagpapasa ng pabalik-balik na trapiko. Maaari mong gamitin ang anumang linya ng utos o graphic na tool upang ma-access ang database server na parang tumatakbo ito sa iyong lokal na PC.

Upang magamit ang lokal na pagpapasa, kumonekta sa SSH server nang normal, ngunit ibigay din ang -L pagtatalo Ang syntax ay:

ssh -L local_port: remote_address: remote_port [email protected]

Halimbawa, sabihin nating ang database server sa iyong tanggapan ay matatagpuan sa 192.168.1.111 sa network ng tanggapan. Mayroon kang access sa SSH server ng opisina sa ssh.youroffice.com , at ang iyong account ng gumagamit sa SSH server ay bob . Sa kasong iyon, ganito ang magiging hitsura ng iyong utos:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Matapos patakbuhin ang utos na iyon, ma-access mo ang database server sa port 8888 sa localhost. Kaya, kung nag-aalok ang database server ng pag-access sa web, maaari mong i-plug ang // localhost: 8888 sa iyong web browser upang ma-access ito. Kung mayroon kang tool sa linya ng utos na nangangailangan ng address ng network ng isang database, ituturo mo ito sa localhost: 8888. Ang lahat ng trapiko na ipinadala sa port 8888 sa iyong PC ay maaasenel sa 192.168.1.111:1234 sa iyong network ng tanggapan.

Ito ay medyo nakalilito kung nais mong kumonekta sa isang application ng server na tumatakbo sa parehong system tulad ng SSH server mismo. Halimbawa, sabihin nating mayroon kang isang SSH server na tumatakbo sa port 22 sa iyong computer sa tanggapan, ngunit mayroon ka ding isang database server na tumatakbo sa port 1234 sa parehong system sa parehong address. Nais mong i-access ang database server mula sa bahay, ngunit ang system ay tumatanggap lamang ng mga koneksyon sa SSH sa port 22 at hindi pinapayagan ng firewall nito ang anumang iba pang mga panlabas na koneksyon.

Sa kasong ito, maaari kang magpatakbo ng isang utos tulad ng sumusunod:

ssh -L 8888: localhost: 1234 [email protected]

Kapag tinangka mong i-access ang database server sa port 8888 sa iyong kasalukuyang PC, ipapadala ang trapiko sa koneksyon sa SSH. Kapag dumating ito sa system na nagpapatakbo ng SSH server, ipapadala ito ng SSH server sa port 1234 sa "localhost", na parehong PC na nagpapatakbo ng SSH server mismo. Kaya't ang "localhost" sa utos sa itaas ay nangangahulugang "localhost" mula sa pananaw ng remote server.

Upang magawa ito sa application na PuTTY sa Windows, piliin ang Koneksyon> SSH> Tunnels. Piliin ang opsyong "Lokal". Para sa "Source Port", ipasok ang lokal na port. Para sa "Patutunguhan", ipasok ang patutunguhang address at port sa form na remote_address: remote_port.

Halimbawa, kung nais mong i-set up ang parehong lagusan ng SSH tulad ng nasa itaas, papasok ka 8888 bilang pinagmulan port at localhost: 1234 bilang patutunguhan. I-click ang "Idagdag" pagkatapos at pagkatapos ay i-click ang "Buksan" upang buksan ang koneksyon sa SSH. Kakailanganin mo ring ipasok ang address at port ng SSH server mismo sa pangunahing screen na "Session" bago kumonekta, syempre.

Remote Port Forwarding: Gawing Naa-access ang Mga Lokal na Mapagkukunan sa isang Remote System

Ang "Remote port forwarding" ay kabaligtaran ng lokal na pagpapasa, at hindi ginagamit nang madalas. Pinapayagan kang gumawa ng isang mapagkukunan sa iyong lokal na PC na magagamit sa SSH server. Halimbawa, sabihin nating nagpapatakbo ka ng isang web server sa lokal na PC na iyong inuupuan sa harap. Ngunit ang iyong PC ay nasa likod ng isang firewall na hindi pinapayagan ang papasok na trapiko sa server software.

Ipagpalagay na maaari mong ma-access ang isang malayuang SSH server, maaari kang kumonekta sa SSH server na iyon at gumamit ng remote port forwarding. Sasabihin ng iyong SSH client sa server na ipasa ang isang tukoy na port — sabihin, port 1234 — sa server ng SSH sa isang tukoy na address at port sa iyong kasalukuyang PC o lokal na network. Kapag may nag-access sa port 1234 sa SSH server, ang trapikong iyon ay awtomatikong "masusubaybayan" sa koneksyon ng SSH. Ang sinumang may access sa SSH server ay maaaring ma-access ang web server na tumatakbo sa iyong PC. Ito ay mabisang isang paraan upang lagusan sa pamamagitan ng mga firewall.

Upang magamit ang remote forwarding, gamitin ang ssh utos kasama ang -R pagtatalo Ang syntax ay higit sa lahat kapareho ng sa lokal na pagpapasa:

ssh -R remote_port: local_address: local_port [email protected]

Sabihin nating nais mong gumawa ng isang application ng server na nakikinig sa port 1234 sa iyong lokal na PC na magagamit sa port 8888 sa remote SSH server. Ang address ng SSH server ay ssh.youroffice.com at ang iyong username sa SSH server ay bob. Tatakbo mo ang sumusunod na utos:

ssh -R 8888: localhost: 1234 [email protected]

Ang isang tao ay maaaring kumonekta sa SSH server sa port 8888 at ang koneksyon na iyon ay maaayos sa application ng server na tumatakbo sa port 1234 sa lokal na PC na iyong itinatag ang koneksyon.

Upang magawa ito sa PuTTY sa Windows, piliin ang Koneksyon> SSH> Tunnels. Piliin ang pagpipiliang "Remote". Para sa "Source Port", ipasok ang remote port. Para sa "Patutunguhan", ipasok ang patutunguhang address at port sa form na local_address: local_port.

Halimbawa, kung nais mong i-set up ang halimbawa sa itaas, papasok ka 8888 bilang pinagmulan port at localhost: 1234 bilang patutunguhan. I-click ang "Idagdag" pagkatapos at pagkatapos ay i-click ang "Buksan" upang buksan ang koneksyon sa SSH. Kakailanganin mo ring ipasok ang address at port ng SSH server mismo sa pangunahing screen na "Session" bago kumonekta, syempre.

Ang mga tao ay maaaring kumonekta sa port 8888 sa SSH server at ang kanilang trapiko ay isasaayos sa port 1234 sa iyong lokal na system.

Bilang default, makikinig lamang ang remote na SSH server sa mga koneksyon mula sa parehong host. Sa madaling salita, ang mga tao lamang sa parehong system tulad ng SSH server mismo ang makakakonekta. Ito ay para sa mga kadahilanang panseguridad. Kakailanganin mong paganahin ang opsyong "GatewayPorts" sa sshd_config sa remote na SSH server kung nais mong i-override ang pag-uugali na ito.

Dynamic Port Forwarding: Gamitin ang Iyong SSH Server bilang isang Proxy

KAUGNAYAN:Ano ang Pagkakaiba sa Pagitan ng isang VPN at isang Proxy?

Mayroon ding "dinamikong pagpapasa ng port", na gumagana nang katulad sa isang proxy o VPN. Lilikha ang SSH client ng isang SOCKS proxy na maaari mong i-configure ang mga application na gagamitin. Ang lahat ng trapiko na ipinadala sa pamamagitan ng proxy ay ipapadala sa pamamagitan ng SSH server. Ito ay katulad ng lokal na pagpapasa — tumatagal ng lokal na trapiko na ipinadala sa isang tukoy na port sa iyong PC at ipinapadala ito sa koneksyon ng SSH sa isang malayuang lokasyon.

KAUGNAYAN:Bakit Ang Mapanganib na Paggamit ng isang Public Wi-Fi Network, Kahit na Pag-access sa Mga Naka-encrypt na Website

Halimbawa, sabihin nating gumagamit ka ng isang pampublikong Wi-Fi network. Nais mong mag-browse nang ligtas nang hindi na-snoop. Kung mayroon kang pag-access sa isang SSH server sa bahay, maaari kang kumonekta dito at gumamit ng pabagu-bagong pagpapasa ng port. Lilikha ang SSH client ng isang SOCKS proxy sa iyong PC. Ang lahat ng trapiko na ipinadala sa proxy na iyon ay ipapadala sa koneksyon ng SSH server. Walang sinumang pagsubaybay sa pampublikong network ng Wi-Fi ang makakapagsubaybay sa iyong pagba-browse o isensor ang mga website na maaari mong ma-access. Mula sa pananaw ng anumang mga website na iyong binibisita, magiging para kang nakaupo sa harap ng iyong PC sa bahay. Nangangahulugan din ito na maaari mong gamitin ang trick na ito upang ma-access ang mga website na US lamang habang nasa labas ng USA-sa pag-aakalang mayroon kang access sa isang SSH server sa USA, siyempre.

Bilang isa pang halimbawa, baka gusto mong i-access ang isang application ng server ng media na mayroon ka sa iyong home network. Para sa mga kadahilanang panseguridad, maaari ka lamang magkaroon ng isang SSH server na nakalantad sa Internet. Hindi mo pinapayagan ang mga papasok na koneksyon mula sa Internet patungo sa iyong application ng server ng media. Maaari mong i-set up ang pabagu-bagong pagpapasa ng port, i-configure ang isang web browser upang magamit ang SOCKS proxy, at pagkatapos ay i-access ang mga server na tumatakbo sa iyong home network sa pamamagitan ng web browser na para bang nakaupo ka sa harap ng iyong SSH system sa bahay. Halimbawa, kung ang iyong media server ay matatagpuan sa port 192.168.1.123 sa iyong home network, maaari mong i-plug ang address 192.168.1.123 sa anumang application na gumagamit ng SOCKS proxy at i-access mo ang media server na para bang nasa iyong network ng bahay.

Upang magamit ang dinamikong pagpapasa, patakbuhin ang ssh command kasama ang -D argumento, tulad nito:

ssh -D local_port [email protected]

Halimbawa, sabihin nating mayroon kang access sa isang SSH server sa ssh.yourhome.com at ang iyong username sa SSH server ay bob . Nais mong gamitin ang dinamikong pagpapasa upang buksan ang isang SOCKS proxy sa port 8888 sa kasalukuyang PC. Tatakbo mo ang sumusunod na utos:

ssh -D 8888 [email protected]

Maaari mong mai-configure ang isang web browser o ibang application upang magamit ang iyong lokal na IP address (127.0.01) at port 8888. Ang lahat ng trapiko mula sa application na iyon ay maire-redirect sa pamamagitan ng lagusan.

Upang magawa ito sa PuTTY sa Windows, piliin ang Koneksyon> SSH> Tunnels. Piliin ang pagpipiliang "Dynamic". Para sa "Source Port", ipasok ang lokal na port.

Halimbawa, kung nais mong lumikha ng isang SOCKS proxy sa port 8888, papasok ka 8888 bilang source port. I-click ang "Idagdag" pagkatapos at pagkatapos ay i-click ang "Buksan" upang buksan ang koneksyon sa SSH. Kakailanganin mo ring ipasok ang address at port ng SSH server mismo sa pangunahing screen na "Session" bago kumonekta, syempre.

Maaari mo nang mai-configure ang isang application upang ma-access ang SOCKS proxy sa iyong lokal na PC (iyon ay, IP address 127.0.0.1, na tumuturo sa iyong lokal na PC) at tukuyin ang tamang port.

KAUGNAYAN:Paano Mag-configure ng isang Proxy Server sa Firefox

Halimbawa, maaari mong i-configure ang Firefox upang magamit ang SOCKS proxy. Partikular itong kapaki-pakinabang dahil ang Firefox ay maaaring magkaroon ng sarili nitong mga setting ng proxy at hindi na kailangang gumamit ng mga setting ng proxy sa buong system. Ipapadala ng Firefox ang trapiko nito sa pamamagitan ng tunnel ng SSH, habang ang ibang mga application ay gagamitin ang iyong koneksyon sa Internet nang normal.

Kapag ginagawa ito sa Firefox, piliin ang "Manu-manong pagsasaayos ng proxy", ipasok ang "127.0.0.1" sa host box ng SOCKS, at ipasok ang dynamic na port sa kahon na "Port". Iwanan ang HTTP Proxy, SSL Proxy, at FTP Proxy box na walang laman.

Mananatiling aktibo at magbubukas ang tunnel hangga't mayroon kang bukas na koneksyon sa sesyon ng SSH. Kapag natapos mo ang iyong sesyon ng SSH at idiskonekta mula sa isang server, isasara din ang tunnel. Muling kumonekta sa naaangkop na utos (o ang mga naaangkop na pagpipilian sa PuTTY) upang muling buksan ang tunnel.


$config[zx-auto] not found$config[zx-overlay] not found