Ми розглянемо просту захист веб-сервера від частого оновлення сторінки (ctrl + F5) і від невеликих Dos атак на нього.
Давайте перевіримо, наскільки ваш веб-сервер захищений від атаки за допомогою двох простих способів:
1. Найпростіший спосіб вирубати ваш сайт – Ctrl + F5
Мало хто знає, що якщо відкрити сторінку сайту і постійно оновлювати її, не відпускаючи Ctrl + F5, через невеликий проміжок часу ваш сайт буде недоступний. Це станеться через величезної кількості запитів, з якими ваш веб-сервер не зміг впоратися. В результаті будь-який школяр, таким простим способом може укласти ваш сайт.
2. Програма для тестування веб-сервера
Давайте перевіримо веб сервер на стійкість до дрібних атакам на нього. Для цього нам знадобиться програма SwitchBlade. Завантажуємо програму і запускаємо файл run-DDos.
Програма дуже проста у використанні. В поле «URL» впишіть ім’я тестованого сайту, а в поле «Connections» кількість одночасних підключень. Після натискання кнопки «Run attack», на ваш сайт посипляться запити і через кілька секунд він стане недоступний.
Як захистити веб-сервер від атаки?
Якщо будь-який з вище перерахованих способів уклав ваш сайт, читаємо далі.
В обох випадках, при навантаженні на веб-сервер, виникала помилка, і сайт ставав недоступний. Що можна зробити?
Обмежуємо кількість одночасних підключень до сервера з одного ip адреси.
Для цього нам знадобиться скрипт DoS Deflate. Він перевіряє по логам, скільки підключень здійснюється, і коли перевищений ліміт блокує атакуючий ip.
установка DoS Deflate
Для установки заходимо з консолі під правами root і робимо, як написано нижче.
Викачуємо скрипт:
wget http://www.inetbase.com/scripts/ddos/install.sh
Міняємо права на запуск:
chmod 0700 install.sh
інсталюємо:
./install.sh
запускаємо:
sh /usr/local/ddos/ddos.sh
Налаштування DoS Deflate
Потрібно налаштувати скрипт для наших потреб. Заходимо в каталог / usr / local / ddos і редагуємо ddos.conf.
Виставляємо параметри, відповідно до вимог вашого веб-сервера. Нижче приклад відповідний для більшості серверів.
- NO_OF_CONNECTIONS = 100 – максимальна кількість з’єднань з одного ip;
- APF_BAN = 0 – вибираємо спосіб блокування за допомогою iptables;
- BAN_PERIOD = 600 – період блокування атакуючого в секундах;
- KILL = 1 – залишаємо за замовчуванням;
- EMAIL_TO = «» – відправка поштових повідомлень при атаці;
- IGNORE_IP_LIST = «/usr/local/ddos/ignore.ip.list» – список ip адрес, які не повинні блокуватися;
важливо: в файлі ignore.ip.list після вказівки в рядок всіх ip адрес, які не повинні блокуватися, перейдіть на два рядки вниз за допомогою Enter, щоб скрипт міг туди тимчасово вписувати і потім видаляти заблоковані адреси(Щоб два рази поспіль не блокувати один і той самий ip). Інакше він може помилково видалити або дописати адреса в кінець вашого виключеного ip
Скрипт записується в cron (Планувальник) і автоматично запускається кожну хвилину, для перевірки атаки на сервер. Також скрипт автоматично додає в білий список ip вашого сервера і ваш ip, з якого ви підключилися з консолі.
Як розблокувати ip, який потрапив в чорний список.
Набираємо в консолі команду і дивимося заблоковані номер ip
iptables -L INPUT -n –line-numbers
Після номера коштує DROP all – (Заблокований ip типу 91.219.219.62)
Для видалення заблокованого ip вводимо команду, де вказуємо наш заблокований номер. (В нашому випадку заблокований ip був під номером «1»)
iptables -D INPUT 1
Після цього наш ip 91.219.219.62 буде розблоковано.
висновки
У статті ми розглянули один з найпростіших способів захисту веб-сервера, який відмінно підійде для новачків. Встановивши на веб-сервер DoS Deflate, ми зробили його більш захищеним від невеликих атак.
При більш серйозних атаках, коли Dos здійснюється з тисячі різних ip існують інші способи, які ми розглянемо в наступних статтях.