GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Tunneling SSH

Jika Anda terhubung dengan perangkat Linux yang berbeda di jaringan yang berbeda maka Anda harus mengeksposnya ke internet publik dan itu dapat membahayakan sistem dan file Anda. Oleh karena itu, SSH Tunneling digunakan untuk mengirimkan data secara cepat dan aman dari sumber ke mesin klien dan sebaliknya.

SSH Tunneling adalah praktik membuat koneksi SSH yang aman dan terenkripsi antara mesin server dan mesin klien di mana data dapat ditransfer dan layanan dapat diteruskan. Dalam artikel hari ini, kita akan melihat cara menyiapkan SSH Tunneling dan merutekan lalu lintas Anda dengan aman melalui tunnel SSH.

Apa itu Tunneling SSH?

SSH Tunneling adalah cara mentransmisikan lalu lintas atau data yang tidak terenkripsi melalui saluran terenkripsi. Sederhananya, Anda dapat mengatakan bahwa ini adalah terowongan untuk mentransfer data dari satu tempat ke tempat lain dengan cara yang aman. Selain transmisi file, SSH Tunneling juga dapat digunakan untuk mengakses layanan intranet di seluruh firewall dan untuk mengimplementasikan VPN.

SSH Tunneling juga dikenal sebagai SSH Forwarding dan merupakan cara yang mudah dan efektif untuk mengangkut data yang menggunakan protokol terenkripsi (FTP), melewati firewall dan mengakses konten yang dibatasi secara geografis.

Penerusan Port SSH terdiri dari tiga jenis:

  1. Penerusan Port Lokal
  2. Penerusan Port Jarak Jauh
  3. Penerusan Port Dinamis

Penerusan Lokal

Penerusan lokal adalah praktik meneruskan port dari mesin klien (Klien SSH Lokal) ke mesin jarak jauh (Server SSH) dan kemudian koneksi diteruskan ke port lain dari mesin tujuan.

Klien SSH memeriksa koneksi pada port tertentu yang diberikan dan ketika menerima permintaan koneksi, itu menyalurkan koneksi ke port tertentu pada server SSH jarak jauh. Dan kemudian server terhubung ke mesin tujuan yang berbeda pada port yang dikonfigurasi.

Ini terutama digunakan untuk terhubung ke layanan jarak jauh di jaringan internal dari luar seperti database. Ini juga digunakan untuk berbagi file jarak jauh melalui internet dan melalui server lompat.

Bagaimana cara mengatur penerusan port lokal?

Mari kita ambil contoh bahwa Anda dibatasi oleh firewall untuk mengakses aplikasi yang berjalan di server jauh pada port 3000. Sekarang, kami akan meneruskan port lokal (yaitu 8080) untuk mengakses aplikasi secara lokal.

-L digunakan untuk mengkonfigurasi penerusan port lokal

ssh [email protected] -L 8080:server1.example.com:3000 

Atau

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – Nomor port dan alamat IP mesin lokal. Nomor port apa pun yang lebih besar dari 1024 dapat digunakan.
  • DESTINATION:DESTINATION_PORT – Port dan alamat IP atau nama host dari mesin tujuan.
  • [[email protected]]SERVER_IP – Nama pengguna dan alamat IP server dari pengguna ssh jarak jauh.

-f akan menginstruksikan ssh untuk berjalan di latar belakang.

ssh -f -N [email protected] -L 8080:server1.example.com:3000

Dan -N akan menginstruksikan untuk tidak menjalankan perintah jarak jauh. [Anda tidak akan mendapatkan cangkang dalam kasus ini.]

ssh -N [email protected] -L 8080:server1.example.com:3000

Sekarang, buka browser di komputer lokal Anda dan Anda cukup menggunakan localhost:8080 untuk mengakses aplikasi jarak jauh alih-alih mengaksesnya menggunakan server alamat.example.com:3000.

Penerusan Jarak Jauh

