Я нахожусь на сервере Ubuntu с Apache2. Я хотел бы защитить себя от атак (d) dos и syn flood и поэтому попытался ограничить количество параллельных подключений на каждый IP-адрес клиента.
Я слышал, что с этой задачей справляется iptables, и изучал различные команды. Хотелось бы услышать ваше мнение. Насколько мне известно, обе следующие команды блокируют клиентов на 60 секунд, если они делают более 100 одновременных / параллельных подключений к порту 80. Это правильно, и есть ли разница между ними?
Команда 1
iptables -A INPUT -p tcp -m latest --rcheck --seconds 60 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -m latest --set -j REJECT
Команда 2
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --update --seconds 60 --hitcount 100 -j REJECT
У меня на сервере несколько сайтов Wordpress. Я думаю, что 100 одновременных подключений на одного клиента должно быть достаточно - все, превышающие это значение, должны быть заблокированы. Это разумный предел?
Возможно, вы захотите пересмотреть размещение обратного прокси (Lighttpd, Nginx, Varnish и др.) Перед Apache, чтобы уменьшить нагрузку на него в случае атаки.