14-шаговый контрольный список лучших практик обеспечения безопасности Apache (электронная книга в формате PDF включена)

Опубликовано: 2017-11-22

железная дорогаfx / stock.adobe.com

Apache в настоящее время остается ведущим программным обеспечением для веб-серверов в мире с долей рынка 45,8%. В итоге это около 80 миллионов веб-сайтов, веб-серверы которых работают на Apache. Довольно впечатляюще, правда?

Apache — это программное обеспечение веб-сервера с открытым исходным кодом, которое существует с 1995 года, и одно это говорит красноречивее всяких слов о его надежности и долговечности. Кроме того, есть известные веб-сайты, работающие на серверах Apache: Apple, Adobe и Paypal — это лишь некоторые из крупных брендов, которые доверяют свои веб-сайты Apache.

Конечно, это не делает Apache на 100% безопасным, поскольку ни одно программное обеспечение никогда не будет на 100% защищено от хакеров, особенно когда это такая известная и надежная платформа (как WordPress). Но если вы ищете электронную книгу, модуль, руководство, учебное пособие, структуру или контрольный список безопасности веб-сервера в формате PDF по безопасности Apache, вы попали по адресу.

Если вы хотите усилить безопасность Apache или у вас есть какие-либо проблемы с безопасностью Apache или вы пытаетесь исправить одну или две уязвимости, следующий контрольный список предоставит вам 14 передовых методов обеспечения безопасности, которые можно добавить в план безопасности вашего веб-сайта.

Наша команда в WP Buffs помогает владельцам веб-сайтов, партнерам агентств и партнерам-фрилансерам внедрять лучшие практики безопасности Apache. Если вам нужно, чтобы мы управляли 1 веб-сайтом или поддерживали 1000 клиентских сайтов, мы поможем вам.

Полный контрольный список лучших практик обеспечения безопасности Apache

Для тех из вас, кто хочет по-настоящему укрепить свой веб-сайт WordPress, крайне важно обеспечить безопасность Apache, как и любого другого программного обеспечения, которое подключается к вашему веб-сайту и обеспечивает его работу. Если этого не сделать, это может даже повлиять на скорость вашего сайта. Итак, вот как вы это сделаете:

1. Обновите Apache

Знаете ли вы, что WordPress, а также любые установленные вами плагины и темы необходимо регулярно обновлять? То же самое делает и ваш веб-сервер.

Если вы обеспокоены тем, что ваш сайт не работает на самой последней версии Apache, вы можете проверить это с помощью командной строки httpd -v. Если выведенная версия не соответствует текущей версии Apache, вы можете обновить ее следующим образом:

# yum update httpd
# apt-get install [add Apache version here]c

2. Включите журналы

Если вы работаете с управляемым хостинг-провайдером WordPress, он позаботится о мониторинге вашего сервера и WordPress на предмет уязвимостей и других предупреждающих знаков. Тем не менее, вам также следует следить за трафиком вашего сервера.

С помощью Apache вы можете получить доступ к этому журналу активности, обновив модуль mod_log_config. По сути, он расскажет вам, что делают пользователи, когда они касаются вашего сервера.

3. Получите SSL-сертификат

Поскольку ваш веб-сервер обрабатывает все запросы браузера/сервера к вашему веб-сайту, важно защитить его с помощью сертификата SSL. Хорошей новостью является то, что теперь вы можете получить сертификат SSL бесплатно. Сейчас это важнее, чем когда-либо, поэтому, если у вас нет технической возможности установить это самостоятельно, любой качественный хостинг-провайдер сможет сделать это за вас.

4. Добавьте брандмауэр

В дополнение к дополнительной защите шифрования SSL ваш веб-сервер должен быть защищен брандмауэром. Для Apache это означает включение ModSecurity.

Чтобы установить его на свой сервер, вы можете выполнить следующее:

# yum install mod_security
# /etc/init.d/httpd restart

После включения брандмауэра он предотвратит проникновение на ваш сервер ряда вредоносных действий, таких как внедрение SQL, перехват сеанса и межсайтовый скриптинг.

5. Установите mod_evasive

Mod_evasive — это модуль, который защитит ваш сервер Apache от грубой силы и DDoS-атак, поэтому убедитесь, что он также включен. Он будет заносить в черный список одновременные и неудачные попытки входа в систему, а также отслеживать вредоносные IP-адреса.

6. Установите ограничения HTTP

Распределенные атаки типа «отказ в обслуживании» (DDoS) довольно легко заблокировать, если вы знаете, за какими действиями следует следить. Поскольку DDoS, как правило, происходит в результате неоднократного попадания на ваш сервер больших запросов, ваша цель должна состоять в том, чтобы установить ограничения, которые предотвратят это.

