Для того чтобы защитить сервер и службы от флуда на уровне операционной системы нужно настроить фаервол, задать лимиты на количество одновременных соединений, мы рассмотрим ограничения на некоторые сервисы. По аналогии можно добавить правила для своих служб, подставив необходимые порты.
ICMP
Чтобы защитить себя от icmp флуда, необходимо добавить лимит на количество пингов в секунду:
-A INPUT -p icmp -m hashlimit --hashlimit-upto 6/sec --hashlimit-burst 4 --hashlimit-name icmp -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
В данном примере мы разрешаем не более 4 пингов, с максимально возможным количеством до 6 в секунду.
HTTP и HTTPS
Правила ограничивают количество одновременных соединений, данное количество можно подобрать под свою посещаемость, и следует учесть, что значение должно быть больше чем в правилах службы ddos deflate.
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
-A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
SSH
Рекомендуем сменить порт по умолчанию с 22 на другой, например 3022 и т.п. Так как очень много попыток подбора паролей, большая часть соединений приходится именно на службу ssh.
-A INPUT -p tcp -m tcp --dport 3022 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 5 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
Если у Вас работают другие службы, например почта, создайте правила по аналогии.