This renames the local_client zone to loc_client, as local_clint exceeds the maximum zone length allowed for firewall3, which is 11 bytes. This worked previously due to firewall3 using unsafe string operations. Now creation of the chain fails (latest OpenWrt master).
63 lines
1.4 KiB
Lua
Executable File
63 lines
1.4 KiB
Lua
Executable File
#!/usr/bin/lua
|
|
|
|
local uci = require('simple-uci').cursor()
|
|
local site = require('gluon.site')
|
|
|
|
uci:delete('firewall', 'wan_announced')
|
|
|
|
-- Allow respondd port on WAN to allow resolving neighbours over mesh-on-wan
|
|
uci:section('firewall', 'rule', 'wan_respondd', {
|
|
name = 'wan_respondd',
|
|
src = 'wan',
|
|
src_ip = 'fe80::/64',
|
|
dest_port = '1001',
|
|
proto = 'udp',
|
|
target = 'ACCEPT',
|
|
})
|
|
|
|
-- Allow respondd-access for local clients
|
|
uci:section('firewall', 'rule', 'client_respondd', {
|
|
name = 'client_respondd',
|
|
src = 'loc_client',
|
|
src_ip = 'fe80::/64',
|
|
dest_port = '1001',
|
|
proto = 'udp',
|
|
target = 'ACCEPT',
|
|
})
|
|
|
|
-- Allow respondd-access from within the mesh
|
|
uci:section('firewall', 'rule', 'mesh_respondd_ll', {
|
|
name = 'mesh_respondd_ll',
|
|
src = 'mesh',
|
|
src_ip = 'fe80::/64',
|
|
dest_port = '1001',
|
|
proto = 'udp',
|
|
target = 'ACCEPT',
|
|
})
|
|
|
|
uci:section('firewall', 'rule', 'mesh_respondd_siteprefix', {
|
|
name = 'mesh_respondd_siteprefix',
|
|
src = 'mesh',
|
|
src_ip = site.prefix6(),
|
|
dest_port = '1001',
|
|
proto = 'udp',
|
|
target = 'ACCEPT',
|
|
})
|
|
|
|
uci:delete_all('firewall', 'rule', function(rule)
|
|
return rule['.name']:find('^mesh_respondd_extraprefix')
|
|
end)
|
|
|
|
for idx, prefix in ipairs(site.extra_prefixes6({})) do
|
|
uci:section('firewall', 'rule', 'mesh_respondd_extraprefix' .. idx, {
|
|
name = 'mesh_respondd_extraprefix' .. idx,
|
|
src = 'mesh',
|
|
src_ip = prefix,
|
|
dest_port = '1001',
|
|
proto = 'udp',
|
|
target = 'ACCEPT',
|
|
})
|
|
end
|
|
|
|
uci:save('firewall')
|