Lewati ke konten utama
Kali Linux Indonesia

Keamanan Jaringan

Cara Mengamankan Akses SSH pada Server Produksi dengan Kali Linux Indonesia

Panduan defensif hardening SSH di server lab produksi, mulai audit OpenSSH, nonaktifkan password, sampai uji ulang nmap dari Kali Linux Indonesia.

Cara Mengamankan Akses SSH pada Server Produksi dengan Kali Linux Indonesia

Server lab yang meniru kondisi produksi biasanya saya siapkan dengan layanan SSH aktif. Masalahnya, port 22 langsung menjadi target pemindaain massal sejak menit pertama server terhubung ke jaringan. Kali Linux Indonesia menjadi alat bantu saya untuk meriksa konfigurasi OpenSSH, melihat banner, sampai menguji ulang aturan firewall. Seluruh praktek di sini dilakuin di lingkungan terisolasi atau target resmi CTF, bukan pada sistem milik pihak lain.

OpenSSH versi 9.7 ke bawah sempat terdampak CVE-2024-6387, kerentanan race condition yang dikenal sebagai regreSSHion. Patch-nya hadir di OpenSSH 9.8 pada Juli 2024. Rincian rilis resmi bisa dilihat di OpenSSH release notes . Angka itu menunjukkan bahwa sekadar mengaktifkan SSH tanpa memeriksa versi bukanlah praktek yang sehat. Karena itu, catatan ini saya tulis sebagai langkah defensif, bukan ajakan menyerang server pihak lain.

Kenapa Akses SSH Perlu Diperketat di Server Lab

SSH adalah layanan administrasi jarak jauh yang hampir selalu aktif di server Linux. Di lab saya, server simulasi produksi menjalankan OpenSSH agar pengaturan file, pembaruan paket, dan monitoring bisa dilakukan dari jarak jauh. Namun, bot scanner tidak peduli server itu lab atau produksi. Mereka mengirim kredensial umum seperti root, admin, atau password 123456 secara otomatis.

Pada instalasi Kali Linux, nmap dan hydra tersedia untuk menguji seberapa besar permukaan serangan SSH. Saya memakai Kali Linux Indonesia sebagai mesin penguji di sisi klien, sedangkan server target berupa mesin virtual di jaringan internal. Kondisi ini meniru skenario sertifikasi seperti Security+ atau uji penetrasi entry level, tetapi semua langkahnya tetap bertujuan memperkuat server, bukan mengeksploitasi.

Setelah server terpasang, saya mencatat versi layanan, port yang terbuka, dan aturan autentikasi yang aktif. Catatan itu menjadi baseline. Kalau ada perubahan konfigurasi, saya bisa membandingkan hasil pemindaian sebelum dan sesudahnya. Pendekatan ini membantu membedakan mana temuan yang memang berbahaya dan mana yang sekadar noise dari pemindai internet.

Audit Konfigurasi OpenSSH dari Kali Linux

Langkah pertama yang saya lakukan adalah membaca banner SSH. Perintah nmap -sV -p 22 192.168.1.10 menunjukkan versi OpenSSH yang berjalan. Informasi ini penting karena versi lama bisa memiliki CVE yang belum dipatch. Di lab saya, server simulasi produksi memakai OpenSSH 9.8 atau lebih baru untuk menghindari regreSSHion.

Contoh banner SSH yang terlihat saat pemindaian nmap di Kali Linux
Contoh banner SSH yang terlihat saat pemindaian nmap di Kali Linux

Setelah versi diketahui, saya memeriksa file /etc/ssh/sshd_config. Parameter yang sering longgar misalnya PermitRootLogin yes, PasswordAuthentication yes, dan X11Forwarding yes. Nilai bawaan beberapa distro mungkin aman, tetapi server yang dibuat dari template lama sering mempertahankan nilai permisif. Kali Linux Indonesia membantu saya menjalankan pemindaian sederhana, lalu hasilnya saya bandingkan dengan standar hardening seperti panduan CIS atau NIST.

Saya juga memeriksa paket OpenSSH yang terpasang. Pada server Debian atau Ubuntu, perintah dpkg -l openssh-server atau apt-cache policy openssh-server memberikan informasi versi. Kalau versi masih di bawah 9.8, saya prioritaskan pembaruan sebelum mengubah parameter lain. Ini langkah dasar yang sering terlewat karena orang terlalu fokus pada firewall.

Nonaktifkan Login Root dan Batasi User SSH

Login root langsung lewat SSH adalah temuan yang hampir selalu saya perbaiki pertama kali. Jika penyerang menebak kredensial root, ia langsung mendapat kontrol penuh. Di server lab, saya buat user non-root untuk administrasi harian, lalu menjadikan akses root hanya lewat su atau sudo setelah sesi user terbentuk.

Perubahan dilakukan pada file /etc/ssh/sshd_config dengan mengatur PermitRootLogin no. Setelah itu saya tambahkan AllowUsers labadmin agar hanya akun labadmin yang boleh membuka sesi SSH. Aturan ini mengurangi serangan brute force ke akun sistem seperti git, mysql, atau www-data. Jangan lupa merestart layanan dengan systemctl restart sshd setelah konfigurasi diubah.

Pembatasan user juga membantu saat server dipakai untuk latihan CTF. Peserta hanya mendapat akun dengan hak terbatas, jadi mereka tidak langsung merusak konfigurasi server. Di sisi lain, admin tetap bisa masuk lewat akun non-root dan meningkatkan hak jika perlu. Praktik ini sejalan dengan prinsip least privilege.

