Você precisa mover a parte de log do firewall antes de outras regras, para que pareça
# 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
As regras são consideradas em ordem, assim como você tem agora uma mensagem correspondente a *. *; cron, auth, authpriv.none será sempre escrita no syslog, mesmo que também corresponda a < em>: msg, contém, "[BLOCK" e é gravado em firewall.log. O comando de parada é simplesmente muito tarde no arquivo para parar qualquer coisa.
Veja também link