move firewall related stuff from base-files to iptables, bump release number for...
authorNicolas Thill <nico@openwrt.org>
Sun, 12 Mar 2006 01:01:37 +0000 (01:01 +0000)
committerNicolas Thill <nico@openwrt.org>
Sun, 12 Mar 2006 01:01:37 +0000 (01:01 +0000)
SVN-Revision: 3347

12 files changed:
openwrt/package/base-files/Makefile
openwrt/package/base-files/default/etc/config/firewall [deleted file]
openwrt/package/base-files/default/etc/firewall.user [deleted file]
openwrt/package/base-files/default/etc/init.d/S45firewall [deleted file]
openwrt/package/base-files/default/usr/lib/firewall.awk [deleted file]
openwrt/package/base-files/ipkg/base-files.conffiles
openwrt/package/iptables/Makefile
openwrt/package/iptables/files/firewall.awk [new file with mode: 0644]
openwrt/package/iptables/files/firewall.config [new file with mode: 0644]
openwrt/package/iptables/files/firewall.init [new file with mode: 0755]
openwrt/package/iptables/files/firewall.user [new file with mode: 0755]
openwrt/package/iptables/ipkg/iptables.conffiles [new file with mode: 0644]

index 18423ef7752bff501767c3ec845babe2489193d0..1c7fee60a0f614906aa73d34a97e172ea6d126f7 100644 (file)
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 PKG_BUILD_DIR:=$(BUILD_DIR)/base-files
 
 include $(TOPDIR)/package/rules.mk
