Artikel

Cara Mengamankan OpenSSH

admin
29 November 2025
8 min
Cara Mengamankan OpenSSH

Daftar Isi

OpenSSH adalah salah satu layanan yang paling sering menjadi target serangan karena memberikan akses langsung ke sistem. Menerapkan praktik keamanan yang tepat sangat penting untuk melindungi server Anda. Berikut adalah 20 praktik keamanan terbaik yang harus Anda terapkan.

Cara Mengamankan OpenSSH

1. Nonaktifkan Login Root

Login langsung sebagai root adalah risiko keamanan besar. Serang dengan akun root langsung mendapatkan akses penuh ke sistem.Edit file /etc/ssh/sshd_config:

PermitRootLogin no

Setelah ini, Anda harus login sebagai user biasa kemudian gunakan sudo untuk akses root.

2. Gunakan Autentikasi Berbasis Kunci SSH

Autentikasi kunci jauh lebih aman dibanding password karena tidak rentan terhadap serangan brute force.PENTING: Jangan gunakan DSA atau RSA dengan bit rendah. DSA sudah deprecated dan akan dihapus dari OpenSSH 2025.Generate kunci SSH yang aman:

# Pilihan terbaik: ED25519 (modern dan cepat) ssh-keygen -t ed25519 -C "Login ke production server" # Alternatif: RSA 4096 bit (untuk kompatibilitas) ssh-keygen -t rsa -b 4096 -C "AWS server key"

Salin kunci publik ke server:

ssh-copy-id user@server

Kemudian nonaktifkan autentikasi password di sshd_config:

AuthenticationMethods publickey PubkeyAuthentication yes PasswordAuthentication no

3. Ubah Port Default SSH

Port 22 adalah target utama scanner otomatis. Mengubah ke port non-standar dapat mengurangi serangan otomatis.

Port 2222

Pastikan firewall Anda mengizinkan port baru dan update koneksi klien Anda.

4. Gunakan Protokol SSH Versi 2

SSH Protocol 1 memiliki kelemahan keamanan yang serius. Pastikan hanya menggunakan Protocol 2.

Protocol 2

Sebagian besar distribusi modern sudah default menggunakan Protocol 2, tapi pastikan untuk memverifikasinya.

5. Batasi User yang Dapat Login

Jangan izinkan semua user sistem untuk login via SSH. Tentukan secara spesifik siapa yang boleh akses.

AllowUsers username1 username2

Atau gunakan grup:

AllowGroups sshusers

6. Implementasikan Fail2Ban

Fail2Ban secara otomatis memblokir IP yang melakukan percobaan login gagal berulang kali.Install dan konfigurasi:

sudo apt install fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban

Buat konfigurasi di /etc/fail2ban/jail.local:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600

7. Gunakan Firewall untuk Membatasi Akses SSH

Batasi akses SSH hanya dari IP atau range IP tertentu menggunakan iptables atau ufw.Dengan UFW:

sudo ufw allow from 192.168.1.0/24 to any port 22 sudo ufw enable

Dengan iptables:

iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP

8. Atur Timeout Login

Tentukan batas waktu untuk login agar koneksi idle tidak terbuka terlalu lama.

ClientAliveInterval 300 ClientAliveCountMax 2 LoginGraceTime 60

Setting ini akan memutus koneksi setelah 10 menit idle dan memberikan 60 detik untuk login.

9. Nonaktifkan Autentikasi Kosong

Pastikan tidak ada user yang bisa login tanpa password atau kunci.

PermitEmptyPasswords no

10. Gunakan Two-Factor Authentication (2FA)

Tambahkan lapisan keamanan ekstra dengan Google Authenticator atau aplikasi 2FA lainnya.Install Google Authenticator:

sudo apt install libpam-google-authenticator

Konfigurasi di /etc/pam.d/sshd:

auth required pam_google_authenticator.so

Dan di sshd_config:

ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive

11. Batasi Jumlah Percobaan Login

Kurangi jumlah maksimal percobaan autentikasi untuk memperlambat serangan brute force.

MaxAuthTries 3

12. Nonaktifkan X11 Forwarding

Kecuali Anda benar-benar membutuhkannya, nonaktifkan X11 forwarding untuk mengurangi surface attack.

X11Forwarding no

13. Nonaktifkan Port Forwarding (Jika Tidak Diperlukan)

Jika Anda tidak menggunakan SSH tunneling, nonaktifkan fitur ini.

AllowTcpForwarding no AllowStreamLocalForwarding no GatewayPorts no PermitTunnel no

14. Gunakan Chroot untuk SFTP Users

