Firewall Beispielscript: Unterschied zwischen den Versionen
Buli (Diskussion | Beiträge) |
Buli (Diskussion | Beiträge) |
||
Zeile 5: | Zeile 5: | ||
iptunset(){ | iptunset(){ | ||
− | # erst mal ordentlich aufräumen ... | + | # erst mal ordentlich aufräumen ... |
− | iptables -F | + | iptables -F |
− | iptables -P INPUT ACCEPT | + | iptables -P INPUT ACCEPT |
− | iptables -P OUTPUT ACCEPT | + | iptables -P OUTPUT ACCEPT |
− | iptables -P FORWARD ACCEPT | + | iptables -P FORWARD ACCEPT |
− | } | + | } |
− | ######################################################################## | + | ######################################################################## |
− | iptset(){ | + | iptset(){ |
− | # alles sperren | + | # alles sperren |
− | iptables -P INPUT DROP | + | iptables -P INPUT DROP |
− | iptables -P OUTPUT DROP | + | iptables -P OUTPUT DROP |
− | iptables -P FORWARD DROP | + | iptables -P FORWARD DROP |
− | # Loopback wieder aktivieren | + | # Loopback wieder aktivieren |
− | iptables -A INPUT -i lo -j ACCEPT | + | iptables -A INPUT -i lo -j ACCEPT |
− | iptables -A OUTPUT -o lo -j ACCEPT | + | iptables -A OUTPUT -o lo -j ACCEPT |
− | # eth0 für ICMP freischalten | + | # eth0 für ICMP freischalten |
− | iptables -A INPUT -i eth0 -p icmp -j ACCEPT | + | iptables -A INPUT -i eth0 -p icmp -j ACCEPT |
− | iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT |
− | # Anfragen von diesem Client an Nameserver erlauben | + | # Anfragen von diesem Client an Nameserver erlauben |
− | iptables -A OUTPUT -o eth0 -p udp -s $locip --sport $aport -d 0/0 --dport 53 -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p udp -s $locip --sport $aport -d 0/0 --dport 53 -j ACCEPT |
− | iptables -A INPUT -i eth0 -p udp -s 0/0 --sport 53 -d $locip --dport $aport -j ACCEPT | + | iptables -A INPUT -i eth0 -p udp -s 0/0 --sport 53 -d $locip --dport $aport -j ACCEPT |
− | # Port 80 freischalten (Anfragen an fremden Webserver) | + | # Port 80 freischalten (Anfragen an fremden Webserver) |
− | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 80 -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 80 -j ACCEPT |
− | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 80 -d $locip --dport $aport -j ACCEPT | + | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 80 -d $locip --dport $aport -j ACCEPT |
− | # Anfragen an entfernten ftp freischalten (Port 20/21/alle unpreviligierten) | + | # Anfragen an entfernten ftp freischalten (Port 20/21/alle unpreviligierten) |
− | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 21 -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 21 -j ACCEPT |
− | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 21 -d $locip --dport $aport -j ACCEPT | + | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 21 -d $locip --dport $aport -j ACCEPT |
− | iptables -A INPUT -i eth0 -p tcp -s 0/0 --sport 20 -d $locip --dport $aport -j ACCEPT | + | iptables -A INPUT -i eth0 -p tcp -s 0/0 --sport 20 -d $locip --dport $aport -j ACCEPT |
− | iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $locip --sport $aport -d 0/0 --dport 20 -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $locip --sport $aport -d 0/0 --dport 20 -j ACCEPT |
− | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport $aport -j ACCEPT | + | iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport $aport -j ACCEPT |
− | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport $aport -d $locip --dport $aport -j ACCEPT | + | iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport $aport -d $locip --dport $aport -j ACCEPT |
− | } | + | } |
− | ######################################################################## | + | ######################################################################## |
− | case "$1" in | + | case "$1" in |
− | s) iptset;; | + | s) iptset;; |
− | u) iptunset;; | + | u) iptunset;; |
− | *) echo "Usage: $0 s|u (set|unset)" | + | *) echo "Usage: $0 s|u (set|unset)" |
− | esac | + | esac |
Version vom 25. September 2006, 18:41 Uhr
#!/bin/sh locip=169.254.0.1 aport=1024:65535
iptunset(){
# erst mal ordentlich aufräumen ... iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT }
########################################################################
iptset(){
# alles sperren iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
# Loopback wieder aktivieren iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# eth0 für ICMP freischalten iptables -A INPUT -i eth0 -p icmp -j ACCEPT iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT
# Anfragen von diesem Client an Nameserver erlauben iptables -A OUTPUT -o eth0 -p udp -s $locip --sport $aport -d 0/0 --dport 53 -j ACCEPT iptables -A INPUT -i eth0 -p udp -s 0/0 --sport 53 -d $locip --dport $aport -j ACCEPT
# Port 80 freischalten (Anfragen an fremden Webserver) iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 80 -j ACCEPT iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 80 -d $locip --dport $aport -j ACCEPT
# Anfragen an entfernten ftp freischalten (Port 20/21/alle unpreviligierten) iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport 21 -j ACCEPT iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport 21 -d $locip --dport $aport -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 0/0 --sport 20 -d $locip --dport $aport -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $locip --sport $aport -d 0/0 --dport 20 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -s $locip --sport $aport -d 0/0 --dport $aport -j ACCEPT iptables -A INPUT -i eth0 -p tcp ! --syn -s 0/0 --sport $aport -d $locip --dport $aport -j ACCEPT }
########################################################################
case "$1" in s) iptset;; u) iptunset;; *) echo "Usage: $0 s|u (set|unset)" esac