Prejsť na obsah
Aktuálny kupón:zľava 10 %Uplatniť v objednávke

Zabezpečenie nového VPS: kontrolný zoznam krok za krokom

Čo urobiť hneď po založení VPS: aktualizácie, nové root heslo, používateľ so sudo, SSH kľúč, firewall, fail2ban a automatické bezpečnostné aktualizácie. Každý krok vysvetlený.

  • začiatočník
  • ~30 min
  • Aktualizované 26. 10. 2026

Prejdete kontrolný zoznam, ktorý z nového VPS urobí bezpečný server: aktualizácie, silné heslá, vlastný používateľ, SSH kľúč, firewall, fail2ban a automatické bezpečnostné záplaty. Pri každom kroku vysvetlíme, prečo ho robiť a čo presne nastavujete.

Čo budete potrebovať

  • Nový VPS u StormHostu s Ubuntu 24.04 alebo Debianom 13
  • Pripojenie cez SSH ako root (návod)
  • Správcu hesiel alebo bezpečné miesto na uloženie hesiel
  • Približne 30 minút

Prečo hneď po založení#

Každá verejná IP adresa je vidieť z celého internetu. Automatizované boty prechádzajú adresy a skúšajú sa prihlásiť cez SSH bežnými menami a heslami. Na novom VPS uvidíte prvé pokusy často už počas niekoľkých minút. Skúste si to:

bash
journalctl -u ssh --since "1 hour ago" | grep -E "Failed password|Invalid user"
  • journalctl -u ssh – vypíše záznamy služby SSH.
  • --since "1 hour ago" – iba za poslednú hodinu.
  • grep -E "…" – nechá iba riadky s neúspešným prihlásením alebo neexistujúcim používateľom.

Na sieti blokujeme známe skenery internetu, ale všetky pokusy to nezastaví. Proti zvyšku vás ochráni silné heslo, SSH kľúč a fail2ban.

Kontrolný zoznam#

KrokPrečoKde
Aktualizovať systémOpraví známe bezpečnostné chyby.Tento návod
Zmeniť root hesloPôvodné heslo prešlo e-mailom alebo obrazovkou.Zmena root hesla
Vytvoriť používateľa so sudoBežná práca bez neobmedzených práv roota.Tento návod
Nastaviť SSH kľúč a vypnúť hesloKľúč sa nedá uhádnuť.SSH kľúč
Zakázať prihlásenie rootaÚtočník musí poznať aj meno používateľa.Tento návod
Zapnúť firewallZvonku bude dostupné iba to, čo chcete.Firewall v zákazníckom účte, UFW
Nainštalovať fail2banZablokuje IP adresy, ktoré skúšajú heslá.Fail2ban
Zapnúť automatické aktualizácieBezpečnostné záplaty sa nainštalujú samy.Automatické aktualizácie
Nastaviť časové pásmoČasy v logoch budú zodpovedať vášmu času.Tento návod

Zabezpečenie a zákaznícky účet#

Záložky Súbory a Databázy v zákazníckom účte sa k VPS pripájajú cez SSH, a to používateľom a heslom (v predvolenom stave root a heslo z času založenia). Niektoré kroky v tomto návode ich preto ovplyvnia:

Čo zmeníteČo sa stane so záložkami Súbory a DatabázyČo urobiť
Root heslo (passwd)Prestanú sa prihlasovať.V Súbory › Zmeniť prihlasovacie údaje zadajte nové heslo.
Port SSHPrestanú sa pripájať.V Súbory › Zmeniť prihlasovacie údaje zadajte nový port.
Zákaz prihlásenia rootaNeprihlásia sa ako root.Zadajte tam iného používateľa a jeho heslo. Súbory uvidíte s jeho právami. Inštalácia a automatické pripojenie v záložke Databázy potom vyžadujú, aby mal sudo bez zadávania hesla.
Vypnutie prihlasovania heslomPrestanú fungovať úplne.Súbory spravujte SFTP klientom s kľúčom, databázy cez SSH tunel.
SSH povolené iba z vašej IPPrestanú fungovať (pripájajú sa z našich serverov).To isté ako vyššie.

