Cara mengamankan SSH di VPS Linux
Sebuah VPS publik menerima percobaan login otomatis dalam hitungan menit setelah online. Langkah-langkah berikut membuat SSH jauh lebih sulit diserang. Panduan ini ditulis untuk Ubuntu atau Debian. Jika Anda belum membuat server, Anda bisa menyewa VPS Linux dan mulai dari image yang bersih. Biarkan sesi SSH Anda yang sekarang tetap terbuka sampai Anda sudah menguji pengaturan baru dari jendela kedua.
1. Buat pengguna biasa dengan sudo
adduser deploy
usermod -aG sudo deploy2. Gunakan kunci SSH, bukan sandi
Di komputer Anda sendiri:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPLogin sekali dengan kunci untuk memastikan kunci berfungsi sebelum Anda mematikan login sandi.
3. Nonaktifkan login sandi dan root
Buat /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Periksa sintaksnya dan muat ulang layanan. Layanannya bernama ssh di Ubuntu dan Debian, serta sshd di sistem berbasis RHEL:
sudo sshd -t && sudo systemctl reload sshBuka terminal kedua dan login lagi. Baru setelah itu tutup sesi lama.
4. Aktifkan firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseBuka hanya port yang Anda perlukan, misalnya 80 dan 443 untuk server web. Anda juga bisa membatasi SSH ke alamat IP Anda sendiri dengan aturan firewall di konsol cloud.
5. Blokir kegagalan berulang dengan Fail2ban
sudo apt install -y fail2banBuat /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Pasang pembaruan keamanan secara otomatis
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Tambahan opsional
- Mengubah port SSH mengurangi kebisingan log, tetapi bukan tindakan keamanan dengan sendirinya.
- Lindungi kunci privat dengan passphrase dan simpan cadangannya di tempat yang aman.
- Tinjau login dengan
lastdansudo journalctl -u ssh --since today. - Buat snapshot setelah server dikonfigurasi, agar Anda bisa memulihkan kondisi awal yang bersih.
Jika Anda terkunci, gunakan konsol browser di panel cloud Anda untuk login dan memperbaiki konfigurasi. Panduan perlindungan DDoS kami membahas lapisan pertahanan berikutnya.
Pertanyaan yang sering diajukan
Apakah aman menonaktifkan login root?
Aman, asalkan Anda lebih dulu membuat pengguna sudo dan menguji bahwa kuncinya berfungsi. Anda tetap bisa menjalankan perintah administratif dengan sudo.
Apakah saya perlu Fail2ban jika hanya memakai kunci?
Tidak wajib. Dengan login sandi dinonaktifkan, brute force tidak akan berhasil, tetapi Fail2ban tetap mengurangi kebisingan log dan beban server.
Bagaimana jika saya kehilangan kunci SSH?
Gunakan konsol di panel cloud Anda untuk login, tambahkan kunci publik baru ke ~/.ssh/authorized_keys, lalu hapus kunci yang lama.