Как ограничить через iptables максимальное число одновременных соединений с одного IP.

оригинал статьи тут

# Максимум 10 одновременных соединений к 80 порту с одного IP

iptables -A INPUT-p tcp --dport 80 -m iplimit --iplimit-above 10 -j REJECT

# Блокируем на стадии SYN

iptables -I INPUT -p tcp --syn --dport 80 -j DROP -m iplimit --iplimit-above 10

# 20 соединений на сеть класса С

iptables -p tcp --dport 80 -m iplimit --iplimit-above 20 --iplimit-mask 24 -j REJECT

Upgrading Iptables to 1.4 on Debian Etch

оригинал статьи тут

I required the module connlimit to limit the number of connections on one of our Debian firewall boxes. After a while of try and error i found out that the iptables version shipped with debian 1.3.6 doesn’t support the new module format used in 2.6.23+ kernels. So i looked for a backported version of iptables which i did not find So i thought i would try and install iptables from source. First download the latest iptables version from Netfilter.

Read the full post »

скрипт «убивает» процессы, которые превымили определенное значение CPU

В моем случаи пригодилось для Exim, поэтому привожу пример для него, аналогично для любого другого процесса. Запускать по крону.

#!/bin/bash

processToWatch=»exim4″ #  имя процесса
triggerValue=20 # лимит CPU в %
tempFileName=tmp-cpu # some name of the temp file for the ps, grep data

ps auxww | grep «$processToWatch» | grep -v grep > /tmp/$tempFileName
export LINE
(
read LINE
while [ -n "$LINE" ]
do
set $LINE
read LINE
if [ $(echo "$3" | sed -e 's/\.[0-9]*//g’) -gt $triggerValue ]; then
kill $2
fi
done
)< /tmp/$tempFileName

Команды, полезные для отражения флуда и ддос-атак.

оригинал статьи тут

Количество Apache:

ps aux | grep httpd |wc -l

Количество коннектов на 80 порт:

netstat -na | grep :80 | wc -l

SYN

netstat -na | grep :80 | grep syn

Пример SYN-флуда:

netstat -na | grep :80 | grep SYN | wc -l 767

Посмотреть много ли разных IP:

netstat -na | grep :80 | grep SYN | sort -u | more

На какой домен чаще всего идут запросы:

tcpdump -npi eth0 port domain

Статус Apache:

apachectl status
Read the full post »

Установка mod_evasive с Apache 2.2.x на Debian Etch

оригинал статьи тут

Давно искал этот мод под апач2 точнее установку на него, и вот нашел описание, может кому пригодится.

Краткое описание мода:

Защита от ddos
mod_evasive — (mod_dosevasive) HTTP DoS or DDoS attack or brute force attack
Apache модуль для организации защиты от DDoS атак.

Преамбула
Не стоит думать что слабый ddos не сможет нанести ущерба вашему серверу. Например атакующих зомби-машин всего 50-150, все они с толстыми каналами, а вы уехали в командировку или у вас 10-ки серверов и вы не успеваете физически мониторить все. В таком случае даже не большое количество машин смогут зафлудить канал, или заставить выйти из строя веб сервер apache, mysql, etc. Другое дело когда администратор 24 часа в сутку мониторит сервер, и с легкостью обнаруживает атаки, далее с легкостью и в считанные секунды заносит несколько правил в таблицу фаервола при этом спокойно попивая кофе, продолжает заниматься своими делами. Но такое бывает редко, смотреть сутками и мониторить вывод комманд netstat, top, mtop убийственно для вашего мозга, и глаза устанут, не будет весело это точно, поэтому нужно автоматизировать процесс блокировки атакующих зомби-машин.
Read the full post »