Rate this post
Если вы хотите защитить ваш сервер от флуда или перебора паролей, можно в первую очередь ограничить количество соединений с одного IP адреса. Сделать это можно с помощью iptables.
Например:
/sbin/iptables -A INPUT -p tcp —syn —dport $port -m connlimit —connlimit-above N -j REJECT —reject-with tcp-reset
Вот пример для соединений по SSH:
/sbin/iptables  -A INPUT -p tcp —syn —dport 22 -m connlimit —connlimit-above 3 -j REJECT
Так же пример для HTTP:
/sbin/iptables -A INPUT -p tcp —syn —dport 80 -m connlimit —connlimit-above 20 -j REJECT —reject-with tcp-reset
Так же можно лимитрировать на какое то время, например с помощью скрипта:
#!/bin/bash
IPT=/sbin/iptables
# Max connection in seconds
SECONDS=100
# Max connections per IP
BLOCKCOUNT=10
# ….
# ..
# default action can be DROP or REJECT
DACTION=»DROP»
$IPT -A INPUT -p tcp —dport 80 -i eth0 -m state —state NEW -m recent —set
$IPT -A INPUT -p tcp —dport 80 -i eth0 -m state —state NEW -m recent —update —seconds ${SECONDS} —hitcount ${BLOCKCOUNT} -j ${DACTION}
# ….
# ..