Android

Paano mag-set up ng ssh tunneling (port forwarding)

SSH Tunneling - Local & Remote Port Forwarding (by Example)

SSH Tunneling - Local & Remote Port Forwarding (by Example)

Talaan ng mga Nilalaman:

Anonim

Ang SSH tunneling o pagpapasa ng SSH port ay isang paraan ng paglikha ng isang naka-encrypt na koneksyon ng SSH sa pagitan ng isang kliyente at isang server machine kung saan maaaring ma-relay ang mga serbisyo ng port.

Ang pagpasa ng SSH ay kapaki-pakinabang para sa transportasyon ng data ng network ng mga serbisyo na gumagamit ng isang hindi naka-encrypt na protocol, tulad ng VNC o FTP, pag-access sa nilalaman ng geo-restricted o bypassing intermediate firewall. Karaniwan, maaari mong ipasa ang anumang TCP port at lagusan ang trapiko sa isang ligtas na koneksyon sa SSH.

Mayroong tatlong uri ng pagpapadala ng SSH port:

  • Lokal na Port Pagpapasa. - Ipasa ang isang koneksyon mula sa host ng kliyente sa host ng SSH server at pagkatapos ay sa patutunguhan ng host port.Remote Port Pagpapasa. - Ipasa ang isang port mula sa host ng server sa host ng kliyente at pagkatapos ay sa patutunguhan ng host port.Dynamic Port Pagpapasa. - Lumilikha ng SOCKS proxy server na nagbibigay-daan sa komunikasyon sa buong hanay ng mga port.

, pag-uusapan natin ang tungkol sa kung paano mag-set up ng mga lokal, liblib, at dynamic na naka-encrypt na mga tunnel ng SSH.

Lokal na Port Pagpapasa

Pinapayagan ka ng lokal na port pagpasa sa iyo upang maipasa ang isang port sa lokal (ssh client) machine sa isang port sa remote (ssh server) machine, na kung saan ay maipasa sa isang port sa patutunguhang makina.

Sa ganitong uri ng pagpapasa ng kliyente ng SSH ay nakikinig sa isang naibigay na port at lagusan ng anumang koneksyon sa port na iyon sa tinukoy na port sa liblib na SSH server, na pagkatapos ay kumokonekta sa isang port sa patutunguhang makina. Ang patutunguhang makina ay maaaring maging malayong SSH server o anumang iba pang makina.

Ang lokal na port pagpasa ay kadalasang ginagamit upang kumonekta sa isang malayong serbisyo sa isang panloob na network tulad ng isang database o server ng VNC.

Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang lokal na port na nagpapasa ng -L opsyon sa ssh client:

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Ang mga pagpipilian na ginamit ay ang mga sumusunod:

  • LOCAL_PORT - Ang lokal na ip ip at numero ng port. Kapag ang LOCAL_IP ay tinanggal sa ssh client na nagbubuklod sa localhost. DESTINATION:DESTINATION_PORT - Ang IP o hostname at ang port ng patutunguhang makina. SERVER_IP - Ang malayong SSH gumagamit at IP address ng server.

Maaari mong gamitin ang anumang numero ng port na higit sa 1024 bilang isang LOCAL_PORT . Ang mga numero ng port na mas mababa sa 1024 ay mga pribilehiyo na port at maaaring magamit lamang sa pamamagitan ng ugat. Kung ang iyong SSH server ay nakikinig sa isang port maliban sa 22 (ang default) gamitin ang pagpipilian na -p .

Ang hostname ng patutunguhan ay dapat malutas mula sa SSH server.

Sabihin nating mayroon kang isang MySQL database server na tumatakbo sa machine db001.host sa isang panloob (pribadong) network, sa port 3306 na maa-access mula sa machine pub001.host at nais mong kumonekta gamit ang iyong lokal na makina mysql client sa database server. Upang gawin ito maaari mong maipasa ang koneksyon na tulad nito:

ssh -L 3336:db001.host:3306 [email protected]

Kapag pinapatakbo mo ang utos, sasabihan ka upang ipasok ang malalawak na password ng SSH user. Matapos mong ipasok ito, mai-log in ka sa liblib na server at itatatag ang SSH tunnel. Mahusay na mag-set up ng isang SSH key-based na pagpapatotoo at kumonekta sa server nang hindi pumapasok sa isang password.

Ngayon kung ituro mo ang iyong kliyente ng database ng lokal na makina sa 127.0.0.1:3336 , ang koneksyon ay ipapasa sa db001.host:3306 MySQL server sa pamamagitan ng pub001.host machine na kikilos bilang isang intermediate server.

Maaari mong ipasa ang maraming mga port sa maraming mga patutunguhan sa isang solong utos ng ssh. Halimbawa, mayroon kang isa pang MySQL database server na tumatakbo sa machine db002.host at nais mong kumonekta sa parehong mga server mula sa iyong lokal na kliyente na tatakbo mo:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

Upang kumonekta sa pangalawang server ay gagamitin mo ang 127.0.0.1:3337 .

Kapag ang patutunguhan host ay pareho sa SSH server sa halip na tinukoy ang patutunguhan ng IP host o hostname maaari mong gamitin ang localhost .

Sabihin mong kailangan mong kumonekta sa isang malayong makina sa pamamagitan ng VNC na tumatakbo sa parehong server at hindi ito mai-access mula sa labas. Ang utos na gagamitin mo ay:

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

