написание программы для запрета пользователя (по MAC-адресу) в сети - PullRequest
0 голосов
/ 19 апреля 2010

Я не уверен, возможно ли это на прикладном уровне. Можно ли написать программу для чтения и анализа пакетов (возможно, через wireshark через lua api) и запретить MAC-адреса с подозрительным сетевым трафиком? (определение подозрительного сетевого трафика как схемы внедрения пакетов, аналогичные известным атакам)

1 Ответ

0 голосов
/ 27 июня 2010

Вам потребуется комбинация libnetfilter_queue и правил iptables. libnetfilter_queue, через правило Iptable, выдаст вам все пакеты (в пользовательском пространстве), которые были поставлены в очередь фильтром пакетов ядра. Затем вы подождете, пока вы отправите вердикт по пакету.

После того, как вы установили netfilter_queue и написали прослушивающее пользовательское приложение, запустите правило iptable вроде

iptable -t mangle -A PREROUTING -i eth0 -j NFQUEUE --queue-num 0

Предостережение: это даст вам все пакеты, и ядро ​​будет ждать, пока вы вынесете вердикт, или, если не запущено ни одно пользовательское приложение, просто отклоните его. Вы можете установить правило iptables на различных уровнях детализации. как src IP, протокол и т. д.

Как только вы определили, что определенный MAC-адрес должен быть заблокирован, запустите правило iptables, например (из вашего пользовательского приложения вы можете использовать system() для запуска этого правила iptable)

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

Пример программы на netfilter_queue здесь , чтобы вы начали. Надеюсь, это поможет.

Еще одно предупреждение: прочтите iptables или спросите об ошибке на сервере. Здесь задействовано несколько таблиц (input, output, mangle, prerouting, forward, nat и т. Д.), И я могу ошибаться, предлагая таблицу mangle для правила iptable.

...