GNU/Linux >> Belajar Linux >  >> Linux

Cara mengatur penerusan port dinamis SSH di Linux

Banyak perusahaan menggunakan server lompatan yang dapat diakses Secure Shell (SSH) untuk mengakses sistem penting bisnis. Administrator pertama-tama terhubung ke server lompat menggunakan SSH, mungkin melalui VPN, sebelum terhubung ke sistem target. Metode ini biasanya bekerja dengan baik selama administrator tetap dengan administrasi baris perintah. Ini menjadi sedikit lebih rumit ketika administrator ingin keluar dari ranah baris perintah dan menggunakan antarmuka berbasis web sebagai gantinya.

Mari kita lihat skenario berikut:Bob adalah administrator sistem di Securecorp, dan dia baru saja mendapat peringatan yang menunjukkan bahwa cluster database terdiri dari sirius.securecorp.io dan orion.securecorp.io berkinerja buruk. Untuk analisis awal, ia biasanya menggunakan konsol web RHEL8. Firewall tidak mengizinkannya untuk terhubung langsung ke sistem ini dari workstation-nya, tetapi dia dapat melewati server lompat yang disebut bastion.securecorp.io .

[ Anda mungkin juga menikmati: 6 panduan SSH penting untuk sysadmin ]

Akses baris perintah SSH ke cluster database sangat mudah:

