Firewall Beispielscript: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
 
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
 
 
 
}
 
}
  
Zeile 17: Zeile 16:
 
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
 
}
 
}
  

Version vom 25. September 2006, 18:38 Uhr

  1. !/bin/sh

locip=169.254.0.1 aport=1024:65535

iptunset(){

  1. erst mal ordentlich aufräumen ...

iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT }

iptset(){

  1. alles sperren

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP

  1. Loopback wieder aktivieren

iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

  1. eth0 für ICMP freischalten

iptables -A INPUT -i eth0 -p icmp -j ACCEPT iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT

  1. 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

  1. 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

  1. 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