Gunakan Kunci SSH dan Matikan PasswordAuthentication

Password yang kuat tetap bisa bocor lewat phishing atau keylogger. Kunci SSH tidak bisa ditebak dengan brute force biasa. Di lab, saya membuat pasangan kunci dengan ssh-keygen -t ed25519 -a 100. Kunci publik disalin ke server dengan ssh-copy-id [email protected]. Setelah kunci terpasang dan login terkonfirmasi, saya mengubah PasswordAuthentication no di sshd_config.

Konsekuensinya, server menolak semua percobaan login berbasis password. Bot yang mengandalkan kamus password akan gagal sejak awal. Mastikan kunci privat disimpan di lokasi aman dan diberi passphrase. Di Kali Linux Indonesia, saya biasa menguji login ulang setelah aturan ini aktif untuk memastikan tidak ada akun yang terkunci di luar lab.

Sebelum mematikan password, saya selalu menyalin kunci publik ke server dengan benar. Kalau kunci publik tidak cocok atau file authorized_keys salah permission, sesi SSH bisa tertutup total dan saya harus masuk lewat konsol. Karena itu, di lab saya selalu menyiapkan akses konsol virtual sebagai jalur darurat.

Perketat Parameter sshd_config untuk Menahan Brute Force

Selain kunci SSH, saya menambahkan beberapa parameter untuk memperlambat serangan otomatis. MaxAuthTries 3 membatasi percobaan login per koneksi. LoginGraceTime 30 memberi waktu singkat untuk menyelesaikan autentikasi. ClientAliveInterval 300 dan ClientAliveCountMax 2 memutus sesi yang tidak aktif terlalu lama.

Saya juga mengaktifkan AllowTcpForwarding no bila tidak diperlukan, karena port forwarding bisa dimanfaatkan untuk pivot. Di sisi firewall, saya membatasi akses port SSH ke IP statis lab atau subnet internal. Dengan cara ini, server tidak menerima koneksi dari seluruh internet. Pengujian dari Kali Linux Indonesia memastikan aturan firewall bekerja sebelum server dinyatakan selesai.

Setelah sshd_config diubah, saya memasang fail2ban. Alat ini membaca log autentikasi dan memblokir IP yang gagal login berulang kali. Aturan bawaannya cukup untuk kebutuhan lab, tetapi saya biasanya menambah bantime = 3600 dan maxretry = 3 pada jail SSH. Dengan kombinasi firewall dan fail2ban, brute force menjadi jauh lebih lambat dan mudah terdeteksi.

Uji Ulang dengan nmap dan Pantau Log

Tahap terakhir adalah memvalidasi konfigurasi. Saya menjalankan nmap -sV -p 22 192.168.1.10 dari Kali Linux Indonesia. Hasilnya harus menunjukkan versi OpenSSH terbaru, port 22 atau port alternatif, dan tidak ada banner yang bocor. Setelah itu saya mencoba login dengan user yang tidak diizinkan lewat ssh [email protected]. Server harus menolak atau memutus koneksi.

Log auth juga perlu dipantau secara berkala. Di Debian atau Ubuntu, log tersimpan di /var/log/auth.log. Saya mencari pola Failed password atau Invalid user untuk melihat apakah ada serangan brute force. Pemantauan ini lebih berguna daripada sekadar memasang aturan, karena tren serangan berubah dari waktu ke waktu.

Selain log, saya mencatat timestamp pengujian. Catatan itu membantu saat ada perubahan tidak terduga, misalnya sesi SSH tiba-tiba ditolak. Dengan membandingkan waktu kejadian dan isi log, saya bisa memperkirakan apakah masalah datang dari salah konfigurasi atau dari upaya serangan. Di lab, troubleshooting jadi lebih cepat karena baseline sudah jelas.

Pengamanan SSH bukan tugas satu kali. Server lab yang meniru produksi perlu diuji ulang setelah setiap perubahan sistem. Dengan pendekatan defensif, Kali Linux Indonesia menjadi alat audit yang membantu menemukan konfigurasi lemah sebelum server benar-benar diletakkan di jaringan publik. Semua pengujian di sini hanya untuk lingkungan pribadi, CTF legal, atau studi sertifikasi.

Pertanyaan yang sering diajukan

Apakah mematikan PasswordAuthentication membuat server tidak bisa diakses?
Tidak, selama kunci SSH publik sudah disalin ke server dan kunci privat tersedia di klien. Login berbasis kunci tetap berfungsi, bahkan lebih aman dari brute force password.
Apakah port SSH harus diganti dari 22?
Tidak wajib, tetapi mengganti port membantu mengurangi noise scanner massal. Port 22 tetap bisa dipakai bila firewall sudah membatasi akses ke IP tertentu.
Apakah saya bisa memakai Kali Linux Indonesia untuk mengamankan server produksi?
Bisa, dengan syarat seluruh pengujian dilakukan di lingkungan lab yang meniru produksi atau target resmi CTF. Kali Linux Indonesia dipakai untuk audit defensif, bukan menyerang sistem pihak lain.
Berapa lama waktu yang dibutuhkan untuk hardening SSH dasar?
Sekitar 30 sampai 60 menit setelah server lab siap. Waktu itu mencakup audit versi, pengubahan sshd_config, pembuatan kunci, restart layanan, dan uji login ulang.