Създаване на Fail2ban за защита на Apache от DDOS атака
Тази статия е част от серията Ръководство за Apache Server:
- Осигуряване на Apache на Ubuntu - Част 1
- Осигуряване на Apache на Ubuntu - Част 2
- Оптимизиране на ефективността на Apache - Част 1
- Оптимизиране на ефективността на Apache - Част 2
- Настройване на Apache на
- Настройване на IP и Port-базирани Virtualhost в Apache
- Как да настроите паролата за защита на уеб директорията в Apache
- Настройване на Apache Server със SSL поддръжка на Ubuntu
- Създаване на Fail2ban за защита на Apache от DDOS атака
- Как да настроите Webdata с Apache на Ubuntu
- Следете уеб сървъра на Apache, използвайки Mod_status
- Как да защитите срещу DDoS с Mod_evasive на Apache Server
Apache е един от най-широко използваните и популярни уеб сървъри в света, така че е важно да защитите уебсайта си и потребителите от злоумишлени атаки. Fail2ban е софтуер за предотвратяване на проникване с отворен код, написан в Python. Fail2Ban непрекъснато анализира лог файловете на различни услуги (като Apache, ssh, postfix ...) и ако открие злонамерени атаки, тя създава правила за защитната стена да блокират IP адресите на хакерите за определен период от време. Fail2Ban също така информира системния администратор с имейл за своята дейност.
В тази статия ще ви обясня как да инсталирате fail2ban и да го конфигурирате, за да следите вашите Apache дневници за опити за неуспешно удостоверяване на зловреден код.
Изисквания
- Ubuntu сървър 14.04 с инсталиран Apache
- Apache е конфигуриран с удостоверяване с парола
Инсталиране на Fail2Ban
Първо се уверете, че сървърът на Apache работи и че е активирана удостоверяването с парола.
След това можете да инсталирате Fail2ban, като стартирате:
sudo apt-get актуализация sudo apt-get инсталирате fail2ban
Конфигурирайте fail2ban за Apache
Файлът fail2ban запазва своя конфигурационен файл "jail.conf" в директорията "/ etc / fail2ban /". Той съдържа набор от предварително дефинирани филтри за различни услуги и се препоръчва да не редактирате този файл. Трябва да активирате предварително дефинираните затвори в Apache, като създадете файл "/etc/fail2ban/jail.local":
За да създадете нов файл "jail.local", стартирайте:
sudo nano /etc/fail2ban/jail.local
Добавете следното съдържание:
[apache] enabled = true порт = http, https филтър = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-noscript] http, https филтър = apache-noscript logpath = /var/log/apache2/*error.log maxretry = 3 намерение = 600 ignoreip = 192.168.1.227 [apache-overflows] enabled = true порт = http, https filter = logpath = /var/log/apache2/*error.log maxretry = 2 намерение = 600 ignoreip = 192.168.1.227 [apache-badbots] enabled = true порт = http, https филтър = apache-badbots logpath = / var / log / apache2 /*error.log maxretry = 2 намерение = 600 ignoreip = 192.168.1.227
Запазете и затворете файла, след което рестартирайте fail2ban, за да влязат промените в сила.
sudo /etc/init.d/fail2ban рестартиране
Можете да проверите правилата, добавени от Fail2Ban в iptables, като използвате следната команда:
sudo iptables -L
Резултатът ще изглежда така:
Забележка : Можете да намерите подробностите за всеки затвор, описани по-долу:
[apache]
: този затвор се използва за блокиране на неуспешни опити за влизане.[apache-noscript]
: тази затвора се използва за блокиране на отдалечени клиенти, които търсят скриптове на уебсайта, за да изпълнят.[apache-overflows]
: тази затвора се използва за блокиране на клиенти, които се опитват да поискат подозрителни URL адреси.[apache-noscript]
: тази затвора се използва за блокиране на отдалечени клиенти, които търсят скриптове на уебсайт, за да изпълнят.[apache-badbots]
: този затвор се използва за блокиране на злонамерени заявки за bot.
Забележка : Можете да намерите подробностите за всяко правило, описано по-долу.
enabled
: тази опция означава, че Apache защита е включена.port
: тази опция определя услугите, които не са мониторинг fail2ban.filter
: тази опция се отнася до конфигурационния файл, намиращ се в директорията/etc/fail2ban/filter.d/
.logpath
: тази опция определя местоположението на лог файл.bantime
: тази опция определя броя на секундите, които отдалечен хост ще бъде блокиран от сървъра.maxretry
: тази опция определя броя на неуспешните опити за влизане, преди отдалечен хост да бъде блокиран за продължителността на забраната.ignoreip
: тази опция ви позволява да правите бели списъци на определени IP адреси от блокиране.
Проверете състоянието на забрана на Fail2ban
След като бъдат активирани затворите, можете да проверите fail2ban с помощта на командата fail2ban-client
:
sudo fail2ban-client статус
Можете да видите списък с всички затвори, които сте активирали.
За да видите състоянието на конкретен затвор като apache, apache-badbots, изпълнявайте следните команди:
sudo fail2ban-client статус apache
Изходът изглежда така:
Можете също да зададете ръчно банкови или небанкови IP адреси.
Например, за да забраните IP адрес (192.168.1.20) с затвор в Apache:
sudo fail2ban-клиентът задал apache banip 192.168.1.20
За да премахнете IP адрес (192.168.1.21) с затвор в Apache:
sudo fail2ban-клиент настроен на apache unbanip 192.168.1.21
Тестване на Fail2Ban
Важно е да тествате вашия fail2ban дали той работи както се очаква или не. Сега на отдалечена машина, отворете уеб браузъра си и въведете URL адреса на вашия домейн (или IP адреса на вашия сървър). Когато Apache подкани за удостоверяване, дайте неколкократно некоректно потребителско име и парола. След като сте достигнали ограничението, трябва да бъдете блокирани и да не можете да получите достъп до сайта.
Проверете състоянието с командата fail2ban-client
:
sudo fail2ban-client статус apache
Ще видите, че вашият IP адрес е блокиран от сайта.
заключение
Сега имате достатъчно знания, за да конфигурирате fail2ban. Използването на fail2ban е добър и лесен начин да се спре наводнението (атаки с груба сила). Това също е добър начин да ограничите броя на грешните заявки, които получавате на уеб сървъра си в Apache.