Вот некоторые из ограничений, которые вы захотите установить:

  • KeepAlive=вкл.
  • KeepAliveTimeout
  • Тело лимита запроса
  • Лимитреквестфилдс
  • Лимитреквестфилдсайз
  • Лимитрекуестлайн
  • LimitXMLRequestBody
  • Максклиенты
  • Макс.KeepAliveRequests
  • Максреквестворкерс
  • ЗапросReadTimeout
  • Таймаут

7. Удалите неиспользуемые модули.

Оставляя неиспользуемые, необслуживаемые или просроченные модули на сервере Apache, вы оставляете свой сайт открытым для хакеров через точку входа, которой даже не обязательно там быть.

Первое, что вам следует сделать, это выяснить, какие модули на самом деле активны. Это можно сделать с помощью команды LoadModule. После того, как вы просмотрели список и определили, какие модули вам не нужны, просто добавьте символ «#» перед каждым модулем, который вы хотите деактивировать, а затем перезапустите.

8. Изменить пользователя и группу по умолчанию

Настройки по умолчанию и пользователи, оставленные в любом программном обеспечении, в целом являются плохой практикой безопасности. Причина этого проста: если вы используете имя пользователя или группы Apache по умолчанию, вы можете быть уверены, что хакеры тоже знают, что это за имена по умолчанию.

Вместо того, чтобы оставлять значения по умолчанию, вам следует создать новую непривилегированную учетную запись для запуска процессов Apache. Используя команды #groupadd и #useradd, вы можете установить новые объекты. Просто не забудьте обновить свой httpd.conf, указав новые имена пользователей и групп, которые вы создали.

9. Заблокировать доступ к каталогу

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

Чтобы поставить полную блокировку, используйте следующую команду:

<Directory "/">
Require all denied
</Directory>

Если вы хотите разрешить доступ определенным пользователям, вы можете сделать это следующим образом:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

Если вы хотите разрешить доступ к определенным папкам в каталоге, вы можете сделать это следующим образом:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

Вы также можете просмотреть репозиторий модулей Apache для дальнейшей настройки прав доступа пользователей.

10. Не публикуйте каталог

Знаете ли вы, что если на вашем сервере нет индексного файла, пользователи смогут видеть весь контент, который вы сохранили в корневом каталоге? Это явно нехорошо, поэтому вам нужно отключить этот параметр по умолчанию, выполнив следующие действия:

<Directory /var/www/html>
Options -Indexes
</Directory>

11. Скрыть сведения о сервере

Поскольку Apache — это программное обеспечение с открытым исходным кодом, сведения об используемой версии легко доступны, если эти настройки не отключены на стороне сервера. Поскольку хакеры могут использовать эту конфиденциальную информацию, чтобы выяснить, как проникнуть на ваш сервер, вам следует заблокировать эту информацию.

Есть две вещи, которые вы захотите отключить:

  • ServerSignature – версия Apache.
  • ServerTokens — включая версию ОС, а также другие конфиденциальные сведения о сервере.

Эту информацию другие пользователи могут найти, просто просмотрев страницу с ошибкой на вашем веб-сайте, поэтому очень важно заблокировать ее показ. Для этого обновите httpd.conf следующим образом:

ServerSignature Off
ServerTokens Prod

12. Скрыть ETag

К сожалению, заголовок ETag в Apache содержит ряд конфиденциальных сведений о вашем сервере. Очевидно, что все, что передает такую ​​информацию внешнему миру, должно быть скрыто. Кроме того, если у вас есть веб-сайт электронной коммерции, вам придется скрыть это, чтобы обеспечить совместимость с PCI.

Для этого добавьте следующую директиву в ваш httpd.conf:

FileETag None

13. Отключите переопределение .htaccess.

.htaccess — важный файл для любого веб-сайта WordPress. Вот почему вам необходимо заблокировать его и гарантировать, что никто другой не сможет отменить ваши настройки конфигурации.

Чтобы отключить это, добавьте следующее в httpd.conf в корне:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14. Отключите SSI и CGI.

Файлы с включенной поддержкой серверной стороны (SSI) могут создать на вашем сайте ряд проблем с безопасностью, если их не проверить. То же самое касается сценариев CGI. Чтобы ни один из них не позволил хакерам перегрузить ваш сервер или внедрить вредоносные сценарии в ваш код, не забудьте отключить их или ограничить их действия с помощью директивы Options.

Вот некоторые значения параметров, которые вы можете использовать:

  • Опции Все
  • Опции Включает NOEXEC
  • Опции - Включает
  • Опции -ExecCGI
  • Опции -Включает -ExecCGI
  • Опции

Уход за вашим сервером Apache

Чтобы повысить безопасность вашего веб-сайта, обратите особое внимание на сервер Apache. Такие проблемы, как неправильная конфигурация сервера и оставление настроек по умолчанию, могут подвергнуть ваш сайт риску так же, как и необновленное ядро ​​или небезопасные методы кодирования PHP.

Хотите оставить свой отзыв или присоединиться к обсуждению?Добавляйте свои комментарии в Twitter.