Допустим, у меня есть файл политики, например
fw net ACCEPT
net fw DROP
trusted fw ACCEPT
trusted net ACCEPT
untrusted fw DROP*
untrusted net ACCEPT
all all REJECT
Я бы хотел отправить весь трафик из ненадежной сети, предназначенный для брандмауэра (отмечен *), в утилиту захвата пакетов, такую как tcpdump или tshark, для анализа.
Похоже, что Действия QUEUE или NFQUEUE мог бы помочь, или я мог бы использовать действия... Но я не играл ни с одним из этих компонентов Shorewall, поэтому я не уверен, что с ними делать.
Я не знаю, как обращаться с shorewall, но вы можете добавить правила вручную для захвата трафика, исходящего от "ненадежного" через NFLOG и wirehark. вот как ссылка.
http://wiki.wireshark.org/CaptureSetup/NFLOG
тебе нужно изменить "-m owner --uid-owner 1000«расстаньтесь со своим правилом, чтобы указать на« ненадежные »источники.
Из ответа Рисясина я смог понять это.
Сначала укажите место назначения журнала в shorewall как NFLOG (x) (вместо info или warn). x - это целое число от 1 до 32 для группы netlink.
Теперь захватите пакеты с помощью tcpdump или dumpcap и сделайте запись в интерфейсе nflog: x. Записать пакеты в pcap.
Pcap будет искажен - я не уверен, почему, но пакеты будут приходить с некоторой информацией журнала ASCII и другими полями, которые я не декодировал. Но относительно легко проанализировать и отфильтровать pcap и исправить его.
import dpkt
r = dpkt.pcap.Reader(open(infile,'r'))
w = dpkt.pcap.Writer(open(outfile,'wb'))
for ts, pkt in r:
e = dpkt.ethernet.Ethernet()
e.data = dpkt.ip.IP(pkt[124:])
w.writepkt(e, ts)
r.close()
w.close()