Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
navody:server:firewall [2015/10/14 12:12] – 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 | ||
+ | </ |