我想让服务器在UDP端口162(SNMP陷阱)上侦听,然后将此流量转发到多个客户端.同样重要的是源端口和地址保持不变(地址欺骗).
我想最好的工具是Twisted或Scapy或者可能是vanilla套接字,只有我在Twisted关于源地址欺骗/伪造的文档中找不到任何内容.
对此有何解决方案?
编辑:添加赏金,mybe任何解决方案与iptables?
我对扭曲或狡猾感到不舒服,但使用香草蟒蛇插座做这件事非常简单.这样做的另一个好处是它将更加便携.此代码适用于我的有限测试:
#!/usr/bin/python from socket import * bufsize = 1024 # Modify to suit your needs targetHost = "somehost.yourdomain.com" listenPort = 1123 def forward(data, port): print "Forwarding: '%s' from port %s" % (data, port) sock = socket(AF_INET, SOCK_DGRAM) sock.bind(("localhost", port)) # Bind to the port data came in on sock.sendto(data, (targetHost, listenPort)) def listen(host, port): listenSocket = socket(AF_INET, SOCK_DGRAM) listenSocket.bind((host, port)) while True: data, addr = listenSocket.recvfrom(bufsize) forward(data, addr[1]) # data and port listen("localhost", listenPort)