Вы должны переместить часть регистрации брандмауэра перед другими правилами, чтобы она выглядела как
# Log firewall to extra log :msg,contains,"[BLOCK " /var/log/firewall.log & stop # Log cron to cron.log and not to syslog *.*;cron,auth,authpriv.none -/var/log/syslog cron.* /var/log/cron.log
Правила рассматриваются по порядку, поэтому теперь у вас есть сообщение, соответствующее *. *; Cron, auth, authpriv.none всегда будет записываться в системный журнал, даже если оно также соответствует : msg, содержит "[BLOCK" и записано в firewall.log. Команда stop просто слишком поздняя в файле, чтобы что-либо остановить.
Смотрите также https://www.rsyslog.com/writing-specific-messages-to-a-file-and-discarding-them/