Firewall Beispielscript: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
 
K (intene Verlinkung, Category)
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
#!/bin/sh
+
<!-- kleiner Tipp: Leerzeilen in Codeblöcken kriegt man mit einem leerzeichen am Anfang der ansonsten leeren Zeile hin -->#!/bin/sh
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 10: Zeile 8:
 
  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)/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
 +
s) iptset;;
 +
u) iptunset;;
 +
*) echo "Usage: $0 s|u (set|unset)"
 +
esac
  
########################################################################
+
=Weiterführende Links=
 +
*[[iptables]]
  
case "$1" in
+
[[Shellscripte|Zurück zur Shellscripteübersicht]]
s) iptset;;
+
[[Kategorie:Scripte]] [[Kategorie:Security]]
u) iptunset;;
 
*) echo "Usage: $0 s|u (set|unset)"
 
esac
 

Aktuelle Version vom 23. November 2013, 16:04 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

Weiterführende Links

Zurück zur Shellscripteübersicht