Регистрация  |  Забыли пароль?

Глав. страница форума Глав. страница Сайта Скачать Cs 1.6 Готовые Сервера Cs 1.6 Плагины Для Cs 1.6 Моды Для Cs 1.6 Защита Для Cs 1.6
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Pozetif  
Форум Best-Serva4ok.Ru » Создание и настройка серверов » Защита Игрового сервера » Обнаружение атак и их дампы.
Обнаружение атак и их дампы.
Pozetif
Offline
Дата: Среда, 10.10.2018, 00:42 | Сообщение # 1
Администраторы BSR
Сообщений: 255
Подарки: 0
Репутация: 822


Вот и пришло время описать вторую часть.
Предупрежу сразу, данный мануал не сработает на VDS\VPS с виртуализацией OpenVZ
Мануал рассчитан на Debian 7, но отличие от других осей минимальны.

Итак, для обнаружения атак и снятия дампов мы воспользуемся тузлой под названием FastnetMon, разработки моего друга, Павла Одинцова.
Про саму тузлу можно почитать на хабре:
http://habrahabr.ru/post/259399/
Вкратце, тузла которая использует PF_RING, либо netmap, netflow
Мы будем использовать именно pf_ring как наиболее быстрое и менее ресурсоемкое решение.
Итак, начнем.
Для начала установим gcc и g++ ну и tcpdump
Код
apt-get install -y gcc g++ tcpdump
Далее, все очень просто, Павел написал скрипт авто-сетапа тузлы и всех либ, так что нам не придется вручную собирать pf_ring как в первых версиях.
Скачиваем установщик:
Код
wget https://raw.githubusercontent.com/FastVPS....tall.pl -Ofastnetmon_install.pl
Запускаем:
Код
perl fastnetmon_install.pl
Терпеливо ждем завершения.
После завершения сетапа, на всякий случай выполняем
Код
modprobe pf_ring
Т.к не всегда модуль подгружается в ядро с первого раза.

Далее, настраиваем детекторы.
В конфиге
Код
/etc/fastnetmon.conf
Меняем следующие параметры:
Код
enable_ban = on
ban_for_pps = on
ban_for_bandwidth = on
ban_for_flows = on
mirror = on // включаем работу через pf_ring
Остальное можно не трогать.
Так-же выставляем лимиты срабатываний при атаках.
Код
# Limits for Dos/DDoS attacks
threshold_pps = 10000
threshold_mbps = 50
threshold_flows = 3500
Нам интересны
threshold_pps - кол. пакетов в секунду
threshold_mbps - кол. мбит в секунду.
После внесения изменений запускаем\перезапускаем fastnetmon
Код
systemctl restart fastnetmon

Для автоматического запуска мониторинга при старте системы, добавляем в /etc/rc.local
Код
/opt/fastnetmon/fastnetmon --daemonize

Далее настраиваем скрипт, который будет делать дампы:
Код
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
Приводим скрипт
Код
/usr/local/bin/notify_about_attack.sh к такому виду
Скрытый текст

Код
#!/usr/bin/env bash

# $1 client_ip_as_string
# $2 data_direction
# $3 pps_as_string
# $4 action (ban or unban)

email_notify="ваша_почта"
time="`date '+%m-%d_%H:%M'`"
# Далее возможны два варианта:
# это первый запуск, при котором нужно банить IP (на stdin пусто)
# это второй запуск, когда скрипт уже собрал (если смог) детали об атаке (на stdin даные об атаке)

if [ "$4" = "unban" ]; then
# Unban actions if used
exit 0
fi

if [ "$4" = "ban" ]; then
# cat | mail -s "FastNetMon Guard: IP $1 blocked because $2 attack with power $3 pps" $email_notify;
# You can add ban code here!
# iptables -A INPUT -s $1 -j DROP
# iptables -A INPUT -d $1 -j DROP
/usr/sbin/tcpdump -v -n -c 300 >> /root/attack_$time.log
/usr/sbin/tcpdump -v -x -n -w /root/ddos_$time.log -c 300
exit 0
fi

if [ "$4" == "attack_details" ]; then
cat | mail -s "FastNetMon Guard: IP $1 blocked because $2 attack with power $3 pps" $email_notify;
fi

Если хотите что-бы приходили уведомления на почту, убираем # перед:
Код
# cat | mail -s "FastNetMon Guard: IP $1 blocked because $2 attack with power $3 pps" $email_notify;

На этом настройка закончена.
Смотрим логи:
Скрытый текст
Код
2015-07-05 15:23:47,339 [INFO] We use custom sampling ratio for netflow: 1
2015-07-05 15:23:47,339 [INFO] netflow plugin will listen on 0.0.0.0:2055 udp port
2015-07-05 15:23:47,339 [INFO] sflow plugin started
2015-07-05 15:23:47,339 [INFO] sflow plugin will listen on 0.0.0.0:6343 udp port
2015-07-05 15:23:47,339 [INFO] PF_RING plugin started
2015-07-05 15:23:47,339 [INFO] We selected interface:eth0
2015-07-05 15:23:47,341 [INFO] Successully binded to: eth0
2015-07-05 15:23:47,341 [INFO] Device RX channels number:
2015-07-05 15:23:47,341 [INFO] Using PF_RING v.6.0.3
2015-07-05 15:23:47,341 [INFO] Run banlist cleanup thread

Все ок, все работает.

Можем запустить клиент, что-бы видеть текущую статистику:
Код
/opt/fastnetmon/fastnetmon_client

Несколько скриншотов:

Уменьшено: 28% от [ 635 на 308 ] — нажмите для просмотра полного изображения

Уменьшено: 29% от [ 609 на 356 ] — нажмите для просмотра полного изображения

При атаках, в папке /root/ создаются 2 файла:
attack_дата_время.log
ddos_дата_время.log

attack_дата_время.log - лог который можно просматривать обычным текстовым редактором, там основная информация о атаке:
Скрытый текст
Уменьшено: 22% от [ 785 на 171 ] — нажмите для просмотра полного изображения

ddos ddos_дата_время.log - Более подробный дамп для просмотра через tcpdump (tcpdump -n -v -x -r ddos_дата_время.log )
Скрытый текст
Уменьшено: 22% от [ 790 на 167 ] — нажмите для просмотра полного изображения

ps\\ Если что-то не работает, первым делом смотрим логи, там все написано (tail -f /var/log/fastnetmon.log )
pss\\ Немного рекламы.
Отдельная благодарность Олегу Солодкому, директору riaas.ru за предоставленные ресурсы для тестов и написания фака.


Форум Best-Serva4ok.Ru » Создание и настройка серверов » Защита Игрового сервера » Обнаружение атак и их дампы.
  • Страница 1 из 1
  • 1
Поиск: