Ako zabezpečiť SSH na Linux VPS
Verejný VPS dostáva automatizované pokusy o prihlásenie už pár minút po spustení. Tieto kroky výrazne sťažia útoky na SSH. Sú písané pre Ubuntu alebo Debian; ak ešte server nemáte, môžete si prenajať Linux VPS a začať s čistým obrazom. Aktuálnu SSH reláciu nechajte otvorenú, kým nové nastavenia neotestujete z druhého okna.
1. Vytvorte bežného používateľa so sudo
adduser deploy
usermod -aG sudo deploy2. Používajte SSH kľúče namiesto hesiel
Na vašom počítači:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPPrihláste sa raz pomocou kľúča, aby ste overili, že funguje, až potom vypnite heslá.
3. Vypnite prihlasovanie heslom a rootom
Vytvorte súbor /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Skontrolujte syntax a znovu načítajte službu. Služba sa volá ssh na Ubuntu a Debian a sshd na systémoch založených na RHEL:
sudo sshd -t && sudo systemctl reload sshOtvorte druhý terminál a prihláste sa znova. Až potom zatvorte starú reláciu.
4. Zapnite firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseOtvárajte iba porty, ktoré potrebujete, napríklad 80 a 443 pre webový server. SSH môžete obmedziť aj na svoju IP adresu pomocou pravidla firewallu v cloudovej konzole.
5. Blokujte opakované zlyhania pomocou Fail2ban
sudo apt install -y fail2banVytvorte súbor /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Inštalujte bezpečnostné aktualizácie automaticky
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Voliteľné doplnky
- Zmena portu SSH znižuje množstvo záznamov v logoch, ale sama o sebe nie je bezpečnostným opatrením.
- Súkromný kľúč chráňte heslom (passphrase) a uschovajte si jeho zálohu na bezpečnom mieste.
- Prihlásenia kontrolujte pomocou
lastasudo journalctl -u ssh --since today. - Po nastavení servera vytvorte snapshot, aby ste mohli obnoviť čistý základ.
Ak sa zamknete mimo server, použite v cloudovom paneli konzolu v prehliadači a opravte konfiguráciu. Ďalšiu vrstvu ochrany popisuje náš návod na ochranu pred DDoS útokmi.
Často kladené otázky
Je bezpečné zakázať prihlasovanie rootom?
Áno, ak najprv vytvoríte používateľa so sudo a otestujete, že jeho kľúč funguje. Administratívne príkazy môžete spúšťať naďalej cez sudo.
Potrebujem Fail2ban, ak používam iba kľúče?
Nie je to nutné. Keď je prihlasovanie heslom vypnuté, hrubá sila nemôže uspieť, no Fail2ban znižuje množstvo záznamov v logoch a záťaž.
Čo ak stratím SSH kľúč?
Použite konzolu v cloudovom paneli na prihlásenie, pridajte nový verejný kľúč do ~/.ssh/authorized_keys a starý kľúč odstráňte.