tcpdump -p -q -n -nn -i <внутренний интерфейс> 'tcp and tcp[tcpflags] & (tcp-syn) != 0 and not dst 192.168.0.0/16' > /var/log/nat.log &Вместо 192.168.0.0/16 впишите вашу сетку.
либо:
sysctl net.inet.ip.fw.verbose_limit 0
ipfw add ... from any to not me via <внутренний интерфейс> log
http://www.lissyara.su/doc/docs/handbook_-_ipfw/
log или logamount
Когда пакет совпадает с правилом, с ключевым словом “log”, сообщение будет сохранено syslog'ом в логе с именем SECURITY. Протоколирование только произойдет если количество пакетов которые будут запротоколированы для определенного правила не превысит параметр logamount. Если logamount не определен, лимит берется из переменной в sysctl - net.inet.ip.fw.verbose_limit. В обоих случаях значение ноль удаляет лимит логов. Тогда когда лимит будет достигнут, протоколирование можно будет запустить заново, очистив счетчик протоколирования, или счетчик пакетов для этого правила. Смотрите команду сброса логов ipfw.
Примечание: Протоколирование завершается после того, как состояние всех других пакетов будет успешно подтверждено и перед выполнением заключительного действия (“accept”, “deny”) над пакетом. Вам решать какое правило вы хотите протоколировать.
либо:
netflow (можно через ng_netflow)
P.S. мне больше нравится вариант с ipfw