Hello,
I use OpenBSD 7.5 stable amd64.
I uncommented an old rule and the corresponding macro in pf.conf
which definitely worked when the
machine was on version 7.3 and possibly 7.4.

After that:
pfctl -nf /etc/pf.conf shows nothing
pfctl -f /etc/pf.conf shows nothing
So Packet Filter seems to be happy with the config as a whole.

pfctl -vvsr shows the old rules WITHOUT the uncommented one.
pfctl -vvnf /etc/pf.conf warns that the uncommented macro
used in the uncommented rule is NOT used.

The output of pfctl -vvnf /etc/pf.conf is appended as
pfctl_vvnf file
The output of pfctl -vvsr is appended as
pfctl_vvsr file


Did I miss something when changing the configuration?

The uncommented section 1 is:
mail_ports = "{ submission imaps }"

The uncommented section 2 is:
pass in on egress inet proto tcp to (egress) \
        port $mail_ports \
        keep state (max-src-conn 20, \
        max-src-conn-rate 35/300, overload <bad_ips> \
        flush global) rdr-to $mail_server


My whole pf.conf (all uncommented lines):
int_if = "{ vether1 em1 em2 em3 }"
table <martians> { 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 \
   169.254.0.0/16 172.16.0.0/12 192.0.2.0/24 \
   192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 \
}
table <spamd-white> persist
table <nospamd> persist file "/etc/mail/nospamd"
table <bad_ips> persist file "/etc/pf/bad_ips"

transmission_server = "192.168.1.65"
mail_server = "192.168.1.171"

mail_ports = "{ submission imaps }"

block log all
set limit table-entries 1000000
set block-policy drop
set syncookies adaptive (start 29%, end 15%)
set skip on lo

match in all scrub (no-df random-id max-mss 1440)
match out on egress inet from (vether1:network) \
        to any nat-to (egress:0)

block in quick on egress from <martians> to any
block return out quick on egress from any to <martians>
block quick from <bad_ips>

pass out quick inet
pass in on $int_if inet

pass in on egress inet proto tcp  \
        to (egress) port 22 keep state \
        (max-src-conn 2, max-src-conn-rate 2/300, \
        overload <bad_ips> flush global)

pass in on egress inet proto { tcp udp }  \
        to (egress) port domain keep state \
        (max-src-states 10) \
        rdr-to 127.0.0.1 port 8053

pass in on $int_if inet proto { tcp udp } from \
        (vether1:network) to (egress) port domain

pass in on egress inet proto { tcp udp } \
        to (egress) port 50000 \
        rdr-to $transmission_server

pass in on egress inet proto tcp to (egress) \
        port $mail_ports \
        keep state (max-src-conn 20, \
        max-src-conn-rate 35/300, overload <bad_ips> \
        flush global) rdr-to $mail_server

pass in on egress proto tcp to (egress) \
        port smtp divert-to 127.0.0.1 port spamd
pass in on egress proto tcp from <nospamd> to (egress) \
        port smtp rdr-to $mail_server
pass in log on egress proto tcp from <spamd-white> \
        to (egress) port smtp \
        rdr-to $mail_server
pass out on egress proto tcp to (egress) port smtp


