table inet threatblock {
set canary_ports {
type inet_service
elements = { 23, 25, 110, 139, 445, 554, 1080, 3389, 5900, 7547, 8291, 8080, 31337 }
}
set trap {
type ipv4_addr
flags dynamic, timeout
timeout 8h
}
set hexceptions-v4 {
type ipv4_addr
flags interval
auto-merge
}
set hexceptions-v6 {
type ipv6_addr
flags interval
auto-merge
}
set iexceptions-v4 {
type ipv4_addr
flags interval
auto-merge
}
set iexceptions-v6 {
type ipv6_addr
flags interval
auto-merge
}
set blocklist-v4 {
type ipv4_addr
flags interval
auto-merge
}
set blocklist-v6 {
type ipv6_addr
flags interval
auto-merge
}
chain forward {
type filter hook forward priority -1; policy accept;
iifname lo accept
ct state established,related accept
ip daddr @blocklist-v4 counter ${BLOCK_POLICY}
ip6 daddr @blocklist-v6 counter ${BLOCK_POLICY}
ip saddr @blocklist-v4 counter ${BLOCK_POLICY}
ip6 saddr @blocklist-v6 counter ${BLOCK_POLICY}
counter
}
chain input {
type filter hook input priority -1; policy accept;
iifname lo accept
ct state established,related accept
ip saddr @hexceptions-v4 counter accept
ip6 saddr @hexceptions-v6 counter accept
iifname ${WAN_IF} tcp dport @canary_ports add @trap { ip saddr }
ip saddr @blocklist-v4 counter ${BLOCK_POLICY}
ip6 saddr @blocklist-v6 counter ${BLOCK_POLICY}
ip saddr @trap drop
counter
}
chain output {
type filter hook output priority -1; policy accept;
iifname lo accept
ct state established,related accept
ip daddr @blocklist-v4 counter ${BLOCK_POLICY}
ip6 daddr @blocklist-v6 counter ${BLOCK_POLICY}
counter
}
}