Firewall - iptables
Príkazy (commands)
-A, --append | iptables -A INPUT ... | pridáva pravidlo do reťaze |
-D, --delete | iptables -D INPUT --dport 80 -j DROP, iptables -D INPUT 1 | maže pravidlo z reťaze |
-L, --list | iptables -L INPUT | generuje zoznam pravidiel v reťazi |
-F, --flush | iptables -F INPUT | vyprázdni zoznam pravidiel v reťazi |
-P, --policy | iptables -P INPUT DROP | nastavuje štandardnú politiku reťaze |
Príklad štandardnej politiky
Všetky prichádzajúce (INPUT) a prechádzajúce (FORWARD) pakety budú zahodené, len pakety z lokálneho systému smerujúce do siete (OUTPUT) budú povolené.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
Príklady nastavenia pre FTP
Príkazy shellu na nahranie modulov pre ftp:
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
Nastavenie iptables:
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 20 -m state --state ESTABLISHED -j ACCEPT
Príklad
#!/bin/sh
echo 'starting firewall...'
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -p icmp -m state --state ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED -i eth0 -j ACCEPT
# allow SSH input
iptables -A INPUT -p tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
# allow FTP input
iptables -A INPUT -p tcp --dport 21 -s xxx.xxx.xxx.xxx -j ACCEPT
# allow DNS
iptables -A INPUT -p tcp --dport 53 -s xxx.xxx.xxx.xxx/24 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s xxx.xxx.xxx.xxx/24 -j ACCEPT
# allow smb
iptables -A INPUT -p tcp -m multiport --destination-port 137,138,139,445,5353 -s 10.50.50.0/24 -j ACCEPT
iptables -A INPUT -p udp -m multiport --destination-port 137,138,139,445,5353 -s 10.50.50.0/24 -j ACCEPT
# allow HTTP input
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# alow ping
iptables -A INPUT -p icmp -s xxx.xxx.xxx.xxx -j ACCEPT
# modules
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -A INPUT -m limit --limit 3/second --limit-burst 5 -i ! lo -j LOG
Výpis nastavených pravidiel
# iptables -L -nv
Chain INPUT (policy DROP 51 packets, 2760 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
18019 861K ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
13 1363 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
0 0 ACCEPT tcp -- * * xx.xx.xx.xxx 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT tcp -- * * xx.xx.xx.xxx 0.0.0.0/0 tcp dpt:21
0 0 ACCEPT tcp -- * * xx.xx.xx.0/24 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- * * xx.xx.xx.0/24 0.0.0.0/0 udp dpt:53
4 256 ACCEPT tcp -- * * xx.xx.xx.0/24 0.0.0.0/0 multiport dports 137,138,139,445,5353
13 2125 ACCEPT udp -- * * xx.xx.xx.0/24 0.0.0.0/0 multiport dports 137,138,139,445,5353
34 1928 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT icmp -- * * xx.xx.xx.0/24 0.0.0.0/0
10 300 LOG all -- !lo * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/sec burst 5 LOG flags 0 level 4
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 31050 packets, 45M bytes)
pkts bytes target prot opt in out source destination
Chain RH-Firewall-1-INPUT (0 references)
pkts bytes target prot opt in out source destination
Generátor typoscriptu
Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.