Paano i-secure ang SSH sa Linux VPS
Ang VPS na nakalantad sa publiko ay nakakatanggap ng automated na login attempts sa loob ng ilang minuto mula nang ma-online ito. Ginagawa ng mga hakbang na ito na mas mahirap atakihin ang SSH. Nakasulat ang mga ito para sa Ubuntu o Debian. Kung wala ka pang server, maaari kang umupa ng Linux VPS at magsimula sa malinis na image. Panatilihing bukas ang kasalukuyan mong SSH session hanggang masubukan mo ang mga bagong setting mula sa pangalawang window.
1. Gumawa ng normal na user na may sudo
adduser deploy
usermod -aG sudo deploy2. Gumamit ng SSH keys sa halip na password
Sa sarili mong computer:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPMag-log in nang isang beses gamit ang key para tiyaking gumagana ito bago mo i-off ang password.
3. I-off ang password at root login
Gumawa ng /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Suriin ang syntax at i-reload ang service. Ang service ay tinatawag na ssh sa Ubuntu at Debian, at sshd naman sa mga RHEL-based na sistema:
sudo sshd -t && sudo systemctl reload sshMagbukas ng pangalawang terminal at mag-log in ulit. Saka mo lang isara ang lumang session.
4. I-enable ang firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseBuksan lamang ang mga port na kailangan mo, halimbawa ang 80 at 443 para sa web server. Maaari mo ring paghigpitan ang SSH sa sarili mong IP address gamit ang firewall rule sa cloud console.
5. Harangin ang paulit-ulit na failure gamit ang Fail2ban
sudo apt install -y fail2banGumawa ng /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Mag-install ng security updates nang awtomatiko
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Mga opsyonal na dagdag
- Ang pagpalit ng SSH port ay nakakabawas ng log noise, pero hindi ito security measure sa sarili nito.
- Protektahan ang private key gamit ang passphrase, at magtago ng backup nito sa ligtas na lugar.
- Suriin ang mga login gamit ang
lastatsudo journalctl -u ssh --since today. - Kumuha ng snapshot kapag na-configure na ang server, para may malinis na baseline na maibabalik.
Kung na-lock out ka, gamitin ang browser console sa cloud panel mo para mag-log in at ayusin ang configuration. Sakop ng aming gabay sa DDoS protection ang susunod na layer ng depensa.
Mga madalas itanong
Ligtas bang i-disable ang root login?
Oo, basta't muna kang gumawa ng sudo user at masubukan na gumagana ang key nito. Maaari ka pa ring magpatakbo ng administrative commands gamit ang sudo.
Kailangan ko ba ng Fail2ban kung key lang ang gamit ko?
Opsyonal ito. Kapag naka-disable ang password login, hindi magtatagumpay ang brute force, pero binabawasan pa rin ng Fail2ban ang log noise at load.
Paano kung mawala ko ang SSH key ko?
Gamitin ang console sa cloud panel mo para mag-log in, idagdag ang bagong public key sa ~/.ssh/authorized_keys, at alisin ang luma.