aDo*_*DoN 5 python network-programming iptables netfilter
我想充当代理,如果可能的话,我想管理来自第 2 层或第 3 层的接收数据包,我正在为它而苦苦挣扎,最基础的东西我无法让它工作,我告诉你我是做什么的:
这是我的代码(proxda.py)
from netfilterqueue import NetfilterQueue
def print_and_accept(pkt):
print pkt
pkt.accept()
nfqueue = NetfilterQueue()
nfqueue.bind(1, print_and_accept)
try:
nfqueue.run()
except KeyboardInterrupt:
print
Run Code Online (Sandbox Code Playgroud)
代码直接取自python文档:https : //pypi.python.org/pypi/NetfilterQueue/0.3
这是iptable我配置的规则:
iptables -I INPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1
Run Code Online (Sandbox Code Playgroud)
这个想法是发送到 173.16.0.229 的所有流量都转到我的程序
这就是场景,非常简单:当我的程序 proxa.py 正在运行时,我从 173.16.0.236 ping 到 173.16.0.229 并且我没有捕获任何东西。
关于我在哪里失败以及如何调试它/让它工作的任何想法?
先感谢您。
我问自己,问题是 iptables 上的规则,我的 IP 是 173.16.0.236,我将传入流量过滤到 173.16.0.229。\n只需更改:
\n\niptables -I INPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1 \n\nto: iptables -I OUTPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1 \n\nor to : iptables -I INPUT -d 173.16.0.236 -j NFQUEUE --queue-num 1.\nRun Code Online (Sandbox Code Playgroud)\n\n小心最后一行,因为到我们机器的所有 INPUT 流量都会进入 NFQUEUE,在我的例子中,这是一场灾难,因为我\xc2\xb4m 通过 ssh 连接,并且连接会中断。\n我使用的示例是这条规则:
\n\niptables -I OUTPUT -s 173.16.0.236 -p tcp --dport 80 -j NFQUEUE --queue-num 1\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2607 次 |
| 最近记录: |