Захист від ddos атак сервера за 5 хвилин!
Тільки вчора я писав про те, як захистити сайт WordPress від злому. а сьогодні хочу розповісти, як здійснюється захист від ddos атак, так як падіння сервера навіть на невеликий час може привести до проблем. Тривалі простої можуть негативно позначитися на позиціях в пошукових системах, зі мною вже таке сталося одного разу, до сих пір пожинаю наслідки.
Сьогодні вночі, як тільки я ліг спати, сервер у мене ліг теж. Розбудив я його тільки вранці, коли прокинувся сам. Швидше за все знову була атака і мій друг не витримав напору.
Підозрюю, що проблемою ще може бути плагін WordPress Backup to Dropbox. який робить резервні копії вашого сайту на DropBox. Плагін в цілому корисний, але мені вже не потрібний, тому що я роблю постійно бекап всього сервера. Якщо ж у ва з простою хостинг, то рекомендую встановити.
Так ось, плагін цей включається у мене як раз вночі і починає закачування резервної копії. А так як сервер і так атакується, то додаткове навантаження на диск призводить до зависання. До того ж сервер у мене не дуже потужний, якби придбати термінальний сервер, то маленькі атаки були б не такі небезпечні, напевно. Це поки теорія, перевіримо. Але швидше за все на мене все ж здійснюється ddos атака.
Що таке ddos атака?
Якщо говорити просто, то на ваш сервер відправляється багато запитів на підключення, і не просто багато, а ДУЖЕ багато, з тисяч комп'ютерів одночасно, і ваше сервер просто не витримує від такого напливу "відвідувачів". Навіщо все це робиться?
Наприклад, простий інтернет магазину може обійтися ДУЖЕ дорого, і конкуренти таким нечесним чином намагаються розчистити собі місце під сонцем. Або ж просто хакери таким чином виводять сервер з ладу, щоб в цей момент залити на нього вірус. А може і просто який-небудь школяр балуватися, тестуючи програми для ddos 🙂
У цій статті я хочу розповісти про те, як захистити сервер від ддос атаки (не дуже масивної, звичайно, але все ж). Як це все здійснити?
Як захистити сервер від DDOS атаки?
Все робиться на рівні веб сервера Apache установкою додаткового модуля. Підключаємося до сервера через SSH і встановлюємо модуль:
Модуль встановлений, тепер потрібно створити файл mod-evasive.conf в папці / etc / apache2 / mods-available / і вписуємо в нього такий код:
Тут можна виставляти параметри на свій розсуд, і ось що вони означають:
DOSHashTableSize. це розмір хеш-таблиці яка обробляє запити до WWW-сервера.
DOSPageCount. число запитів до одній сторінці від одного і того ж IP протягом зазначеного інтервалу часу.
DOSSiteCount. число запитів до всіх сторінок домену, якщо надійшло понад 50-ти запитів з одного IP на різні сторінки домену - тоді такий IP буде заблоковано.
DOSPageInterval. Інтервал для директиви DOSPageCount (в секундах)
DOSSiteInterval. Інтервал для директиви DOSSiteCount (в секундах)
DOSBlockingPeriod. На скільки заблокувати ай-пі (в секундах)
DOSEmailNotify. може бути використаний для повідомлення, буде відправляти повідомлення по електронній пошті про те що такий-то IP був заблокований. DOSSystemCommand. ця директива використовується для виконання будь-якої вашої команди коли IP блокується.
Після цього перезапускаємо сервер apache:
Проста DDOS атака своїми руками
Створюємо файл типу ddos.pl в домашній папці і вписуємо туди такий код:
Тепер робимо файл виконуваним:
У код цього файлу я вписав один знайомий блог - saitowed.ru, щоб на ньому перевірити роботу скрипта. Запускаємо його командою:
Бачимо, що його сервер спокійно пропускає наші множинні запити, а це погано. Тепер впишу свій сайт в код скрипта:
Ага, а у мене сервер відразу блокує всі запити з мого IP на деякий час або поки йде атака.
Все так просто, але це настільки корисно, що навіть не передати словами, коли вже місяць мучишся з сервером, так як досвіду по його настройці і захисту дуже мало. А як ви захищаєте свій сервер?