Android

Bagaimana untuk menubuhkan ssh tunneling (port forwarding)

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

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

Isi kandungan:

Anonim

Terowong SSH atau penghantaran SSH pelabuhan adalah satu kaedah untuk mewujudkan sambungan SSH yang disulitkan antara pelanggan dan mesin pelayan di mana port perkhidmatan boleh disampaikan.

Penerusan SSH berguna untuk mengangkut data rangkaian perkhidmatan yang menggunakan protokol yang tidak disenkrit, seperti VNC atau FTP, mengakses kandungan yang dibatasi geo atau melintasi firewall pertengahan. Pada dasarnya, anda boleh meneruskan sebarang port TCP dan terowong lalu lintas melalui sambungan SSH yang selamat.

Terdapat tiga jenis penyambungan pelabuhan SSH:

  • Pemajuan Pelabuhan Tempatan. - Mengemukakan sambungan dari hos klien ke hos pelayan SSH dan kemudian ke port hos destinasi.Remote Port Forwarding. - Memajukan pelabuhan dari hos pelayan ke hos pelanggan dan kemudian ke hos destinasi pelabuhan. Pengiriman Port Dinamik. - Mencipta pelayan proksi SOCKS yang membolehkan komunikasi merentasi pelbagai port.

, kami akan membincangkan tentang bagaimana untuk menetapkan terowong SSH tempatan, jauh, dan dinamik yang disulitkan.

Pemajuan Pelabuhan Tempatan

Pemajuan port tempatan membolehkan anda menghantar port pada mesin lokal (ssh client) ke port pada mesin remote (ssh server), yang kemudiannya diteruskan ke port pada mesin destinasi.

Dalam jenis penyampaian pelanggan SSH ini mendengar pada port yang diberikan dan terowong sebarang sambungan ke port tersebut ke port tertentu pada pelayan SSH jauh, yang kemudiannya menyambung ke port pada mesin destinasi. Mesin destinasi boleh menjadi pelayan SSH jauh atau mesin lain.

Pemajuan port tempatan kebanyakannya digunakan untuk menyambung ke perkhidmatan terpencil pada rangkaian dalaman seperti pangkalan data atau pelayan VNC.

Di Linux, macOS dan sistem Unix lain untuk membuat penghantaran port tempatan lulus pilihan -L kepada klien ssh :

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Pilihan yang digunakan adalah seperti berikut:

  • LOCAL_PORT - Nombor mesin dan nombor mesin tempatan. Apabila LOCAL_IP diabaikan mengikat klien ssh di localhost. DESTINATION:DESTINATION_PORT - IP atau nama hos dan pelabuhan mesin destinasi. SERVER_IP - Alamat IP pengguna dan pelayan SSH jauh.

Anda boleh menggunakan mana-mana nombor port yang lebih besar daripada 1024 sebagai LOCAL_PORT . Nombor pelabuhan kurang daripada 1024 adalah port istimewa dan boleh digunakan hanya dengan root. Jika pelayan SSH anda mendengar pada port selain daripada 22 (lalai) gunakan pilihan -p .

Nama hos destinasi mesti diselesaikan dari pelayan SSH.

Katakan anda mempunyai pelayan pangkalan data MySQL yang menjalankan mesin db001.host pada rangkaian dalaman (peribadi), pada port 3306 yang boleh diakses dari mesin pub001.host dan anda ingin menyambung menggunakan mesin mysql mesin tempatan anda ke pelayan pangkalan data. Untuk berbuat demikian, anda boleh meneruskan sambungan seperti itu:

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

Sebaik sahaja anda menjalankan arahan, anda akan diminta memasukkan kata laluan pengguna SSH jauh. Selepas memasukkannya, anda akan dilog masuk ke pelayan jauh dan terowong SSH akan ditubuhkan. Adalah idea yang baik untuk menyiapkan pengesahan berasaskan kunci SSH dan menyambung ke pelayan tanpa memasukkan kata laluan.

Sekarang jika anda menunjuk pelanggan pangkalan data mesin tempatan anda ke 127.0.0.1:3336 , sambungan akan diteruskan ke pelayan db001.host:3306 MySQL melalui mesin pub001.host yang akan bertindak sebagai pelayan perantaraan.

Anda boleh menghantar beberapa port ke pelbagai destinasi dalam satu arahan ssh. Sebagai contoh, anda mempunyai pelayan pangkalan data MySQL lain yang berfungsi di mesin db002.host dan anda mahu menyambung ke kedua-dua pelayan dari klien setempat anda yang anda jalankan:

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

Untuk menyambung ke pelayan kedua yang anda gunakan 127.0.0.1:3337 .

Apabila hos destinasi adalah sama dengan pelayan SSH dan bukannya menentukan IP destinasi atau nama hos destinasi anda boleh menggunakan localhost .

Katakan anda perlu menyambung ke mesin jauh melalui VNC yang berjalan di pelayan yang sama dan tidak dapat diakses dari luar. Perintah yang akan anda gunakan ialah:

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

