Pendahuluan
Secure Shell (SSH) adalah protokol yang banyak digunakan untuk mengakses server Linux secara aman melalui jaringan. Meskipun SSH sudah sangat aman, ada beberapa langkah tambahan yang dapat Anda ambil untuk meningkatkan keamanannya dan melindungi server Anda dari potensi ancaman. Dalam artikel ini, kita akan membahas berbagai cara untuk mengoptimalkan keamanan SSH di Linux, mulai dari pengaturan dasar hingga praktik keamanan lanjutan.
1. Mengganti Port Default SSH
Secara default, SSH menggunakan port 22. Mengubah port ini ke nomor yang kurang umum dapat membantu mengurangi risiko serangan otomatis (brute force) yang biasanya menargetkan port standar.
Untuk mengganti port SSH, buka file konfigurasi SSH (/etc/ssh/sshd_config
) dan temukan atau tambahkan baris berikut:
bash
Port 2222
Gantilah 2222
dengan nomor port lain yang Anda inginkan, kemudian simpan file dan restart layanan SSH:
bash
sudo systemctl restart sshd
2. Menonaktifkan Login Root
Login root melalui SSH memberikan risiko besar jika kata sandi root jatuh ke tangan yang salah. Disarankan untuk menonaktifkan login root dan menggunakan akun pengguna biasa dengan hak istimewa sudo.
Untuk menonaktifkan login root, edit file konfigurasi SSH (/etc/ssh/sshd_config
) dan temukan baris:
bash
PermitRootLogin yes
Gantilah menjadi:
bash
PermitRootLogin no
Setelah itu, restart layanan SSH:
bash
sudo systemctl restart sshd
3. Menggunakan Autentikasi Kunci Publik
Autentikasi kunci publik lebih aman daripada menggunakan kata sandi karena kunci privat hanya disimpan di komputer Anda. Untuk mengatur autentikasi kunci publik:
- Buat pasangan kunci SSH di komputer Anda:
bash
ssh-keygen -t rsa -b 4096
- Salin kunci publik ke server:
bash
ssh-copy-id user@server_ip
- Nonaktifkan autentikasi berbasis kata sandi dengan mengedit file
/etc/ssh/sshd_config
dan mengatur:bash
PasswordAuthentication no
- Restart layanan SSH:
bash
sudo systemctl restart sshd
4. Mengaktifkan Firewall
Firewall adalah lapisan tambahan yang dapat membatasi akses ke server Anda hanya dari alamat IP atau rentang IP tertentu. Anda bisa menggunakan ufw
(Uncomplicated Firewall) untuk mengatur firewall dengan mudah.
- Mengizinkan port SSH yang baru (misalnya port 2222):
bash
sudo ufw allow 2222/tcp
- Mengaktifkan firewall:
bash
sudo ufw enable
- Verifikasi aturan firewall:
bash
sudo ufw status
5. Mengatur Batasan Akses Berdasarkan IP
Jika Anda sering mengakses server dari lokasi tertentu, Anda dapat membatasi akses SSH hanya dari alamat IP tersebut. Tambahkan aturan firewall untuk mengizinkan akses hanya dari IP spesifik:
bash
sudo ufw allow from your_ip_address to any port 2222
Hal ini akan menambahkan lapisan keamanan tambahan dengan membatasi akses hanya kepada alamat IP tertentu.
6. Mengaktifkan Two-Factor Authentication (2FA)
Menambahkan lapisan keamanan dengan mengaktifkan two-factor authentication (2FA) pada SSH adalah langkah penting untuk melindungi server Anda. Anda dapat mengaktifkan 2FA dengan menggunakan Google Authenticator atau aplikasi lain yang mendukung Time-Based One-Time Password (TOTP).
- Instal libpam-google-authenticator:
bash
sudo apt install libpam-google-authenticator
- Konfigurasi pengguna untuk menggunakan 2FA dengan menjalankan:
bash
google-authenticator
- Aktifkan 2FA di SSH dengan menambahkan baris berikut di
/etc/pam.d/sshd
:bash
auth required pam_google_authenticator.so
- Ubah file konfigurasi SSH
/etc/ssh/sshd_config
:bash
ChallengeResponseAuthentication yes
- Restart SSH:
bash
sudo systemctl restart sshd
7. Menonaktifkan SSH Versi 1
SSH versi 1 memiliki sejumlah kelemahan keamanan dan sebaiknya dinonaktifkan. Pastikan server Anda hanya menggunakan SSH versi 2 dengan memastikan baris berikut ada di file /etc/ssh/sshd_config
:
bash
Protocol 2
Kesimpulan
Mengoptimalkan keamanan SSH adalah langkah penting untuk melindungi server Linux Anda dari serangan. Dengan mengganti port default, menonaktifkan login root, menggunakan autentikasi kunci publik, mengaktifkan firewall, membatasi akses berdasarkan IP, mengaktifkan two-factor authentication, dan memastikan penggunaan SSH versi 2, Anda dapat secara signifikan mengurangi risiko keamanan dan menjaga server Anda tetap aman.
Dengan menerapkan langkah-langkah ini, Anda dapat yakin bahwa akses ke server Anda telah diamankan dengan baik, sehingga mengurangi kemungkinan eksploitasi oleh pihak yang tidak bertanggung jawab.