diff --git a/openwrt/package/base-files/default/etc/config/firewall b/openwrt/package/base-files/default/etc/config/firewall
deleted file mode 100644 (file)
index 7edd4ba..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# RULE SYNTAX:
-#
-# forward:<match>:<target>[:<port>]
-#      - forwards all packets matched by <match> to <target>,
-#        optionally changing the port to <port>
-#
-# accept:<match>
-#      - accepts all traffic matched by <match>
-#
-# drop:<match>
-#      - drops all traffic matched by <match>
-#
-#
-# MATCHING OPTIONS:
-#
-# src=<ip>
-#      - match the source ip <ip>
-#
-# dest=<ip>
-#      - match the destination ip <ip>
-#
-# proto=<proto>
-#      - match the protocol by name or number
-#
-# sport=<port(s)>
-#      - match the source port(s), see below for syntax
-#
-# dport=<port(s)>
-#      - match the destination port(s), see below for syntax
-#
-#
-#
-# PORT SYNTAX:
-#
-# You can enter an arbitrary list of ports and port ranges in the following format:
-#   - 22,53,993,1000-1024 
-#
-# If you don't set the protocol to tcp or udp, it will apply to both
-#
-#
-#
-# EXAMPLES:
-#
-# drop:dport=22 src=1.3.3.7
-# accept:proto=tcp dport=22
-# forward:dport=60168:192.168.1.2:60169
diff --git a/openwrt/package/base-files/default/etc/firewall.user b/openwrt/package/base-files/default/etc/firewall.user
deleted file mode 100755 (executable)
index c19f596..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-. /etc/functions.sh
-
-WAN=$(nvram get wan_ifname)
-LAN=$(nvram get lan_ifname)
-
-iptables -F input_rule
-iptables -F output_rule
-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.
-
-### 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
-
-### 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
-
-### 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
diff --git a/openwrt/package/base-files/default/etc/init.d/S45firewall b/openwrt/package/base-files/default/etc/init.d/S45firewall
deleted file mode 100755 (executable)
index 8095e19..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-## Please make changes in /etc/firewall.user
-
-. /etc/functions.sh
-WAN=$(nvram get wan_ifname)
-LAN=$(nvram get lan_ifname)
-
-## CLEAR TABLES
-for T in filter nat; do
-  iptables -t $T -F
-  iptables -t $T -X
-done
-
-iptables -N input_rule
-iptables -N output_rule
-iptables -N forwarding_rule
-
-iptables -t nat -N prerouting_rule
-iptables -t nat -N postrouting_rule
-
-### INPUT
-###  (connections with the router as destination)
-
-  # base case
-  iptables -P INPUT DROP
-  iptables -A INPUT -m state --state INVALID -j DROP
-  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-  iptables -A INPUT -p tcp --tcp-flags SYN SYN --tcp-option \! 2 -j  DROP
-
-  #
-  # insert accept rule or to jump to new accept-check table here
-  #
-  iptables -A INPUT -j input_rule
-
-  # allow
-  iptables -A INPUT -i \! $WAN -j ACCEPT       # allow from lan/wifi interfaces 
-  iptables -A INPUT -p icmp    -j ACCEPT       # allow ICMP
-  iptables -A INPUT -p gre     -j ACCEPT       # allow GRE
-
-  # reject (what to do with anything not allowed earlier)
-  iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
-  iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable
-
-### OUTPUT
-### (connections with the router as source)
-
-  # base case
-  iptables -P OUTPUT DROP
-  iptables -A OUTPUT -m state --state INVALID -j DROP
-  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-
-  #
-  # insert accept rule or to jump to new accept-check table here
-  #
-  iptables -A OUTPUT -j output_rule
-
-  # allow
-  iptables -A OUTPUT -j ACCEPT         #allow everything out
-
-  # reject (what to do with anything not allowed earlier)
-  iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
-  iptables -A OUTPUT -j REJECT --reject-with icmp-port-unreachable
-
-### FORWARDING
-### (connections routed through the router)
-
-  # base case
-  iptables -P FORWARD DROP 
-  iptables -A FORWARD -m state --state INVALID -j DROP
-  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-
-  #
-  # insert accept rule or to jump to new accept-check table here
-  #
-  iptables -A FORWARD -j forwarding_rule
-
-  # allow
-  iptables -A FORWARD -i br0 -o br0 -j ACCEPT
-  iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
-
-  # reject (what to do with anything not allowed earlier)
-  # uses the default -P DROP
-
-### MASQ
-  iptables -t nat -A PREROUTING -j prerouting_rule
-  iptables -t nat -A POSTROUTING -j postrouting_rule
-  iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
-
-## USER RULES
-[ -f /etc/firewall.user ] && . /etc/firewall.user
-[ -e /etc/config/firewall ] && {
-       awk -f /usr/lib/common.awk -f /usr/lib/firewall.awk /etc/config/firewall | ash
-}
diff --git a/openwrt/package/base-files/default/usr/lib/firewall.awk b/openwrt/package/base-files/default/usr/lib/firewall.awk
deleted file mode 100644 (file)
index d5fba05..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-BEGIN {
-       print "proto=\"$(nvram get wan_proto)\""
-       print "[ -z \"$proto\" -o \"$proto\" = \"none\" ] && exit"
-       print "ifname=\"$(nvram get wan_ifname)\""
-       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=":"
-}
-
-($1 == "accept") || ($1 == "drop") || ($1 == "forward") {
-       delete _opt
-       str2data($2)
-       if ((_l["proto"] == "") && (_l["sport"] _l["dport"] != "")) {
-               _opt[0] = " -p tcp"
-               _opt[1] = " -p udp"
-       } else {
-               _opt[0] = ""
-       }
-}
-
-($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 ""
-       }
-}
-
-($1 == "drop") {
-       for (o in _opt) {
-               print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) " -j DROP"
-               print ""
-       }
-}
-
-($1 == "forward") {
-       target = " -j DNAT --to " $3
-       fwopts = ""
-       if ($4 != "") {
-               if ((_l["proto"] == "tcp") || (_l["proto"] == "udp") || (_l["proto"] == "")) {
-                       if (_l["proto"] != "") fwopts = " -p " _l["proto"]
-                       fwopts = fwopts " --dport " $4
-                       target = target ":" $4
-               }
-               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 ""
-       }
-}
index 4c317bd68e5b83ed7b2c37fbbf043c28b7b5d80d..17024f6fa8aec514169c0d0ed892fc3a3d7839c4 100644 (file)
@@ -1,5 +1,3 @@
-/etc/config/firewall
-/etc/firewall.user
 /etc/group
 /etc/hosts
 /etc/ipkg.conf