[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh sirius.securecorp.io
[bob@sirius ~]$
[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh orion.securecorp.io
[bob@orion ~]$

Tetapi bagaimana jika Bob ingin mengakses konsol web RHEL8 sirius.securecorp.io dan orion.securecorp.io ? Ada beberapa cara untuk mencapai tujuan ini menggunakan SSH, semuanya melibatkan semacam penerusan port.

Penafian :Di beberapa organisasi, kebijakan keamanan tidak mengizinkan penerusan porta. Untuk memastikan bahwa Anda tidak melanggar aturan apa pun, harap konsultasikan dengan perwakilan keamanan TI Anda.

Penerusan port SSH

Menggunakan SSH, Bob membuka terowongan TCP untuk kedua sistem, menunjuk ke port konsol web (9090) untuk sirius.securecorp.io dan port 9091 untuk orion.securecorp.io .

[bob@workstation ~]$ ssh -L 9090:sirius.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$
[bob@workstation ~]$ ssh -L 9091:orion.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$

Bob sekarang dapat mengarahkan browser stasiun kerja lokalnya ke https://localhost:9090 untuk mengakses konsol web untuk sirius.securecorp.io , dan https://localhost:9091 untuk mengakses konsol web untuk orion.securecorp.io .

Pendekatan ini mungkin bekerja dengan baik dalam kasus tertentu tetapi memiliki keterbatasan:

  • Validasi sertifikat TLS:Peramban lokal tidak senang karena, dalam banyak kasus, Nama Umum sertifikat tidak cocok dengan nama host di bilah alamat (localhost), sehingga validasi sertifikat gagal.
  • Pengalihan:Saat situs web yang Anda akses mengalihkan Anda ke URL lain, koneksi gagal karena penerusan port hanya valid untuk server web ini. Situasi ini mungkin menjadi masalah saat menggunakan sistem masuk tunggal (SSO), misalnya.

Mulai browser di server lompat

Bob juga akan memulai browser seperti Firefox di server jump dan menampilkannya secara lokal di workstation-nya. SSH menyediakan fitur yang disebut penerusan X, yang dapat digunakan dalam situasi ini.

[bob@workstation ~]$ ssh -X bastion.securecorp.io
[bob@bastion ~]$ firefox https://sirius.securecorp.io:9090 &
[bob@bastion ~]$ firefox https://orion.securecorp.io:9090 &

Dengan menggunakan metode ini, proses browser berjalan di server lompat, dan koneksi ke konsol web sirius.securecorp.io dan orion.securecorp.io diijinkan. Hanya rendering jendela browser yang terjadi di workstation Bob.

Meskipun pendekatan ini memecahkan beberapa masalah penerusan port SSH biasa, pendekatan ini juga memiliki keterbatasan:

  • Kinerja:Metode ini biasanya berkinerja agak buruk karena output grafis harus ditransfer dari server lompat ke stasiun kerja melalui jaringan, yang sangat tidak efisien.
  • Prasyarat:Peramban seperti Firefox perlu diinstal pada server lompat, dan server X harus dijalankan pada stasiun kerja.

Masukkan penerusan port dinamis

Setelah menjelajahi dua pendekatan sebelumnya dan mempelajari kekurangannya, akan sangat bagus jika memiliki opsi ketiga, yang memberi kita yang terbaik dari kedua dunia:

  • Browser workstation dapat digunakan.
  • Konektivitas dan resolusi nama DNS harus sama seperti di server lompat.

Untuk mencapai ini, SSH menyediakan fitur yang disebut penerusan port dinamis , yang memanfaatkan protokol SOCKS. Dalam konfigurasi ini, SSH bertindak sebagai proxy SOCKS, menyampaikan semua lalu lintas yang relevan melalui koneksi SSH. Agar hal ini terjadi, klien (dalam contoh kami, ini adalah browser) harus sadar akan SOCKS.

Bob dapat memulai sesi SSH dengan penerusan port dinamis sebagai berikut:

[bob@workstation ~]$ ssh -D 1080 bastion.securecorp.io
[bob@bastion ~]$

Setelah itu, browser di workstation Bob perlu dibuat sadar SOCKS. Konfigurasi Firefox dapat dilakukan seperti ini:

  • Arahkan browser ke about:preferences.
  • Dalam Umum tab, gulir ke bawah di bagian bawah, dan klik Setelan... di Setelan Jaringan bagian.
  • Di Setelan Koneksi jendela, pilih Konfigurasi proxy manual , tentukan localhost untuk Host SOCKS , 1080 sebagai Port, dan pilih SOCKS v5 .
  • Di jendela yang sama, pilih Proxy DNS saat menggunakan SOCKS v5 .

Bob sekarang dapat mengarahkan browser ke https://sirius.securecorp.io:9090 dan https://orion.securecorp.io:9090 untuk menganalisis masalah kinerja dua server databasenya menggunakan konsol web RHEL8. Dia juga dapat mengakses sumber daya internal lainnya seolah-olah browser berjalan di bastion.securecorp.io .

Catatan :Port 1080 adalah port terdaftar IANA untuk SOCKS, tetapi koneksi dapat menggunakan port lain. Angka-angka dalam konfigurasi SSH dan browser harus cocok.

Secara pribadi, saya merasa berguna untuk membuat profil browser terpisah sehingga tidak perlu terus-menerus beralih di antara konfigurasi proxy. Profil baru dapat dibuat dengan meneruskan -P beralih ke firefox perintah, meluncurkan Pengelola Profil . Saya menelepon profil saya Lompat . Setelah membuat profil baru, konfigurasi kosong dibuat. Di profil ini, saya menerapkan konfigurasi seperti yang dijelaskan di atas sambil membiarkan profil default saya tidak tersentuh.

Setelah membuat profil, Firefox dapat diluncurkan dengan perintah berikut:

[bob@workstation ~]$ firefox -P Jump

Tip bermanfaat lainnya adalah membuat konfigurasi khusus host untuk penerusan port dinamis di ~/.ssh/config Anda mengajukan. Misalnya:

[bob@workstation ~]$ cat ~/.ssh/config
Host bastion
  Hostname bastion.securecorp.io
  User bob
  DynamicForward 1080

[ Kursus gratis untuk Anda:Tinjauan Teknis Virtualisasi dan Migrasi Infrastruktur. ] 

Menutup

Ada banyak cara untuk terhubung ke sistem internal menggunakan server lompatan dan kemungkinan yang diuraikan di atas sama sekali tidak lengkap. Namun, menurut pengalaman saya, SSH memberi Anda kit alat yang sangat kuat, yang dalam banyak kasus tersedia dan siap digunakan tanpa banyak rintangan. Penerusan port dinamis adalah salah satu alat ini dan telah membantu saya menjadi lebih produktif dalam situasi tertentu, jadi silakan mencobanya sendiri.


Linux
  1. Cara Mengatur Tunneling SSH

  2. Cara Mengatur Spanduk Peringatan SSH Khusus atau MOTD di Linux

  3. Bagaimana cara mengubah port SSH di Lubuntu 20.04 Linux

  1. Cara Mengubah Port SSH Di Linux

  2. Cara Mengaktifkan Penerusan IP di Linux

  3. Bagaimana cara meneruskan ssh dengan AllowTcpForwarding diatur ke no?

  1. Cara mengatur printer Anda di Linux

  2. Cara Menggunakan Penerusan Port SSH

  3. Cara Mengatur Pekerjaan Cron di Linux