machine_setup/ansible/roles/firewall/files/odofreebsd_pf.conf

46 lines
1.5 KiB
Plaintext
Raw Normal View History

2022-10-15 04:54:11 +00:00
ext_if = "{ igb0 igb1 ix0 ix1 wlan0 }"
jail_net_v4 = "10.193.223.0/24"
full_nat_v4 = "10.213.177.0/24"
2022-10-15 04:54:11 +00:00
dhcp = "{ bootpc, bootps }"
2022-12-04 07:12:10 +00:00
allow = "{ wgf wgh }"
2022-10-15 04:54:11 +00:00
tcp_pass_in = "{ 22 }"
udp_pass_in = "{ 53 51820 }"
# Rules must be in order: options, normalization, queueing, translation, filtering
# options
set skip on lo
# redirections
nat on $ext_if inet from $jail_net_v4 to { any, !$jail_net_v4 } tag ALLOWED -> (wlan0)
nat on $ext_if inet from $full_nat_v4 to { any, !$full_nat_v4 } tag ALLOWED -> (wlan0)
2022-10-15 04:54:11 +00:00
rdr on host_uplink0 inet proto {tcp, udp} from any to 10.193.223.1 port 53 tag ALLOWED -> 1.1.1.1 port 53
rdr on host_uplink1 inet proto {tcp, udp} from any to 10.213.177.1 port 53 tag ALLOWED -> 1.1.1.1 port 53
2022-10-30 00:36:13 +00:00
2022-10-15 04:54:11 +00:00
# filtering
block log all
pass quick on $ext_if tagged ALLOWED
2022-10-15 04:54:11 +00:00
pass out on $ext_if
# We pass on the interfaces listed in allow rather than skipping on
# them because changes to pass rules will update when running a
# `service pf reload` but interfaces that we `skip` will not update (I
# forget if its from adding, removing, or both. TODO: test to figure
# it out)
2022-12-04 07:12:10 +00:00
pass quick on $allow
2022-10-15 04:54:11 +00:00
pass on $ext_if proto icmp all
pass on $ext_if proto icmp6 all
pass in on $ext_if proto tcp to any port $tcp_pass_in
pass in on $ext_if proto udp to any port $udp_pass_in
pass quick on $ext_if proto udp from any port $dhcp to any port $dhcp
pass in on host_uplink0 proto udp from any to any port { 53 51820 }
2022-11-01 23:33:03 +00:00
pass out on host_uplink0 proto tcp from any to any port 8081
pass on host_uplink1