prepare for moving part of the firewall to hotplug. created new chains {input,forward...
authorFelix Fietkau <nbd@openwrt.org>
Wed, 20 Dec 2006 05:58:41 +0000 (05:58 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 20 Dec 2006 05:58:41 +0000 (05:58 +0000)
SVN-Revision: 5878

package/iptables/files/firewall.awk
package/iptables/files/firewall.init
package/iptables/files/firewall.user

index 902c7b188842cf7826893f6db539fab9d36f1870..31dbae0f33cf0ce20286a8ffee1fdc86f7646c9e 100644 (file)
@@ -1,20 +1,6 @@
 # Copyright (C) 2006 OpenWrt.org
 
 BEGIN {
-       print "ifname=\"$WAN\""
-       print "[ -z \"$ifname\" ] && exit"
-       print ""
-       print "iptables -X input_$ifname 2>&- >&-"
-       print "iptables -N input_$ifname"
-       print "iptables -X forward_$ifname 2>&- >&-"
-       print "iptables -N forward_$ifname"
-       print "iptables -t nat -X prerouting_$ifname 2>&- >&-"
-       print "iptables -t nat -N prerouting_$ifname"
-       print ""
-       print "iptables -A input_rule -i \"$ifname\" -j input_$ifname"
-       print "iptables -A forwarding_rule -i \"$ifname\" -j forward_$ifname"
-       print "iptables -t nat -A prerouting_rule -i \"$ifname\" -j prerouting_$ifname"
-       print ""
        FS=":"
 }
 
@@ -32,15 +18,15 @@ BEGIN {
 ($1 == "accept") {
        target = " -j ACCEPT"
        for (o in _opt) {
-               print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
-               print "iptables        -A input_$ifname     " _opt[o] str2ipt($2) target
+               print "iptables -t nat -A prerouting_wan" _opt[o] str2ipt($2) target
+               print "iptables        -A input_wan     " _opt[o] str2ipt($2) target
                print ""
        }
 }
 
 ($1 == "drop") {
        for (o in _opt) {
-               print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) " -j DROP"
+               print "iptables -t nat -A prerouting_wan" _opt[o] str2ipt($2) " -j DROP"
                print ""
        }
 }
@@ -57,8 +43,8 @@ BEGIN {
                else fwopts = ""
        }
        for (o in _opt) {
-               print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
-               print "iptables        -A forward_$ifname   " _opt[o] " -d " $3 fwopts " -j ACCEPT"
+               print "iptables -t nat -A prerouting_wan" _opt[o] str2ipt($2) target
+               print "iptables        -A forwarding_wan   " _opt[o] " -d " $3 fwopts " -j ACCEPT"
                print ""
        }
 }
index 6f1ba8b156f0dda07a6ab140c366606529915968..a4014f3ee71e4fe3ae584e5a4d4eaa0373cdb8ef 100755 (executable)
@@ -18,10 +18,13 @@ start() {
        done
        
        iptables -N input_rule
+       iptables -N input_wan
        iptables -N output_rule
        iptables -N forwarding_rule
+       iptables -N forwarding_wan
        
        iptables -t nat -N prerouting_rule
+       iptables -t nat -N prerouting_wan
        iptables -t nat -N postrouting_rule
        
        iptables -N LAN_ACCEPT
@@ -42,6 +45,7 @@ start() {
        # insert accept rule or to jump to new accept-check table here
        #
        iptables -A INPUT -j input_rule
+       [ -z "$WAN" ] || iptables -A INPUT -i $WAN -j input_wan
        
        # allow
        iptables -A INPUT -j LAN_ACCEPT # allow from lan/wifi interfaces 
@@ -85,6 +89,7 @@ start() {
        # insert accept rule or to jump to new accept-check table here
        #
        iptables -A FORWARD -j forwarding_rule
+       [ -z "$WAN" ] || iptables -A FORWARD -i $WAN -j forwarding_wan
        
        # allow
        iptables -A FORWARD -i $LAN -o $LAN -j ACCEPT
@@ -95,6 +100,7 @@ start() {
        
        ### MASQ
        iptables -t nat -A PREROUTING -j prerouting_rule
+       [ -z "$WAN" ] || iptables -t nat -A PREROUTING -i "$WAN" -j prerouting_wan
        iptables -t nat -A POSTROUTING -j postrouting_rule
        [ -z "$WAN" ] || iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
        
@@ -111,8 +117,10 @@ stop() {
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD ACCEPT
        iptables -F
+       iptables -X
        iptables -t nat -P PREROUTING ACCEPT
        iptables -t nat -P POSTROUTING ACCEPT
        iptables -t nat -P OUTPUT ACCEPT
        iptables -t nat -F
+       iptables -t nat -X
 }
index 5f295babf21d67aa4f5804432c7578eeb4b5ffde..f4eb18ef7ded896af9bd22b442efca8dde58a986 100644 (file)
@@ -7,22 +7,24 @@ iptables -F forwarding_rule
 iptables -t nat -F prerouting_rule
 iptables -t nat -F postrouting_rule
 
-### BIG FAT DISCLAIMER
-## The "-i $WAN" is used to match packets that come in via the $WAN interface.
-## it WILL NOT MATCH packets sent from the $WAN ip address -- you won't be able
-## to see the effects from within the LAN.
+# The following chains are for traffic directed at the IP of the 
+# WAN interface
+
+iptables -F input_wan
+iptables -F forwarding_wan
+iptables -t nat -F prerouting_wan
 
 ### Open port to WAN
 ## -- This allows port 22 to be answered by (dropbear on) the router
-# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT 
-# iptables        -A input_rule      -i $WAN -p tcp --dport 22 -j ACCEPT
+# iptables -t nat -A prerouting_wan -p tcp --dport 22 -j ACCEPT 
+# iptables        -A input_wan      -p tcp --dport 22 -j ACCEPT
 
 ### Port forwarding
 ## -- This forwards port 8080 on the WAN to port 80 on 192.168.1.2
-# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8080 -j DNAT --to 192.168.1.2:80
-# iptables        -A forwarding_rule -i $WAN -p tcp --dport 80 -d 192.168.1.2 -j ACCEPT
+# iptables -t nat -A prerouting_wan -p tcp --dport 8080 -j DNAT --to 192.168.1.2:80
+# iptables        -A forwarding_wan -p tcp --dport 80 -d 192.168.1.2 -j ACCEPT
 
 ### DMZ
 ## -- Connections to ports not handled above will be forwarded to 192.168.1.2
-# iptables -t nat -A prerouting_rule -i $WAN -j DNAT --to 192.168.1.2
-# iptables        -A forwarding_rule -i $WAN -d 192.168.1.2 -j ACCEPT
+# iptables -t nat -A prerouting_wan -j DNAT --to 192.168.1.2
+# iptables        -A forwarding_wan -d 192.168.1.2 -j ACCEPT