Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| navody:server:firewall [2015/10/14 12:11] – vytvořeno krcmar | navody:server:firewall [2023/08/02 18:18] (aktuální) – Aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | <note important> | ||
| + | Tento článek je zastaralý, doporučujeme se řídit dokumentací nebo wiki distribuce, kterou používáš. | ||
| + | Pokud chceš, můžeš tento článek doplnit a aktualizovat. | ||
| + | </ | ||
| + | |||
| ====== Firewall ====== | ====== Firewall ====== | ||
| Řádek 5: | Řádek 10: | ||
| Linuxové jádro obsahuje firewall zvaný Netfilter, který je obsluhován pomocí utility '' | Linuxové jádro obsahuje firewall zvaný Netfilter, který je obsluhován pomocí utility '' | ||
| - | Na našem VPS je v každém případě | + | Při prvotních hrátkách s firewallem je možné, že si neopatrným zásahem odříznete cestu k VPS. Nepanikařte a přejděte |
| + | |||
| + | ===== IPtables ===== | ||
| + | |||
| + | Současný stav je možné zjistit pomocí | ||
| + | |||
| + | iptables -L | ||
| + | |||
| + | Výstup bude vypadat pravděpodobně nějak takto | ||
| + | |||
| + | < | ||
| + | target | ||
| + | |||
| + | Chain FORWARD (policy ACCEPT) | ||
| + | target | ||
| + | |||
| + | Chain OUTPUT (policy ACCEPT) | ||
| + | target | ||
| + | |||
| + | Ve výpisu jsou zobrazeny tři řetězce (chain): vstup, průchod a výstup. V nich v současné době nejsou | ||
| + | |||
| + | < | ||
| + | |||
| + | Je čas naučit náš firewall nějaká pravidla. Jejich syntaxe je následující: | ||
| + | |||
| + | řetězec pravidlo akce | ||
| + | |||
| + | Každé pravidlo musí patřit do nějakého řetězce, na procházející paket se pak aplikuje pravidlo a v případě vyhovění se provede akce. Tedy například: | ||
| + | |||
| + | | ||
| + | |||
| + | Takto můžete ručně zapsat různá pravidla | ||
| + | |||
| + | | ||
| + | |||
| + | Pokud naopak potřebujete pravidla zachovat, zapište | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | < | ||
| + | |||
| + | # Pusť veškerý loopback (lo0) provoz a zahoď provoz z 127/8, který nepochází z rozhraní lo0 | ||
| + | -A INPUT -i lo -j ACCEPT | ||
| + | -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT | ||
| + | |||
| + | # Propusť všechen provoz už navázaných spojení | ||
| + | -A INPUT -m state --state ESTABLISHED, | ||
| + | |||
| + | # Povol veškerý odchozí provoz | ||
| + | -A OUTPUT -j ACCEPT | ||
| + | |||
| + | # Otevři příchozí porty pro HTTP a HTTPS | ||
| + | -A INPUT -p tcp --dport 80 -j ACCEPT | ||
| + | -A INPUT -p tcp --dport 443 -j ACCEPT | ||
| + | |||
| + | # Povol veškerá spojení na SSH | ||
| + | -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT | ||
| + | # Povol spojení jen z mé IP adresy | ||
| + | # -I INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT | ||
| + | |||
| + | # Zakaž všechno ostatní, co prošlo až sem. | ||
| + | -A INPUT -j REJECT | ||
| + | -A FORWARD -j REJECT | ||
| + | |||
| + | COMMIT | ||
| + | </ | ||
| + | |||
| + | Takový konfigurační soubor je možné získat i tak, že uložíte aktuální pravidla zapsaná právě ve firewallu. Pokud jste tedy pravidla zadali ručně z řádky, můžete si je všechna uložit: | ||
| + | |||
| + | iptables-save > / | ||
| + | |||
| + | Stejně tak je možné obsah souboru znovu načíst do jádra: | ||
| + | |||
| + | iptables-restore < / | ||
| + | |||
| + | Pokud chcete, aby se tento příkaz spouštěl při startu systému a tedy aby se při startu VPS načetla všechna zadaná pravidla, zapište do souboru ''/ | ||
| + | |||
| + | < | ||
| + | / | ||
| + | |||
| + | Soubor pak učiňte spustitelným: | ||
| + | |||
| + | chmod +x / | ||
| + | |||
| + | Od této chvíle se při startu serveru aplikují firewallová pravidla podle vašich přání. | ||
| + | |||
| + | ===== Shorewall ===== | ||
| + | |||
| + | Nastavení firewallu se dělá pomocí balíku // | ||
| + | |||
| + | apt-get install shorewall | ||
| + | cd / | ||
| + | |||
| + | |||
| + | **/ | ||
| + | |||
| + | Nastavení zón ($FW v ostatních souborech se automaticky nahrazuje " | ||
| + | |||
| + | #ZONE | ||
| + | # | ||
| + | fw firewall | ||
| + | net | ||
| + | vpn | ||
| + | |||
| + | |||
| + | **/ | ||
| + | |||
| + | Tohle je nastaveni implicitních akcí (vyhodnocuje se v zadaném pořadí!). | ||
| + | |||
| + | # | ||
| + | # | ||
| + | |||
| + | # povol spojeni "ze serveru na internet" | ||
| + | $FW | ||
| + | |||
| + | # zahod vsechno "z internetu na server" | ||
| + | net | ||
| + | |||
| + | # odmitni vsechno "z vpn na internet" | ||
| + | vpn | ||
| + | |||
| + | # povol vsechno ostatni "z vpn" | ||
| + | vpn | ||
| + | |||
| + | # The FOLLOWING POLICY MUST BE LAST | ||
| + | all | ||
| + | |||
| + | |||
| + | **/ | ||
| + | |||
| + | FORMAT 2 | ||
| + | ############################################################################### | ||
| + | #ZONE | ||
| + | net | ||
| + | vpn | ||
| + | |||
| + | **/ | ||
| + | |||
| + | Tady se nastavují jednotlivá pravidla, kterými se pak firewall řídí. V následujícím souboru jsou v komentářích vysvětleny jendotlivé příklady. | ||
| + | |||
| + | # | ||
| + | # | ||
| + | #SECTION ALL | ||
| + | #SECTION ESTABLISHED | ||
| + | #SECTION RELATED | ||
| + | SECTION NEW | ||
| + | |||
| + | # povoleni SSH sluzby pro klienty z internetu | ||
| + | |||
| + | ACCEPT | ||
| + | # - pro urcitou IP adresu | ||
| + | # | ||
| + | # - pro skupinu IP adres (subnet) | ||
| + | # | ||
| + | |||
| + | # OpenVPN | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | |||
| + | # WEB | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | |||
| + | **/ | ||
| + | |||
| + | V tomto souboru je potřeba Shorewallu říci, že má začít pracovat a načítat konfigurační soubory. | ||
| + | |||
| + | startup=1 | ||
| + | |||
| + | |||
| + | Poté můžeme nechat Shorewall zkontrolovat konfiguraci: | ||
| + | |||
| + | shorewall check | ||
| + | |||
| + | Pokud potvrdí '' | ||
| + | |||
| + | shorewall start|stop|restart|... | ||
| + | |||
| + | Další užitečné příkazy: | ||
| + | |||
| + | shorewall status | ||
| + | shorewall show | ||
| + | shorevall safe-start | ||
| + | shorewall safe-restart | ||
| + | |||
| + | Odkazy: [[http:// | ||
| + | |||
| + | ===== FirewallD ===== | ||
| + | |||
| + | Starší verze firewalld potřebují, | ||
| + | |||
| + | Vyrobit jde lze jednoduše pár příkazy: | ||
| + | < | ||
| + | mkdir / | ||
| + | touch / | ||
| + | for i in / | ||
| + | depmod -a | ||
| + | </ | ||