Firewall Beispielscript: Unterschied zwischen den Versionen
| Buli (Diskussion | Beiträge) | Buli (Diskussion | Beiträge)  | ||
| Zeile 2: | Zeile 2: | ||
|   locip=169.254.0.1 |   locip=169.254.0.1 | ||
|   aport=1024:65535 |   aport=1024:65535 | ||
| − | |||
|   iptunset(){ |   iptunset(){ | ||
| − | |||
|   # erst mal ordentlich aufräumen ... |   # erst mal ordentlich aufräumen ... | ||
|   iptables -F |   iptables -F | ||
| Zeile 11: | Zeile 9: | ||
|   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)/kann man auch sein lassen | |
| − |   # 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;; | ||
Version vom 25. September 2006, 18:44 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)/kann man auch sein lassen
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