Penerusan port jarak jauh adalah kebalikan dari penerusan Port Lokal dan memungkinkan Anda terhubung ke komputer lokal dari mesin jarak jauh Anda. SSH tidak mendukung penerusan port jarak jauh secara default. Jadi, Anda perlu mengaktifkannya di file konfigurasi ssh Anda.

Buka file konfigurasi ssh dalam mode edit

sudo vim /etc/ssh/sshd_config 

Cari GatewayPorts dan atur sebagai ya.

GatewayPorts yes

Simpan perubahan, keluar dari mode edit, dan mulai ulang server Anda.

sudo systemctl restart sshd

Sekarang karena Anda telah mengaktifkan penerusan port jarak jauh. Di SSH terbuka, kami menggunakan perintah -R untuk mengatur penerusan port jarak jauh.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [REMOTE:]REMOTE_PORT – Alamat IP dan nomor port server SSH jarak jauh.
  • DESTINATION:DESTINATION_PORT – Nama host dan alamat IP dari mesin tujuan.
  • [[email protected]]SERVER_IP – Nama pengguna dan alamat IP SSH jarak jauh.

Misalnya:

ssh -R 8080:127.0.0.1:3000 -N -f [email protected]ote.host 

Server SSH akan mendengarkan pada port 8080 dan akan menyalurkan semua lalu lintas dari 8080 ke port 3000 pada mesin lokal Anda

Atau, Anda dapat menggunakan perintah berikut untuk meneruskan port 5000 pada mesin jarak jauh ke port 3000 pada mesin lokal.

ssh -f -N [email protected] -R 5000:localhost:3000 

Penerusan port jarak jauh terutama digunakan untuk memberikan akses ke seseorang dari luar ke layanan internal.

Penerusan Port Dinamis

Jenis port forwarding yang ketiga dan terakhir adalah Dynamic Port Forwarding. Penerusan Port Lokal dan Jarak Jauh memungkinkan Anda melakukan tunnel dan berkomunikasi dengan satu port, tetapi dalam penerusan Port Dinamis Anda dapat menjalankan dan berkomunikasi dengan berbagai port.

Itu membuat soket pada mesin lokal yang berfungsi sebagai server proxy SOCKS atau Anda dapat mengatakan Ini mengatur mesin lokal Anda sebagai server proxy SOCKS dan secara default, ia mendengarkan pada port 1080. Ketika server terhubung ke port ini, itu adalah diteruskan ke mesin jarak jauh, kemudian diteruskan ke mesin dinamis pada port dinamis.

Apa itu SOCKS?

Ini adalah protokol Internet yang mendefinisikan bagaimana mesin klien dapat terhubung ke server melalui proxy.

Kami dapat mengaktifkan penerusan port dinamis dengan opsi -D. Mari kita pahami penerusan port dengan sebuah contoh-

ssh -D [LOCAL_IP:]LOCAL_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – Alamat IP dan nomor port mesin lokal.
  • [[email protected]]SERVER_IP – Alamat IP dan nama pengguna server jarak jauh.

Atau perintah ini akan memulai proxy SOCKS dan memungkinkan Anda terhubung ke host jarak jauh.

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

Kesimpulan

SSH Tunneling adalah cara yang berguna untuk mentransfer data tidak terenkripsi melalui terowongan terenkripsi. Ada tiga pilihan yang tersedia di dalamnya dan Anda dapat memilih sesuai kebutuhan Anda.


Linux
  1. Cara Mengubah Port SSH Di Linux

  2. Cara Mengatur Kunci SSH

  3. Cara Mengubah Port SSH di CentOS

  1. SSH ke Port Selain 22:Bagaimana Melakukannya (dengan Contoh)

  2. Cara Mengatur Kunci SSH di Ubuntu 18.04

  3. Bagaimana cara mengatur terowongan ssh untuk meneruskan ssh?

  1. Cara Menggunakan Penerusan Port SSH

  2. Cara Mengatur Login SSH Tanpa Kata Sandi

  3. Cara Mengatur Kunci SSH di Debian