Základní pravidla zpracování paketu na síťové vrstvě obecným linuxovým routerem (firewallem)
1. Host – zpracovává jenom fronty typu – INPUT, OUTPUT – ovlivňuje přístup na a z procesů na lokálním počítači
2. Router – zpracovává jenom fronty typu – INPUT, OUTPUT – pro své locální procesy a zpracovává frontu typu – FORWARD pro pakety určené z jiné síťě do jiné síťě.
3. Firewall – zpracovává fronty INPUT. OUTPUT, FORWARD a PREROUTING, POSTROUTING
PREROUTING – je určen pro forwardování služeb viditelných na veřejné adrese do vnitřní sítě na počítače za NATem
POSTROUTING – je funkce vlastního NATu -řešení zkrytí neveřejného adresního prostoru do veřejné IP sítě (internetu).
IPTABLES a jeho funkce viz.:
man iptables
iptables -L # výpis všech pravidel iptables -L -v # výpis všech pravidel včetně počítadla zachycených paketů
Příklady použití
1. Zakázání všech DNS serveru krom našeho interního
iptables -F # vyčistí všechna stávající pravidla firewalu iptables -A OUTPUT -p udp -d 192.168.1.1 --dport 53 -j ACCEPT # povolí dotazy na náš interní DNS server iptables -A OUTPUT -p udp -d 0/0 --dport 53 -j DROP # zakáže dotazy na všechny ostatní DNS servery
2. Zakázání přístupu na lokální službu SSH a povolení pouze z jednoho hosta
iptables -F # vyčistí všechna stávající pravidla firewalu iptables -A INPUT -p tcp -d 192.168.1.1 --dport 22 -j ACCEPT # povolí dotazy na náš server iptables -A INPUT -p tcp -d 0/0 --dport 22 -j DROP # zakáže dotazy všem ostatním
Kontrolní otázky na test:
1. K čemu slouží fronty ve firewalových pravidlech ?
2. K čemu slouží fronta INPUT a OUTPUT ?
3. K čemu slouží fronta FORWARD ?
4. K čemu slouží fronta PREROUTING ?
5. K čemu slouží fronta POSTROUTING ?
6. Nastavte omezení přístupu na službu https běžícím na lokálním počítači a povolen je pouze přístup z počítače 192.168.20.20 a počítačové sítě 192.168.30.0/24 a z ostatních počítačů je přístup zakázán ?
Odpověď:
iptables -F iptables -A INPUT -p tcp -s 192.168.20.20 --dport 443 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 443 -j ACCEPT iptables -A INPUT -p tcp -d 0/0 --dport 443 -j DROP
7. Jaké další funkce může plnit příkaz iptables ?
Odpověď: DROP, REJECT, ACCESS, LOG, MARK
8. Jaké znáte povolené rozsahy neveřejných sítí RFC specifikace?
Ukázka logování firewalu
#!/bin/sh
# vymazani firewalu
/sbin/iptables -F
# nastaveni logovani
/sbin/iptables -A INPUT -s 192.168.10.0/24 -m limit --limit 15/minute \ -j LOG --log-level 7 --log-prefix "Dropped by firewall: "
# Drop konkretniho firewalu
/sbin/iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 8888 -j REJECT
# toto ukazuje vystup z firewallu do log systemu
sudo tail -f /var/log/messages [syslog]