Cara Mengatur SSH Jump Server di Linux


Host lompat (juga dikenal sebagai server lompat) adalah host perantara atau gerbang SSH ke jaringan jarak jauh, yang melaluinya sambungan dapat dibuat ke host lain dalam suatu zona keamanan yang berbeda, misalnya zona demiliterisasi (DMZ). Ini menjembatani dua zona keamanan yang berbeda dan menawarkan akses terkendali di antara keduanya.

jump host harus sangat diamankan dan dipantau terutama bila host tersebut mencakup jaringan pribadi dan DMZ dengan server yang menyediakan layanan kepada pengguna di internet.

Skenario klasiknya adalah menghubungkan dari desktop atau laptop Anda dari dalam jaringan internal perusahaan Anda, yang sangat aman dengan firewall ke DMZ. Untuk mengelola server di DMZ dengan mudah, Anda dapat mengaksesnya melalui jump host.

Singkatnya, server SSH Jump adalah server Linux yang digunakan sebagai gerbang ke server Linux lain di jaringan pribadi melalui Protokol SSH.

Pada artikel ini, kami akan mendemonstrasikan cara mengakses server Linux jarak jauh melalui jump host, dan kami juga akan mengonfigurasi pengaturan yang diperlukan dalam konfigurasi klien SSH per pengguna Anda.

Pengaturan Server Lompat SSH

Pertimbangkan skenario berikut.

Untuk lebih jelasnya, di bawah ini adalah pengaturan sederhana yang menunjukkan peran server SSH Jump.

Alasan Mengonfigurasi SSH Jump Server

Server Jump menyediakan gerbang ke infrastruktur Anda dan mengurangi potensi serangan terhadap sumber daya Anda. Ini juga menyediakan pengelolaan perangkat yang transparan serta satu titik masuk ke sumber daya Anda.

Ingatlah bahwa saat Anda memasukkan server lompat ke dalam infrastruktur Anda, pastikan server tersebut diperkuat, jika tidak, lebih baik Anda tidak menggunakannya. Kami akan membahasnya lagi nanti di tutorial ini.

Cara Membuat Server Jump SSH Sederhana

Sekarang mari kita fokus pada bagaimana Anda dapat membuat server SSH Jump yang sederhana. Inilah pengaturan sederhana kami.

  • IP Asal: 105.68.76.85.
  • Jump Server IP (kami menyebutnya host-jump): 173.82.232.55.
  • IP Tujuan (kami menyebutnya host_destination): 173.82.227.89.

Dalam skenario di atas, Anda ingin terhubung ke HOST 2 (173.82.227.89), tetapi Anda harus melalui HOST 1 (173.82.232.55), karena firewall, perutean, dan hak akses. Ada sejumlah alasan sah mengapa jump host diperlukan.

Daftar Jumphost Dinamis

Cara termudah untuk terhubung ke server target melalui jump host adalah menggunakan flag -A dan -J dari baris perintah. Ini memberitahu ssh untuk membuat koneksi ke host lompat dan kemudian membuat penerusan TCP ke server target, dari sana (pastikan Anda memiliki Login SSH Tanpa Kata Sandi antar mesin).

ssh -A -J user@jump-server  user@destination server

Misalnya, dalam pengaturan kami, kami memiliki pengguna bernama james yang dikonfigurasi pada Jump Server dan tecmint dikonfigurasi pada sistem tujuan atau target.

Perintahnya akan terlihat sebagai berikut dari IP asal.

ssh -A -J [email  [email 

Perintah ini akan meminta Anda memasukkan kata sandi pengguna server lompat, diikuti dengan kata sandi sistem target yang akan memberi Anda akses ke sistem target.

Jika nama pengguna atau port pada mesin berbeda, tentukan pada terminal seperti yang ditunjukkan.

ssh -J username@host1:port username@host2:port	  

Daftar Beberapa Jumphost

Sintaks yang sama dapat digunakan untuk melakukan lompatan ke beberapa server.

ssh -J username@host1:port,username@host2:port username@host3:port

Daftar Jumphost Statis

Daftar jumphost statis berarti Anda mengetahui jumphost atau jumphosts yang Anda perlukan untuk menghubungkan mesin. Oleh karena itu, Anda perlu menambahkan 'perutean' jumphost statis berikut di file ~/.ssh/config dan menentukan alias host seperti yang ditunjukkan.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Sekarang coba sambungkan ke server target melalui host lompat seperti yang ditunjukkan.

ssh -J vps1 contabo

Metode kedua adalah menggunakan opsi ProxyCommand untuk menambahkan konfigurasi jumphost di ~.ssh/config atau $HOME/. ssh/config seperti yang ditunjukkan.

Dalam contoh ini, host targetnya adalah contabo, dan jumphost adalah vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Simpan perubahan dan keluar dari file. Untuk menerapkan perubahan, mulai ulang daemon SSH.

sudo systemctl restart ssh

Mari jelajahi opsi yang digunakan dalam file konfigurasi:

  • -q – Ini adalah singkatan dari mode senyap. Ini menyembunyikan peringatan dan pesan diagnostik.
  • -W – Meminta input dan output standar pada klien diteruskan ke HOST di PORT melalui saluran aman.
  • %h – Menentukan host yang akan dihubungkan.
  • %p – Menentukan port yang akan dihubungkan pada host jarak jauh.

Untuk 'melompat' ke sistem tujuan dari IP Asal Anda melalui Server Jump, jalankan saja perintah berikut:

ssh contabo

Perintah di atas pertama-tama akan membuka koneksi ssh ke vps1 di latar belakang yang dipengaruhi oleh ProxyCommand, dan setelah itu, memulai sesi ssh ke server target contabo.

Membuat SSH Jump Server Lebih Aman

Salah satu cara untuk membuat penyiapan ini lebih aman adalah dengan menyalin kunci SSH Publik dari sistem Asal ke Server Lompat, dan terakhir ke sistem target, lalu menonaktifkan autentikasi kata sandi. Lihat panduan kami tentang cara mengaktifkan otentikasi tanpa kata sandi SSH.

Selain itu, lihat tips pengerasan server SSH.

Selain itu, pastikan tidak ada data sensitif yang disimpan dalam server Jump karena hal ini dapat menyebabkan kebocoran kredensial akses seperti nama pengguna dan sandi yang menyebabkan pelanggaran sistem secara keseluruhan.

Untuk informasi lebih lanjut, lihat halaman manual ssh atau lihat: OpenSSH/Cookbxook/Proxies dan Jump Hosts.

Itu saja untuk saat ini! Pada artikel ini, kami telah mendemonstrasikan cara mengakses server jarak jauh melalui jump host. Gunakan formulir umpan balik di bawah ini untuk mengajukan pertanyaan atau menyampaikan pemikiran Anda kepada kami.