Isolasi user SFTP dalam direktori tertentu agar mereka tidak bisa mengakses seluruh sistem file.

Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory /home/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

15. Update OpenSSH Secara Berkala

Selalu gunakan versi OpenSSH terbaru untuk mendapat patch keamanan.

sudo apt update sudo apt upgrade openssh-server

Cek versi Anda:

ssh -V

16. Monitor Log SSH Secara Aktif

Periksa log secara rutin untuk mendeteksi aktivitas mencurigakan.

sudo tail -f /var/log/auth.log

Atau gunakan tools seperti logwatch untuk laporan otomatis.

17. Gunakan Strong Encryption Algorithms

Nonaktifkan algoritma enkripsi yang lemah dan hanya gunakan yang kuat. Konfigurasi ini kompatibel dengan OpenSSH 6.7+ hingga versi terbaru (9.9+).PENTING: DSA sudah deprecated di OpenSSH 9.8+ dan akan dihapus sepenuhnya. Hapus semua referensi DSA dari konfigurasi Anda.

# Host keys - prioritaskan ED25519 HostKey /etc/ssh/ssh_host_ed25519_key HostKey /etc/ssh/ssh_host_rsa_key # Ciphers yang aman Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr # MACs yang aman MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com # Key Exchange Algorithms yang aman KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512

Untuk melihat algoritma yang didukung server Anda:

ssh -Q cipher ssh -Q mac ssh -Q kex ssh -Q key

18. Batasi Jumlah Koneksi Concurrent

Cegah satu user membuka terlalu banyak koneksi sekaligus.

MaxSessions 2 MaxStartups 10:30:60

19. Gunakan Banner Warning

Tampilkan peringatan legal sebelum login sebagai deterrent.Buat file /etc/ssh/banner.txt:

*************************************************************************** PERINGATAN Sistem ini hanya untuk pengguna yang berwenang. Semua aktivitas dipantau dan dicatat. Akses tidak sah akan ditindak sesuai hukum yang berlaku. ***************************************************************************

Kemudian di sshd_config:

Banner /etc/ssh/banner.txt

20. Implementasikan SELinux atau AppArmor

Gunakan mandatory access control untuk membatasi apa yang dapat dilakukan oleh proses SSH.Untuk SELinux (RHEL/CentOS/Fedora):

sudo setenforce 1 sudo setsebool -P ssh_chroot_rw_homedirs on

Untuk AppArmor (Ubuntu/Debian):

sudo aa-enforce /etc/apparmor.d/usr.sbin.sshd

21. Waspadai Vulnerability Terbaru

OpenSSH 8.5p1 hingga 9.7p1 memiliki critical vulnerability (CVE-2024-6387 “regreSSHion”). Pastikan Anda menggunakan:

  • OpenSSH 9.8p1 atau lebih baru
  • Atau versi yang sudah di-patch oleh distribusi Anda

Cek versi OpenSSH Anda:

ssh -V

22. Aktifkan Logging yang Detail

Untuk audit trail yang lebih baik:

LogLevel VERBOSE

Ini akan mencatat fingerprint kunci SSH yang digunakan untuk login.

23. Post-Quantum Cryptography (OpenSSH 9.9+)

OpenSSH 9.9+ mendukung key exchange hybrid post-quantum:

KexAlgorithms mlkem768x25519-sha256,curve25519-sha256,curve25519-sha256@libssh.org

Algoritma mlkem768x25519-sha256 menggabungkan FIPS 203 ML-KEM dengan X25519 untuk proteksi terhadap quantum computers masa depan.

Kesimpulan

Keamanan SSH adalah proses berkelanjutan yang membutuhkan kombinasi dari berbagai praktik terbaik. Tidak ada satu solusi yang sempurna, namun dengan menerapkan praktik-praktik di atas secara bersamaan, Anda dapat secara signifikan meningkatkan keamanan server SSH Anda.Checklist Penting untuk 2024-2025:

  • Update ke OpenSSH 9.8+ atau lebih baru
  • Gunakan ED25519 atau RSA 4096-bit, HINDARI DSA
  • Nonaktifkan root login dan password authentication
  • Implementasikan Fail2Ban atau tools serupa
  • Gunakan strong ciphers dan MACs
  • Monitor log secara aktif
  • Pertimbangkan 2FA untuk keamanan tambahan

Setelah melakukan perubahan konfigurasi:

  1. Test konfigurasi terlebih dahulu:
sudo sshd -t
  1. Pastikan Anda memiliki akses alternatif (console/KVM) sebelum restart
  2. Restart SSH service:
# Ubuntu/Debian sudo systemctl restart ssh # RHEL/CentOS/Fedora sudo systemctl restart sshd # FreeBSD sudo service sshd restart

