1 # Copyright (C) 2009-2010 OpenWrt.org
3 fw_configure_interface
() {
9 config_get_bool status
"$iface" up
"0"
10 [ "$status" == 1 ] ||
return 0
13 config_get ifname
"$iface" ifname
14 ifname
=${ifname:-$iface}
16 [ "$ifname" == "lo" ] && return 0
18 fw_callback pre interface
25 fw
$action i f
${chain}_ACCEPT ACCEPT ^
{ -o "$ifname" }
26 fw
$action i f
${chain}_ACCEPT ACCEPT ^
{ -i "$ifname" }
27 fw
$action i f
${chain}_DROP DROP ^
{ -o "$ifname" }
28 fw
$action i f
${chain}_DROP DROP ^
{ -i "$ifname" }
29 fw
$action i f
${chain}_REJECT reject ^
{ -o "$ifname" }
30 fw
$action i f
${chain}_REJECT reject ^
{ -i "$ifname" }
32 fw
$action i n
${chain}_nat MASQUERADE ^
{ -o "$ifname" }
33 fw
$action i f
${chain}_MSSFIX TCPMSS ^
{ -o "$ifname" -p tcp
--tcp-flags SYN
,RST SYN
--clamp-mss-to-pmtu }
35 fw
$action i f input
${chain} $
{ -i "$ifname" }
36 fw
$action i f forward
${chain}_forward $
{ -i "$ifname" }
37 fw
$action i n PREROUTING
${chain}_prerouting ^
{ -i "$ifname" }
38 fw
$action i r PREROUTING
${chain}_notrack ^
{ -i "$ifname" }
41 local old_zones old_ifname
42 config_get old_zones core
"${iface}_zone"
43 [ -n "$old_zones" ] && {
44 config_get old_ifname core
"${iface}_ifname"
45 for z
in $old_zones; do
46 fw_log info
"removing $iface ($old_ifname) from zone $z"
47 fw__do_rules del zone_
$z $old_ifname
49 ACTION
=remove ZONE
="$z" INTERFACE
="$iface" DEVICE
="$ifname" /sbin
/hotplug-call firewall
51 uci_revert_state firewall core
"${iface}_zone"
52 uci_revert_state firewall core
"${iface}_ifname"
54 [ "$action" == del
] && return
58 fw_config_get_zone
"$1"
59 list_contains zone_network
"$iface" ||
return
61 fw_log info
"adding $iface ($ifname) to zone $zone_name"
62 fw__do_rules add zone_
${zone_name} "$ifname"
63 append new_zones
$zone_name
65 ACTION
=add ZONE
="$zone_name" INTERFACE
="$iface" DEVICE
="$ifname" /sbin
/hotplug-call firewall
67 config_foreach load_zone zone
69 uci_set_state firewall core
"${iface}_zone" "$new_zones"
70 uci_set_state firewall core
"${iface}_ifname" "$ifname"
72 fw_sysctl_interface
$ifname
74 fw_callback post interface
77 fw_sysctl_interface
() {
80 sysctl
-w net.ipv4.conf.
${ifname}.accept_redirects
=$FW_ACCEPT_REDIRECTS
81 sysctl
-w net.ipv6.conf.
${ifname}.accept_redirects
=$FW_ACCEPT_REDIRECTS
82 sysctl
-w net.ipv4.conf.
${ifname}.accept_source_route
=$FW_ACCEPT_SRC_ROUTE
83 sysctl
-w net.ipv6.conf.
${ifname}.accept_source_route
=$FW_ACCEPT_SRC_ROUTE
84 } >/dev
/null
2>/dev
/null