- Vrealmatic
- Ubuntu Server
- Zabezpečení přístupu
Zabezpečení přístupu k Ubuntu krok za krokem
Vyberte, jak se k systému budete připojovat, a kapitola ukáže kroky ve správném pořadí, od správcovského účtu a SSH přes firewall po Tailscale, 2FA a Fail2Ban. Způsobů připojení můžete zvolit víc; kroky, které nepotřebují, se přeskočí. Platí pro Ubuntu Server i pro Ubuntu Desktop, které má zároveň sloužit jako server.

Vaše volba
Volby se uloží jen ve vašem prohlížeči a podle nich se upraví i lišta „další krok“ v jednotlivých návodech.
Ubuntu Desktop jako server
Desktop se ve výchozím stavu uspává. Aby běžel nepřetržitě, vypněte uspání a hibernaci:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetVrácení: sudo systemctl unmask … se stejnými jednotkami.
Kroky
Přihlášení
Nejste přihlášeni jako root
Způsoby: A vždy · B vždy · C vždy · D vždy
Podívejte se na příkazový řádek po přihlášení. Začíná vaším jménem a končí
$(<ADMIN_USER>@…:~$)? Pak je vše v pořádku a pokračujte dalším krokem. Jste-li přihlášeni jakoroot(root@…:~#), rozbalte postup níže.Jsem přihlášen jako root (typicky server od poskytovatele)
Vytvořte si vlastní účet s právem
sudoa dál pracujte jen pod ním. Jméno volte neobvyklé, roboti zkoušejí hlavněadmin,ubuntunebouser.adduser <ADMIN_USER> usermod -aG sudo <ADMIN_USER>Odhlaste se a přihlaste jako nový uživatel. Přihlášení roota přes SSH pak vypne krok SSH; do roota se v případě potřeby přepnete příkazem
sudo -i.Proč ne root: účet
rootmá každý Linux, útočníkovi tak stačí uhodnout heslo. U vlastního neobvyklého jména musí hádat i jméno, a každésudose navíc zapíše do logu i s uživatelem.Vypnutí SSH serveru
Způsoby: A ano · B ne · C ne · D ne
Bez vzdáleného přístupu SSH server nepotřebujete. Co neběží, nejde napadnout. Na Ubuntu Desktop ve výchozím stavu není; pokud
which sshdnic nevypíše, nic dalšího nedělejte. Jinak ho vypněte:sudo systemctl disable --now ssh.socket ssh # Ubuntu 24.04 a novější sudo systemctl disable --now ssh # Ubuntu 22.04Případně balíček odinstalujte:
sudo apt purge openssh-server. Ověření: výstup musí být prázdný:sudo ss -tlnp | grep -E 'sshd|:22 'Instalace SSH serveru
Způsoby: A ne · B ano · C ano · D ano
Přímo na serveru (monitor a klávesnice) ověřte, že je SSH server nainstalovaný. Ubuntu Server ho má, pokud jste při instalaci zaškrtli Install OpenSSH server; Ubuntu Desktop ve výchozím stavu ne.
which sshdVypíše-li cestu (
/usr/sbin/sshd), je nainstalovaný. Prázdný výstup znamená, že chybí. Nainstalujte ho:sudo apt update && sudo apt install openssh-serverBalíčky SSH
openssh-server: aby se šlo připojit k tomuto stroji (potřebuje server).openssh-client: aby se šlo z tohoto stroje připojit jinam (příkazssh); bývá předinstalovaný.ssh: nainstaluje obojí.
Ověření, že SSH poslouchá (ve výpisu je
:22):sudo ss -tlnp | grep -E 'sshd|systemd'. Adresu serveru pro pole Adresa serveru ukážeip -4 addr(řádekinetsíťového rozhraní, ne127.0.0.1).Přihlášení klíčem a zabezpečení SSH
Způsoby: A ne · B ano · C ano · D ano
Přihlášení jen klíčem, bez hesla a bez roota. Nastavení v samostatném souboru
/etc/ssh/sshd_config.d/00-hardening.conf, volitelně jiný port. Klíč je jen tak bezpečný jako počítač, na kterém leží, viz ochrana klíče a počítače.Dvoufaktorové ověření (2FA)
Způsoby: A ne · B volitelné · C volitelné · D doporučeno
Ke klíči přidá jednorázový kód z mobilu. Největší smysl má u serveru dostupného z internetu (D) nebo pro
sudo. Při SSH jen přes Tailscale je přínos menší.
Síťový přístup
Firewall (UFW)
Způsoby: A vždy · B vždy · C vždy · D vždy
Firewall UFW je v Ubuntu nainstalovaný, ale vypnutý a nic nefiltruje. Ze sítě je pak dostupné vše, co na serveru poslouchá; na čerstvém Ubuntu je to prakticky jen SSH (přehled ukáže
sudo ss -tulpn, řádky s127.0.0.xjsou jen místní). Firewall proto zapněte dřív, než přidáte další služby (databázi, web, Docker). Na serveru s veřejnou IP je SSH vidět z internetu hned po instalaci. Tam nejdřív dokončete krok Přihlášení klíčem.Zakážeme veškerý příchozí provoz a povolíme jen to, co zvolené způsoby připojení potřebují. Pravidlo pro SSH přidejte před
ufw enable, jinak se odpojíte.sudo ufw default deny incoming sudo ufw default allow outgoingPro A
Žádné pravidlo pro SSH, rovnou zapněte firewall.
Pro B, C
SSH povolíme jen ze zařízení ve vaší domácí síti: z počítačů a telefonů připojených ke stejnému routeru jako server. Síť se zapisuje jako rozsah adres (
<LAN_SUBNET>); doplní se sám z adresy serveru.Jak rozsah ověřit na serveru
ip -4 route show proto kernelRozsah je první údaj na řádku, kde je za slovem
srcadresa serveru (např. řádek… dev enp86s0 proto kernel scope link src …). Řádky sdocker0nebotailscale0nepatří k domácí síti. Pokud se rozsah liší od toho v příkazu níže, zadejte ho do pole Domácí síť.Pro B
Trvale povolte SSH z domácí sítě:
sudo ufw allow from <LAN_SUBNET> to any port 22 proto tcp comment 'SSH z LAN'Pro C (jen bez B)
Tailscale budete nastavovat z domácí sítě, proto SSH z ní povolte zatím dočasně. Krok Tailscale toto pravidlo po ověření odebere:
sudo ufw allow from <LAN_SUBNET> to any port 22 proto tcp comment 'SSH z LAN (dočasně)'Pro C
Krok Tailscale přidá pravidlo pro rozhraní
tailscale0.Pro D
SSH odkudkoli, s omezením počtu pokusů (
limit= nejvýš 6 spojení za 30 s z jedné adresy):sudo ufw limit 22/tcp comment 'SSH'Zapnutí a kontrola:
sudo ufw enable sudo ufw status verbosePozor na Docker: porty publikované kontejnerem UFW obchází, viz Docker na Ubuntu Serveru.
SSH přes Tailscale
Způsoby: A ne · B ne · C ano · D ne
Privátní síť mezi vašimi zařízeními. SSH pak povolíte jen na rozhraní
tailscale0a z internetu ho úplně zavřete, bez otevřených portů na routeru. Spojení v lokální síti jde napřímo, nic nezpomaluje.Ochrana proti útokům hrubou silou (Fail2Ban)
Způsoby: A ne · B volitelné · C volitelné · D ano
Dočasně blokuje adresy, ze kterých přichází opakované neúspěšné pokusy o přihlášení. Nutný je u SSH dostupného z internetu. Když je SSH jen v lokální síti nebo přes Tailscale, útoky hrubou silou k serveru skoro nedojdou.
Otevřít návod: Ochrana proti útokům hrubou silou (Fail2Ban) →
Potřebujete bezpečně nastavit server?
Navrhneme, zabezpečíme a zdokumentujeme sítě i servery.