Cara mengamankan SSH pada VPS Linux
VPS awam menerima percubaan log masuk automatik dalam masa beberapa minit selepas dihidupkan. Langkah-langkah ini menyukarkan serangan ke atas SSH. Ia ditulis untuk Ubuntu atau Debian; jika anda belum mencipta pelayan, anda boleh sewa VPS Linux dan mulakan dengan imej yang bersih. Kekalkan sesi SSH semasa anda sehingga anda telah menguji tetapan baharu dari tetingkap kedua.
1. Cipta pengguna biasa dengan sudo
adduser deploy
usermod -aG sudo deploy2. Guna kunci SSH dan bukan kata laluan
Pada komputer anda sendiri:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPLog masuk sekali dengan kunci untuk mengesahkan ia berfungsi sebelum anda mematikan kata laluan.
3. Matikan log masuk kata laluan dan root
Cipta /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Semak sintaks dan muat semula perkhidmatan. Perkhidmatan dipanggil ssh pada Ubuntu dan Debian serta sshd pada sistem berasaskan RHEL:
sudo sshd -t && sudo systemctl reload sshBuka terminal kedua dan log masuk semula. Hanya selepas 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 diperlukan, contohnya 80 dan 443 untuk pelayan web. Anda juga boleh mengehadkan SSH kepada alamat IP anda sendiri dengan peraturan firewall dalam panel cloud.
5. Sekat kegagalan berulang dengan Fail2ban
sudo apt install -y fail2banCipta /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Pasang kemas kini keselamatan secara automatik
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Tambahan pilihan
- Menukar port SSH mengurangkan bunyi log tetapi bukan langkah keselamatan dengan sendirinya.
- Lindungi kunci persendirian dengan frasa laluan dan simpan salinan sandaran di tempat yang selamat.
- Semak log masuk dengan
lastdansudo journalctl -u ssh --since today. - Ambil snapshot selepas pelayan dikonfigurasi, supaya anda boleh memulihkan asas yang bersih.
Jika anda terkunci di luar, gunakan konsol pelayar dalam panel cloud anda untuk log masuk dan membetulkan konfigurasi. Panduan perlindungan DDoS kami membincangkan lapisan pertahanan seterusnya.
Soalan lazim
Adakah selamat untuk mematikan log masuk root?
Ya, jika anda terlebih dahulu mencipta pengguna sudo dan menguji bahawa kuncinya berfungsi. Anda masih boleh menjalankan arahan pentadbiran dengan sudo.
Perlukah saya Fail2ban jika saya hanya guna kunci?
Ia pilihan. Dengan log masuk kata laluan dimatikan, serangan kekerasan (brute force) tidak boleh berjaya, tetapi Fail2ban mengurangkan bunyi log dan beban.
Bagaimana jika saya hilang kunci SSH?
Gunakan konsol dalam panel cloud anda untuk log masuk, tambah kunci awam baharu ke ~/.ssh/authorized_keys dan buang yang lama.