index a8493ed8bf3d81527ae12fdbb36db65e22813412..50e92b0ed9bb11739db37f913d29a5236794a974 100644 (file)
@@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iptables
 PKG_VERSION:=1.3.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MD5SUM:=86d88455520cfdc56fd7ae27897a80a4
 
 PKG_SOURCE_URL:=http://www.netfilter.org/files \
@@ -72,6 +72,13 @@ $(PKG_BUILD_DIR)/.built:
        touch $@
                
 $(IPKG_IPTABLES):
+       install -d -m0755 $(IDIR_IPTABLES)/etc/config
+       install -m0644 ./files/firewall.config $(IDIR_IPTABLES)/etc/config/firewall
+       install -d -m0755 $(IDIR_IPTABLES)/etc/init.d
+       install -m0755 ./files/firewall.init $(IDIR_IPTABLES)/etc/init.d/S45firewall
+       install -m0755 ./files/firewall.user $(IDIR_IPTABLES)/etc/
+       install -d -m0755 $(IDIR_IPTABLES)/usr/lib
+       install -m0644 ./files/firewall.awk $(IDIR_IPTABLES)/usr/lib
        install -d -m0755 $(IDIR_IPTABLES)/usr/sbin
        cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/iptables $(IDIR_IPTABLES)/usr/sbin/
        install -d -m0755 $(IDIR_IPTABLES)/usr/lib/iptables
