在python中检测SYN洪水攻击

在python中检测SYN洪水攻击

我有一段python代码如下

s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((IP, PORT))
s.listen(256)
while True:
    revdata = ""
    try:
       c, addr = s.accept()
       t = threading.Thread(target=handletcp, args=(c,addr))
       t.start()
    except socket.error as exc:
        log("Error: " + str(exc))
s.close()

目前,我的服务器处理 64 个 IP,通常会受到 SYN 洪水攻击。python 服务通常最多有 ~200 个 TCP 连接。我想在 python 代码中检测 SYN 洪水攻击并暂停服务。有什么想法可以有效地做到这一点吗?

提前致谢!

答案1

SYN 洪水攻击在正常 TCP 套接字级别上是不可见的。accept仅当 TCP 握手完成后才会返回 - 而 SYN 洪水并非如此。

相关内容