2010-04-19 67 views
0

我不确定这是否可以在应用程序层。是否可以编写一个程序来读取和分析数据包(可能通过它的lua api与wireshark连接),并禁止带有可疑网络流量的MAC地址? (将可疑网络流量定义为与已知攻击类似的数据包注入模式)编写一个程序禁止来自网络的用户(通过MAC地址)

+0

我相信路由器可以被编程为忽略某些IP地址,但这是ServerFault的问题。 – 2010-04-19 00:59:35

+0

我想在应用程序级别执行此操作,而不是修改路由器固件 – Gail 2010-04-19 00:59:57

+0

如果它是您自己的应用程序,很容易忽略您不想要的数据包。但是我怀疑你想做一些比这更复杂的事情,比如过滤进入你的工作站的所有流量。为此,你需要一个软件防火墙。 – 2010-04-19 01:04:12

回答

0

您需要组合libnetfilter_queue & iptables规则。通过一个Iptable规则,libnetfilter_queue将为你提供内核数据包过滤器排队的所有数据包(在用户空间中)。然后它会等待你发送包的判决。

一旦netfilter_queue安装并写了一个倾听用户级应用程序,运行像

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

提醒一句的iptable的规则,这会给你所有的数据包,然后内核会等你来给出一个判决,或者如果没有用户的土地申请正在运行将只是放弃它。你可以设置iptables规则在不同的粒度级别,如src IP,协议等。

一旦你确定一个特定的MAC地址必须禁止,运行一个iptables规则(从你的用户空间应用程序中,你可以使用system()运行这个iptable的规则)

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

一个例子程序上netfilter_queue是here让你开始。希望能帮助到你。

另一个警告:请阅读iptables或询问serverfault。有多个表涉及(输入,输出,mangle,prerouting,转发,NAT等),我可能是错误的建议mangle表的iptable规则。

相关问题