SYN_RECV - это состояние tcp-соединения во время three-handshake, означающее что сервер принял пакет с установленным флагом SYN (запрос на соединение), отправил SYN/SYN-ACK клиенту и ожидает от клиента пакет с флагом ACK.
Поскольку ACK от клиента (в нашем случае, от атакующего хоста) не приходит, то соединение висит до момента, пока оно не будет убито по таймауту. Пока такое соединение существует в системе - оно потребляет ресурсы, что может создать прецедент для замедления работы системы.
Таким образом, чтобы таких соединений не создавалось нужно отсеивать из них неугодные до того, как система выделит для них ресурсы. В Вашем случае, нужно фильтровать все входящие пакеты с установленным флагом SYN и дропать те из них, которые нас не устраивают. Легитимный пользователь не будет создавать по десятку соединений каждую секунду, а атакующий - будет.
Соответственно, Вам нужно выяснить закономерность (периодичность, количество запросов и т. п.), позволяющую отличить легитимный хост от атакующего конкретно в Вашем случае, и в соответствии с ней создать правила.
Если говорить обобщенно, то в Вашем случае, я думаю, проблему можно решить с помощью модуля recent в iptables. Уверен, его функционала Вам будет достаточно. Сможете обойтись несколькими правилами. Алгоритм следует применить примерно такой:
1. Сначала разрешаете входящий tcp-трафик по соединениям в состояниях ESTABLISHED и RELATED (модуль conntrack).
iptables -I INPUT 1 -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -m recent --name webtraffic --update --seconds 5 --hitcount 16 -j DROP
iptables -A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -j ACCEPT
net.ipv4.tcp_max_syn_backlog = 262144
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20
kern.ipc.nmbclusters=400000
kern.ipc.maxsockbuf=83886080
21502/10887/32389 mbufs in use (current/cache/total)
20464/7831/28295/400000 mbuf clusters in use (current/cache/total/max)
20464/7823 mbuf+clusters out of packet secondary zone in use (current/cache)
0/0/0/253036 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/74973 9k jumbo clusters in use (current/cache/total/max)
0/0/0/42172 16k jumbo clusters in use (current/cache/total/max)
92607K/36767K/129374K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters delayed (4k/9k/16k)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines
Как узнать производительность сервера?а не
Посоветуйте сервер для сети на over 1500