Zapis pravidel v iptables

Vladislav Janecek JanecekV na seznam.cz
Sobota Červen 12 10:34:34 CEST 2004


Prosim mistni znalce, je tento skrip korektni, resp. nemám v něm nějakou chybu? S IPTables zacinam, tak nevim. Os je Slackware 9.1. Jak to má fungovat je snad pochopitelne z komentaru. Diky vsem!

---------------------------------------------------
#!/bin/sh
#
# Muj maly domaci router / server
#
echo "Nastavuji routovani na aktivni..."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Nacitam moduly pro firewall..."
modprobe ip_tables
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
echo "Cistim predchozi pravidla firewallu..."
iptables -F
echo "Nastavuji promenne skriptu..."
VNITRNI_DEV="eth1"
VNEJSI_DEV="eth0"
VNITRNI_SIT="192.168.1.0/24"
VNEJSI_SIT="0.0.0.0/24"
echo "Nastavuji pravidla pro firewall..."
# INPUT (pristup primo na server)
# Pri input vsechno drop
iptables -P INPUT DROP
# Povoleni lokalniho rozhrani
iptables -A INPUT -i lo -j ACCEPT
# Povoleni sluzeb z vnitrniho rozhrani (PING, SSH, WEBMIN, WEB, PROXY)
iptables -A INPUT -i $VNITRNI_DEV -p icmp -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 3128 -j ACCEPT
# Povoleni specialnich sluzeb na vnitrnim rozhrani (DNS, DHCP server)
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 547 -j ACCEPT
iptables -A INPUT -i $VNITRNI_DEV -p tcp --dport 547 -j ACCEPT
# Povoleni sluzeb z vnejsiho rozhrani (SSH, WEBMIN, WEB)
iptables -A INPUT -i $VNEJSI_DEV -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $VNEJSI_DEV -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -i $VNEJSI_DEV -p tcp --dport 80 -j ACCEPT
# Povoleni portu pro presmerovani
iptables -A INPUT -i $VNEJSI_DEV -p tcp --dport 81 -j ACCEPT
# Povoleni pruchodu
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Zapnuti NATu a maskarady
# routovani provozu z vnitrni site
iptables -A POSTROUTING -t nat -o $VNEJSI_DEV -j MASQUERADE
# presmerovani nekterych portu do vnitrni site
iptables -t nat -A PREROUTING -p tcp --dport 81 -i $VNEJSI_DEV -j DNAT --to 192.168.1.20:80
# transparentni proxy
iptables -t nat -A PREROUTING -p tcp --dport 80 -s $VNITRNI_SIT -i ! $VNEJSI_DEV -j REDIRECT --to-port 3128
# FORWARD (pruchod serverem)
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
iptables -A FORWARD -i $VNEJSI_DEV -m state --state ESTABLISHED,RELATED -j DROP
# Drop pro vsechno ostatni na vstupu
iptables -A FORWARD -i $VNEJSI_DEV -j DROP
# Povoleni vybranych pocitacu z vnitrni site kamkoli do netu
iptables -A FORWARD -i $VNITRNI_DEV -m mac --mac-source 00:50:04:4f:2f:7F -j ACCEPT
# Povoleni pouze MSN vsem ostatnim z vnitrni site
iptables -A FORWARD -i $VNITRNI_DEV -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i $VNITRNI_DEV -p tcp --dport 1863 -j ACCEPT
# Zablokovani vsech ostatnich z vnitrniho rozhrani
iptables -A FORWARD -i $VNITRNI_DEV -j DROP
# FORWARD (odchozi ze serveru)
# Povoleni odchozich sluzeb ze server (SSH, WEBMIN, WEB)
iptables -A FORWARD -o $VNEJSI_DEV -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -o $VNEJSI_DEV -p tcp --dport 10000 -j ACCEPT
iptables -A FORWARD -o $VNEJSI_DEV -p tcp --dport 80 -j ACCEPT
# Povoleni odchoziho z presmerovani
iptables -A FORWARD -o $VNEJSI_DEV -p tcp --dport 81 -j ACCEPT
# Dokonceni nastaveni FORWARD
iptables -A FORWARD -o $VNEJSI_DEV -p icmp -j ACCEPT
iptables -A FORWARD -o $VNESJI_DEV -m state --state ESTABLISHED?RELATED -j ACCEPT
iptables -A FORWARD -o $VNEJSI_DEV -j DROP
# A to je vse, pratele...
____________________________________________________________
Příjemný design. Příjemnější cena! NOKIA 2300 již od 577 Kč. www.oskar.cz
http://ad.seznam.cz/clickthru?spotId=74857


Další informace o konferenci Linux