可以用python编写防火墙吗?

2024-04-19 13:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

Python iptables为Linux下的iptables提供Python绑定。与iptables的互操作性是通过使用iptables C库(libiptc、libxtables和iptables扩展)实现的,而不是调用iptables二进制文件并解析其输出。

http://ldx.github.io/python-iptables/index.html

是的,是的。

我有一些Python代码,它们使用nfqueue与Linux iptables交互以执行防火墙任务。我可以在iptables中使用如下规则:

iptables -A INPUT -j NFQUEUE --queue-num 1

然后编写一些Python代码,如下所示:

import nfqueue
from dpkt import ip

q = None

def cb(dummy, payload):
    # make decision about if the packet should be allowed. in this case, drop everything:
    payload.set_verdict(nfqueue.NF_DROP)

q = nfqueue.queue()
q.open()
q.bind()
q.set_callback(cb)
q.create_queue(1)

q.try_run()

下面是一篇很好的文章,上面的代码基于:

http://blog.yancomm.net/2011/05/nfqueue-packet-mangling-with-python.html

我相信在理论上你可以实现你想要的,但我相信在实践中你的想法是行不通的(如果你想知道为什么,那是因为用低级内核“接口”一个高级语言太难了)。

相反,您可以使用一些Python工具来控制操作系统的防火墙,以便添加规则、删除等(类似于iptables在Linux中的作用)。

相关问题 更多 >