Назад | Перейти на главную страницу

Обнаружение атаки SYN flood в Python

У меня есть фрагмент кода 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 flood. Служба python обычно имеет максимум ~ 200 TCP-соединений. Я хочу обнаружить атаку SYN flood и приостановить службу в коде Python. Есть идеи, как это сделать эффективно?

Заранее спасибо!

Атака SYN flood не видна на уровне обычных сокетов TCP. accept возвращается только в том случае, если установлено TCP-рукопожатие, что совершенно не относится к SYN-флудам.