diff --git a/openwrt/package/iptables/files/firewall.awk b/openwrt/package/iptables/files/firewall.awk
new file mode 100644 (file)
index 0000000..d5fba05
--- /dev/null
@@ -0,0 +1,64 @@
+BEGIN {
+       print "proto=\"$(nvram get wan_proto)\""
+       print "[ -z \"$proto\" -o \"$proto\" = \"none\" ] && exit"
+       print "ifname=\"$(nvram get wan_ifname)\""
+       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=":"
+}
+
+($1 == "accept") || ($1 == "drop") || ($1 == "forward") {
+       delete _opt
+       str2data($2)
+       if ((_l["proto"] == "") && (_l["sport"] _l["dport"] != "")) {
+               _opt[0] = " -p tcp"
+               _opt[1] = " -p udp"
+       } else {
+               _opt[0] = ""
+       }
+}
+
+($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 ""
+       }
+}
+
+($1 == "drop") {
+       for (o in _opt) {
+               print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) " -j DROP"
+               print ""
+       }
+}
+
+($1 == "forward") {
+       target = " -j DNAT --to " $3
+       fwopts = ""
+       if ($4 != "") {
+               if ((_l["proto"] == "tcp") || (_l["proto"] == "udp") || (_l["proto"] == "")) {
+                       if (_l["proto"] != "") fwopts = " -p " _l["proto"]
+                       fwopts = fwopts " --dport " $4
+                       target = target ":" $4
+               }
+               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 ""
+       }
+}
diff --git a/openwrt/package/iptables/files/firewall.config b/openwrt/package/iptables/files/firewall.config
new file mode 100644 (file)
index 0000000..7edd4ba
--- /dev/null
@@ -0,0 +1,46 @@
+# RULE SYNTAX:
+#
+# forward:<match>:<target>[:<port>]
+#      - forwards all packets matched by <match> to <target>,
+#        optionally changing the port to <port>
+#
+# accept:<match>
+#      - accepts all traffic matched by <match>
+#
+# drop:<match>
+#      - drops all traffic matched by <match>
+#
+#
+# MATCHING OPTIONS:
+#
+# src=<ip>
+#      - match the source ip <ip>
+#
+# dest=<ip>
+#      - match the destination ip <ip>
+#
+# proto=<proto>
+#      - match the protocol by name or number
+#
+# sport=<port(s)>
+#      - match the source port(s), see below for syntax
+#
+# dport=<port(s)>
+#      - match the destination port(s), see below for syntax
+#
+#
+#
+# PORT SYNTAX:
+#
+# You can enter an arbitrary list of ports and port ranges in the following format:
+#   - 22,53,993,1000-1024 
+#
+# If you don't set the protocol to tcp or udp, it will apply to both
+#
+#
+#
+# EXAMPLES:
+#
+# drop:dport=22 src=1.3.3.7
+# accept:proto=tcp dport=22
+# forward:dport=60168:192.168.1.2:60169
diff --git a/openwrt/package/iptables/files/firewall.init b/openwrt/package/iptables/files/firewall.init
new file mode 100755 (executable)
index 0000000..8095e19
--- /dev/null
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+## Please make changes in /etc/firewall.user
+
+. /etc/functions.sh
+WAN=$(nvram get wan_ifname)
+LAN=$(nvram get lan_ifname)
+
+## CLEAR TABLES
+for T in filter nat; do
+  iptables -t $T -F
+  iptables -t $T -X
+done
+
+iptables -N input_rule
+iptables -N output_rule
+iptables -N forwarding_rule
+
+iptables -t nat -N prerouting_rule
+iptables -t nat -N postrouting_rule
+
+### INPUT
+###  (connections with the router as destination)
+
+  # base case
+  iptables -P INPUT DROP
+  iptables -A INPUT -m state --state INVALID -j DROP
+  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+  iptables -A INPUT -p tcp --tcp-flags SYN SYN --tcp-option \! 2 -j  DROP
+
+  #
+  # insert accept rule or to jump to new accept-check table here
+  #
+  iptables -A INPUT -j input_rule
+
+  # allow
+  iptables -A INPUT -i \! $WAN -j ACCEPT       # allow from lan/wifi interfaces 
+  iptables -A INPUT -p icmp    -j ACCEPT       # allow ICMP
+  iptables -A INPUT -p gre     -j ACCEPT       # allow GRE
+
+  # reject (what to do with anything not allowed earlier)
+  iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
+  iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable
+
+### OUTPUT
+### (connections with the router as source)
+
+  # base case
+  iptables -P OUTPUT DROP
+  iptables -A OUTPUT -m state --state INVALID -j DROP
+  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+
+  #
+  # insert accept rule or to jump to new accept-check table here
+  #
+  iptables -A OUTPUT -j output_rule
+
+  # allow
+  iptables -A OUTPUT -j ACCEPT         #allow everything out
+
+  # reject (what to do with anything not allowed earlier)
+  iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
+  iptables -A OUTPUT -j REJECT --reject-with icmp-port-unreachable
+
+### FORWARDING
+### (connections routed through the router)
+
+  # base case
+  iptables -P FORWARD DROP 
+  iptables -A FORWARD -m state --state INVALID -j DROP
+  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
+  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
+
+  #
+  # insert accept rule or to jump to new accept-check table here
+  #
+  iptables -A FORWARD -j forwarding_rule
+
+  # allow
+  iptables -A FORWARD -i br0 -o br0 -j ACCEPT
+  iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
+
+  # reject (what to do with anything not allowed earlier)
+  # uses the default -P DROP
+
+### MASQ
+  iptables -t nat -A PREROUTING -j prerouting_rule
+  iptables -t nat -A POSTROUTING -j postrouting_rule
+  iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
+
+## USER RULES
+[ -f /etc/firewall.user ] && . /etc/firewall.user
+[ -e /etc/config/firewall ] && {
+       awk -f /usr/lib/common.awk -f /usr/lib/firewall.awk /etc/config/firewall | ash
+}
diff --git a/openwrt/package/iptables/files/firewall.user b/openwrt/package/iptables/files/firewall.user
new file mode 100755 (executable)
index 0000000..c19f596
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+. /etc/functions.sh
+
+WAN=$(nvram get wan_ifname)
+LAN=$(nvram get lan_ifname)
+
+iptables -F input_rule
+iptables -F output_rule
+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.
+
+### 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
+
+### 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
+
+### 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
diff --git a/openwrt/package/iptables/ipkg/iptables.conffiles b/openwrt/package/iptables/ipkg/iptables.conffiles
new file mode 100644 (file)
index 0000000..06194ca
--- /dev/null
@@ -0,0 +1,2 @@
+/etc/config/firewall
+/etc/firewall.user