Nastavení firewallu na serveru znamená povolit pouze nezbytné porty a zablokovat veškerý nepotřebný přístup; jedná se o první obrannou linii proti útokům typu DDoS, brute force a škodlivému botnetovému provozu. Prakticky jde o omezení SSH přístupu, kontrolované zpřístupnění webových služeb, zavedení omezení pro podezřelé požadavky, sledování logů a pokud možno filtrování provozu již na vyšších úrovních pomocí CDN nebo WAF, aby se nežádoucí provoz vůbec nedostal k serveru.
Jakmile svůj webový server zpřístupníte na internetu, během několika minut na něj začnou mířit port skeny, pokusy o přihlášení přes SSH, automatizované boti hledající zranitelnosti a falešné user-agenty. Zejména u systémů provozujících WordPress, e-shopy, administrativní panely, API nebo herní servery je firewall nezbytností pro dlouhodobou stabilitu, nikoliv pouhým technickým doplňkem. V tomto návodu si krok za krokem ukážeme, jak nastavit firewall na Linux serveru; projdeme nástroje UFW, firewalld, nftables, Fail2ban, webový aplikační firewall i metody zmírnění DDoS útoků.
Než začneme, je důležité zdůraznit jeden fakt: lokální firewall na serveru sám o sobě nezastaví rozsáhlé DDoS útoky v řádech desítek nebo stovek Gbps. Pokud totiž útok dorazí na síťové rozhraní datacentra, může zaplnit linku dříve, než se paket dostane k pravidlům v operačním systému. Proto je nejlepší přístup vrstvený: DDoS ochrana na úrovni poskytovatele, CDN/WAF, firewall na OS, aplikační omezení a pravidelná analýza logů by měly fungovat jako celek. Pro výběr vhodné infrastruktury doporučujeme navštívit stránku Hostragons řešení VPS a VDS serveru, pro bezpečné webhostingové balíčky pak Hostragons webhostingové balíčky.
Jaký má firewall na serveru význam?
Firewall na serveru funguje jako bezpečnostní filtr síťového provozu na základě zdrojové a cílové IP adresy, portu, protokolu, stavu spojení a v některých případech i detailů paketů. Jednoduše řečeno: pro váš web musí být otevřené porty 80 a 443, ale port databáze 3306 by nikdy neměl být přístupný z internetu. SSH na portu 22 by neměl být přístupný všem, ale pouze například z vaší kanceláře nebo VPN.
Firewall nemá za úkol magicky zablokovat všechny útoky. Jeho smyslem je zmenšit tzv. povrch útoku. Čím méně otevřených služeb, tím méně možností pro útočníka. Na nově nasazeném Linux serveru mohou být například současně otevřeny SSH, webový panel, poštovní služby, databáze, monitorovací agenty a testovací služby, což představuje několik rizikových bodů. Dobře nastavený firewall funguje na principu "všechno zamítnout, co není výslovně povoleno".
Pochopení DDoS a botového provozu
Proč jsou DDoS útoky specifické?
DDoS (Distributed Denial of Service) útok spočívá v zaplavení cílové služby velkým množstvím požadavků z různých zdrojů s cílem ji učinit nedostupnou. Útok může zahlcovat šířku pásma, vyčerpávat CPU a paměť serveru, nebo zatěžovat náročné operace na aplikační vrstvě. Například malý server přijímající 50 000 HTTP požadavků za sekundu může být přetížený i bez zaplnění linky, protože například PHP-FPM, Node.js či databázový pool nedokážou zpracovat tolik požadavků.
Jsou boti vždy škodliví?
Ne vždy. Boty jako Googlebot nebo Bingbot přinášejí užitek, protože indexují obsah pro vyhledávače. Škodliví boti však prohledávají administrační panely, hledají otevřené adresáře, spamují formuláře, kopírují obsah, zneužívají XML-RPC, vytvářejí falešné registrace a pokoušejí se přihlásit. Cílem správy botů není zablokovat všechny, ale rozpoznat škodlivé vzory chování – vysoká chybovost, náhlý vysoký počet požadavků, nepravé uživatelské agenty či podezřelé URL vzory jsou varovné signály.
Kontrolní seznam před nastavením firewallu
Při nastavování pravidel na živém serveru hrozí největší riziko, že se zablokujete a ztratíte přístup. Proto je dobré se předem připravit. Následující seznam je osvědčený postup pro produkční prostředí:
- Nevypínejte aktivní SSH relaci; testujte z jiného terminálu.
- Ověřte, že poskytovatel serveru nabízí přístup přes konzoli, VNC nebo recovery režim.
- Zjistěte aktuálně otevřené porty příkazem
ss -tulpnnebonetstat -tulpn. - Zapište si, jaké porty používají web, mail, DNS, databáze, panely a monitorovací služby.
- Pokud používáte IPv6, nezapomeňte naplánovat pravidla i pro něj.
- Nejprve aplikujte povolovací pravidla (allow), pak blokovací (deny).
- Zajistěte, aby pravidla byla trvalá a nezmizela po restartu.
Typický server hostující jen web potřebuje otevřené porty 80, 443 a omezený SSH přístup. Pokud neprovozujete mail server, porty jako 25, 465, 587 či 993 nepotřebujete otevírat. Databáze by měla naslouchat jen na localhost (127.0.0.1), nikoliv na veřejné IP.
Jaký firewall nástroj zvolit?
V Linuxovém světě existuje několik nástrojů, které využívají stejné jádro filtrování, ale liší se uživatelskou přívětivostí. Pro začátečníky je UFW jednoduché a rychlé. V enterprise scénářích a distribucích jako AlmaLinux, Rocky Linux či RHEL se často používá firewalld. Pro pokročilé konfigurace je moderní a flexibilní nftables. Přehled v tabulce usnadní výběr:
| Nástroj | Optimální použití | Výhody | Na co si dát pozor |
|---|---|---|---|
| UFW | Jednoduché web servery na Ubuntu a Debianu | Jednoduchá syntax, rychlá konfigurace | Limitované při komplexních pravidlech |
| firewalld | AlmaLinux, Rocky Linux, CentOS Stream, RHEL | Podpora zón, trvalá pravidla, servisní profily | Nutnost rozlišovat runtime a permanentní pravidla |
| nftables | Pokročilá správa síťové bezpečnosti | Moderní, výkonné, flexibilní | Chybné pravidlo může způsobit výpadek přístupu |
| Cloud bezpečnostní skupiny | VPS, cloudové servery a datacentra | Filtrace provozu před serverem | Nemají nahradit firewall OS, spíše doplnit |
| WAF/CDN | Webové aplikace a HTTP útoky | Omezení botů, HTTP floodů a útoků na zranitelnosti | Vyžaduje správnou DNS a konfiguraci skutečné IP |
Krok za krokem: nastavení firewallu na serveru
1. Identifikujte otevřené porty a služby
Nejdříve zjistěte, které služby na serveru naslouchají na jakých portech příkazem ss -tulpn. Například nginx naslouchající na 0.0.0.0:80 a 0.0.0.0:443 znamená, že přijímá webový provoz na všech rozhraních. MariaDB naslouchající na 0.0.0.0:3306 je bezpečnostní riziko, protože by měla být omezena na localhost (127.0.0.1).
Zásadní pravidlo: žádná služba, která nemusí být z internetu přístupná, by neměla naslouchat na 0.0.0.0. Nejprve upravte konfiguraci služby, pak ji případně zablokujte firewallem. I když by firewall selhal, služba by neměla být veřejně dostupná.
2. Nastavte výchozí politiku blokování
Bezpečná sada pravidel obvykle blokuje veškerý příchozí provoz, pokud není explicitně povolený, a umožňuje odchozí provoz dle potřeby. Tak se zabrání nechtěnému otevření portů. Například na Ubuntu s UFW postupujte takto: nejdříve povolte SSH, pak porty 80 a 443, pak nastavte výchozí příchozí politiku na deny a firewall aktivujte.
Praktický příklad: povolte SSH přístup jen ze své IP, otevřete HTTP a HTTPS, zavřete ostatní porty a pak firewall zapněte. Zapnutí firewallu bez povolení SSH je častou chybou, která vede k zablokování přístupu.
3. Omezte přístup k SSH
SSH je nejčastějším cílem útočníků. Server s otevřeným portem 22 může denně zaznamenat stovky až tisíce pokusů o přihlášení. Nejbezpečnější je omezit přístup na specifické IP adresy, například kancelář nebo VPN. Pokud nemáte pevnou IP, používejte alespoň autentizaci pomocí klíčů a zakažte přihlašování heslem.
- Zakázat přímý přístup root uživatele přes SSH.
- Používat autentizaci klíči místo hesel.
- Omezit uživatele pomocí AllowUsers nebo AllowGroups.
- Nasadit Fail2ban pro automatické blokování neúspěšných pokusů.
- Pokud používáte administrační panel, omezte přístup i k jeho portu.
Změna portu SSH snižuje automatický spam, ale sama o sobě není dostatečná ochrana. Skutečná bezpečnost spočívá v IP omezení, silné autentizaci a monitoringu logů.
4. Kontrolované otevření webových portů
Pro webové stránky jsou klíčové porty 80 a 443. Dnes by měl být hlavní provoz na portu 443 (HTTPS), port 80 by měl sloužit pouze pro přesměrování na HTTPS. Web bez SSL certifikátu ztrácí na důvěryhodnosti i SEO hodnocení. V této souvislosti doporučujeme Hostragons SSL certifikáty jako přirozené propojení k bezpečné konfiguraci HTTPS.
Pokud používáte CDN nebo reverzní proxy, doporučuje se serverový port 80 a 443 zpřístupnit pouze IP adresám CDN. Takto útočník, i když zná skutečnou IP vašeho serveru, nemůže přímo útočit na webovou službu.
5. Uzavřete databáze a interní služby do vnitřní sítě
Služby jako MySQL, MariaDB, PostgreSQL, Redis, Elasticsearch nebo MongoDB by nikdy neměly být dostupné z internetu. Nedostatek autentizace u Redis, neautorizovaný přístup k Elasticsearch nebo otevřený MongoDB port vedly v minulosti k mnoha únikům dat. Tyto služby by měly naslouchat pouze na localhost nebo na privátní síti.
Například WordPress používá databázi na 127.0.0.1, což je dostačující. Pokud máte samostatný aplikační a databázový server, povolte přístup jen mezi nimi přes interní IP. Neotevírejte porty 3306 (MySQL) nebo 5432 (PostgreSQL) do veřejného internetu, protože jsou často cílem botů.
6. Blokujte brute force útoky pomocí Fail2ban
Fail2ban sleduje logy a dokáže dočasně zablokovat IP adresy, které vykazují opakované neúspěšné pokusy o přihlášení. Pro SSH, nginx, Apache, Postfix, Dovecot, WordPress přihlášení a některé panely lze definovat tzv. jaily. Například po 5 neúspěšných pokusech SSH během 10 minut se IP zablokuje na 1 hodinu, což je jednoduchý a efektivní začátek.
Při nastavování Fail2ban buďte opatrní, aby příliš agresivní pravidla neblokovala i legitimní uživatele. Doporučujeme začít s mírnými hodnotami, sledovat logy a postupně pravidla zpřísňovat.
7. Přidejte omezení rychlosti a počtu spojení
Na úrovni operačního systému lze omezit počet nových připojení z jedné IP za sekundu. Pro web servery nabízí nginx moduly limit_req a limit_conn, Apache má mod_evasive či podobné nástroje. Na aplikační úrovni je vhodné omezit počet pokusů u přihlášení, vyhledávání, nákupního košíku, plateb a API endpointů.
Příklad: na přihlašovací stránce může být rozumný limit 10 pokusů za minutu z jedné IP. Na vyhledávacím endpointu 2–5 požadavků za sekundu. API by mělo mít uživatelské tokeny s limity, IP limity a analýzu chování, aby útočník nemohl obejít omezení jen změnou IP adresy.
Příklad bezpečné konfigurace s UFW
Na Ubuntu nebo Debianu lze nastavit základní firewall takto: nejprve zjistěte běžící služby, povolte SSH přístup ze své administrátorské IP, otevřete porty 80 a 443, nastavte výchozí politiku příchozího provozu na zamítnutí a aktivujte firewall. Pokud nemáte pevnou IP pro SSH, můžete dočasně povolit přístup ze všech IP a později přejít na VPN nebo statickou IP.
Příklad: administrátorská IP je 203.0.113.10, SSH povolen jen z této IP, webové porty 80 a 443 otevřené pro všechny, databázové, Redis, panel a testovací porty zavřené. Tento model je dobrým výchozím bodem pro malé a střední firemní weby. Pro správné nastavení domény a DNS doporučujeme Hostragons kontrola a registrace domény.
Firewalld a práce se zónami
Na distribucích jako AlmaLinux, Rocky Linux a RHEL je běžný firewalld, který pracuje s konceptem zón. Public zone je pro rozhraní připojená k internetu, trusted pro důvěryhodné privátní sítě a drop zone tiše zahazuje nechtěný provoz. Důležité je pochopit rozdíl mezi runtime (pravidlo platné ihned, ale po restartu zmizí) a permanent (pravidlo trvalé, ale k aktivaci vyžaduje reload).
Ve firemních prostředích je pohodlné využívat definice služeb. Například otevřete http a https v public zóně a omezíte ssh jen na vybrané IP. Pokud máte oddělené sítě pro správu, zálohy a uživatelský provoz, zóny výrazně zvyšují přehlednost a bezpečnost.
CDN, WAF a ochrana proti DDoS na úrovni poskytovatele
Lokální firewall rozhoduje až o paketech, které dorazí na server. Pro velké DDoS útoky je zásadní filtrovat provoz ještě před serverem. CDN poskytuje statický obsah z okrajových míst, WAF blokuje škodlivé aplikační požadavky a ochrana u poskytovatele zvládá velké objemy dat. Ideální je mít DNS záznamy nasměrované přes CDN, skutečná IP serveru skrytá a firewall nastavený tak, aby přijímal provoz pouze z IP adres CDN na portech 80 a 443. Správu administrativních portů pak zajistěte přes VPN nebo pevnou IP.
Tento model snižuje riziko přímého útoku na IP a umožňuje eliminovat boti ještě před vstupem do aplikace. Pro více informací o bezpečnosti a optimalizaci výkonu doporučujeme Průvodci zrychlením a bezpečností webových stránek.
Aplikační opatření proti botům