Tools Audit SSH: Gunakan ssh-audit untuk mengaudit konfigurasi SSH Anda:

# Install pip3 install ssh-audit # Scan server ssh-audit localhost

Tool ini akan memberikan rekomendasi spesifik untuk meningkatkan keamanan SSH Anda berdasarkan standar terkini.

FAQ

1. Apakah mengganti port SSH benar-benar meningkatkan keamanan?

Iya, tetapi hanya sebagai security through obscurity. Mengganti port mengurangi serangan automated scanner, namun bukan pengganti autentikasi kuat dan hardening lainnya.

2. Apa kunci SSH terbaik yang digunakan pada tahun 2025?

Gunakan ED25519 sebagai pilihan utama karena cepat, aman, dan modern. Alternatif yang masih aman untuk kompatibilitas: RSA 4096 bit. Hindari DSA karena deprecated dan akan dihapus dari OpenSSH versi baru.

3. Apakah aman menonaktifkan autentikasi password?

Sangat aman. Autentikasi password rentan brute force.
Jika Anda sudah menggunakan public key authentication, sebaiknya matikan password authentication sepenuhnya.

4. Apakah Fail2Ban wajib digunakan?

Tidak wajib, tetapi sangat direkomendasikan. Fail2Ban membantu memblokir IP yang mencoba login berulang-ulang—efektif melawan brute force attack.

5. Mengapa login root harus dinonaktifkan?

Karena akun root memiliki akses penuh. Jika disusupi, seluruh server dapat diambil alih.
Lebih aman login sebagai user biasa, lalu gunakan sudo.

6. Bagaimana cara mengetahui apakah server saya rentan CVE-2024-6387 (regreSSHion)?

Cek versi OpenSSH Anda:

ssh -V

Jika versi Anda 8.5p1–9.7p1, maka Anda mungkin rentan kecuali distro Anda sudah mengeluarkan patch. Versi aman: 9.8p1 atau lebih baru.

7. Apa manfaat membatasi user yang dapat login?

Mencegah semua user sistem memiliki akses SSH.
Dengan AllowUsers atau AllowGroups, hanya user tertentu yang bisa masuk — sangat efektif mengurangi risiko penyalahgunaan akun.

8. Apakah Two-Factor Authentication (2FA) diperlukan untuk SSH?

Untuk server yang berisi data penting, sangat direkomendasikan.
2FA menambahkan satu lapisan keamanan ekstra selain key authentication.

9. Mengapa saya perlu menonaktifkan X11 forwarding dan port forwarding?

Karena fitur ini memperluas permukaan serangan.
Jika Anda tidak membutuhkannya, mematikan fitur ini mengurangi kemungkinan eksploitasi.

10. Apakah firewall masih perlu jika sudah menggunakan kunci SSH?

Ya. Firewall tetap penting untuk:

  • Membatasi IP yang boleh akses
  • Memblokir traffic mencurigakan
  • Melindungi dari brute force massal

Firewall adalah lapisan pertahanan tambahan yang tetap wajib.

11. Mengapa perlu memonitor log SSH?

Karena semua usaha login, baik sukses maupun gagal, dicatat di log.
Dengan memonitor log, Anda bisa mendeteksi:

  • Percobaan login mencurigakan
  • IP asing yang mencoba masuk
  • Aktivitas tidak normal dari user

12. Apa itu Post-Quantum Cryptography di OpenSSH 9.9+?

OpenSSH 9.9+ mendukung algoritma hybrid kuantum (mlkem768x25519-sha256).

Ini memberikan perlindungan terhadap serangan future quantum computers.

13. Apakah semua cipher lama harus dinonaktifkan?

Ya, cipher lama seperti arcfour, aes128-cbc, atau DSA sudah tidak aman.
Gunakan cipher modern seperti:

  • chacha20-poly1305
  • aes256-gcm
  • aes128-gcm

14. Kapan saya harus menggunakan chroot untuk SFTP users?

Jika Anda ingin user hanya mengakses file/directory tertentu.
Chroot mengunci user ke folder tertentu sehingga lebih aman.

15. Apa risiko mengubah konfigurasi SSH tanpa testing?

Risiko terbesar: terkunci dari server.
Selalu lakukan:

sudo sshd -t

untuk validate config, dan pastikan Anda memiliki akses rescue/KVM/console.

admin

admin

Tim Profesional Netbits.id Menyediakan Jasa pembuatan website, jasa install VPS, Jasa Desain Grafis, Jasa Migrasi Hosting, Jasa Install Wordpress

Lihat Semua Artikel
Chat via WhatsAppChat via WhatsApp