-- 
Best regards
Maksim Rodin
warning: macro 'mail_ports' not used
Loaded 714 passive OS fingerprints
int_if = "{ vether1 em1 em2 em3 }"
table <martians> { 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 
172.16.0.0/12 192.0.2.0/24 192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 }
table <spamd-white> persist
table <nospamd> persist file "/etc/mail/nospamd"
table <bad_ips> persist file "/etc/pf/bad_ips"
transmission_server = "192.168.1.65"
mail_server = "192.168.1.171"
mail_ports = "{ submission imaps }"
set limit table-entries 1000000
set block-policy drop
set syncookies adaptive (start 29%, end 15%)
set skip on { lo }
@0 block drop log all
@1 match in all scrub (no-df random-id max-mss 1440)
@2 match out on egress inet from (vether1:network:*) to any nat-to (egress:0:*) 
round-robin
@3 block drop in quick on egress from <martians:0> to any
@4 block return out quick on egress from any to <martians:0>
@5 block drop quick from <bad_ips:0> to any
@6 pass out quick inet all flags S/SA
@7 pass in on vether1 inet all flags S/SA
@8 pass in on em1 inet all flags S/SA
@9 pass in on em2 inet all flags S/SA
@10 pass in on em3 inet all flags S/SA
@11 pass in on egress inet proto tcp from any to (egress:*) port = 22 flags 
S/SA keep state (source-track rule, max-src-conn 2, max-src-conn-rate 2/300, 
overload <bad_ips> flush global, src.track 300)
@12 pass in on egress inet proto tcp from any to (egress:*) port = 53 flags 
S/SA keep state (source-track global, max-src-states 10) rdr-to 127.0.0.1 port 
8053
@13 pass in on egress inet proto udp from any to (egress:*) port = 53 keep 
state (source-track global, max-src-states 10) rdr-to 127.0.0.1 port 8053
@14 pass in on vether1 inet proto tcp from (vether1:network:*) to (egress:*) 
port = 53 flags S/SA
@15 pass in on em1 inet proto tcp from (vether1:network:*) to (egress:*) port = 
53 flags S/SA
@16 pass in on em2 inet proto tcp from (vether1:network:*) to (egress:*) port = 
53 flags S/SA
@17 pass in on em3 inet proto tcp from (vether1:network:*) to (egress:*) port = 
53 flags S/SA
@18 pass in on vether1 inet proto udp from (vether1:network:*) to (egress:*) 
port = 53
@19 pass in on em1 inet proto udp from (vether1:network:*) to (egress:*) port = 
53
@20 pass in on em2 inet proto udp from (vether1:network:*) to (egress:*) port = 
53
@21 pass in on em3 inet proto udp from (vether1:network:*) to (egress:*) port = 
53
@22 pass in on egress inet proto tcp from any to (egress:*) port = 50000 flags 
S/SA rdr-to 192.168.1.65
@23 pass in on egress inet proto udp from any to (egress:*) port = 50000 rdr-to 
192.168.1.65
@24 pass in on egress inet proto tcp from any to (egress:*) port = 25 flags 
S/SA divert-to 127.0.0.1 port 8025
@25 pass in on egress inet proto tcp from <nospamd:0> to (egress:*) port = 25 
flags S/SA rdr-to 192.168.1.171
@26 pass in log on egress inet proto tcp from <spamd-white:0> to (egress:*) 
port = 25 flags S/SA rdr-to 192.168.1.171
@27 pass out on egress proto tcp from any to (egress:*) port = 25 flags S/SA
@0 block drop log all
  [ Evaluations: 1331      Packets: 746       Bytes: 35871       States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@1 match in all scrub (no-df random-id max-mss 1440)
  [ Evaluations: 1331      Packets: 21182     Bytes: 12745032    States: 19    ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@2 match out on egress inet from (vether1:network:1) to any nat-to (egress:0:1) 
round-robin
  [ Evaluations: 1331      Packets: 20878     Bytes: 12693160    States: 14    ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@3 block drop in quick on egress from <martians:9> to any
  [ Evaluations: 973       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@4 block return out quick on egress from any to <martians:9>
  [ Evaluations: 973       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@5 block drop quick from <bad_ips:8018> to any
  [ Evaluations: 1331      Packets: 157       Bytes: 9756        States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@6 pass out quick inet all flags S/SA
  [ Evaluations: 1174      Packets: 21152     Bytes: 12742195    States: 19    ]
  [ Inserted: uid 0 pid 13268 State Creations: 215   ]
@7 pass in on vether1 inet all flags S/SA
  [ Evaluations: 959       Packets: 21031     Bytes: 12722634    States: 17    ]
  [ Inserted: uid 0 pid 13268 State Creations: 170   ]
@8 pass in on em1 inet all flags S/SA
  [ Evaluations: 959       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@9 pass in on em2 inet all flags S/SA
  [ Evaluations: 959       Packets: 54        Bytes: 8100        States: 1     ]
  [ Inserted: uid 0 pid 13268 State Creations: 18    ]
@10 pass in on em3 inet all flags S/SA
  [ Evaluations: 959       Packets: 54        Bytes: 8910        States: 1     ]
  [ Inserted: uid 0 pid 13268 State Creations: 18    ]
@11 pass in on egress inet proto tcp from any to (egress:1) port = 22 flags 
S/SA keep state (source-track rule, max-src-conn 2, max-src-conn-rate 2/300, 
overload <bad_ips> flush global, src.track 300)
  [ Evaluations: 959       Packets: 19        Bytes: 3983        States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 1     ]
@12 pass in on egress inet proto tcp from any to (egress:1) port = 53 flags 
S/SA keep state (source-track global, max-src-states 10) rdr-to 127.0.0.1 port 
8053
  [ Evaluations: 599       Packets: 15        Bytes: 862         States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 2     ]
@13 pass in on egress inet proto udp from any to (egress:1) port = 53 keep 
state (source-track global, max-src-states 10) rdr-to 127.0.0.1 port 8053
  [ Evaluations: 22        Packets: 3         Bytes: 194         States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 1     ]
@14 pass in on vether1 inet proto tcp from (vether1:network:1) to (egress:1) 
port = 53 flags S/SA
  [ Evaluations: 325       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@15 pass in on em1 inet proto tcp from (vether1:network:1) to (egress:1) port = 
53 flags S/SA
  [ Evaluations: 149       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@16 pass in on em2 inet proto tcp from (vether1:network:1) to (egress:1) port = 
53 flags S/SA
  [ Evaluations: 149       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@17 pass in on em3 inet proto tcp from (vether1:network:1) to (egress:1) port = 
53 flags S/SA
  [ Evaluations: 131       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@18 pass in on vether1 inet proto udp from (vether1:network:1) to (egress:1) 
port = 53
  [ Evaluations: 240       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@19 pass in on em1 inet proto udp from (vether1:network:1) to (egress:1) port = 
53
  [ Evaluations: 149       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@20 pass in on em2 inet proto udp from (vether1:network:1) to (egress:1) port = 
53
  [ Evaluations: 149       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@21 pass in on em3 inet proto udp from (vether1:network:1) to (egress:1) port = 
53
  [ Evaluations: 131       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@22 pass in on egress inet proto tcp from any to (egress:1) port = 50000 flags 
S/SA rdr-to 192.168.1.65
  [ Evaluations: 727       Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@23 pass in on egress inet proto udp from any to (egress:1) port = 50000 rdr-to 
192.168.1.65
  [ Evaluations: 20        Packets: 2         Bytes: 185         States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 2     ]
@24 pass in on egress inet proto tcp from any to (egress:1) port = 25 flags 
S/SA divert-to 127.0.0.1 port 8025
  [ Evaluations: 619       Packets: 4         Bytes: 164         States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 1     ]
@25 pass in on egress inet proto tcp from <nospamd:20> to (egress:1) port = 25 
flags S/SA rdr-to 192.168.1.171
  [ Evaluations: 1         Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@26 pass in log on egress inet proto tcp from <spamd-white:1> to (egress:1) 
port = 25 flags S/SA rdr-to 192.168.1.171
  [ Evaluations: 1         Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]
@27 pass out on egress proto tcp from any to (egress:1) port = 25 flags S/SA
  [ Evaluations: 21        Packets: 0         Bytes: 0           States: 0     ]
  [ Inserted: uid 0 pid 13268 State Creations: 0     ]

Reply via email to