Что нового

Article [1] Apache: 4 Шага к безопасности

SecreaD 0

SecreaD

Команда форума
27.11.2019
14
52
Приветствую уважаемую аудиторию форума Protey.NET!

bngfxfgn.png

Если вас беспокоит безопасность вашего сервера Apache, эти четыре совета помогут вам обеспечить безопасность этой системы.

Apache - один из наиболее широко используемых веб-серверов на планете, и с его популярностью возникает необходимость обеспечить его безопасность. Хотя платформа, на которой чаще всего размещается Apache (Linux), обладает уровнем безопасности, которого нет на многих других платформах, это не означает, что вы должны установить и забыть о веб-сервере с открытым исходным кодом. Учитывая, что потребность в безопасности находится на небывало высоком уровне, вы должны сделать все возможное, чтобы обезопасить установку Apache2 из коробки.

Четыре совета, которые повышают безопасность вашей установки Apache:

1) Запускайте только необходимые модули


По умолчанию Apache2 включает ряд модулей, которые могут вам не понадобиться (только вы можете решать, какие модули должны работать на вашем сервере). Но как узнать, какие модули работают? И если вы захотите отключить один или два модуля, как предотвратить запуск ненужных модулей?

Во-первых, вам нужно выяснить, какие модули включены в вашей системе.
Я продемонстрирую, как это сделать при установке сервера Apache2 на Ubuntu 16.04

Откройте окно терминала и выполните команду
Код:
sudo ls /etc/apache2/mods-enabled/
hjfhjfthj.png
Apache2 предлагает удобный инструмент для отключения модулей. Допустим, вы хотите отключить модуль autoindex. Чтобы предотвратить загрузку модуля autoindex, вы должны ввести команду:
Код:
sudo a2dismod autoindex
После выполнения команды вам будет предложено разрешить отключение модуля, введя фразу «Yes, do as I say!».

gtrheryr.png

Примечание. Это предупреждение будут выдавать только те модули, которые могут отрицательно повлиять на работоспособность сервера. Допустим, вы хотите отключить модуль status; вы выполните команду sudo a2dismod status, и модуль будет отключен.

После отключения необходимых модулей перезапустите Apache с помощью следующей команды:
Код:
sudo service apache2 restart
2) Включите ModSecurity

ModSecurity - это бесплатный брандмауэр веб-приложений, который работает с Apache. Он использует гибкий механизм правил для выполнения простых и сложных операций для предотвращения атак, таких как внедрение SQL injection, cross-site scripting, Trojans, bad user agents, session hijacking и многое другое.

Вы должны понимать, что ModSecurity невероятно сложен и может изменить способность вашего сайта обслуживать страницы. Было бы разумно полностью понять ModSecurity, прежде чем включать эту функцию. Для получения дополнительной информации ознакомьтесь с официальной документацией ModSecurity на Github.

По умолчанию ModSecurity не установлен. Хотя процесс установки довольно прост. Чтобы установить ModSecurity, выполните следующие действия:

• Откройте окно терминала на вашем сервере Apache и выполните команду
Код:
sudo apt-get install libapache2-modsecurity
• Переименуйте образец файла конфигурации с помощью команды
Код:
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
• Откройте созданный файл для редактирования командой
Код:
sudo nano /etc/modsecurity/modsecurity.conf
• Добавьте строку SecRuleEngine On в раздел инициализации механизма правил

• Перезапустите Apache с помощью команды
Код:
sudo service apache2 restart
Теперь вам нужно отредактировать файл конфигурации ModSecurity. Откройте этот файл с помощью команды
Код:
sudo nano /etc/apache2/mods-enabled/security2.conf
и добавьте следующие строки:

Код:
IncludeOptional "/usr/share/modsecurity-crs/*.conf"
IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf
Сохраните и закройте этот файл и перезапустите Apache с помощью команды:

Код:
sudo service apache2 restart
Если вы столкнетесь с ошибками на своем сайте, вам нужно будет просмотреть /var/log/apache2/error.log и найти ошибки с такими записями, как id "960017" (что является Forbidden 403 error). Как только вы обнаружите это, вы можете отключить эти правила (по идентификатору), используя параметр SecRuleRemoveById в своих директивах Apache.

3) Ограничьте большие запросы:

По умолчанию Apache не устанавливает ограничения на размер принимаемых HTTP-запросов; это может привести к тому, что злоумышленник отправит большое количество данных, чтобы остановить сервер. Это настраивается для каждого каталога отдельно.

Скажем, например, вы создали директиву для обслуживания папки /var/www/clients. Эта директива может выглядеть следующим образом:

Код:
Alias /clients "/var/www/clients"

<Directory /var/www/clients/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/clients
SetEnv HTTP_HOME /var/www/clients

</Directory>
Предположим, вы хотите заблокировать этот каталог для запросов размером не более 100 КБ - вы должны добавить следующую строку в поле AllowOverride All :

Код:
LimitRequestBody 102400
Сохраните и закройте этот файл. Перезагрузите Apache (вам не нужно делать полный перезапуск) с помощью команды:

Код:
sudo service apache2 reload
4) Ограничьте просмотр определенными каталогами:

Вы не хотите, чтобы пользователи могли просматривать файлы за пределами определенных каталогов.

Допустим, у вас есть сайт Protey, обслуживаемый вашим сервером Apache, и это все, что вы хотите, чтобы кто-либо мог видеть; вам необходимо запретить доступ к корню документа, а затем разрешить доступ к каталогу Protey. Для целей этого примера мы скажем, что корень документа - это /var/www/, а каталог Protey - это /var/www/protey .

Сначала мы должны открыть /etc/apache2/apache2.conf . Найдите корневую директиву документа (она начинается с <Directory /> ) и измените эту директиву, чтобы отразить следующее:

Код:
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
Сохраните и закройте этот файл. Откройте файл конфигурации для Protey в /etc/apache2/sites-enabled и добавьте следующее в <Directory /var/www/protey/> :

Код:
Order Allow,Deny
Allow from all
Перезагрузите Apache с помощью команды sudo service apache2 reload. Теперь вы должны получить предупреждение Forbidden при попытке просмотреть корень документа, и ваш сайт Protey должен работать должным образом.

Продолжайте исследовать
Есть множество способов защитить ваш сервер Apache. Начните с этих четырех советов (не забудьте провести больше исследований о ModSecurity), а затем найдите еще больше способов защитить ваш веб-сервер от атак и "любопытных" пользователей.

Спасибо за внимание!
 
Последнее редактирование модератором:
Верх Низ