Информационная Безопасность. Аудит Безопасности


Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - Защита от DDoS атак
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Поиск ТОП Добавить публикацию

Защита от DDoS атак

29.11.2008

Итак сервер HackZone.ru подвергся очередной DDoS атаке. 

В логах обнаружились повторяющиеся записи вида

Nov 28 22:07:05 hzru kernel: ip_conntrack: table full, dropping packet.
Nov 28 22:07:10 hzru kernel: printk: 224 messages suppressed.
Nov 28 22:07:10 hzru kernel: ip_conntrack: table full, dropping packet.
Nov 28 22:07:15 hzru kernel: printk: 244 messages suppressed.
Nov 28 22:07:15 hzru kernel: ip_conntrack: table full, dropping packet.

Nov 28 22:07:20 hzru kernel: printk: 217 messages suppressed.

 

Что означает переполнение таблицы соединений. 

Проверим, что в действительности имеем

[[email protected] etc]# cat /proc/net/ip_conntrack | wc -l
65535

Факт на лицо - гигантское количество соединений.

Что у нас с параметрами tcp

[[email protected] etc]# sysctl -a |  grep tcp_keepalive_time
net.ipv4.tcp_keepalive_time = 7200

Держать tcp соединение открытым в течение 2-х часов. Перебор !!!

Что можно предпринять для защиты от DDoS (не панацея, но жизнь облегчит)

1. Корректируем параметры tcp

Ищем файл /etc/sysctl.conf. В него вписываем следующее

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

# через 60 секунд с момента наступления тишины в канале сервером выполняется проба. Если клиент жив, то серверу высылается ответный пакет
net.ipv4.tcp_keepalive_time = 60

# если ответа на проверку нет, то с интервалом в 10 секунд повторить
net.ipv4.tcp_keepalive_intvl = 10

# Сколько раз повторить проверку после чего закрыть соединение
net.ipv4.tcp_keepalive_probes = 5

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0

net.ipv4.netfilter.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30

 Сохраняем файл и обновляем системные переменные

[[email protected] etc]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
net.ipv4.ip_conntrack_max = 65536
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0

После этого необходимо перезагрузиться, иначе надо ждать два часа, чтобы отвалились открытые соединения. Минут через 5 после перезагрузки посмотрим что получилось

 

[[email protected] ~]# cat /proc/net/ip_conntrack | wc -l
3506
[[email protected] ~]# cat /proc/net/ip_conntrack | wc -l
3494

 

Отбились.

2. Теперь iptables.

Опять же недавно был HTTP DDoS. С разных IP шли запросы

210.18.136.151 - - [29/Nov/2008:00:09:25 +0300] "GET /setting.xls HTTP/1.1" 404 221 "-" "-" AU
59.92.97.151 - - [21/Nov/2008:00:09:46 +0300] "GET /setting.doc HTTP/1.1" 404 221 "-" "-" -
59.92.97.151 - - [21/Nov/2008:00:09:47 +0300] "GET /setting.xls HTTP/1.1" 404 221 "-" "-" -
59.92.97.151 - - [21/Nov/2008:00:09:49 +0300] "GET /setting.doc HTTP/1.1" 404 221 "-" "-" -
59.92.97.151 - - [21/Nov/2008:00:09:50 +0300] "GET /setting.xls HTTP/1.1" 404 221 "-" "-" -
59.92.97.151 - - [21/Nov/2008:00:09:51 +0300] "GET /setting.doc HTTP/1.1" 404 221 "-" "-" -
59.92.97.151 - - [21/Nov/2008:00:09:52 +0300] "GET /setting.xls HTTP/1.1" 404 221 "-" "-" -

Побороли это просто (должен быть загружен модуль iptables string, iptables должен быть не ниже версии 1.3.5, а ядро – не ниже 2.6.18, собранным с опцией CONFIG_NETFILTER_XT_MATCH_STRING=m)

/sbin/iptables -A INPUT -p tcp --dport 80 -m string --string "GET /setting." --algo kmp -j DROP

Далее можно поставить ограничение по количеству одновременных соединений 

# Лимит на 20 запросов в секунду для интерфейса eth0
/sbin/iptables --new-chain lim1
/sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 80 -o eth0 --jump lim1
/sbin/iptables --append lim1-m limit --limit 20/sec --jump RETURN
/sbin/iptables --append lim1--jump DROP

# Максимум 10 одновременных соединений с одного IP
/sbin/iptables -A INPUT-p tcp --dport 80 -m iplimit --iplimit-above 10 -j REJECT

# Блокировка более 10 SYN
/sbin/iptables -I INPUT -p tcp --syn --dport 80 -j DROP -m iplimit --iplimit-above 10

# 20 соединений на сеть класса С
/sbin/iptables -p tcp --dport 80 -m iplimit --iplimit-above 20 --iplimit-mask 24 -j REJECT 

Пока все.

При копировании материалов ссылка на HackZone.RU обязательна

Добавить страницу в закладки

 Детали
Категория: Защита от взлома
Опубликовал: RenGO
Просмотров: 42607
Проголосовало через SMS: 0
Ключевые слова: защита от ddos атак, iptables, sysctl, conntrack, (найти похожие документы)
  Разместить у себя на сайте
Прямая ссылка
HTML
BBCode ссылка
BBCode ссылка с текстом

 Комментарии (оставить свой комментарий можно здесь)
Это один из вариантов программной защиты. Но такой тип защиты сможет помочь лишь от повышенной нагрузки на сервер вызванной десятками тысяч запросов. Но что делать, когда атакующий попросту забивает весь канал своими пакетами.
 
В таком случае единственный вариант оставить сервер on-line - использование аппаратной защиты путем проксирования трафика.
 
Хостинг-провайдер SimplyWAY.NET предлагает различные AntiDDoS Proxy для отбивания атак мощностью до 10 Gb/s или 6 Mpps.  
13.07.2013 / SimplyWAY
Только зарегистрированные пользователи могут оставлять комментарии

Зарегистрироваться *** Авторизоваться


 Последние новости и статьи  Последние сообщения с форумов
  • В darknet сливают данные 100 000 российских банковских карт
  • Вирус Escobar ворует коды двухфакторной аутентификации из Google ...
  • DeadBolt использует уязвимость, исправленную в декабре
  • Почти миллион WordPress-сайтов в опасности из-за уязвимости в поп...
  • Шифровальщик DeadBolt взломал 3600 NAS. Qnap устанавливает обновл...
  • Банковский троян Chaes устанавливает вредоносные расширения для C...
  • Взломана платформа Qubit Finance, хакеры похитили 80 млн долларов
  • Арест участников REvil взволновал других преступников
  • Обнаружена malware MoonBounce, внедряющаяся в UEFI
  • Администратор кардерского форума UniCC и участник хак-группы The ...

    Все новости... Все статьи... Прислать новость RSS
  • Разное / Предложения работы » Взлом авторизации CRM
  • Разное / Предложения работы » взломать сайт и выграть электронную жеребьёвку
  • Разное / Предложения работы » разблокировать сбер аккаунт
  • Разное / Болталка » Re: Форум жив?
  • Разное / Болталка » Форум жив?
  • Разное / Болталка » С Новым 2022 Годом!
  • Взлом и безопасность / Программы » Re: Hasp ключ для ABC-4
  • Портал / Отзывы и предложения » Предлагаем партнерство вашему форуму.
  • Разное / Предложения работы » взлом почты
  • Разное / Куплю, приму в дар » Покупка аккаунтов Uphold

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 1996-2020. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    contador de visitas счетчик посещений

    #{title}

    #{text}

    x

    #{title}

    #{text}