Назад | Перейти на главную страницу

Если пакет соответствует политике shorewall, могу ли я регистрировать пакеты (например, с помощью tcpdump)?

Допустим, у меня есть файл политики, например

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()