Apache — один из наиболее широко используемых и популярных веб-серверов в мире, на нем работает почти 40 % всех серверов в мире. Если вы веб-мастер или администратор, обслуживающий сервер Apache, вам важно знать, как защитить Apache и предотвратить его взлом. В этой статье мы опишем несколько советов и приемов, которые можно использовать для защиты вашего сервера Apache.
Примечание. Для этого руководства мы используем Ubuntu 14.04.
Установить и обновить Apache
Сначала вам необходимо обновить и установить Apache в вашу систему.
Для этого выполните следующую команду:
sudo apt-get update sudo apt-get install apache2
Скрыть версию Apache
По умо
Contents
- 1 Установить и обновить Apache
- 2 Скрыть версию Apache
- 3 Отключить просмотр кат
Скрыть версию Apache
- 4 Отключить ненужные модули
- 5 Используйте ModSecurity
- 6 Отключить включение на стороне сервера и выполнение CGI.
- 7 Ограничение больших запросов
- 8 Запретить просмотр за пределами корня документа
- 9 Поддерживайте актуальность Apache
- 10 Заключение
Установить и обновить Apache
ервера Apache, установленного в вашей системе, с названием операционной системы вашего сервера.На скриншоте выше вы можете увидеть версию Apache и операционную систему, установленную на вашем сервере. Это может быть серьезной проблемой безопасности вашего веб-сервера. Чтобы скрыть эту информацию, вам необходимо отредактировать основной файл конфигурации Apache («/etc/apache2/conf-enabled/security.conf»).
sudo nano /etc/apache2/conf-enabled/security.conf
Добавьте/измените следующую строку:
ServerSignature Off ServerTokens Prod
Сохраните файл и перезапустите службу Apache.
sudo /etc/init.d/apache2 restart
Отключить просмотр каталогов и символические ссылки
По умолчанию на сервере Apache включен список каталогов. В списке каталогов отображается весь каталог со всеми файлами с сервера Apache. Если эта опция включена, злоумышленник сможет легко просмотреть любой файл, проанализировать его и получить конфиденциальную информацию о приложении.
Вы можете увидеть список каталогов по умолчанию на изображении ниже.
Вы можете отключить этот параметр, отредактировав файл конфигурации Apache.
sudo nano /etc/apache2/apache2.conf
Добавьте/измените следующую строку:
Options -FollowSymLinks
AllowOverride None
Require all granted
Примечание. В приведенном выше коде предполагается, что ваши веб-страницы обслуживаются из папки «/var/www/html». Е
Отключить просмотр каталогов и символические ссылки
мените путьDirectory
в приведенном выше коде.
Строка Options -FollowSymLinks
также отключает символические ссылки. Если вы хотите включить символические ссылки, удалите знак «-» перед FollowSymLinks
, чтобы оно стало Options FollowSymLinks.
Сохраните файл и перезапустите сервер Apache.
После этого попробуйте зайти в Интернет в браузере, и вы получите запрещенную ошибку, показанную на изображении ниже.
Отключить ненужные модули
По умолчанию Apache поставляется с несколькими установленными модулями, которые не нужны для обычного использования. Рекомендуется обрезать жир и отключить все ненужные модули. Вы можете перечислить все включенные модули на вашем сервере с помощью следующей команды:
sudo ls /etc/apache2/mods-enabled/
Выходные данные будут отображены, как показано на рисунке ниже.
Из перечисленных выше модулей некоторые модули, такие как «статус» и «автоиндекс», включены, но не нужны.
Вы можете отключить эти модули с помощью следующей команды:
sudo a2dismod autoindex sudo a2dismod status sudo /etc/init.d/apach2 restart
Используйте ModSecurity
Mod Security — это бесплатный модуль Apache, используемый для защиты вашего веб-сервера от различных атак, таких как SQL-инъекция, межсайтовый скриптинг, перехват сеанса, перебор и множество других эксплойтов. Оно также позволяет отслеживать трафик в режиме реального времени.
Вы можете установить мод Security с помощью следующей команды:
sudo apt-get install libapache2-modsecurity
Чтобы проверить, запущен ли модуль mod_security, используйте следующую команду:
sudo apachectl -M | grep --color security
Изображение, показанное ниже, указывает на то, что модуль загружен.
Отключить ненужные модулиty, вам необходимо переименовать и отредактировать рекомендуемый файл конфигурации mod_security и установить для параметра SecRuleEngine
значение On
.
Для этого выполните следующую команду:
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf
Добавьте/измените следующую строку:
SecRuleEngine On
Теперь перезапустите Apache, чтобы изменения вступили в силу.
В состав Modesecurity входит множество правил безопасности (называемых базовым набором правил), которые расположены в каталоге «/usr/share/modsecurity-crs». Теперь вам нужно включить эти правила, чтобы они работали с Apache.
Вы можете сделать это, отредактировав файл «/etc/apache2/mods-enabled/security2.conf».
sudo nano /etc/apache2/mods-enabled/security2.conf
Добавьте/измените следующую строку:
IncludeOptional /etc/modsecurity/*.conf IncludeOptional "/usr/share/modsecurity-crs/*.conf" IncluИспользуйте ModSecurity
security-crs/base_rules/*.conf
Сохраните файл и перезапустите Apache.
Отключить включение на стороне сервера и выполнение CGI.
Рекомендуется отключить включение на стороне сервера и выполнение CGI, если в этом нет необходимости.
Для этого вам необходимо отредактировать основной файл конфигурации Apache.
sudo nano /etc/apache2/apache2.conf
Добавьте/измените следующую строку:
Options -FollowSymLinks -Includes -ExecCGI AllowOverride None Require all granted
Сохраните файл и перезапустите Apache.
Вы также можете сделать это для определенного каталога. Например, чтобы отключить включение на стороне сервера и выполнение файлов cgi для каталога «/var/www/html/webdir1», ddd/отредактируйте следующую строку:
Options -Includes -ExecCGI
<
Сохраните файл и перезапустите Apache.
Ограничение больших запросов
По умолчанию Apache не имеет ограничений на размер HTTP-запроса. Это позволит злоумышленнику отправить большой объем данных. В Apache есть несколько директив, позволяющих установить правильный размер запроса. Это защитит ваш веб-сервер от атаки типа «отказ в обслуживании».
Вы можете установить значение от 0 (неограниченно) до 2147483647 (2 ГБ) в основном файле конфигурации Apache.
Например, ограничьте размер запроса каталога «/var/www/html/webdir1» до 200 КБ.
sudo nano /etc/apache2/apache2.conf
Добавьте/измените следующую строку:
LimitRequestBody 204800
Сохраните файл и перезапустите Apache.
Запретить просмотр за пределами корня документа
Рекомендуется, чтобы Apache имел доступ только к корневому каталогу документа. Вы можете защитить корневой каталог (/), установив следующую строку:
sudo nano /etc/apache2/apache2.conf
Добавьте/измените следующую строку:
Options None Order deny,allow Deny from all
Вот что делает код:
Options None
: все параметры будут отключены.Order deny,allow
: порядок применения команд разрешения и запрета.Deny from all
: это отклонит все запросы к корневому каталогу.
Сохраните файл и перезапустите Apache.
Поддерживайте актуальность Apache
Новые обновления Apache будут содержать новые исправления и исправления, которые уменьшат уязвимость вашего сервера Apache, поэтому рекомендуется использовать последнюю версию сервера Apache.
Вы можете обновить Apache до последней версии, используя следующую команду:
sudo apt-get install apache2 --reinstall
Заключение
Надеюсь, этот пост поможет вам защитить ваш сервер Apache. Дополнительные советы и рекомендации по обеспечению безопасности сервера Apache вы найдете в моем следующем посте. Если у вас есть вопросы, оставляйте комментарии ниже.