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.