Prihlasovacie údaje v záložke Súbory môže meniť iba vlastník služby. Konzola a záložky Sieť, Firewall, Zálohy a Zmena balíka fungujú vždy, nastavenie VPS ich neovplyvní. Rozhodnite sa, čo je pre vás dôležitejšie. Najvyššiu bezpečnosť dáva vypnuté prihlasovanie heslom. Ak záložky Súbory a Databázy používate, nechajte heslo zapnuté, ale silné, a nainštalujte fail2ban.

Aktualizácia systému#

  1. Stiahnite zoznam dostupných aktualizácií:

    bash
    apt update
    • apt update – načíta z repozitárov zoznam nových verzií balíkov. Sám nič neinštaluje.
  2. Nainštalujte všetky aktualizácie:

    bash
    apt full-upgrade -y
    • apt full-upgrade – aktualizuje balíky a smie kvôli tomu pridať alebo odobrať závislosti (napríklad nové jadro).
    • -y – automaticky odpovedať „áno“ na potvrdenie.
  3. Ak sa počas inštalácie objaví otázka na konfiguračný súbor (napríklad /etc/ssh/sshd_config „has been locally modified“), zvoľte keep the local version currently installed. Ponecháte tým súčasné nastavenie, s ktorým VPS funguje.

  4. Zistite, či je potrebný reštart:

    bash
    ls /var/run/reboot-required

    Keď príkaz súbor nájde, reštartujte. Na Debiane bez balíka unattended-upgrades sa súbor vytvoriť nemusí, preto tam po aktualizácii jadra (balík začínajúci linux-image) reštartujte vždy.

  5. Reštartujte VPS:

    bash
    reboot

    SSH spojenie sa ukončí. Po zhruba minúte sa pripojte znova.

Zmena root hesla#

Heslo z času založenia ste videli v zákazníckom účte, prípadne v e-maile. Nastavte si nové, ktoré poznáte iba vy.

  1. Vygenerujte silné heslo, napríklad v generátore hesiel (aspoň 20 znakov), a uložte ho do správcu hesiel.

  2. Spustite zmenu hesla:

    bash
    passwd
    • passwd – bez ďalšieho parametra zmení heslo používateľa, ktorý príkaz spúšťa (teda roota).
  3. Na výzvu New password: vložte nové heslo a stlačte Enter. Heslo sa nezobrazuje.

  4. Na výzvu Retype new password: ho vložte znova. Uvidíte passwd: password updated successfully.

  5. Nezatvárajte súčasné okno. Otvorte nové a vyskúšajte prihlásenie novým heslom.

  6. V zákazníckom účte otvorte záložku Súbory, kliknite na Zmeniť prihlasovacie údaje, vyplňte Používateľ root, Port 22 a nové Heslo a kliknite na Overiť a uložiť.

Heslo v zákazníckom účte zostane staré

Zákaznícky účet nové heslo nepozná. V záložke Konzola bude riadok Heslo po kliknutí na Zobraziť ďalej ukazovať heslo z času založenia, ktoré už neplatí. Platné heslo máte iba vo svojom správcovi hesiel.

Nový používateľ so sudo#

