SSH Tunneling - Local & Remote Port Forwarding (by Example)
Isi kandungan:
- Pemajuan Pelabuhan Tempatan
- Penghantaran Port Jauh
- Penghantaran Pelabuhan Dinamik
- Sediakan Tunneling SSH di Windows
- Kesimpulannya
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. ApabilaLOCAL_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. ApabilaLOCAL_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.
-
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 sshBagaimana untuk menukar port ssh di linux

Secara lalai, SSH didengar pada port 22. Menukar port SSH lalai menambah lapisan tambahan keselamatan ke pelayan anda dengan mengurangkan risiko serangan automatik. Tutorial ini menerangkan cara mengubah port SSH lalai di Linux.
Bagaimana untuk menubuhkan kunci ssh pada ubuntu 18.04

Dalam tutorial ini, kami akan berjalan melalui cara untuk menghasilkan kunci SSH pada mesin Ubuntu 18.04. Kami juga akan menunjukkan kepada anda cara menyiapkan pengesahan berasaskan kunci SSH dan menyambung ke pelayan jauh Linux anda tanpa memasukkan kata laluan.
Bagaimana untuk menubuhkan terowong stoking ssh untuk melayari peribadi

Tutorial ini akan membimbing anda melalui proses mewujudkan terowong SSH yang disulitkan dan mengkonfigurasi pelayar web Firefox dan Google Chrome untuk menggunakan proksi SOCKS.