2015-01-19 3 views
1

Вот чего я пытаюсь достичь. У меня есть встроенный linux box, работающий с Suricata, способный отбрасывать пакеты. Это работает со стандартным методом размещения всего трафика на NFQUEUE 0, а затем для настройки сурикаты.NFQUEUE/IPtables - Suricata Inline с перехватом Python для DNS

Код, который я пишу, должен иметь возможность перехватывать пакеты DNS и Kerberos на NFQUEUE 1, но его все еще необходимо отсканировать с помощью Suricata, поэтому пакет должен быть передан обратно в другой NFQUEUE, который суриката прослушивает потому что я не думаю, что обе программы могут действовать как потребитель в одной очереди.

До сих пор я разработал способ измельчения трафика DNS и Kerberos в другой NFQueue, поэтому суриката слушает NFQUEUE 1, и моя программа прослушивает NFQUEUE 2, мне нужен способ использования iptables для переноса трафика с один NFQUEUE на другой.

Что-то вроде этого:

Iptables -I NFQUEUE --queue-Num 1 -j NFQUEUE --queue-Num 2

Существует, вероятно, что-то с почтовой маршрутизации, что мне не хватает, (что-то вроде исходящие пакеты, которые соответствуют моим исходным правилам DNS/Kerboros, которые помещаются в NFqueue, но это создало цикл, когда я его протестировал)

Спасибо за ваше время.

ответ

0

Из сети, которую я сделал, вам нужно будет поместить 2 команды NFQUEUE в разные таблицы/цепочки, например. один в фильтре/FORWARD, а другой в mangle/PREROUTING. В принципе, как только пакет попал в один NFQUEUE в таблице/цепочке, это делается для этой таблицы/цепочки, и она полностью выходит из основной цепочки. Моя личная рекомендация - поместить ваш NFQUEUE в mangle/PREROUTING, который будет вызываться перед большинством других таблиц (при условии, что вы помещаете оператор Suricata NFQUEUE в таблицу фильтров).

Надеюсь, это имеет смысл. Надеюсь, поможет!

1

Несколько способов сделать это:

Вы можете редактировать suricata.yaml и под nfq:, установите mode: route и route-queue в соответствующий DNS очереди/Kerberos. Это будет проходить по пакетам после того, как Суриката закончит их.

ИЛИ

Отметить пакет и очередь к Suricata 1 (т.е. -m mark ! --mark 0x1/0x1 -j NFQUEUE --queue-num 1).

Далее, те пакеты, которые не были сброшены на Suricata возвращаются в цепь и перейти к следующему правилу, где вы можете поставить в очередь на DNS/Kerberos на 2.

В suricata.yaml, вам нужно для редактирования nfq:

mode: repeat 
    repeat-mark: 1 
    repeat-mask: 1 

Cheers.

Смежные вопросы