Jak zabezpečit SSH na Linux VPS
Veřejné VPS dostává automatizované pokusy o přihlášení během několika minut po spuštění. Tyto kroky výrazně ztíží útoky na SSH. Jsou psané pro Ubuntu nebo Debian; pokud server ještě nemáte, můžete si pronajmout Linux VPS a začít s čistým obrazem. Aktuální SSH relaci nechte otevřenou, dokud nové nastavení neotestujete z druhého okna.
1. Vytvořte běžného uživatele se sudo
adduser deploy
usermod -aG sudo deploy2. Použijte SSH klíče místo hesel
Na svém počítači spusťte:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPNež vypnete hesla, přihlaste se jednou klíčem a ověřte, že funguje.
3. Vypněte přihlášení heslem a rootem
Vytvořte soubor /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Zkontrolujte syntaxi a znovu načtěte službu. Služba se jmenuje ssh na Ubuntu a Debianu a sshd na systémech založených na RHEL:
sudo sshd -t && sudo systemctl reload sshOtevřete druhý terminál a znovu se přihlaste. Teprve potom zavřete původní relaci.
4. Zapněte firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseOtevřete jen porty, které potřebujete, například 80 a 443 pro webový server. SSH můžete také omezit na svou IP adresu pomocí pravidla firewallu v cloudové konzoli.
5. Blokujte opakovaná selhání pomocí Fail2ban
sudo apt install -y fail2banVytvořte soubor /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Instalujte bezpečnostní aktualizace automaticky
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Volitelná doplnění
- Změna portu SSH sníží množství záznamů v logu, ale sama o sobě není bezpečnostní opatření.
- Chraňte privátní klíč heslem a uložte jeho zálohu na bezpečné místo.
- Přihlášení kontrolujte příkazy
lastasudo journalctl -u ssh --since today. - Po dokončení konfigurace serveru vytvořte snapshot, abyste mohli obnovit čistý výchozí stav.
Pokud se zamknete mimo server, použijte konzoli v prohlížeči v cloudovém panelu k přihlášení a opravě konfigurace. Naším průvodcem ochranou proti DDoS se zabývá další vrstva obrany.
Často kladené dotazy
Je bezpečné vypnout přihlášení rootem?
Ano, pokud nejprve vytvoříte uživatele se sudo a ověříte, že funguje jeho klíč. Administrativní příkazy můžete dál spouštět přes sudo.
Potřebuji Fail2ban, když používám jen klíče?
Není to nutné. Při vypnutém přihlášení heslem nemůže brute force uspět, ale Fail2ban snižuje množství záznamů v logu a zátěž.
Co když ztratím SSH klíč?
Přihlaste se přes konzoli v cloudovém panelu, přidejte nový veřejný klíč do ~/.ssh/authorized_keys a starý klíč odstraňte.