Blokování botů není jen o IP ban listech. Moderní boti používají proxy, mobilní sítě, datacentrové IP i rotující user-agenty. Proto je nutné sledovat chování. Například vysoký počet pokusů o přihlášení z jedné IP v krátkém čase, intenzivní skenování s chybami 404, nadměrná aktivita na wp-login.php či xmlrpc.php, neobvyklé vzory klikání a podezřelé hlavičky je třeba vyhodnotit.
- Využívejte omezení rychlosti pro přihlašovací a registrační formuláře.
- Omezte nebo vypněte nepotřebné XML-RPC přístupy.
- Chraňte administrativní panely pomocí odlišných URL, IP omezení a dvoufaktorové autentizace.
- Filtrujte podezřelé user-agenty a referery na úrovni WAF.
- Používejte CAPTCHA nebo neviditelné metody ověřování botů s rozmyslem.
- Pro API endpointy implementujte klíče, podpisy, kvóty a časová razítka.
Je důležité zachovat uživatelskou přívětivost. Přehnaná ochrana může odradit reálné návštěvníky. Proto je vhodné pravidelně testovat a postupně zpřísňovat bezpečnostní opatření.
Sledování logů a nastavení alarmů
Nemyslete si, že firewall nastavíte a je hotovo. Je to živý systém, který vyžaduje monitoring. Sledujte ssh přihlášení v auth.log nebo secure, anomálie v přístupech v nginx access logu, zvýšený počet chyb 404 a 500 v error logách a systémové metriky jako CPU a počet spojení. I jednoduchý alarm vám může při útoku ušetřit hodiny času.
Příklady prahových hodnot pro začátek: během 5 minut více než 100 404 z jedné IP, během 1 minuty více než 20 pokusů na přihlášení, CPU nad 90 % po dobu 10 minut, trojnásobek běžného počtu spojení. Tyto hodnoty je třeba upravit podle konkrétního provozu a znát běžný profil návštěvnosti.
Časté chyby a jak se jim vyhnout
- Zapnutí firewallu bez povolení SSH: Můžete se snadno zablokovat, vždy testujte z druhé relace.
- Opomenutí IPv6: Firewall může blokovat IPv4, ale IPv6 zůstane otevřený.
- Databáze otevřená do internetu: Porty 3306, 5432, 6379 a 9200 jsou běžným cílem botů.
- Použití CDN bez skrytí skutečné IP: Útočník může obejít CDN a útočit přímo na server.
- Nedokumentování změn pravidel: V krizové situaci je těžké rychle identifikovat chybu.
- Chybějící záložní přístup: Pokud není dostupná konzole, může být problém s opravou firewallu delší.
Ukázková bezpečnostní politika firewallu
Pro malý firemní web může být základní politika takováto: veškerý příchozí provoz je ve výchozím stavu blokován; port 443 je otevřen všem; port 80 je otevřen pouze pro přesměrování na HTTPS; SSH je přístupné jen přes VPN nebo pevnou IP; databáze je dostupná jen lokálně nebo v privátní síti; pokud používáte CDN, porty 80 a 443 povolíte jen z IP rozsahů CDN; Fail2ban monitoruje SSH a přihlašování do webu; logy se zasílají do centrálního monitorovacího systému.
U středně velkých e-shopů se navíc přidávají whitelisty IP pro platební brány, administrace je dostupná pouze přes VPN, u API se zavádějí uživatelské kvóty, WAF blokuje SQL injection a XSS, a plánuje se filtrování podle země či ASN. Důležité je mít tento plán zdokumentovaný, aby se v případě útoku postupovalo podle předem určených pravidel a minimalizovalo se riziko výpadku.
Testování: fungují pravidla opravdu?
Po nastavení firewallu vždy otestujte jeho funkčnost. Proveďte sken portů z jiné sítě, ověřte, že SSH je přístupné pouze z povolených IP, zkontrolujte dostupnost webu přes HTTPS a že port databáze je uzavřený. Pokud používáte CDN, zkuste odeslat HTTP požadavek přímo na IP serveru a ověřte, že je blokován.
Při testování se vyhněte agresivním skenům, které by mohly produkční systém poškodit. Po každé změně si uložte nebo exportujte konfiguraci firewallu, abyste mohli snadno obnovit funkční nastavení v případě potřeby.
Plán údržby a aktualizací
Bezpečnost serveru není jednorázová záležitost, ale proces. Při přidání nové služby je třeba zkontrolovat, jaké porty vyžaduje, a odpovídajícím způsobem upravit pravidla. Pokud stará služba odpadne, její pravidla odstraňte. Bezpečnostní aktualizace by měly být aplikovány včas a logy pravidelně kontrolovány. Doporučujeme alespoň jednou měsíčně provést audit otevřených portů a každé čtvrtletí revidovat celý firewall.
Zálohování je také součástí bezpečnostní strategie. DDoS útok může omezit přístup, ale ransomwarové útoky nebo neoprávněný přístup mohou způsobit ztrátu dat. Bezpečné hostingové prostředí, SSL certifikáty, správa domén a zálohy by měly jít ruku v ruce. V tomto ohledu doporučujeme Na co si dát pozor při výběru bezpečného hostingu a jak provést instalaci SSL certifikátu.
Závěr
Nastavení firewallu na serveru neznamená, že bude server úplně neviditelný pro DDoS a boty, ale výrazně sníží povrch útoku, omezí riziko neoprávněného přístupu a umožní lepší kontrolu nad bezpečnostními událostmi. Nejlepší výsledky přináší kombinace ochrany na úrovni poskytovatele, CDN/WAF, přísná pravidla pro porty, omezení SSH, Fail2ban, rate limiting a pravidelný monitoring logů.
Při spuštění nového projektu je vhodné firewall naplánovat už od začátku, protože opravy později bývají složitější. Na platformě Hostragons si můžete vybrat server, hosting, domény a SSL s ohledem na bezpečnost. Pokud začínáte, držte se jednoduchého seznamu: zavřete nepotřebné porty, omezte SSH, vyžadujte HTTPS a sledujte logy.
Často kladené otázky
Zastaví firewall na serveru úplně DDoS útoky?
Ne. Lokální firewall může snížit menší útoky a některé protokolové zneužití, ale u rozsáhlých DDoS útoků je nezbytné mít DDoS ochranu u poskytovatele, CDN a WAF.
Které porty by měly na webovém serveru zůstat otevřené?
Obvykle jsou to porty 80 a 443 pro HTTP a HTTPS. SSH by měl být přístupný pouze z IP adres administrátorů. Porty databáze a interních služeb by měly být uzavřené pro veřejný internet.
Mám používat UFW nebo firewalld?
Pro Ubuntu a Debian je UFW jednodušší a vhodné pro začátečníky. Na AlmaLinuxu, Rocky Linuxu a RHEL je běžnější firewalld. Pro pokročilé konfigurace je vhodný nftables.
Je možné zastavit boty jen pomocí IP blokování?
Obvykle ne. Moderní boti používají různé IP, proxy a techniky. Kromě IP blokování je třeba používat omezení rychlosti, WAF pravidla, analýzu chování, CAPTCHA a aplikační kvóty.
Jaké je největší riziko při nastavování firewallu?
Největší riziko je ztráta přístupu kvůli špatně nastaveným pravidlům, zejména k SSH. Proto vždy nejprve povolte SSH, testujte z druhé relace a mějte připravený záložní přístup přes konzoli poskytovatele.