aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-12-20 05:58:41 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-12-20 05:58:41 +0000
commit4323774d5953f0228a99ca0da502b1e2962bb9f3 (patch)
tree89fda13dac11b58a627c6afc5ce62c8fa6c2e3c2
parent354a4b31a4da3a2a99acf468847a4f25f3ff1904 (diff)
downloadupstream-4323774d5953f0228a99ca0da502b1e2962bb9f3.tar.gz
upstream-4323774d5953f0228a99ca0da502b1e2962bb9f3.tar.bz2
upstream-4323774d5953f0228a99ca0da502b1e2962bb9f3.zip
prepare for moving part of the firewall to hotplug. created new chains {input,forwarding,prerouting}_wan for wan port forwardings and updated the examples. syntax of /etc/config/firewall unchanged and old firewall.user files are still compatible
SVN-Revision: 5878
-rw-r--r--package/iptables/files/firewall.awk24
-rwxr-xr-xpackage/iptables/files/firewall.init8
-rw-r--r--package/iptables/files/firewall.user22
3 files changed, 25 insertions, 29 deletions
diff --git a/package/iptables/files/firewall.awk b/package/iptables/files/firewall.awk
index 902c7b1888..31dbae0f33 100644
--- a/package/iptables/files/firewall.awk
+++ b/package/iptables/files/firewall.awk
@@ -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 ""
}
}
diff --git a/package/iptables/files/firewall.init b/package/iptables/files/firewall.init
index 6f1ba8b156..a4014f3ee7 100755
--- a/package/iptables/files/firewall.init
+++ b/package/iptables/files/firewall.init
@@ -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
}
diff --git a/package/iptables/files/firewall.user b/package/iptables/files/firewall.user
index 5f295babf2..f4eb18ef7d 100644
--- a/package/iptables/files/firewall.user
+++ b/package/iptables/files/firewall.user
@@ -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