SSH (Secure Shell) adalah salah satu layanan paling penting dalam administrasi server Linux. SSH digunakan untuk mengakses server secara remote dengan aman melalui jaringan.
Namun jika tidak dikonfigurasi dengan benar, SSH juga bisa menjadi target utama serangan seperti brute force attack.
Pada artikel ini kita akan membahas cara mengamankan SSH server agar lebih secure untuk production environment.
1. Update Server Terlebih Dahulu
Sebelum melakukan konfigurasi keamanan, pastikan server dalam kondisi terbaru.
Ubuntu / Debian:
sudo apt update && sudo apt upgrade -y
CentOS / AlmaLinux / Rocky:
sudo dnf update -y
2. Mengubah Port SSH Default
Secara default SSH menggunakan port 22. Karena port ini sangat umum, banyak bot internet yang mencoba brute force ke port tersebut.
Edit konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
Cari baris berikut:
#Port 22
Ubah menjadi misalnya:
Port 2222
Restart SSH:
sudo systemctl restart ssh
Sekarang login SSH menggunakan:
ssh user@server-ip -p 2222
3. Disable Login Root
Login langsung menggunakan root sangat berbahaya.
Edit file konfigurasi:
sudo nano /etc/ssh/sshd_config
Cari:
PermitRootLogin yes
Ubah menjadi:
PermitRootLogin no
Kemudian restart SSH.
4. Menggunakan SSH Key Authentication
SSH key jauh lebih aman dibandingkan password.
Generate SSH key di komputer lokal:
ssh-keygen
Copy public key ke server:
ssh-copy-id user@server-ip
Setelah itu login menggunakan key.
5. Disable Password Authentication
Jika sudah menggunakan SSH key, kita bisa mematikan login password.
Edit konfigurasi:
sudo nano /etc/ssh/sshd_config
Cari:
PasswordAuthentication yes
Ubah menjadi:
PasswordAuthentication no
Restart SSH:
sudo systemctl restart ssh
Sekarang server hanya menerima login menggunakan SSH key.
6. Batasi User yang Bisa Login SSH
Untuk meningkatkan keamanan, kita bisa membatasi user yang boleh login SSH.
Edit konfigurasi:
sudo nano /etc/ssh/sshd_config
Tambahkan:
AllowUsers admin
Artinya hanya user admin yang dapat login SSH.
7. Install Fail2Ban
Fail2Ban membantu memblokir IP yang mencoba brute force login SSH.
Install Fail2Ban:
sudo apt install fail2ban -y
Start service:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Fail2Ban akan otomatis memblokir IP yang melakukan banyak percobaan login gagal.
8. Gunakan Firewall
Pastikan hanya port SSH yang diperlukan saja yang dibuka.
Jika menggunakan UFW:
sudo ufw allow 2222/tcp
sudo ufw enable
Kesimpulan
Mengamankan SSH server sangat penting untuk melindungi server dari serangan yang tidak diinginkan.
Beberapa langkah penting yang bisa dilakukan antara lain:
- Mengubah port SSH default
- Menonaktifkan login root
- Menggunakan SSH key authentication
- Menonaktifkan login password
- Menggunakan Fail2Ban
- Mengaktifkan firewall
Dengan menerapkan konfigurasi ini, server Linux akan jauh lebih aman dari serangan brute force dan akses yang tidak sah.