Pod rootom každý preklep v príkaze zasiahne celý systém. Na bežnú prácu si vytvorte vlastného používateľa, ktorý si práva správcu vyžiada iba príkazom sudo. Ako príklad použijeme meno jan.

  1. Vytvorte používateľa:

    bash
    adduser jan
    • adduser – vytvorí používateľa, jeho domovský priečinok /home/jan a opýta sa na heslo.

    Zadajte dvakrát heslo (iné než root heslo). Otázky na meno, telefón a ďalšie údaje preskočte klávesom Enter a na konci potvrďte Y.

  2. Pridajte používateľa do skupiny sudo:

    bash
    usermod -aG sudo jan
    • usermod – mení vlastnosti používateľa.
    • -aG sudo – pridá (-a) používateľa do ďalšej skupiny (-G) sudo. Bez -a by používateľ zo všetkých ostatných skupín vypadol.
    • Členovia skupiny sudo smú spúšťať príkazy ako root.
  3. Ak už máte SSH kľúč pri rootovi, skopírujte ho aj novému používateľovi:

    bash
    install -d -m 700 -o jan -g jan /home/jan/.ssh
    install -m 600 -o jan -g jan /root/.ssh/authorized_keys /home/jan/.ssh/authorized_keys
    • install -d – vytvorí priečinok .ssh.
    • -m 700 / -m 600 – práva: priečinok iba pre vlastníka, súbor čítanie a zápis iba pre vlastníka. SSH iné práva odmietne.
    • -o jan -g jan – vlastníkom bude používateľ jan.
  4. V novom okne sa prihláste ako nový používateľ a vyskúšajte sudo:

    bash
    ssh [email protected]
    sudo whoami
    • sudo whoami – spustí príkaz whoami ako root. Po zadaní hesla používateľa jan musí vypísať root.

Ak príkaz adduser alebo sudo chýba (minimálna inštalácia Debianu), doinštalujte ich: apt install adduser sudo.

SSH kľúč a vypnutie prihlasovania heslom#

Toto je najdôležitejší krok. Heslo sa dá uhádnuť, SSH kľúč prakticky nie. Postup pre Windows, macOS aj Linux nájdete v samostatnom návode SSH kľúč: prihlásenie bez hesla, vrátane bezpečného vypnutia prihlasovania heslom.

Zákaz prihlásenia roota#

Keď root nesmie cez SSH, útočník musí poznať aj meno vášho používateľa. Urobte to až vo chvíli, keď sa prihlásite ako nový používateľ a funguje vám sudo.

  1. Otvorte (alebo vytvorte) vlastný konfiguračný súbor SSH servera:

    bash
    nano /etc/ssh/sshd_config.d/00-zabezpeceni.conf
  2. Pridajte riadok:

    /etc/ssh/sshd_config.d/00-zabezpeceni.confini
    PermitRootLogin no
    NastavenieČo robíOdporúčaná hodnotaKedy zmeniť
    PermitRootLoginČi sa root smie prihlásiť cez SSH. no = vôbec, prohibit-password = iba kľúčom, yes = aj heslom.noprohibit-password, ak potrebujete root prístup kľúčom (napríklad pre zálohovací skript).

    Súbor má na začiatku názvu 00, aby sa načítal ako prvý. SSH server totiž používa prvú nájdenú hodnotu každého nastavenia.

  3. Skontrolujte konfiguráciu a platnú hodnotu:

    bash
    sshd -t && sshd -T | grep -i permitrootlogin
    • sshd -t – kontrola syntaxe. Pri chybe vypíše súbor a riadok.
    • && – ďalší príkaz sa spustí iba vtedy, keď predchádzajúci skončil bez chyby.
    • sshd -T – vypíše výslednú platnú konfiguráciu. Musí obsahovať permitrootlogin no.
  4. Reštartujte SSH server:

    bash
    systemctl restart ssh

    Súčasné spojenie zostane otvorené.

  5. V novom okne overte, že sa ssh [email protected] už neprihlási a ssh [email protected] áno.

Ako root potom pracujete cez sudo -i (otvorí rootovský príkazový riadok po zadaní hesla používateľa jan).

Zmena portu SSH#

Presun SSH z portu 22 na iný port nie je skutočné zabezpečenie, útočník nový port nájde. Výrazne však ubudne pokusov botov v logu.

Za:

  • Menej automatických pokusov o prihlásenie a čistejšie logy.

