Fire
Участник
- Сообщения
- 13
- Реакции
- 60
Предупрежу сразу, данный мануал не сработает на VDS\VPS с виртуализацией OpenVZ
Мануал рассчитан на Debian 7\8, но отличие от других осей минимальны.
Итак, для обнаружения атак и снятия дампов мы воспользуемся тузлой под названием FastnetMon, разработки моего товарища, Павла Одинцова.
Про саму тузлу можно почитать на хабре:
http://habrahabr.ru/post/259399/
Вкратце, тузла которая использует PF_RING, либо netmap, netflow
Мы будем использовать именно pf_ring как наиболее быстрое и менее ресурсоемкое решение.
Итак, начнем.
Для начала установим gcc и g++ ну и tcpdump
Далее, все очень просто, скачиваем скрипт авто-сетапа тузлы и всех либ, так что нам не придется вручную собирать pf_ring как в первых версиях.
Скачиваем установщик:
Запускаем:
Терпеливо ждем завершения.
После завершения сетапа, на всякий случай выполняем
Теперь нам нужно поправить конфиг и установить нужные лимиты срабатывания.
Редактируем файл /etc/fastnetmon.conf
Находим и меняем следующие параметры:
Лимиты настраиваем по своему усмотрению, я рекомендую примерно следующие:
Так-же включаем создание дампов трафика при атаках и вызов скрипта бана\анбана.
Думаю тут всем понятно, что pps - пакетов в секунду, mbps - мбит в секунду.
Запускаем утилиту:
Запускаем клиент и смотрим, все ли в порядке:
Должны увидеть примерно такое:
mc [roottel1]usrsrcfastnetmonsrc (126 kb) закачан 4 июля 2017 г. Joxi
Далее настраиваем call-скрипт, с помощью него мы можем выполнять некие условия, в момент атак, например восстановить конфиг фаервола расчитанный для работу под атаками:
Приводим его к такому виду:
Думаю понятно, что при действии бан, мы восстанавливаем конфиг фаервола расчитаный под атаку:
В случае прекращения атаки, восстанавливаем обычный конфиг:
При атаках, дампы трафика пишутся в
Дальше будет....
Мануал рассчитан на Debian 7\8, но отличие от других осей минимальны.
Итак, для обнаружения атак и снятия дампов мы воспользуемся тузлой под названием FastnetMon, разработки моего товарища, Павла Одинцова.
Про саму тузлу можно почитать на хабре:
http://habrahabr.ru/post/259399/
Вкратце, тузла которая использует PF_RING, либо netmap, netflow
Мы будем использовать именно pf_ring как наиболее быстрое и менее ресурсоемкое решение.
Итак, начнем.
Для начала установим gcc и g++ ну и tcpdump
C-подобный:
apt-get install -y gcc g++ tcpdump
Далее, все очень просто, скачиваем скрипт авто-сетапа тузлы и всех либ, так что нам не придется вручную собирать pf_ring как в первых версиях.
Скачиваем установщик:
C-подобный:
wget https://raw.githubusercontent.com/pavel-odintsov/fastnetmon/master/src/fastnetmon_install.pl -Ofastnetmon_install.pl
C-подобный:
perl fastnetmon_install.pl
После завершения сетапа, на всякий случай выполняем
C-подобный:
modprobe pf_ring
Теперь нам нужно поправить конфиг и установить нужные лимиты срабатывания.
Редактируем файл /etc/fastnetmon.conf
Находим и меняем следующие параметры:
C-подобный:
enable_ban = on
mirror = on // включаем работу через pf_ring
C-подобный:
# Limits for Dos/DDoS attacks
threshold_pps = 20000
threshold_mbps = 80
threshold_flows = 3500
# Per protocol attack thresholds
# We don't implement per protocol flow limits, sorry :(
# These limits should be smaller than global pps/mbps limits
threshold_tcp_mbps = 40
threshold_udp_mbps = 50
threshold_icmp_mbps = 10
threshold_tcp_pps = 10000
threshold_udp_pps = 20000
threshold_icmp_pps = 5000
ban_for_tcp_bandwidth = on
ban_for_udp_bandwidth = on
ban_for_icmp_bandwidth = on
ban_for_tcp_pps = on
ban_for_udp_pps = on
ban_for_icmp_pps = on
C-подобный:
notify_script_pass_details = on
collect_attack_pcap_dumps = on
Думаю тут всем понятно, что pps - пакетов в секунду, mbps - мбит в секунду.
Запускаем утилиту:
C-подобный:
/opt/fastnetmon/fastnetmon --daemonize
Запускаем клиент и смотрим, все ли в порядке:
C-подобный:
/opt/fastnetmon/fastnetmon_client
mc [roottel1]usrsrcfastnetmonsrc (126 kb) закачан 4 июля 2017 г. Joxi
Далее настраиваем call-скрипт, с помощью него мы можем выполнять некие условия, в момент атак, например восстановить конфиг фаервола расчитанный для работу под атаками:
C-подобный:
cp /usr/src/fastnetmon/src/notify_about_attack.sh /usr/local/bin/notify_about_attack.sh
chmod 755 /usr/local/bin/notify_about_attack.sh
Приводим его к такому виду:
C-подобный:
#!/usr/bin/env bash
# This script will get following params:
# $1 client_ip_as_string
# $2 data_direction
# $3 pps_as_string
# $4 action (ban or unban)
#email_notify="art.ack@yandex.ru"
time="`date '+%m-%d_%H:%M'`"
if [ "$4" = "unban" ]; then
/sbin/iptables-restore < /etc/iptables_def.conf
exit 0
fi
if [ "$4" = "ban" ]; then
cat > /dev/null
/sbin/iptables-restore < /etc/iptables_attack.conf
exit 0
fi
if [ "$4" == "attack_details" ]; then
cat > /dev/null
exit 0
fi
Думаю понятно, что при действии бан, мы восстанавливаем конфиг фаервола расчитаный под атаку:
C-подобный:
/sbin/iptables-restore < /etc/iptables_attack.conf
C-подобный:
/sbin/iptables-restore < /etc/iptables_def.conf
При атаках, дампы трафика пишутся в
C-подобный:
/var/log/fastnetmon_attacks
Дальше будет....