Android

Cara mengatur tunneling ssh (port forwarding)

SSH Tunnel with PuTTY

SSH Tunnel with PuTTY

Daftar Isi:

Anonim

Tuning SSH atau penerusan port SSH adalah metode untuk membuat koneksi SSH terenkripsi antara klien dan mesin server melalui mana port layanan dapat di-relay.

Penerusan SSH berguna untuk mengangkut data jaringan layanan yang menggunakan protokol tidak terenkripsi, seperti VNC atau FTP, mengakses konten yang dibatasi secara geografis atau mem-bypass firewall perantara. Pada dasarnya, Anda dapat meneruskan port TCP apa pun dan menyalurkan lalu lintas melalui koneksi SSH yang aman.

Ada tiga jenis penerusan port SSH:

  • Penerusan Port Lokal. - Meneruskan koneksi dari host klien ke host server SSH dan kemudian ke port host tujuan. Hapus Port Forwarding. - Meneruskan port dari host server ke host klien dan kemudian ke port host tujuan. Penerusan Port Dinamis. - Membuat server proxy SOCKS yang memungkinkan komunikasi di berbagai port.

, kita akan berbicara tentang cara mengatur terowongan SSH terenkripsi lokal, jarak jauh, dan dinamis.

Penerusan Port Lokal

Penerusan port lokal memungkinkan Anda untuk meneruskan port pada mesin lokal (klien ssh) ke port pada mesin remote (server ssh), yang kemudian diteruskan ke port pada mesin tujuan.

Dalam jenis penerusan ini klien SSH mendengarkan pada port yang diberikan dan terowongan koneksi apa pun ke port tersebut ke port yang ditentukan pada server SSH jarak jauh, yang kemudian menghubungkan ke port pada mesin tujuan. Mesin tujuan dapat berupa server SSH jarak jauh atau mesin lainnya.

Penerusan port lokal sebagian besar digunakan untuk menyambung ke layanan jarak jauh pada jaringan internal seperti database atau server VNC.

Di Linux, macOS dan sistem Unix lainnya untuk membuat penerusan port lokal meneruskan opsi -L ke klien ssh :

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Opsi yang digunakan adalah sebagai berikut:

  • LOCAL_PORT - IP mesin dan nomor port lokal. Ketika LOCAL_IP dihilangkan klien ssh mengikat pada localhost. DESTINATION:DESTINATION_PORT - IP atau nama host dan port mesin tujuan. SERVER_IP - Pengguna SSH dan alamat IP server jarak jauh.

Anda dapat menggunakan nomor port apa pun yang lebih besar dari 1024 sebagai LOCAL_PORT . Nomor port kurang dari 1024 adalah port istimewa dan hanya dapat digunakan oleh root. Jika server SSH Anda mendengarkan pada port selain 22 (default) gunakan opsi -p .

Nama host tujuan harus dapat diselesaikan dari server SSH.

Katakanlah Anda memiliki server database MySQL yang berjalan pada mesin db001.host pada jaringan internal (pribadi), pada port 3306 yang dapat diakses dari mesin pub001.host dan Anda ingin terhubung menggunakan mesin mysql klien lokal Anda ke server database. Untuk melakukannya, Anda dapat meneruskan koneksi seperti:

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

Setelah Anda menjalankan perintah, Anda akan diminta untuk memasukkan kata sandi pengguna SSH jarak jauh. Setelah memasukkannya, Anda akan masuk ke server jarak jauh dan terowongan SSH akan dibuat. Merupakan ide yang baik untuk mengatur otentikasi berbasis kunci SSH dan terhubung ke server tanpa memasukkan kata sandi.

Sekarang jika Anda mengarahkan klien database mesin lokal Anda ke 127.0.0.1:3336 , koneksi akan diteruskan ke server MySQL db001.host:3306 melalui mesin pub001.host yang akan bertindak sebagai server perantara.

Anda dapat meneruskan banyak port ke beberapa tujuan dalam satu perintah ssh. Sebagai contoh, Anda memiliki server database MySQL lain yang berjalan di mesin db002.host dan Anda ingin terhubung ke kedua server dari klien lokal yang akan Anda jalankan:

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

Untuk terhubung ke server kedua Anda akan menggunakan 127.0.0.1:3337 .

Ketika host tujuan sama dengan server SSH alih-alih menentukan IP host host atau nama host, Anda dapat menggunakan localhost .

Katakanlah Anda perlu terhubung ke mesin jarak jauh melalui VNC yang berjalan di server yang sama dan tidak dapat diakses dari luar. Perintah yang akan Anda gunakan adalah:

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

Opsi -f memberitahu perintah ssh untuk dijalankan di latar belakang dan -N tidak untuk mengeksekusi perintah jarak jauh. Kami menggunakan localhost karena VNC dan server SSH berjalan pada host yang sama.