Proti:

  • Pri každom pripojení musíte zadať port (ssh -p 2222 …).
  • Niektoré firemné a verejné siete neštandardné porty blokujú.
  • Port musíte upraviť vo firewalle, vo fail2bane aj v zákazníckom účte (Súbory).

Ak sa pre zmenu rozhodnete, zvoľte port nad 1024, ktorý nepoužíva iná aplikácia (vyhnite sa napríklad portu 2022, ktorý používajú niektoré herné panely pre SFTP). V príklade použijeme 2222.

  1. Povoľte nový port vo firewalle skôr, než SSH presuniete: v záložke Firewall pridajte pravidlo Prichádzajúce, Povoliť, TCP, port 2222 (nutné v režime Blokovať všetko okrem povoleného, v režime Povoliť všetko neuškodí) a ak používate UFW, spustite ufw allow 2222/tcp.

  2. Do súboru /etc/ssh/sshd_config.d/00-zabezpeceni.conf pridajte dva riadky. Starý port zatiaľ ponecháte, aby vás zmena neodrezala:

    /etc/ssh/sshd_config.d/00-zabezpeceni.confini
    Port 22
    Port 2222
    • Port – port, na ktorom SSH server počúva. Riadkov Port môže byť viac, server potom počúva na všetkých.
  3. Skontrolujte konfiguráciu: sshd -t.

  4. Zistite, ako sa SSH na vašom VPS spúšťa:

    bash
    systemctl is-active ssh.socket

    Výsledok active znamená, že SSH spúšťa systemd cez socket (predvolený stav na Ubuntu 24.04). Výsledok inactive znamená bežnú službu (zvyčajne Debian 13).

Podľa výsledku použite nový port:

Socket aktívny

bash
systemctl daemon-reload
systemctl restart ssh.socket
  • systemctl daemon-reload – nechá systemd znova prečítať konfiguráciu. Na Ubuntu 24.04 pri tom zvláštny generátor prevezme porty z konfigurácie SSH do nastavenia socketu. Bez tohto kroku by SSH zostalo na porte 22.
  • systemctl restart ssh.socket – začne počúvať na nových portoch.

Socket neaktívny

bash
systemctl restart ssh
  • systemctl restart ssh – reštartuje SSH server, ktorý si porty prečíta z konfigurácie.
  1. Overte, že SSH počúva na oboch portoch: ss -tlnp | grep -E ':22 |:2222 '.
  2. V novom okne sa pripojte cez nový port: ssh -p 2222 [email protected].
  3. Keď pripojenie cez nový port funguje, zmažte v konfigurácii riadok Port 22.
  4. Skontrolujte konfiguráciu: sshd -t.
  5. Zmenu načítajte rovnakým príkazom ako vyššie (podľa toho, či je socket aktívny).
  6. V zákazníckom účte otvorte Súbory › Zmeniť prihlasovacie údaje a zadajte port 2222. Záložky Súbory a Databázy sa k VPS pripájajú cez SSH a bez nového portu by prestali fungovať.
  7. Upravte port v jaile sshd vo fail2bane (pozri Fail2ban).
  8. Vo firewalle zmažte pravidlo pre port 22.

Firewall a fail2ban#

Stačí jeden z firewallov. Pre začiatočníkov odporúčame firewall v zákazníckom účte, pretože ho opravíte aj vtedy, keď sa odrežete.

Automatické bezpečnostné aktualizácie#

Balík unattended-upgrades raz denne nainštaluje bezpečnostné aktualizácie. Na Ubuntu je nainštalovaný a zapnutý, na Debiane ho zapnete.

Ubuntu 24.04

  1. Overte, že sú automatické aktualizácie zapnuté:

    bash
    cat /etc/apt/apt.conf.d/20auto-upgrades

    Výstup musí obsahovať:

    Výstuptext
    APT::Periodic::Update-Package-Lists "1";
    APT::Periodic::Unattended-Upgrade "1";
    • Update-Package-Lists "1" – každý deň (1 = každý 1 deň) stiahnuť zoznam aktualizácií.
    • Unattended-Upgrade "1" – každý deň nainštalovať povolené aktualizácie.
  2. Ak súbor chýba, spustite dpkg-reconfigure -plow unattended-upgrades a odpovedzte Yes.

