Доброго времени суток всем. Наконецто нашел место, где могу поделится проблемой. Имеется сервер
Dell PowerEdge C5220.
Intel® Xeon® CPU E3-1240 V2 @ 3.40GHz.
32Gb RAM.
02:00.0 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01)
Есть 1 канал в интернет гигабитный. Уже неделю ддосят SYN флудом на 80ый порт.
10 root 20 0 0 0 0 R 55.6 0.0 6:02.59 [ksoftirqd/1]
55 root 20 0 0 0 0 R 43.6 0.0 1:40.41 [kworker/1:1]
iptables-save:
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [152880217:6729982268]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-unreachable
COMMIT
# Completed on Fri Oct 11 21:15:16 2013
42: 2 0 0 0 1 0 0 0 PCI-MSI-edge eth0
43: 601076 218288 64258 24948 1564132 1175414 403022 37295 PCI-MSI-edge eth0-TxRx-0
44: 599887 218392 63762 24252 1566807 1168281 402363 36032 PCI-MSI-edge eth0-TxRx-1
45: 599751 217962 63890 25199 1564680 1177650 401688 37529 PCI-MSI-edge eth0-TxRx-2
46: 600021 217294 64930 24392 1564343 1175429 400466 37122 PCI-MSI-edge eth0-TxRx-3
47: 599981 218459 63912 24411 1563261 1174937 402381 36073 PCI-MSI-edge eth0-TxRx-4
48: 601200 217621 64201 25264 1568327 1172853 403133 38079 PCI-MSI-edge eth0-TxRx-5
49: 619500 228748 68688 26215 1505128 1251548 423854 42516 PCI-MSI-edge eth0-TxRx-6
50: 598713 218411 64000 25328 1561667 1179157 403728 37784 PCI-MSI-edge eth0-TxRx-7
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_abort_on_overflow = 0
#try to increase
net.ipv4.tcp_max_syn_backlog = 128000
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.ip_local_port_range = 20000 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_rfc1337 = 1
net.core.netdev_max_backlog = 65535
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 5
net.netfilter.nf_conntrack_max=1048576
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 262144
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_max_syn_backlog = 65536
net.core.wmem_max = 8388608
net.core.rmem_max = 8388608
net.core.optmem_max = 35500
ethtool -G eth0 rx 4096 tx 4096
Это текущее состояние, при котором на 80йы порт легитимные запросы получают ответы в течении пары секунд. Но иногда атака усиливается и этого не спасает. Как только убираю --dport 80 -j ACCEPT сразу в топе становится пусто. Или делаю -P INPUT DROP и потом -F INPUT получаю пустой top.
netstat -tuna | grep SYN | wc -l
14637
Средний kpps за минуту 250.
Если очистить iptables и сделать -P INPUT ACCEPT получаю туже самую картину с ksoftirqd. Вопрос в том, как правильно разрулить ситуацию с кучей SYN пакетов?