From 8e496ea1df1f00ea7832eb41754dbbb56dd244c8 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Sat, 18 Sep 2021 13:42:43 +0200 Subject: [PATCH] pf: always log nat rule and do it pre-rewrite See also https://github.com/opnsense/core/issues/5005 Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D31504 --- sys/netpfil/pf/pf.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 221e0c87c11..1d492370953 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -3629,6 +3629,11 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, int direction, KASSERT(sk != NULL, ("%s: null sk", __func__)); KASSERT(nk != NULL, ("%s: null nk", __func__)); + if (nr->log) { + PFLOG_PACKET(kif, m, af, direction, PFRES_MATCH, nr, a, + ruleset, pd, 1); + } + if (pd->ip_sum) bip_sum = *pd->ip_sum; @@ -3857,10 +3862,10 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, int direction, /* apply actions for last matching pass/block rule */ pf_rule_to_actions(r, &pd->act); - if (r->log || (nr != NULL && nr->log)) { + if (r->log) { if (rewrite) m_copyback(m, off, hdrlen, pd->hdr.any); - PFLOG_PACKET(kif, m, af, direction, reason, r->log ? r : nr, a, + PFLOG_PACKET(kif, m, af, direction, reason, r, a, ruleset, pd, 1); }