Сучасні сайти, великі інтернет-магазини на базі CMS WordPress або OpenCart, а також складні онлайн-платформи регулярно стикаються з мережевими загрозами. DDoS-атаки здатні повністю зупинити веб-ресурс, що негативно впливає на SEO-просування та бізнес. Якщо для Windows-серверів існують свої інструменти, то для операційних систем сімейства Linux стандартом безпеки є зв'язка утиліт iptables та fail2ban.
Перед початком будь-яких робіт обов'язково створюється резервна копія конфігураційних файлів сервера, щоб мати можливість швидко відновити працездатність системи.
Симптоми та виявлення DDoS-атаки на сервері

Перший симптом атаки — різке уповільнення завантаження сторінок або помилка з'єднання 502 Bad Gateway. Мобільні системи та десктопні браузери користувачів перестають отримувати відповіді від сервера. Щоб підтвердити атаку, підключіться до сервера через SSH та перевірте чергу запитів. Команда netstat -an | grep :80 | wc -l покаже кількість активних підключень до веб-сервера. Якщо значення перевищує норму в десятки разів, сервер атакують. Також варто перевірити завантаження процесора за допомогою утиліти htop.
Базове налаштування iptables для обмеження трафіку
Утиліта iptables дозволяє фільтрувати пакети на рівні ядра Linux. Для захисту від SYN-флуду, який часто використовують проти веб-ресурсів, необхідно обмежити кількість одночасних з'єднань з однієї IP-адреси. Налаштування виконується шляхом введення наступних правил у термінал:
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP
Ці команди обмежують нові підключення до 20 запитів за хвилину від одного хоста. Веб-розробка та звичайні користувачі не відчують дискомфорту, але ботнет втратить ефективність.
Інтеграція та конфігурація fail2ban для захисту онлайн-платформи
Програма fail2ban аналізує системні логи та динамічно блокує підозрілі IP. Для налаштування захисту створіть локальний конфіг /etc/fail2ban/jail.local. У секцію захисту веб-сервера додайте такі параметри:
enabled = true

port = http,https
filter = nginx-limit-req
logpath = /var/log/nginx/error.log
maxretry = 5
findtime = 600
bantime = 3600
Ця конфігурація сканує лог-файли та блокує на одну годину будь-яку IP-адресу, яка здійснює понад 5 підозрілих запитів за 10 хвилин.
Перевірка після змін та аналіз логів
Після збереження конфігурації перезапустіть служби командами systemctl restart iptables та systemctl restart fail2ban. Перевірити поточний статус блокування можна через клієнт: fail2ban-client status. Логи роботи утиліти записуються у файл /var/log/fail2ban.log. Перевірка правил iptables здійснюється командою iptables -L -n -v, яка покаже кількість заблокованих пакетів.
Типові помилки конфігурації
Найбільш поширена помилка — випадкове блокування пошукових роботів, що руйнує SEO сайту. Щоб цього уникнути, додайте IP-адреси відомих пошукових систем та власну IP-адресу адміністратора в рядок ignoreip у файлі jail.local. Також слідкуйте за тим, щоб правила iptables не конфліктували між собою, оскільки система обробляє їх по черзі згори донизу.

Схожі матеріали по темі