Created
May 12, 2015 06:17
-
-
Save dearing/e8b2afb596c4489e1c33 to your computer and use it in GitHub Desktop.
$ nft export > firewall.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nftables": [ | |
{ | |
"table": { | |
"name": "nat", | |
"family": "ip", | |
"flags": 0, | |
"use": 2 | |
} | |
}, | |
{ | |
"table": { | |
"name": "firewall", | |
"family": "inet", | |
"flags": 0, | |
"use": 1 | |
} | |
}, | |
{ | |
"chain": { | |
"name": "prerouting", | |
"handle": 1, | |
"bytes": 47719399, | |
"packets": 396384, | |
"table": "nat", | |
"family": "ip", | |
"use": 0, | |
"type": "nat", | |
"hooknum": "prerouting", | |
"prio": 0, | |
"policy": "accept" | |
} | |
}, | |
{ | |
"chain": { | |
"name": "postrouting", | |
"handle": 2, | |
"bytes": 0, | |
"packets": 0, | |
"table": "nat", | |
"family": "ip", | |
"use": 1, | |
"type": "nat", | |
"hooknum": "postrouting", | |
"prio": 0, | |
"policy": "accept" | |
} | |
}, | |
{ | |
"chain": { | |
"name": "incoming", | |
"handle": 1, | |
"bytes": 0, | |
"packets": 0, | |
"table": "firewall", | |
"family": "inet", | |
"use": 10, | |
"type": "filter", | |
"hooknum": "input", | |
"prio": 0, | |
"policy": "accept" | |
} | |
}, | |
{ | |
"set": { | |
"name": "set0", | |
"table": "firewall", | |
"flags": 3, | |
"family": "inet", | |
"key_type": 26, | |
"key_len": 4, | |
"set_elem": [ | |
{ | |
"key": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000004" | |
} | |
} | |
}, | |
{ | |
"key": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000002" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "ip", | |
"table": "nat", | |
"chain": "postrouting", | |
"handle": 3, | |
"expr": [ | |
{ | |
"type": "masq" | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 2, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "l4proto" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
} | |
}, | |
{ | |
"type": "payload", | |
"dreg": 1, | |
"offset": 13, | |
"len": 1, | |
"base": "transport" | |
}, | |
{ | |
"type": "bitwise", | |
"sreg": 1, | |
"dreg": 1, | |
"len": 1, | |
"mask": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000003" | |
} | |
}, | |
"xor": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000003" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "drop" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 3, | |
"position": 2, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "l4proto" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
} | |
}, | |
{ | |
"type": "payload", | |
"dreg": 1, | |
"offset": 13, | |
"len": 1, | |
"base": "transport" | |
}, | |
{ | |
"type": "bitwise", | |
"sreg": 1, | |
"dreg": 1, | |
"len": 1, | |
"mask": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
}, | |
"xor": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "drop" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 4, | |
"position": 3, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "l4proto" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
} | |
}, | |
{ | |
"type": "payload", | |
"dreg": 1, | |
"offset": 13, | |
"len": 1, | |
"base": "transport" | |
}, | |
{ | |
"type": "bitwise", | |
"sreg": 1, | |
"dreg": 1, | |
"len": 1, | |
"mask": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x0000003f" | |
} | |
}, | |
"xor": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "lt", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000001" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "drop" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 5, | |
"position": 4, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "l4proto" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000006" | |
} | |
} | |
}, | |
{ | |
"type": "payload", | |
"dreg": 1, | |
"offset": 13, | |
"len": 1, | |
"base": "transport" | |
}, | |
{ | |
"type": "bitwise", | |
"sreg": 1, | |
"dreg": 1, | |
"len": 1, | |
"mask": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x0000003f" | |
} | |
}, | |
"xor": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000029" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "drop" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 6, | |
"position": 5, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "nfproto" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000002" | |
} | |
} | |
}, | |
{ | |
"type": "payload", | |
"dreg": 1, | |
"offset": 9, | |
"len": 1, | |
"base": "network" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 1, | |
"data0": "0x00000001" | |
} | |
} | |
}, | |
{ | |
"type": "limit", | |
"rate": 10, | |
"unit": 1 | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "accept" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 7, | |
"position": 6, | |
"expr": [ | |
{ | |
"type": "ct", | |
"dreg": 1, | |
"key": "state" | |
}, | |
{ | |
"type": "lookup", | |
"set": "set0", | |
"sreg": 1 | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "accept" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 8, | |
"position": 7, | |
"expr": [ | |
{ | |
"type": "ct", | |
"dreg": 1, | |
"key": "state" | |
}, | |
{ | |
"type": "bitwise", | |
"sreg": 1, | |
"dreg": 1, | |
"len": 4, | |
"mask": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000001" | |
} | |
}, | |
"xor": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "neq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "drop" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 9, | |
"position": 8, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "iifname" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 16, | |
"data0": "0x00006f6c", | |
"data1": "0x00000000", | |
"data2": "0x00000000", | |
"data3": "0x00000000" | |
} | |
} | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "accept" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 10, | |
"position": 9, | |
"expr": [ | |
{ | |
"type": "meta", | |
"dreg": 1, | |
"key": "iif" | |
}, | |
{ | |
"type": "cmp", | |
"sreg": 1, | |
"op": "eq", | |
"data": { | |
"reg": { | |
"type": "value", | |
"len": 4, | |
"data0": "0x00000003" | |
} | |
} | |
}, | |
{ | |
"type": "counter", | |
"pkts": 3797, | |
"bytes": 288842 | |
}, | |
{ | |
"type": "immediate", | |
"dreg": 0, | |
"data": { | |
"reg": { | |
"type": "verdict", | |
"verdict": "accept" | |
} | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"rule": { | |
"family": "inet", | |
"table": "firewall", | |
"chain": "incoming", | |
"handle": 11, | |
"position": 10, | |
"expr": [ | |
{ | |
"type": "log", | |
"prefix": "REJECT: ", | |
"level": 4 | |
}, | |
{ | |
"type": "counter", | |
"pkts": 139710, | |
"bytes": 18580772 | |
}, | |
{ | |
"type": 2, | |
"code": 1 | |
} | |
] | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment