This is an old revision of the document!
Firewall slouží pro filtraci provozu na VPS a z něj. Pomocí něj je možné nastavovat pravidla pro konkrétní pakety, které jsou propouštěny na základe různých parametrů jako jsou zdrojová a cílová IP adresa, zdrojový či cílový port a podobně.
Linuxové jádro obsahuje firewall zvaný Netfilter, který je obsluhován pomocí utility iptables
. Tento přístup je nízkoúrovňový a umožňuje nastavit velké množství různých parametrů a variant. Pohodlnější variantou je například nadstavba Shorewall, což je sada skriptů, které dovolují pravidla pro Netfilter z jednodušších konfiguračních souborů.
Na našem VPS je v každém případě nejprve potřeba povolit podporu iptables. V detailu VPS je potřeba zapnout podporu iptables a potvrdit. Dojde k restartu VPS a podpora je zapnutá.
Nastavení firewallu se dělá pomocí balíku shorewall.
apt-get install shorewall cd /etc/shorewall
/etc/shorewall/zones
Nastavení zón ($FW v ostatních souborech se automaticky nahrazuje “fw”).
#ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4 vpn ipv4
/etc/shorewall/policy
Tohle je nastaveni implicitních akcí (vyhodnocuje se v zadaném pořadí!).
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT: # LEVEL BURST MASK # povol spojeni "ze serveru na internet" $FW net ACCEPT # zahod vsechno "z internetu na server" net all DROP info # odmitni vsechno "z vpn na internet" (aby si vpn klienti nebrouzdali pres server) vpn net REJECT info # povol vsechno ostatni "z vpn" vpn all ACCEPT # The FOLLOWING POLICY MUST BE LAST all all REJECT info
/etc/shorewall/interfaces
FORMAT 2 ############################################################################### #ZONE INTERFACE OPTIONS net venet0 tcpflags,logmartians,nosmurfs vpn tun0
/ets/shorewall/rules
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.
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH # PORT PORT(S) DEST LIMIT GROUP #SECTION ALL #SECTION ESTABLISHED #SECTION RELATED SECTION NEW # povoleni SSH sluzby pro klienty z internetu ACCEPT net $FW tcp ssh # - pro urcitou IP adresu #ACCEPT net:78.80.8.27 $FW tcp ssh # - pro skupinu IP adres (subnet) #ACCEPT net:81.25.21.0/24 $FW tcp ssh # OpenVPN ACCEPT net $FW udp 1194 ACCEPT $FW net udp - 1194 # WEB ACCEPT all all tcp 80 ACCEPT all all tcp 443
/etc/default/shorewall
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:
/etc/init.d/shorewall check
Pokud potvrdí Configuration Validated
, můžeme ho spustit
/etc/init.d/shorewall start|stop|restart|...
Další užitečné příkazy:
shorewall status shorewall show shorevall safe-start shorewall safe-restart