utunInterfaces = "{                                                                         \
    utun0, utun1, utun2, utun3, utun4, utun5, utun6, utun7, utun8, utun9,   utun10,         \
    utun11, utun12, utun13, utun14, utun15, utun16, utun17, utun18, utun19, utun20,         \
    utun21, utun22, utun23, utun24, utun25, utun26, utun27, utun28, utun29, utun30          \
}"

hnsdGroup=amnhnsd

# Block everything from handshake group
# Without this initial block hnsd traffic could possibly travel outside the tunnel (we don't trust the routing table)
block return out group $hnsdGroup flags any no state

# Next, poke a hole in this block but only for traffic on the tunnel (port 13038 is the handshake control port)
pass out on $utunInterfaces proto { tcp, udp } to port { 53, 13038 } group $hnsdGroup flags any no state