Debian 13

  1. Nainštalujte balíky:

    bash
    apt install unattended-upgrades apt-listchanges
    • unattended-upgrades – automatická inštalácia aktualizácií.
    • apt-listchanges – dokáže posielať prehľad zmien v aktualizovaných balíkoch.
  2. Zapnite automatické aktualizácie:

    bash
    dpkg-reconfigure -plow unattended-upgrades
    • dpkg-reconfigure – znova spustí nastavenie balíka.
    • -plow – ukáže aj menej dôležité otázky.

    Na otázku, či automaticky sťahovať a inštalovať stabilné aktualizácie, odpovedzte Yes. Vytvorí sa súbor /etc/apt/apt.conf.d/20auto-upgrades.

V predvolenom stave sa na Ubuntu inštalujú iba bezpečnostné aktualizácie, na Debiane bezpečnostné aktualizácie a opravy z bodových vydaní stabilnej verzie (napríklad 13.1, 13.2). VPS sa sám nereštartuje. Správanie upravíte vo vlastnom súbore, ktorý prebije predvolený 50unattended-upgrades (ten neupravujte, aktualizácia balíka by ho mohla prepísať):

bash
nano /etc/apt/apt.conf.d/52unattended-upgrades-local
/etc/apt/apt.conf.d/52unattended-upgrades-localtext
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
NastavenieČo robíOdporúčaná hodnotaKedy zmeniť
Automatic-RebootReštartuje VPS, keď to aktualizácia vyžaduje (typicky nové jadro). Predvolené je false.trueNechajte false, ak vaše aplikácie po reštarte samy nenabehnú (nie sú nastavené ako služba). Potom reštartujte ručne raz týždenne.
Automatic-Reboot-TimeKedy sa reštart vykoná, napríklad "04:00". Bez nastavenia prebehne ihneď po aktualizácii."04:00"Zvoľte čas, keď je na serveri najmenšia prevádzka.
Remove-Unused-DependenciesZmaže balíky, ktoré po aktualizácii už nič nepotrebuje.truefalse, ak si neželáte, aby sa čokoľvek odinštalovalo samo.

Nastavenie vyskúšajte nanečisto:

bash
unattended-upgrade --dry-run --debug
  • --dry-run – iba simulácia, nič sa nenainštaluje.
  • --debug – podrobný výpis, vrátane načítaných nastavení a balíkov, ktoré by sa aktualizovali.

Záznamy o skutočných aktualizáciách nájdete v priečinku /var/log/unattended-upgrades/.

Časové pásmo a názov servera#

  1. Nastavte stredoeurópske časové pásmo, aby časy v logoch zodpovedali:

    bash
    timedatectl set-timezone Europe/Prague
    • timedatectl – nastavuje čas a časové pásmo systému.
    • set-timezone Europe/Prague – stredoeurópsky čas vrátane letného (rovnako funguje Europe/Bratislava).
  2. Overte výsledok príkazom timedatectl. Riadok Time zone musí ukazovať Europe/Prague a System clock synchronized: yes.

  3. Voliteľne zmeňte názov servera (hostname):

    bash
    hostnamectl set-hostname vps1
    • hostnamectl set-hostname vps1 – nastaví názov VPS na vps1. Používajte malé písmená, číslice a pomlčky.

    Nový názov sa ukáže v príkazovom riadku po ďalšom prihlásení. Ak sudo začne vypisovať unable to resolve host vps1, doplňte názov do /etc/hosts na riadok 127.0.1.1. Keď súbor v hlavičke uvádza, že sa generuje automaticky, riaďte sa pokynmi z hlavičky.

