Скрипт .sh для борьбы с HTTP флудом через IPFW freebsd

15.11.2013
Опять сохраняю всякие полезности. Нарыл кучу инфы из интернета, скрипты сохраняю чтобы потом все попробовать. Вот скриптик для защиты от DDOS атак:
Активируем IPFW
Добавим в /etc/rc.conf
firewall_enable="YES"
firewall_script="/etc/ddos.sh"
firewall_logging="YES"
Создаем наш файерволл в файл /etc/ddos
#!/bin/sh
ipfw='/sbin/ipfw -q'
${ipfw} flush
${ipfw} add check-state
${ipfw} table 1 flush
${ipfw} add deny ip from table\(1\) to me
${ipfw} add allow all from any to any

Пишем парсер логов и добавляем их в черный список
Создадим файл /etc/ban.sh, который будет собирать IP и добавлять их в table1

#!/bin/sh
echo '' > /etc/bl
cat /var/log/nginx/deathstar.name.access.log | awk ' match($0, /(\d*.\d*.\d*.\d*).*"-" "-"/) {print $1}' | sort | uniq >> /etc/bl /sbin/ipfw table 1 flush
cat /etc/bl | awk '{ if ($1!="") {system("/sbin/ipfw table 1 add "$1"")} }' > /dev/null

Добавить в cron задание
*/1 * * * * root /etc/ban.sh


Оставить комментарий...

Добавить комментарий


Защитный код
Обновить