Уявимо себе адміністратором сервера, що перебуває під атакою–відплатою за EX.ua (одразу зауважу, що я не є таким адміністратором, у мене просто гарна уява).
У першу чергу, нам було би цікаво, що саме летить на нас, що саме «валить» наш сайт «із ніг».
Щоб довідатися, є різні способи — скажімо, дивитися журнал веб-сервера, дивитися трафік на сервері утилітою tcpdump
чи подібною; можна на проміжному комутаторі відгалужувати трафік і дивитися його tcpdump
’ом десь на іншому комп’ютері… Але, так чи інакше, завжди цікаво знайти найбільш універсальний інструмент.
На мій погляд, найбільш універсальним інструментом є саме tcpdump
.
Одразу зауважу, що ми можемо «попрохати» tcpdump писати трафік у файл, кожні N
секунд закривати файл і починати новий, а на щойно закритому виконувати певну дію (запускати скрипт) — таким чином ми можемо не лише збирати, а й у режимі «майже реального» часу аналізувати інформацію і виконувати певні дії. Це все вміє сам tcpdump
, ми маємо лише все продумати і написати скрипти .)
Наприклад, може бути зручним використання утиліти fail2ban
; але цей скрипт працює на одному ядрі і на гарно навантаженому сервері (яким, імовірно, є кожен сервер під атакою) почувається невпевнено. Але ми можемо суттєво полегшити йому життя, якщо не змушуватимемо читати журнал веб-сервера, а «згодовуватимемо» вже добре проаналізовану інформацію. Наприклад, із зібраної tcpdump
’ом інформації відбирати адреси, з яких надходить більше X
[кіло]запитів за одиницю часу.
Отже, tcpdump
виглядить («має вигляд» — «виглядить», а не «виглядає»!) досить зручним інструментом. Тож спробуємо з його допомогою ловити лише HTTP GET пакети.
А тепер зазирнемо у нутрощі пакетів »