Čo ďalej#

  • Zálohy: celý VPS zálohujeme my a obnovíte ho v záložke Zálohy. Dôležité dáta si zálohujte aj mimo VPS, pozri Zálohy VPS.
  • Prehľad: raz za čas skontrolujte miesto na disku (df -h), bežiace služby (systemctl --failed) a záznamy fail2banu.
  • Iba potrebné služby: čo nepotrebujete, neinštalujte. Každý otvorený port je ďalší možný vstup.

Overenie#

  • apt update po aktualizácii vypíše All packages are up to date.
  • Nové root heslo funguje a záložka Súbory sa prihlási.
  • Používateľ jan sa prihlási cez SSH a sudo whoami vypíše root.
  • sshd -T | grep -E "^(permitrootlogin|passwordauthentication|port) " ukazuje hodnoty, ktoré ste nastavili.
  • unattended-upgrade --dry-run --debug prebehne bez chyby.

Keď niečo nefunguje#

Odrezali ste sa od SSH#

Použite konzolu v prehliadači. Prihlásite sa root heslom (aj keď máte root cez SSH zakázaný) a chybu opravíte, napríklad zmažete súbor /etc/ssh/sshd_config.d/00-zabezpeceni.conf a reštartujete SSH príkazom systemctl restart ssh.

sudo: jan is not in the sudoers file#

Používateľ nie je v skupine sudo. Ako root spustite usermod -aG sudo jan a používateľ sa musí odhlásiť a znova prihlásiť, aby sa skupina prejavila.

Záložka Súbory hlási, že sa prihlásenie k VPS nepodarilo#

Zákaznícky účet používa staré údaje. Otvorte Súbory › Zmeniť prihlasovacie údaje a zadajte aktuálneho používateľa, port a heslo. Ak máte vypnuté prihlasovanie heslom alebo SSH povolené iba z vašej IP adresy, záložka fungovať nebude (pozri tabuľku v sekcii Zabezpečenie a zákaznícky účet).

sshd -T ukazuje inú hodnotu, než ste nastavili#

Rovnaké nastavenie je v inom súbore, ktorý sa načítava skôr (SSH server berie prvú nájdenú hodnotu). Nájdite ho:

bash
grep -rni "permitrootlogin" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
  • grep -rni – hľadá text vo všetkých súboroch priečinka (-r), bez ohľadu na veľkosť písmen (-i) a vypíše číslo riadka (-n).

Riadok v cudzom súbore zakomentujte (napíšte na jeho začiatok #), alebo hodnotu zmeňte priamo tam. Potom znova spustite sshd -t && sshd -T | grep -i permitrootlogin a SSH reštartujte.

SSH po zmene portu ďalej počúva iba na porte 22#

Na Ubuntu 24.04 ste najskôr vynechali systemctl daemon-reload. Spustite ho a potom systemctl restart ssh.socket.

E: Could not get lock /var/lib/dpkg/lock-frontend#

Na pozadí práve beží iná inštalácia, typicky automatické aktualizácie (pri novom VPS po prvom štarte). Počkajte pár minút a príkaz zopakujte. Proces násilne neukončujte.

Zhrnutie

  • Aktualizujte systém (apt update, apt full-upgrade) a po novom jadre reštartujte.
  • Zmeňte root heslo príkazom passwd a nové heslo zadajte aj v záložke Súbory.
  • Pracujte pod vlastným používateľom so sudo, root cez SSH zakážte až po otestovaní.
  • Nastavte SSH kľúč, firewall a fail2ban podľa samostatných návodov.
  • Automatické bezpečnostné aktualizácie riadi unattended-upgrades, úpravy patria do 52unattended-upgrades-local.
  • Vypnutie hesla alebo obmedzenie SSH na vašu IP vypne záložky Súbory a Databázy, konzola funguje vždy.

Bol návod užitočný?

Platí pre

  • Ubuntu 24.04
  • Debian 13

Služby

Nahlásiť chybu v návode

Hľadanie v návodoch