Pilihan -f memberitahu arahan ssh untuk berjalan di latar belakang dan -N bukan untuk melaksanakan arahan jauh. Kami menggunakan localhost kerana pelayan VNC dan SSH sedang berjalan pada tuan rumah yang sama.

Penghantaran Port Jauh

Penerusan pelabuhan jauh adalah bertentangan dengan penghantaran pelabuhan tempatan. Ia membolehkan anda menghantar port pada mesin remote (ssh server) ke port pada mesin tempatan (ssh client), yang kemudiannya diteruskan ke port pada mesin destinasi.

Dalam jenis penyampaian pelayan SSH ini didengar pada port yang diberikan dan terowong sebarang sambungan ke port tersebut ke port tertentu pada klien SSH tempatan, yang kemudiannya menyambungkan ke port pada mesin destinasi. Mesin destinasi boleh menjadi mesin tempatan atau mana-mana mesin lain.

Di Linux, macOS dan sistem Unix lain untuk membuat penghantaran port jauh lulus pilihan -R kepada klien ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Pilihan yang digunakan adalah seperti berikut:

  • REMOTE_PORT - IP dan nombor port pada pelayan SSH jauh. REMOTE kosong bermaksud bahawa pelayan SSH jauh akan mengikat pada semua antara muka. DESTINATION:DESTINATION_PORT - IP atau nama hos dan pelabuhan mesin destinasi. SERVER_IP - Alamat IP pengguna dan pelayan SSH jauh.

Pemajuan port tempatan kebanyakannya digunakan untuk memberi akses kepada perkhidmatan dalaman kepada seseorang dari luar.

Katakan anda sedang membangunkan aplikasi web pada mesin tempatan anda dan anda ingin menunjukkan pratonton kepada pemaju rakan anda. Anda tidak mempunyai IP awam supaya pemaju lain tidak dapat mengakses aplikasi melalui Internet.

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

Perintah di atas akan menjadikan pelayan ssh untuk mendengar pada port 8080 dan terowong semua lalu lintas dari port ini ke mesin tempatan anda pada port 3000 .

Kini pemaju rakan anda boleh menaip the_ssh_server_ip:8080 dalam pelayarnya dan pratonton aplikasi yang mengagumkan anda.

Penghantaran Pelabuhan Dinamik

Pemajuan port dinamik membolehkan anda membuat soket pada mesin tempatan (ssh client) yang bertindak sebagai pelayan proksi SOCKS. Apabila pelanggan menyambung ke port ini, sambungan diteruskan ke mesin remote (ssh server), yang kemudiannya diteruskan ke port dinamik pada mesin destinasi.

Dengan cara ini, semua aplikasi yang menggunakan proksi SOCKS akan bersambung ke pelayan SSH dan pelayan akan meneruskan semua lalu lintas ke destinasi sebenar.

Di Linux, macOS dan sistem Unix lain untuk membuat penghantaran port dinamik (SOCKS) lulus pilihan -D kepada klien ssh :

ssh -D LOCAL_PORT SSH_SERVER

Pilihan yang digunakan adalah seperti berikut:

  • LOCAL_PORT - Nombor mesin dan nombor mesin tempatan. Apabila LOCAL_IP diabaikan mengikat klien ssh di localhost. SERVER_IP - Alamat IP pengguna dan pelayan SSH jauh.

Contoh biasa penyambungan pelabuhan dinamik adalah untuk mengangkut lalu lintas pelayar web melalui pelayan SSH.

Perintah berikut akan membuat terowong SOCKS pada port 9090 :

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

Apabila terowong ditubuhkan, anda boleh mengkonfigurasi aplikasi anda untuk menggunakannya. Artikel ini menerangkan cara mengkonfigurasi pelayar Firefox dan Google Chrome untuk menggunakan proksi SOCKS.

Penghantaran pelabuhan harus dikonfigurasi secara berasingan untuk setiap aplikasi yang anda ingin terowong lalu lintas memikirkannya.

Sediakan Tunneling SSH di Windows

Pengguna Windows boleh membuat terowong SSH menggunakan klien PuTTY SSH. Anda boleh memuat turun PuTTY di sini.

  1. Pelancaran Putty dan masukkan alamat IP pelayan SSH di dalam Host name (or IP address) bidang.

    Tetingkap baru yang meminta nama pengguna dan kata laluan anda akan dipaparkan. Sebaik sahaja anda memasukkan nama pengguna dan kata laluan anda, anda akan dilog masuk ke pelayan anda dan terowong SSH akan dimulakan.

    Menubuhkan pengesahan utama awam akan membolehkan anda menyambung ke pelayan anda tanpa memasukkan kata laluan.

Kesimpulannya

Kami telah menunjukkan kepada anda bagaimana untuk menyediakan terowong SSH dan meneruskan lalu lintas melalui sambungan SSH yang selamat. Untuk memudahkan penggunaan, anda boleh menentukan terowong SSH dalam fail konfigurasi SSH anda atau buat alias Bash yang akan menubuhkan terowong SSH.

keselamatan ssh