ວິທີຮັກສາຄວາມປອດໄພ SSH ໃນ Linux VPS
VPS ທີ່ເປີດສູ່ອິນເຕີເນັດຈະໄດ້ຮັບຄວາມພະຍາຍາມລ໋ອກອິນອັດຕະໂນມັດພາຍໃນບໍ່ເທົ່າໃດນາທີຫຼັງເລີ່ມເຮັດວຽກ. ຂັ້ນຕອນເຫຼົ່ານີ້ຈະເຮັດໃຫ້ SSH ທົນທານຕໍ່ການໂຈມຕີໄດ້ດີຂຶ້ນຫຼາຍ. ຂັ້ນຕອນນີ້ຂຽນສຳລັບ Ubuntu ຫຼື Debian; ຫາກທ່ານຍັງບໍ່ໄດ້ສ້າງເຊີບເວີ, ທ່ານສາມາດ ເຊົ່າ Linux VPS ແລ້ວເລີ່ມຈາກ image ທີ່ສະອາດ. ໃຫ້ເປີດ SSH session ປັດຈຸບັນໄວ້ຈົນກວ່າທ່ານຈະທົດສອບການຕັ້ງຄ່າໃໝ່ຈາກໜ້າຕ່າງທີສອງສຳເລັດ.
1. ສ້າງຜູ້ໃຊ້ທົ່ວໄປທີ່ມີສິດ sudo
adduser deploy
usermod -aG sudo deploy2. ໃຊ້ SSH key ແທນລະຫັດຜ່ານ
ໃນຄອມພິວເຕີຂອງທ່ານເອງ:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPລ໋ອກອິນດ້ວຍ key ໜຶ່ງຄັ້ງເພື່ອຢືນຢັນວ່າໃຊ້ໄດ້ ກ່ອນທີ່ຈະປິດການໃຊ້ລະຫັດຜ່ານ.
3. ປິດການລ໋ອກອິນດ້ວຍລະຫັດຜ່ານ ແລະ root
ສ້າງໄຟລ໌ /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3ກວດສອບ syntax ແລ້ວໂຫຼດ service ຄືນໃໝ່. Service ນີ້ຊື່ ssh ໃນ Ubuntu ແລະ Debian ແລະຊື່ sshd ໃນລະບົບທີ່ອີງໃສ່ RHEL:
sudo sshd -t && sudo systemctl reload sshເປີດ terminal ທີສອງແລ້ວລ໋ອກອິນອີກຄັ້ງ. ຫຼັງຈາກນັ້ນຈຶ່ງປິດ session ເກົ່າ.
4. ເປີດໃຊ້ firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseເປີດສະເພາະ port ທີ່ຈຳເປັນເທົ່ານັ້ນ ເຊັ່ນ 80 ແລະ 443 ສຳລັບ web server. ທ່ານຍັງສາມາດຈຳກັດ SSH ໃຫ້ເຂົ້າໄດ້ສະເພາະ IP address ຂອງທ່ານເອງ ດ້ວຍ firewall rule ໃນ cloud console.
5. ບລັອກການພະຍາຍາມຜິດຊ້ຳໆດ້ວຍ Fail2ban
sudo apt install -y fail2banສ້າງໄຟລ໌ /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. ຕິດຕັ້ງ security update ອັດຕະໂນມັດ
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. ທາງເລືອກເພີ່ມເຕີມ
- ການປ່ຽນ SSH port ຊ່ວຍຫຼຸດ log ທີ່ຮົບກວນ ແຕ່ບໍ່ແມ່ນມາດຕະການຄວາມປອດໄພໃນຕົວມັນເອງ.
- ປ້ອງກັນ private key ດ້ວຍ passphrase ແລະເກັບ backup ໄວ້ໃນບ່ອນທີ່ປອດໄພ.
- ກວດສອບການລ໋ອກອິນດ້ວຍ
lastແລະsudo journalctl -u ssh --since today. - ສ້າງ snapshot ເມື່ອເຊີບເວີຖືກຕັ້ງຄ່າແລ້ວ ເພື່ອໃຫ້ສາມາດກູ້ຄືນສະຖານະພື້ນຖານທີ່ສະອາດໄດ້.
ຫາກທ່ານຖືກລັອກອອກຈາກລະບົບ, ໃຫ້ໃຊ້ browser console ໃນ cloud panel ຂອງທ່ານເພື່ອລ໋ອກອິນ ແລ້ວແກ້ໄຂການຕັ້ງຄ່າ. ຄູ່ມືປ້ອງກັນ DDoS ຂອງພວກເຮົາ ອະທິບາຍຊັ້ນປ້ອງກັນຖັດໄປ.
ຄຳຖາມທີ່ພົບເລື້ອຍ
Is it safe to disable root login?
Yes, if you first create a sudo user and test that its key works. You can still run administrative commands with sudo.
Do I need Fail2ban if I use keys only?
It is optional. With password login disabled, brute force cannot succeed, but Fail2ban reduces log noise and load.
What if I lose my SSH key?
Use the console in your cloud panel to log in, add a new public key to ~/.ssh/authorized_keys and remove the old one.