mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
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
This commit is contained in:
parent
354a4b31a4
commit
4323774d59
package/iptables/files
@ -1,20 +1,6 @@
|
|||||||
# Copyright (C) 2006 OpenWrt.org
|
# Copyright (C) 2006 OpenWrt.org
|
||||||
|
|
||||||
BEGIN {
|
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=":"
|
FS=":"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,15 +18,15 @@ BEGIN {
|
|||||||
($1 == "accept") {
|
($1 == "accept") {
|
||||||
target = " -j ACCEPT"
|
target = " -j ACCEPT"
|
||||||
for (o in _opt) {
|
for (o in _opt) {
|
||||||
print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
|
print "iptables -t nat -A prerouting_wan" _opt[o] str2ipt($2) target
|
||||||
print "iptables -A input_$ifname " _opt[o] str2ipt($2) target
|
print "iptables -A input_wan " _opt[o] str2ipt($2) target
|
||||||
print ""
|
print ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
($1 == "drop") {
|
($1 == "drop") {
|
||||||
for (o in _opt) {
|
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 ""
|
print ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -57,8 +43,8 @@ BEGIN {
|
|||||||
else fwopts = ""
|
else fwopts = ""
|
||||||
}
|
}
|
||||||
for (o in _opt) {
|
for (o in _opt) {
|
||||||
print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
|
print "iptables -t nat -A prerouting_wan" _opt[o] str2ipt($2) target
|
||||||
print "iptables -A forward_$ifname " _opt[o] " -d " $3 fwopts " -j ACCEPT"
|
print "iptables -A forwarding_wan " _opt[o] " -d " $3 fwopts " -j ACCEPT"
|
||||||
print ""
|
print ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,13 @@ start() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
iptables -N input_rule
|
iptables -N input_rule
|
||||||
|
iptables -N input_wan
|
||||||
iptables -N output_rule
|
iptables -N output_rule
|
||||||
iptables -N forwarding_rule
|
iptables -N forwarding_rule
|
||||||
|
iptables -N forwarding_wan
|
||||||
|
|
||||||
iptables -t nat -N prerouting_rule
|
iptables -t nat -N prerouting_rule
|
||||||
|
iptables -t nat -N prerouting_wan
|
||||||
iptables -t nat -N postrouting_rule
|
iptables -t nat -N postrouting_rule
|
||||||
|
|
||||||
iptables -N LAN_ACCEPT
|
iptables -N LAN_ACCEPT
|
||||||
@ -42,6 +45,7 @@ start() {
|
|||||||
# insert accept rule or to jump to new accept-check table here
|
# insert accept rule or to jump to new accept-check table here
|
||||||
#
|
#
|
||||||
iptables -A INPUT -j input_rule
|
iptables -A INPUT -j input_rule
|
||||||
|
[ -z "$WAN" ] || iptables -A INPUT -i $WAN -j input_wan
|
||||||
|
|
||||||
# allow
|
# allow
|
||||||
iptables -A INPUT -j LAN_ACCEPT # allow from lan/wifi interfaces
|
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
|
# insert accept rule or to jump to new accept-check table here
|
||||||
#
|
#
|
||||||
iptables -A FORWARD -j forwarding_rule
|
iptables -A FORWARD -j forwarding_rule
|
||||||
|
[ -z "$WAN" ] || iptables -A FORWARD -i $WAN -j forwarding_wan
|
||||||
|
|
||||||
# allow
|
# allow
|
||||||
iptables -A FORWARD -i $LAN -o $LAN -j ACCEPT
|
iptables -A FORWARD -i $LAN -o $LAN -j ACCEPT
|
||||||
@ -95,6 +100,7 @@ start() {
|
|||||||
|
|
||||||
### MASQ
|
### MASQ
|
||||||
iptables -t nat -A PREROUTING -j prerouting_rule
|
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
|
iptables -t nat -A POSTROUTING -j postrouting_rule
|
||||||
[ -z "$WAN" ] || iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
|
[ -z "$WAN" ] || iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
|
||||||
|
|
||||||
@ -111,8 +117,10 @@ stop() {
|
|||||||
iptables -P OUTPUT ACCEPT
|
iptables -P OUTPUT ACCEPT
|
||||||
iptables -P FORWARD ACCEPT
|
iptables -P FORWARD ACCEPT
|
||||||
iptables -F
|
iptables -F
|
||||||
|
iptables -X
|
||||||
iptables -t nat -P PREROUTING ACCEPT
|
iptables -t nat -P PREROUTING ACCEPT
|
||||||
iptables -t nat -P POSTROUTING ACCEPT
|
iptables -t nat -P POSTROUTING ACCEPT
|
||||||
iptables -t nat -P OUTPUT ACCEPT
|
iptables -t nat -P OUTPUT ACCEPT
|
||||||
iptables -t nat -F
|
iptables -t nat -F
|
||||||
|
iptables -t nat -X
|
||||||
}
|
}
|
||||||
|
@ -7,22 +7,24 @@ iptables -F forwarding_rule
|
|||||||
iptables -t nat -F prerouting_rule
|
iptables -t nat -F prerouting_rule
|
||||||
iptables -t nat -F postrouting_rule
|
iptables -t nat -F postrouting_rule
|
||||||
|
|
||||||
### BIG FAT DISCLAIMER
|
# The following chains are for traffic directed at the IP of the
|
||||||
## The "-i $WAN" is used to match packets that come in via the $WAN interface.
|
# 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.
|
iptables -F input_wan
|
||||||
|
iptables -F forwarding_wan
|
||||||
|
iptables -t nat -F prerouting_wan
|
||||||
|
|
||||||
### Open port to WAN
|
### Open port to WAN
|
||||||
## -- This allows port 22 to be answered by (dropbear on) the router
|
## -- 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 -t nat -A prerouting_wan -p tcp --dport 22 -j ACCEPT
|
||||||
# iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
|
# iptables -A input_wan -p tcp --dport 22 -j ACCEPT
|
||||||
|
|
||||||
### Port forwarding
|
### Port forwarding
|
||||||
## -- This forwards port 8080 on the WAN to port 80 on 192.168.1.2
|
## -- 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 -t nat -A prerouting_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 -A forwarding_wan -p tcp --dport 80 -d 192.168.1.2 -j ACCEPT
|
||||||
|
|
||||||
### DMZ
|
### DMZ
|
||||||
## -- Connections to ports not handled above will be forwarded to 192.168.1.2
|
## -- 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 -t nat -A prerouting_wan -j DNAT --to 192.168.1.2
|
||||||
# iptables -A forwarding_rule -i $WAN -d 192.168.1.2 -j ACCEPT
|
# iptables -A forwarding_wan -d 192.168.1.2 -j ACCEPT
|
||||||
|
Loading…
Reference in New Issue
Block a user