Простая защита от DOS аттак

все файлы внизу в аттаче, разобратся в них не сложно и иногда весьма полезно

парсер логов mailblockip почтового сервера exim выглядит так:

#!/bin/sh
tail -n 1000 /var/log/exim_mainlog |grep "syntactically invalid\|> rejected" | sed -n -e "s/^.* \[[[ ]*\([0-9.]*\).*$/\1/p" | awk ' $1 '|sort -n|uniq > /firewall.blocked
cat /all.firewall.blocked >> /firewall.blocked
/iptables.sh

запускаем его по крону раз в минуту, если надо редактирем regexp который выбирает из лога IP вредителей и складывает их в файл firewall.blocked

в файле all.firewall.blocked прописаны постоянные блокировки

файл iptables.sh это наш фаервол, в данном случае в нем присутствует минимальный набор правил для стандартного офисного сервера обеспечивающего доступ из локальной сетки в инет, и цикл добавляющий правила блокировки IP из списка firewall.blocked, создающийся парсером логов mailblockip, для интернет сервера некоторые правила можно удалить или добавить так что бы сам цикл добавляющий блокирующие правила по списку IP из firewall.blocked желательно был в самом конце iptables.sh

 

таким образом в данном случае реализовано такое поведение системы когда при ответе почтовика reject на входящее сообщение - будь то попытка отсылки спама с не почтового IP или к примеру подбор спамерами имени пользователя на почтовике, или еще какое событие описанное в exim.conf - то в пределах минуты происходит блокировка этого IP на определенное время. так-же можно защищать и вэб сервер анализируя логи httpd

 

( дополнительно в прилагаемом exim.conf реализована система серых списков sys-admin.org/en/node/30, которая очень эффективна и снижает нагрузку на систему отсекая вирусы и спам )