Тази статия е част от серията Ръководство за 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 е един от най-широко използваните и популярни уеб сървъри в света и заема почти 40% от всички сървъри в света. Ако сте уеб администратор или администратор, който поддържа сървър на Apache, е важно да знаете как да защитите Apache и да го предотвратите от това, че го хакнат. В тази статия ще опишем някои съвети и трикове, които можете да използвате, за да защитите вашия Apache сървър.

Забележка : използваме Ubuntu 14.04 за този урок.

Инсталирайте и актуализирайте Apache

Първо, трябва да актуализирате и инсталирате Apache в системата си.

За тази цел изпълнете следната команда:

 sudo apt-get актуализация sudo apt-get инсталирате apache2 

Скриване на версия на Apache

По подразбиране Apache показва версията на уеб сървъра ви в Apache, инсталирана на вашата система, с името на операционната система на вашия сървър.

В горната екранна снимка можете да видите версията на Apache и операционната система, инсталирани на вашия сървър. Това може да е основен проблем за сигурността на вашия уеб сървър. За да скриете тази информация, трябва да редактирате основния конфигурационен файл на Apache ("/etc/apache2/conf-enabled/security.conf").

 sudo nano /etc/apache2/conf-enabled/security.conf 

Добавете / редактирайте следния ред:

 ServerSignature Изключен ServerTokens Prod 

Запишете файла и рестартирайте услугата Apache.

 sudo /etc/init.d/apache2 рестартирайте 

Изключете прелистването в директорията и деактивирайте символните връзки

По подразбиране директорията е активирана в сървъра на Apache. Обявата на директорията показва цялата директория с всички файлове от сървъра на Apache. Ако това е активирано, нападателят може лесно да преглежда всеки файл, да го анализира и да получи деликатна информация за дадено приложение.

Можете да видите списъка с директории по подразбиране в изображението по-долу.

Можете да деактивирате тази настройка, като редактирате конфигурационния файл на Apache.

 sudo nano /etc/apache2/apache2.conf 

Добавете / редактирайте следния ред:

 Опции -FollowSymLinks AllowOverride None Изискват всички предоставени 

Забележка : Горният код предполага, че уеб страниците ви се показват от папката "/ var / www / html". Ако сте променили публичната папка в персонализирано местоположение, променете пътя на Directory в горния код.

Линията Options -FollowSymLinks също така деактивира символните връзки. Ако искате да разрешите символните връзки, премахнете знака "-" пред FollowSymLinks, за да стане Options FollowSymLinks.

Запишете файла и рестартирайте сървъра на Apache.

След това опитайте да посетите уеб в браузър и в долното изображение ще получите забранена грешка.

Деактивирайте ненужните модули

По подразбиране Apache идва с няколко инсталирани модула, които не са необходими за нормална употреба. Препоръчва се да се намали мазнината и да се забранят всички ненужни модули. Можете да посочите всички активирани модули на сървъра си, като използвате следната команда:

 sudo ls / etc / apache2 / mods-enabled / 

Това ще покаже изхода, както е показано на изображението по-долу.

От изброените по-горе модули някои модули като "състояние" и "autoindex" са активирани, но не са необходими.

Можете да деактивирате тези модули, като използвате следната команда:

 sudo a2dismod автоматичен индекс sudo a2dismod статус sudo /etc/init.d/apach2 restart 

Използвайте ModSecurity

Security Mod е безплатен Apache модул, който се използва за защита на вашия уеб сървър от различни атаки, като SQL инжектиране, скриптове от кръст, отвличане на сесии, груба сила и много други експлойти. Той ви позволява също да наблюдавате трафика в реално време.

Можете да инсталирате защитата на мод, като използвате следната команда:

 sudo apt-get инсталирате libapache2-modsecurity 

За да проверите дали модулът mod_security работи, използвайте следната команда:

 sudo apachectl -M | grep - цветова сигурност 

Изображението, показано по-долу, показва, че модулът е зареден.

За да активирате правилата mod_security, трябва да преименувате и редактирате препоръчания за сигурност защитен конфигурационен файл и да зададете опцията SecRuleEngine на On .

За това изпълнете следната команда:

 sudo mv /etc/modsecurity/modsecurity.conf- препоръчано /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf 

Добавете / редактирайте следния ред:

 SecRuleEngine включен 

Сега рестартирайте Apache, за да влязат промените в сила.

Има много правила за сигурност, които идват с Modesecurity (наречен Core Rule Set), които се намират в директорията "/ usr / share / modsecurity-crs". Сега трябва да активирате тези правила, за да работи с Apache.

Можете да направите това, като редактирате файла "/etc/apache2/mods-enabled/security2.conf".

 sudo nano /etc/apache2/mods-enabled/security2.conf 

Добавете / редактирайте следния ред:

 Включване на опцията /etc/modsecurity/*.conf Включване на опцията "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf 

Запишете файла и рестартирайте Apache.

Изключване от страна на сървъра включва и изпълнение на CGI.

Препоръчва се да се забрани включването на сървъра и изпълнението на CGI, ако не е необходимо.

За да направите това, трябва да редактирате главния конфиг файл на Apache.

 sudo nano /etc/apache2/apache2.conf 

Добавете / редактирайте следния ред:

 Опции -FollowSymLinks -Включва -ExecCGI AllowOverride None Изисква всички предоставени 

Запишете файла и рестартирайте Apache.

Можете да направите това и за конкретна директория. Например, за да изключите сървърната страна включва и cgi файл изпълнения за "/ var / www / html / webdir1" директория, ddd / редактиране на следния ред:

 Опции -Включва -ExecCGI 

Запишете файла и рестартирайте Apache.

Ограничаване на големите заявки

По подразбиране Apache няма ограничение за размера на HTTP заявката. Това ще позволи на атакуващия да изпрати голямо количество данни. Apache има няколко директиви, които ви позволяват да зададете подходящ размер на заявката. Това ще защити вашия уеб сървър от атака на отказ от услуга.

Можете да зададете стойността от 0 (неограничен) до 2147483647 (2GB) в главния конфиг файл на Apache.

Например, ограничете размера на заявката на директорията "/ var / www / html / webdir1" на 200K.

 sudo nano /etc/apache2/apache2.conf 

Добавете / редактирайте следния ред:

 LimitRequestBody 204800 

Запишете файла и рестартирайте Apache.

Забраняване на браузъра извън корена на документа

Препоръчва се Apache да има достъп само до основната директория на документа. Можете да защитите основната директория (/), като настроите следния ред:

 sudo nano /etc/apache2/apache2.conf 

Добавете / редактирайте следния ред:

 Опции Няма Заповед отхвърли, позволи Отричане от всички 

Ето какво прави кодът:

  • Options None : Това ще изключи всички опции.
  • Order deny, allow : Order deny, allow ред, в който се прилагат командите за разрешаване и отхвърляне.
  • Deny from all : Това ще отхвърли искане от всички за основната директория.

Запишете файла и рестартирайте Apache.

Поддържайте Apache до дата

Новите актуализации на Apache ще съдържат нови поправки и корекции, които ще намалят уязвимостта на вашия Apache сървър, затова се препоръчва да използвате последната версия на сървъра на Apache.

Можете да актуализирате Apache до най-новата версия, като използвате следната команда:

 sudo apt-get инсталирате apache2 -reinstall 

заключение

Надявам се, че тази публикация ще ви помогне да защитите вашия Apache сървър. Ще намерите още съвети и трикове за предварително сигурност, за да защитите сървъра на Apache в следващата ми публикация. Ако имате някакви въпроси, можете да коментирате по-долу.