Ang pagpipilian na -f nagsasabi sa utos ng ssh na tumakbo sa background at -N hindi upang magsagawa ng isang malayong utos. localhost kami ng localhost dahil ang VNC at ang SSH server ay tumatakbo sa parehong host.

Remote Port Pagpapasa

Ang pagpapalayo ng malayong port ay kabaligtaran ng pagpapasa ng lokal na port. Pinapayagan ka nitong ipasa ang isang port sa remote (ssh server) machine sa isang port sa lokal (ssh client) machine, na kung saan ay maipasa sa isang port sa patutunguhang makina.

Sa ganitong uri ng pagpapasa ng SSH server ay nakikinig sa isang naibigay na port at lagusan ng anumang koneksyon sa daungan na iyon sa tinukoy na port sa lokal na kliyente ng SSH, na pagkatapos ay kumokonekta sa isang port sa patutunguhang makina. Ang patutunguhang makina ay maaaring maging lokal o anumang iba pang makina.

Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang malayuang port na nagpapasa ng -R pagpipilian sa ssh client:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Ang mga pagpipilian na ginamit ay ang mga sumusunod:

  • REMOTE_PORT - Ang IP at ang numero ng port sa malayong server ng SSH. Ang isang walang laman na REMOTE nangangahulugan na ang malayong SSH server ay magbubuklod sa lahat ng mga interface. DESTINATION:DESTINATION_PORT - Ang IP o hostname at ang port ng patutunguhang makina. SERVER_IP - Ang malayong SSH gumagamit at IP address ng server.

Ang lokal na pagsulong sa port ay kadalasang ginagamit upang magbigay ng access sa isang panloob na serbisyo sa isang tao mula sa labas.

Sabihin nating bumubuo ka ng isang web application sa iyong lokal na makina at nais mong magpakita ng preview sa iyong kapwa developer. Wala kang isang pampublikong IP kaya hindi ma-access ng ibang developer ang application sa pamamagitan ng Internet.

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

Ang utos sa itaas ay gagawa ng ssh server upang makinig sa port 8080 at lagusan ang lahat ng trapiko mula sa port na ito patungo sa iyong lokal na makina sa port 3000 .

Ngayon ay maaaring i-type ng iyong kapwa developer the_ssh_server_ip:8080 sa kanyang browser at i-preview ang iyong kahanga-hangang aplikasyon.

Pagpaparami ng Port

Pinapayagan ka ng dinamikong pagpapadala ng port na lumikha ka ng isang socket sa lokal (ssh client) machine na kumikilos bilang isang server ng SOCKS proxy. Kapag kumokonekta ang isang kliyente sa port na ito ang koneksyon ay maipasa sa remote (ssh server) machine, na kung saan ay maipasa sa isang pabago-bagong port sa patutunguhang makina.

Sa ganitong paraan, ang lahat ng mga application gamit ang SOCKS proxy ay magkakonekta sa SSH server at ipapasa ng server ang lahat ng trapiko sa aktwal na patutunguhan nito.

Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang pabago-bagong port na pagpapasa (SOCKS) ay ipasa ang -D opsyon sa ssh client:

ssh -D LOCAL_PORT SSH_SERVER

Ang mga pagpipilian na ginamit ay ang mga sumusunod:

  • LOCAL_PORT - Ang lokal na ip ip at numero ng port. Kapag ang LOCAL_IP ay tinanggal sa ssh client na nagbubuklod sa localhost. SERVER_IP - Ang malayong SSH gumagamit at IP address ng server.

Ang isang tipikal na halimbawa ng isang pabagu-bago ng port port ay ang lagusan ng web browser traffic sa pamamagitan ng isang SSH server.

Ang sumusunod na utos ay lilikha ng isang lagusan ng SOCKS sa port 9090 :

ssh -D 9090 -N -f [email protected]

Kapag naitatag ang tunneling maaari mong mai-configure ang iyong aplikasyon upang magamit ito. Ipinapaliwanag ng artikulong ito kung paano i-configure ang browser ng Firefox at Google Chrome upang magamit ang SOCKS proxy.

Ang port pagpasa ay dapat na hiwalay na isinaayos para sa bawat application na nais mong i-tunnel ang pag-iisip ng trapiko.

I-set up ang SSH Tunneling sa Windows

Ang mga gumagamit ng Windows ay maaaring lumikha ng mga lagusan ng SSH gamit ang PuTTY SSH client. Maaari mong i-download ang PuTTY dito.

  1. Ilunsad ang Putty at ipasok ang SSH server IP Address sa Host name (or IP address) patlang.

    Ang isang bagong window na humihiling para sa iyong username at password ay lalabas. Kapag naipasok mo ang iyong username at password ay mai-log in ka sa iyong server at magsisimula ang SSH tunnel.

    Ang pag-set up ng pampublikong pangunahing pagpapatunay ay magpapahintulot sa iyo na kumonekta sa iyong server nang hindi pumapasok sa isang password.

Konklusyon

Ipinakita namin sa iyo kung paano mag-set up ng mga lagusan ng SSH at maipasa ang trapiko sa pamamagitan ng isang ligtas na koneksyon sa SSH. Para sa kadalian ng paggamit, maaari mong tukuyin ang SSH tunnel sa iyong SSH config file o lumikha ng isang Bash alyas na magse-set up ng SSH tunnel.

seguridad ng ssh