Ib3*_*33X 8 python networking iptables packet-mangling
我想让服务器在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)
Run Code Online (Sandbox Code Playgroud)