Penerusan Port Jarak Jauh

Penerusan port jarak jauh adalah kebalikan dari penerusan port lokal. Ini memungkinkan Anda untuk meneruskan port pada mesin remote (ssh server) ke port pada mesin (ssh client) lokal, yang kemudian diteruskan ke port pada mesin tujuan.

Dalam jenis penerusan ini server SSH mendengarkan pada port yang diberikan dan terowongan koneksi apa pun ke port itu ke port yang ditentukan pada klien SSH lokal, yang kemudian menghubungkan ke port pada mesin tujuan. Mesin tujuan dapat berupa mesin lokal atau mesin lainnya.

Di Linux, macOS dan sistem Unix lainnya untuk membuat penerusan port jarak jauh meneruskan opsi -R ke klien ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Opsi yang digunakan adalah sebagai berikut:

  • REMOTE_PORT - IP dan nomor port pada server SSH jarak jauh. REMOTE kosong berarti bahwa server SSH jauh akan mengikat semua antarmuka. DESTINATION:DESTINATION_PORT - IP atau nama host dan port mesin tujuan. SERVER_IP - Pengguna SSH dan alamat IP server jarak jauh.

Penerusan porta lokal sebagian besar digunakan untuk memberikan akses ke layanan internal kepada seseorang dari luar.

Katakanlah Anda sedang mengembangkan aplikasi web di mesin lokal Anda dan Anda ingin menampilkan pratinjau kepada rekan pengembang Anda. Anda tidak memiliki IP publik sehingga pengembang lain tidak dapat mengakses aplikasi melalui Internet.

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

Perintah di atas akan membuat server ssh untuk mendengarkan pada port 8080 dan tunnel semua traffic dari port ini ke mesin lokal Anda pada port 3000 .

Sekarang sesama pengembang Anda dapat mengetik the_ssh_server_ip:8080 di browser-nya dan melihat pratinjau aplikasi Anda yang luar biasa.

Penerusan Port Dinamis

Penerusan port dinamis memungkinkan Anda membuat soket pada mesin (ssh client) lokal yang bertindak sebagai server proxy SOCKS. Ketika klien terhubung ke port ini, koneksi diteruskan ke mesin remote (ssh server), yang kemudian diteruskan ke port dinamis pada mesin tujuan.

Dengan cara ini, semua aplikasi yang menggunakan proxy SOCKS akan terhubung ke server SSH dan server akan meneruskan semua lalu lintas ke tujuan yang sebenarnya.

Di Linux, macOS dan sistem Unix lainnya untuk membuat dynamic port forwarding (SOCKS) meneruskan opsi -D ke klien ssh :

ssh -D LOCAL_PORT SSH_SERVER

Opsi yang digunakan adalah sebagai berikut:

  • LOCAL_PORT - IP mesin dan nomor port lokal. Ketika LOCAL_IP dihilangkan klien ssh mengikat pada localhost. SERVER_IP - Pengguna SSH dan alamat IP server jarak jauh.

Contoh tipikal dari penerusan port dinamis adalah untuk tunnel traffic web browser melalui server SSH.

Perintah berikut akan membuat terowongan SOCKS pada port 9090 :

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

Setelah tunneling didirikan, Anda dapat mengkonfigurasi aplikasi Anda untuk menggunakannya. Artikel ini menjelaskan cara mengkonfigurasi Firefox dan browser Google Chrome untuk menggunakan proksi SOCKS.

Penerusan port harus dikonfigurasikan secara terpisah untuk setiap aplikasi yang Anda inginkan untuk melakukan tunnel traffic.

Siapkan Tunneling SSH di Windows

Pengguna Windows dapat membuat terowongan SSH menggunakan klien SST PuTTY. Anda dapat mengunduh Putty di sini.

  1. Luncurkan Putty dan masukkan Alamat IP server SSH di bidang Host name (or IP address) .

    Jendela baru yang menanyakan nama pengguna dan kata sandi Anda akan muncul. Setelah Anda memasukkan nama pengguna dan kata sandi Anda, Anda akan masuk ke server Anda dan terowongan SSH akan dimulai.

    Menyiapkan otentikasi kunci publik akan memungkinkan Anda untuk terhubung ke server Anda tanpa memasukkan kata sandi.

Kesimpulan

Kami telah menunjukkan kepada Anda cara mengatur terowongan SSH dan meneruskan lalu lintas melalui koneksi SSH yang aman. Untuk kemudahan penggunaan, Anda dapat menentukan terowongan SSH di file konfigurasi SSH Anda atau membuat alias Bash yang akan mengatur terowongan SSH.

keamanan ssh