Сервер під атакою DDOS - Як дізнатися IP-адреси?


20

Мій сервер перебуває під DDOS-атаками, і я хочу заблокувати IP, який це робить, які журнали потрібно шукати, щоб визначити IP-адресу зловмисника?


2
Як ви визначили, що сервер піддається атаці? Мені здається, вам потрібно буде переглянути якийсь тип таблиці сеансів TCP (netstat в Windows) для того, щоб визначити це, і при цьому побачити ip адреси хостів, що підключаються до вашого сервера, що спричинило б ваше запитання суперечка.
joeqwerty

Відповіді:


43
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

Погляньте на топ IP-адреси. Якщо хтось виділиться з-поміж інших, це були б ті, хто брандмауер.

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

У цьому розділі перегляньте активні підключення, щоб побачити, чи є якісь IP-адреси, що підключаються до порту 80. Можливо, вам доведеться змінити cut -c 45-, оскільки IP-адреса може не починатись із стовпця 45. Якщо хтось робив потоп UDP до ваш веб-сервер, це також підніме його.

Швидше за все, що жоден із них не показує жодних IP-адрес, які надмірно перевищують норму, вам слід припустити, що у вас нападає ботнет, і вам потрібно буде шукати певні шаблони в журналах, щоб побачити, що вони роблять. Поширена атака на сайти Wordpress:

GET /index.php? HTTP/1.0

Якщо ви переглянете журнали доступу для свого веб-сайту, ви можете зробити щось на кшталт:

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

яка б відображала найпоширеніші URL-адреси. Ви можете виявити, що вони потрапляють на певний сценарій, а не завантажують весь сайт.

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

дозволить вам бачити звичайні UserAgents. Цілком можливо, що вони використовують один UserAgent в атаці.

Трюк полягає в тому, щоб знайти щось спільне з атакою трафіку, який не існує у вашому звичайному трафіку, а потім відфільтрувати його через iptables, mod_rewrite або вище за допомогою веб-хостингу. Якщо ви потрапили під удар Slowloris, Apache 2.2.15 тепер має модуль reqtimeout, який дозволяє налаштувати деякі параметри для кращого захисту від Slowloris.


Велике спасибі, я обов'язково загляну в ці вихідні.
Вебнет

відмінна. дуже корисно і просто чудово .... тримайте це і Бог вас благословить. Allinonescript.com ( allinonescript.com ) у всьому світі Розробників знання набувають знання.
Vadivel S

Поки ви правильно налаштували ваш access_log: tail -n 10000 / var / log / httpd / access_log | cut -f 1 -d '' | sort | uniq -c | sort -nr | more Це повинно працювати. Працював для мене,
смітник

7

FYI - Ви повинні спробувати співпрацювати зі своїм провайдером, щоб побачити, чи може він заблокувати його перед вами.


4

Тут є кілька хороших порад. Я також додам це:

netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''

Помістіть це під псевдонімом (наприклад, nn). Це дасть вам "графічну" перспективу ips з більш встановленими з'єднаннями.

Сподіваюся, це допомагає.

Для тих, хто не зміг змусити це працювати, я виправив синтаксис, тому він працює для мене під Ubuntu:

netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'

3

Мої улюблені файли журналів для перевірки атак DOS - це / var / log / secure (під Redhat / Centos / Fedora ....) та /var/log/auth.log (під ubuntu, debian ...). Ви побачите невдалі спроби входу, зроблені з вихідного IP-адреса зловмисника, в більшості випадків атаки на основі словника.


1

для захисту свого сервера я використовую Fail2Ban простий скрипт

сканує файли журналу на зразок / var / log / pwdfail або / var / log / apache / error_log та забороняє IP, що робить занадто багато збоїв у паролі. Він оновлює правила брандмауера, щоб відхилити IP-адресу.

http://www.fail2ban.org/wiki/index.php/Main_Page


0

Який дистрибутив?

Я думаю, що журнал знаходиться під /var/log/apache2/access.log з Ubuntu ... Можливо також Debian.

Запустіть updateb як sudo, а потім знайдіть access.log з командного рядка.

EDIT: Я вважаю, що це відбудеться лише в тому випадку, якщо вони вдарять вас або через запит на сторінки, або безпосередньо через порт 80. Якщо вони потрапляють в інші порти, ви не побачите потрібну інформацію там, вам потрібно буде перевірити і подивитися, який процес працює на цьому порту і перегляньте журнали підключень для цього процесу.


0

ви можете використовувати tcpdump, щоб побачити, яка адреса це $ tcpdump -vv порт X, якщо ви підозрюєте конкретний порт


0

Якщо ви перебуваєте під розподіленим DOS, звичайно, існує набагато більше, ніж один IP-адрес для блокування, і IP-адреси можуть бути підроблені, вам краще запитати провайдера, як сказав mfinni . Крім того, це може бути більше ніж DOS проти вашого сервера, але приманка, щоб приховати реальну атаку від виявлення, тому перевірте, чи всі ваші відкриті служби виконуються за допомогою сучасного програмного забезпечення. Можливо, вас також зацікавить mod_dosevasive для apache.


2
IP-адреси дуже важко підробити для веб-атак. Оскільки для дійсного веб-з'єднання потрібне рукостискання syn / ack, вам доведеться пощастити, щоб підроблена IP-адреса була заповнена правильним порядковим номером для вашого корисного навантаження з підробленого атакуючого сайту. Трафік UDP / ICMP не пов'язаний і дозволяє підробляти пакети, але більшість хостів блокує ці пакети.
користувач6738237482

0

Спочатку потрібно визначити тип DOS. Деякі атаки є дуже прихованими, але ефективними (slowloris), деякі з них настільки важкі, що можуть знизити ISP (потоки ICMP з пропускною здатністю більш високої, ніж ваш джерело провайдера).

Визначивши тип DOS, зателефонуйте своєму провайдеру і запитайте їх, чи можуть вони відфільтрувати трафік.

Я бачив напливи ICMP настільки сильні, що нам довелося попросити провідного провайдера відфільтрувати цільовий IP через співтовариство BGP.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.