Руководство по усилению и безопасности веб-сервера Apache

Практическое руководство по защите и укреплению Apache HTTP Server.


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

Наличие конфигурации по умолчанию предоставляет много конфиденциальной информации, которая может помочь хакеру подготовиться к атаке на приложения. Большинство атак на веб-приложения осуществляются с помощью атак XSS, утечки информации, управления сеансами и SQL-инъекций, которые связаны со слабым программным кодом и санацией инфраструктуры веб-приложений..

Интересное исследование Позитивные Технологии показывает, что 52% отсканированных приложений имели высокие уязвимости.

В этой статье я расскажу о некоторых лучших практиках защиты HTTP-сервера Apache на платформе Linux.

Следующие тестируются на версии Apache 2.4.x.

  • Это предполагает, что вы установили Apache на платформу UNIX. Если нет, вы можете пройти через руководство по установке.
  • В этом руководстве я буду называть каталог установки Apache / opt / apache как $ Web_Server..
  • Рекомендуется сделать резервную копию существующего файла конфигурации перед любыми изменениями..

Зрительская аудитория

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

Достоверное знание веб-сервера Apache & UNIX команда обязательна.

Ноты

Вам требуется какой-то инструмент для проверки заголовков HTTP для проверки некоторых реализаций. Есть два способа сделать это.

  1. Используйте встроенные в браузер инструменты разработчика для проверки заголовков HTTP. Обычно это на вкладке Сеть
  2. Используйте онлайн-инструмент проверки заголовка ответа HTTP

Удалить баннер версии сервера

Я бы сказал, что это одно из первых соображений, поскольку вы не хотите показывать, какую версию веб-сервера вы используете. Разоблачение версии означает, что вы помогаете хакеру ускорить процесс разведки.

Конфигурация по умолчанию предоставит версию Apache и тип ОС, как показано ниже.

  • Перейдите в папку $ Web_Server / conf
  • Измените httpd.conf с помощью редактора vi
  • Добавьте следующую директиву и сохраните httpd.conf

ServerTokens Prod
ServerSignature Off

  • Перезапустите Apache

ServerSignature удалит информацию о версии со страницы, созданной Apache.

ServerTokens изменит заголовок только на рабочий, то есть Apache

Как вы можете видеть ниже, версия & Информация об ОС исчезла.

Отключить просмотр каталога

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

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

  • Перейдите в каталог $ Web_Server / htdocs
  • Создайте папку и несколько файлов внутри

# тест mkdir
# коснитесь привет
# Прикоснись привет

Теперь давайте попробуем получить доступ к Apache HTTP: // локальный / тест

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

  • Перейдите в каталог $ Web_Server / conf
  •  Откройте httpd.conf, используя vi
  •  Поиск каталога и изменение директивы опций на None или –Indexes

Опции -Индексы

(или)

Варианты Нет

  • Перезапустите Apache

Примечание: если у вас есть несколько директив Directory в вашей среде, вы должны рассмотреть возможность сделать то же самое для всех.

Теперь давайте попробуем получить доступ к Apache HTTP: // локальный / тест

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

Etag

Это позволяет удаленным злоумышленникам получать конфиденциальную информацию, такую ​​как номер инода, составная граница MIME и дочерний процесс, через заголовок Etag..

Чтобы предотвратить эту уязвимость, давайте реализуем ее, как показано ниже. Это необходимо исправить для соответствия PCI.

  • Перейдите в каталог $ Web_Server / conf
  • Добавьте следующую директиву и сохраните httpd.conf

FileETag Нет

  • Перезапустите Apache

Запустите Apache из непривилегированного аккаунта

Установка по умолчанию выполняется от имени nobody или daemon. Использование отдельного непривилегированного пользователя для Apache – это хорошо.

Идея здесь состоит в том, чтобы защитить другие сервисы, работающие в случае любой дыры в безопасности..

  • Создайте пользователя и группу под названием apache

# groupadd apache
# useradd –G apache apache

  • Изменить владельца каталога установки Apache на вновь созданного непривилегированного пользователя

# chown –R apache: apache / opt / apache

  •  Перейти к $ Web_Server / conf
  •  Измените httpd.conf, используя vi
  •  Поиск пользователя & Директива группы и изменение как непривилегированная учетная запись apache

Пользователь apache
Группа apache

  •  Сохраните httpd.conf
  •  Перезапустите Apache

grep для запуска процесса http и обеспечения его работы с пользователем apache

# ps –ef | grep http

Вы должны увидеть, что один процесс выполняется с правами root. Это потому, что Apache прослушивает порт 80 и должен запускаться с правами root.

Защита двоичного файла и разрешения каталога конфигурации

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

  • Перейдите в каталог $ Web_Server
  • Изменить разрешение папки bin и conf

# chmod –R 750 bin conf

Защита системных настроек

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

Это должно быть сделано на корневом уровне.

  • Перейдите в каталог $ Web_Server / conf
  •  Откройте httpd.conf, используя vi
  •  Поиск каталога на корневом уровне

Опции -Индексы
AllowOverride Нет

  •  Сохраните httpd.conf
  •  Перезапустите Apache

Методы HTTP-запроса

Протокол HTTP 1.1 поддерживает множество методов запроса, которые могут не требоваться, и некоторые из них имеют потенциальный риск.

Как правило, вам могут понадобиться методы запросов GET, HEAD, POST в веб-приложении, которые можно настроить в соответствующей директиве Directory..

Поддержка конфигурации по умолчанию OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT в протоколе HTTP 1.1.

  •  Перейдите в каталог $ Web_Server / conf
  •  Откройте httpd.conf, используя vi
  • Найдите каталог и добавьте следующее

отрицать все

  • Перезапустите Apache

Отключить трассировку HTTP-запроса

По умолчанию метод трассировки включен на веб-сервере Apache.

Включение этого параметра может позволить атаку Cross Site Tracing и потенциально дать хакеру возможность украсть информацию из cookie. Давайте посмотрим, как это выглядит в конфигурации по умолчанию.

  •  Сделайте IP-адрес telnet-сервера с портом прослушивания
  •  Сделайте запрос TRACE, как показано ниже

#telnet localhost 80
Попытка 127.0.0.1…
Подключено к localhost.
Escape-символ ‘^]’.
TRACE / HTTP / 1.1 Хост: тест
HTTP / 1.1 200 ОК
Дата: сб, 31 августа 2013 г. 02:13:24 GMT
Сервер: Apache
Передача-кодировка: чанки
Тип контента: сообщение / http 20
TRACE / HTTP / 1.1
Хост: тест
0
Соединение прервано внешним хостом.
#

Как вы могли видеть в приведенном выше запросе TRACE, он ответил на мой запрос. Давайте отключим и протестируем.

  •  Перейдите в каталог $ Web_Server / conf
  • Добавьте следующую директиву и сохраните httpd.conf

TraceEnable off

  •  Перезапустите Apache

Сделайте IP-адрес веб-сервера telnet с портом прослушивания и сделайте запрос TRACE, как показано ниже

#telnet localhost 80
Попытка 127.0.0.1…
Подключено к localhost.
Escape-символ ‘^]’.
TRACE / HTTP / 1.1 Хост: тест
HTTP / 1.1 405 метод не разрешен
Дата: сб, 31 августа 2013 02:18:27 GMT
Сервер: Apache Разрешить: Content-Length: 223Content-Type: text / html; кодировка = изо-8859-1
405 метод не разрешен

метод не разрешен

Запрашиваемый метод TRACE не разрешен для URL /.

Соединение прервано внешним хостом.
#

Как вы могли видеть в приведенном выше запросе TRACE, он заблокировал мой запрос с помощью метода HTTP 405, не разрешенного.

Теперь этот веб-сервер не допускает запрос TRACE и помощь в блокировании атаки Cross Site Tracing..

Установить cookie с флагом HttpOnly и Secure

Вы можете смягчить большинство распространенных атак межсайтового скриптинга, используя HttpOnly и Secure flag в cookie. Не имея HttpOnly и Secure, можно украсть или манипулировать сеансом веб-приложения и файлами cookie, и это опасно.

  •  Убедитесь, что mod_headers.so включен в вашем httpd.conf
  •  Перейдите в каталог $ Web_Server / conf
  •  Добавьте следующую директиву и сохраните httpd.conf

Редактировать заголовок Set-Cookie ^ (. *) $ $ 1; HttpOnly; Безопасный

  •  Перезапустите Apache

Clickjacking Attack

Clickjacking – это известные уязвимости веб-приложений.

  •  Убедитесь, что mod_headers.so включен в вашем httpd.conf
  •  Перейдите в каталог $ Web_Server / conf
  •  Добавьте следующую директиву и сохраните httpd.conf

Заголовок всегда добавляет X-Frame-Options SAMEORIGIN

  •  Перезапустите Apache

X-Frame-Options также поддерживают еще две опции, которые я объяснил здесь.

Включение на стороне сервера

Включение на стороне сервера (SSI) может увеличить нагрузку на сервер. Если вы используете совместно используемую среду и веб-приложения с интенсивным трафиком, рассмотрите возможность отключения SSI, добавив директиву «Включает в параметры»..

Атака SSI позволяет использовать веб-приложение, внедряя сценарии в HTML-страницы или выполняя коды удаленно.

  • Перейдите в каталог $ Web_Server / conf
  •  Откройте httpd.conf, используя vi
  •  Поиск в каталоге и добавление включений в директиву параметров

Опции – Индексы – Включает
Заказать разрешить, отказать разрешить от всех

  • Перезапустите Apache

Примечание: если у вас есть несколько директив Directory в вашей среде, вы должны рассмотреть возможность сделать то же самое для всех.

X-XSS Защита

Защита межсайтового скриптинга (XSS) может быть обойдена во многих браузерах. Вы можете применить эту защиту для веб-приложения, если оно было отключено пользователем. Это используется большинством гигантских веб-компаний, таких как Facebook, Twitter, Google и т. Д..

  • Перейдите в каталог $ Web_Server / conf
  • Откройте httpd.conf с помощью vi и добавьте следующую директиву Header

Набор заголовков X-XSS-Protection "1; Режим = Блок"

  •  Перезапустите Apache

Как видите, XSS-Protection внедряется в заголовок ответа..

Отключить протокол HTTP 1.0

Когда мы говорим о безопасности, мы должны защищать как можно больше. Так почему же мы используем более старую версию протокола HTTP, давайте отключим и их?

HTTP 1.0 имеет слабые стороны безопасности, связанные с перехватом сеансов. Мы можем отключить это с помощью модуля mod_rewrite.

  • Убедитесь, что модуль mod_rewrite загружен в файл httpd.conf
  •  Включите директиву RewriteEngine следующим образом и добавьте условие Rewrite, чтобы разрешить только HTTP 1.1

RewriteEngine On
RewriteCond% {THE_REQUEST}! HTTP / 1.1 $
RewriteRule. * – [F]

Настройка времени ожидания

По умолчанию время ожидания Apache составляет 300 секунд, что может стать жертвой медленной атаки Лориса и DoS. Чтобы уменьшить это, вы можете уменьшить значение тайм-аута до 60 секунд..

  • Перейдите в каталог $ Web_Server / conf
  • Откройте httpd.conf, используя vi
  •  Добавьте следующее в httpd.conf

Тайм-аут 60

SSL

Наличие SSL – это дополнительный уровень безопасности, который вы добавляете в веб-приложение. Однако конфигурация SSL по умолчанию приводит к определенным уязвимостям, и вы должны рассмотреть возможность настройки этих конфигураций..

Ключ SSL

Нарушение SSL-ключа сложно, но не невозможно. Это просто вопрос вычислительной мощности и времени..

Как вы, возможно, знаете, используя ПК эпохи 2009 года в течение 73 дней, вы можете перепроектировать 512-битный ключ.

Таким образом, чем длиннее ключ, тем сложнее взломать ключ SSL. Большинство гигантских веб-компаний используют 2048-битный ключ, как показано ниже, так почему бы нам?

  •  Outlook.com
  •  Microsoft.com
  •   Live.com
  •  Skype.com
  •  Apple.com
  •  Yahoo.com
  •  Bing.com
  •  Hotmail.com
  •  Twitter.com

Вы можете использовать OpenSSL для генерации CSR с 2048 бит, как показано ниже.

openssl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key

Это создаст CSR, который вам нужно будет отправить центр сертификации подписать это. Получив подписанный файл сертификата, вы можете добавить его в файл httpd-ssl.conf.

SSLCertificateFile # Сертификат подписан уполномоченным органом
SSLCertificateChainFile # Получатель сертификата, выданный полномочным органом
SSLCertificateKeyFile #Key файл, который вы создали выше

  • Перезапустите веб-сервер Apache и попробуйте получить доступ к URL с помощью https

Шифр SSL

SSL Cipher – это алгоритм шифрования, который используется в качестве ключа между двумя компьютерами через Интернет. Шифрование данных – это процесс преобразования простого текста в секретные зашифрованные коды..

В зависимости от конфигурации SSL-шифрования вашего веб-сервера будет выполняться шифрование данных. Поэтому важно настроить SSL Cipher, который является более сильным и не уязвимым.

  • Перейдите в папку $ Web_Server / conf / extra
  •  Измените директиву SSLCipherSuite в httpd-ssl.conf, как показано ниже, чтобы принимать только более высокие алгоритмы шифрования

SSLCipherSuite HIGH:! MEDIUM:! ANULL:! MD5:! RC4

  •  Сохраните файл конфигурации и перезапустите сервер Apache

Примечание: если в вашем отчете об аудите SSL есть много слабых шифров, вы можете быстро отклонить их добавление! с начала.

Отключить SSL v2 & v3

SSL v2 & В v3 есть много недостатков безопасности, и если вы работаете над тестированием на проникновение или соответствием PCI, вы должны закрыть поиск безопасности, чтобы отключить SSL v2 / v3.

Любое соединение SSL v2 / v3 может быть уязвимо для атаки «Человек посередине», которая может привести к подделке или раскрытию данных..

Давайте реализуем веб-сервер apache, чтобы принимать только последний TLS и отклонять запрос на соединение SSL v2 / v3.

  • Перейдите в папку $ Web_Server / conf / extra
  • Измените директиву SSLProtocol в httpd-ssl.conf, как показано ниже, чтобы принимать только TLS 1.2.+

SSLProtocol –ALL + TLSv1.2

Как только вы закончите настройку SSL, рекомендуется протестировать ваше веб-приложение с помощью онлайн-инструмента SSL / TLS Certificate, чтобы найти любую ошибку конфигурации.

Мод безопасности

Mod Security – это брандмауэр веб-приложений с открытым исходным кодом, который вы можете использовать с Apache.

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

Для обеспечения общей защиты веб-приложений в Основных правилах используются следующие методы:

  • Защита HTTP – обнаружение нарушений протокола HTTP и локальной политики использования
  • Поиск в черном списке в режиме реального времени – использует репутацию сторонних IP
  • Обнаружение вредоносных программ через Интернет – выявляет вредоносный веб-контент путем проверки по API безопасного просмотра Google.
  • Защита от отказа в обслуживании HTTP – защита от HTTP-затопления и медленных HTTP-атак DoS.
  • Общая защита от веб-атак – обнаружение общей атаки на безопасность веб-приложений
  • Автоматическое обнаружение – обнаружение ботов, сканеров, сканеров и других вредоносных действий на поверхности
  • Интеграция с AV Scanning для загрузки файлов – определяет вредоносные файлы, загруженные через веб-приложение.
  • Отслеживание конфиденциальных данных – отслеживает использование кредитной карты и блокирует утечки.
  • Троянская защита – обнаружение доступа к троянским коням.
  • Идентификация дефектов приложения – оповещения о неправильной конфигурации приложения.
  • Обнаружение и скрытие ошибок – маскировка сообщений об ошибках, отправленных сервером.

Скачать & Установка

Следующие предварительные условия должны быть установлены на сервере, где вы хотите использовать Mod Security с Apache. Если какой-либо из них не существует, компиляция Mod Security не удастся. Вы можете использовать yum install для Linux или Centos для установки этих пакетов.

  • Apache 2.x или выше
  • пакет libpcre
  •  пакет libxml2
  • пакет liblua
  • пакет libcurl
  •  Пакеты libapr и libapr-util
  •  Модуль mod_unique_id в комплекте с веб-сервером Apache

Теперь давайте загрузим последнюю стабильную версию Mod Security 2.7.5 с Вот

  • Перенесите скачанный файл в / opt / apache
  • Извлечь modsecurity-apache_2.7.5.tar.gz

# gunzip –c modsecurity-apache_2.7.5.tar.gz | tar xvf –

  • Перейти к извлеченной папке modsecurity-apache_2.7.5

# cd modsecurity-apache_2.7.5

  • Запустите скрипт настройки, включая путь apxs к существующему Apache

# ./configure –with-apxs = / opt / apache / bin / apxs

  • Compile & установить с помощью скрипта make

# делать
# сделать установку

  • После завершения установки вы увидите mod_security2.so в папке модулей в / opt / apache

На этом мы завершаем, вы установили модуль Mod Security на существующий веб-сервер Apache..

конфигурация

Чтобы использовать функцию безопасности модов с Apache, мы должны загрузить модуль безопасности модов в httpd.conf. Модуль mod_unique_id является обязательным условием для безопасности мода.

Этот модуль предоставляет переменную среды с уникальным идентификатором для каждого запроса, который отслеживается и используется Mod Security..

  • Добавьте следующую строку, чтобы загрузить модуль для Mod Security в httpd.conf и сохранить файл конфигурации

LoadModule unique_id_module modules / mod_unique_id.so
LoadModule security2_module modules / mod_security2.so

  •  Перезапустите веб-сервер Apache

Мод безопасности теперь установлен!

Следующее, что вам нужно сделать, это установить основное правило Mod Security, чтобы в полной мере использовать его возможности..

Последнее основное правило можно скачать по ссылке, которая является бесплатной. https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • Скопируйте загруженное ядро ​​zip в папку / opt / apache / conf
  • Распакуйте файл основного правила
  • Вы можете переименовать папку во что-то короткое и легко запоминающееся. В этом примере я переименую в crs.
  • Перейдите в папку crs и переименуйте modsecurity_crs10_setup.conf.example в modsecurity_crs10_setup.conf

Теперь давайте включим эти правила, чтобы он работал с веб-сервером Apache..

  •  Добавьте следующее в httpd.conf

Включить conf / crs / modsecurity_crs_10_setup.confInclude conf / crs / base_rules / *. Conf

В приведенной выше конфигурации мы загружаем основной файл конфигурации Mod Security modsecurity_crs_10_setup.conf и базовые правила base_rules / *. Conf, предоставляемые основными правилами Mod Security для защиты веб-приложений..

  •  Перезапустите веб-сервер Apache

Вы успешно настроили мод безопасности с Apache!

Отлично сработано. Теперь веб-сервер Apache защищен брандмауэром веб-приложения Mod Security..

Начиная

Давайте начнем с некоторых критических конфигураций в Mod Security, чтобы укрепить & безопасные веб-приложения.

В этом разделе мы сделаем все изменения конфигурации в /opt/apache/conf/crs/modsecurity_crs_10_setup.conf.

Мы будем ссылаться на /opt/apache/conf/crs/modsecurity_crs_10_setup.conf как setup.conf в этом разделе для примера..

Важно понимать, какие правила OWASP предоставляются бесплатно. OWASP предлагает два типа правил.

Базовые правила – эти правила тщательно проверены, и, вероятно, коэффициент ложной тревоги меньше.

Экспериментальные Правила – эти правила предназначены для экспериментальных целей, и у вас может быть высокая ложная тревога. Важно настроить, протестировать и внедрить в UAT, прежде чем использовать их в производственной среде..

Факультативные правила – эти необязательные правила могут не подходить для всей среды. На основании ваших требований вы можете использовать их.

Если вы ищете защиту CSRF, отслеживание пользователей, перехват сеансов и т. Д., То вы можете рассмотреть возможность использования дополнительных правил. У нас есть базовые, дополнительные и экспериментальные правила после извлечения загруженного файла crs zip со страницы загрузки OWASP.

Файл конфигурации этих правил доступен в папках crs / base_rules, crs / option_rules и crs / экспериментальный_rules. Давайте познакомимся с некоторыми из основных правил.

  • modsecurity_crs_20_protocol_violations.conf: Это правило защищает от уязвимостей протокола, таких как разделение ответов, контрабанда запросов, с использованием недопустимого протокола (HTTP 1.0).
  • modsecurity_crs_21_protocol_anomalies.conf: это для защиты от запроса, который отсутствует с Host, Accept, User-Agent в заголовке.
  • modsecurity_crs_23_request_limits.conf: это правило зависит от конкретного приложения, такого как размер запроса, размер загрузки, длина параметра и т. д..
  • modsecurity_crs_30_http_policy.conf: для настройки и защиты разрешенных или запрещенных методов, таких как CONNECT, TRACE, PUT, DELETE и т. д..
  • modsecurity_crs_35_bad_robots.conf: обнаружение вредоносных роботов
  • modsecurity_crs_40_generic_attacks.conf: для защиты от внедрения команд ОС, включения удаленных файлов и т. д..
  • modsecurity_crs_41_sql_injection_attacks.conf: это правило для защиты запросов SQL и слепых запросов на внедрение SQL.
  • modsecurity_crs_41_xss_attacks.conf: защита от запроса межсайтового скриптинга.
  • modsecurity_crs_42_tight_security.conf: обнаружение и защита каталога.
  • modsecurity_crs_45_trojans.conf: это правило для обнаружения общих выходных данных управления файлами, загрузки HTTP-страницы бэкдора, известной подписи.
  • modsecurity_crs_47_common_exceptions.conf: это используется в качестве механизма исключения для удаления распространенных ложных срабатываний, которые могут встречаться, например, как внутреннее фиктивное соединение Apache, указатель SSL и т. д..

логирование

Ведение журнала – это одна из первых вещей, которую нужно настроить, чтобы вы могли создавать журналы для того, что делает Mod Security. Существует два типа регистрации; отлаживать & Журнал аудита.

Журнал отладки: это дублирует сообщения об ошибках Apache, предупреждения и уведомления из журнала ошибок.

Журнал аудита: это запись журналов транзакций, помеченных правилом безопасности Mod. Безопасность Mod дает вам гибкость в настройке аудита, отладки или ведения обоих журналов..

По умолчанию конфигурация будет записывать оба журнала. Тем не менее, вы можете изменить в зависимости от ваших требований. Журнал контролируется в директиве SecDefaultAction. Давайте посмотрим на конфигурацию регистрации по умолчанию в setup.conf

SecDefaultAction «фаза: 1, отказать, войти»

Для регистрации отладки, журнала аудита – используйте «log». Для записи только журнала аудита – используйте «nolog, auditlog». Для записи только журнала отладки – используйте «log, noauditlog». Вы можете указать местоположение журнала аудита, которое будет сохраняться, и которое контролируется SecAuditLog. директива.

Давайте напишем журнал аудита в /opt/apache/logs/modsec_audit.log, добавив, как показано ниже.

  • Добавьте директиву SecAuditLog в setup.conf и перезапустите веб-сервер Apache.

SecAuditLog /opt/apache/logs/modsec_audit.log

  • После перезагрузки вы должны увидеть, как генерируется modsec_audit.log

Включить механизм правил

По умолчанию Engine Rule выключен, это означает, что если вы не включаете Rule Engine, вы не используете все преимущества Mod Security..

Включение или отключение механизма правил контролируется директивой SecRuleEngine.

  • Добавьте директиву SecRuleEngine в setup.conf и перезапустите веб-сервер Apache.

SecRuleEngine On

Есть три значения для SecRuleEngine:

  • On – чтобы включить Rule Engine
  • Off – чтобы отключить Rule Engine
  • DetectionOnly – включить Rule Engine, но никогда не выполняет никаких действий, таких как блокировка, запрещение, удаление, разрешение, прокси или перенаправление

После включения механизма правил Mod Security готов защищаться с помощью некоторых распространенных типов атак..

Защита от общего типа атаки

Теперь веб-сервер готов защищать с помощью распространенных типов атак, таких как XSS, SQL-инъекция, нарушение протокола и т. Д., Поскольку мы установили Core Rule и включили Rule Engine. Давайте проверим несколько из них.

XSS Attack

  •  Откройте Firefox и получите доступ к вашему приложению и поместите тег в конце или URL
  •  Следите за modsec_audit.log в папке apache / logs

Вы заметите запрос блоков Mod Security, так как он содержит тег, который является корнем атаки XSS.

Атака обхода каталога: – Атаки обхода каталога могут нанести большой ущерб, воспользовавшись этой уязвимостью и получив доступ к системному файлу. Например – / etc / passwd, .htaccess и т. Д..

  •  Откройте Firefox и получите доступ к вашему приложению с помощью обратного каталога
  •  Следите за modsec_audit.log в папке apache / logs

HTTP: // локальный / ../…/boot

  • Вы заметите запрос блоков Mod Security, так как он содержит обратный путь в каталогах..

Изменить баннер сервера

Ранее в этом руководстве вы узнали, как удалить Apache и тип ОС, справку по версии директивы ServerTokens..

Давайте на шаг впереди, как насчет того, чтобы сохранить имя сервера, как вы хотите? Это возможно с помощью директивы SecServerSignature в Mod Security. Вы видите, это интересно.

Примечание: чтобы использовать Mod Security для манипулирования Server Banner из заголовка, необходимо установить для ServerTokesn значение Full в httpd.conf веб-сервера Apache..

  • Добавьте директиву SecServerSignature с нужным именем сервера в setup.conf и перезапустите веб-сервер Apache.

SecServerSignature YourServerName

Пример:

[/ opt / apache / conf / crs] #grep SecServer modsecurity_crs_10_setup.conf
SecServerSignature geekflare.com
[/ opt / apache / conf / crs] #

Общая конфигурация

Давайте рассмотрим некоторые из общих конфигураций в качестве передового опыта.

Настроить Слушать

Если у вас несколько интерфейсов и IP-адресов на одном сервере, рекомендуется настроить директиву Listen с абсолютным IP-адресом и номером порта..

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

  • Сконфигурируйте директиву Listen в httpd.conf с абсолютным IP и портом, как показано в примере ниже

Слушай 10.10.10.1:80

Регистрация доступа

Важно правильно настроить журнал доступа на вашем веб-сервере. Некоторым важным параметром для регистрации в журнале будет время, необходимое для обработки запроса, SESSION ID.

По умолчанию Apache не настроен для сбора этих данных. Вы должны настроить их вручную следующим образом.

  • Чтобы записать время, затраченное на обслуживание запроса и SESSION ID в журнале доступа
  •  Добавить% T & % sessionID в httpd.conf под директивой LogFormat

LogFormat "% h% l% u% t "% {SESSIONID} С" "%р" %>s% b% T" общий

Вы можете сослаться http://httpd.apache.org/docs/2.2/mod/mod_log_config.html полный список параметров, поддерживаемых в директиве LogFormat на веб-сервере Apache.

Отключить загрузку нежелательных модулей

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

Рекомендуется настроить Apache с необходимыми модулями в ваших веб-приложениях. Следующие модули имеют проблемы с безопасностью, и вы можете быть заинтересованы в отключении httpd.conf веб-сервера Apache..

WebDAV (Распределенная авторизация на основе Интернета и управление версиями) Этот модуль позволяет удаленным клиентам манипулировать файлами на сервере и подвергаться различным атакам типа «отказ в обслуживании». Чтобы отключить отслеживание комментариев в httpd.conf

#LoadModule dav_module modules / mod_dav.so
#LoadModule dav_fs_module modules / mod_dav_fs.so
# Включите conf / extra / httpd-dav.conf

Модуль информации Модуль mod_info может утекать конфиденциальную информацию, используя .htaccess, после загрузки этого модуля. Чтобы отключить отслеживание комментариев в httpd.conf

#LoadModule info_module modules / mod_info.so

Справка: это было бы невозможно без указаний по следующей ссылке:

Так что это был один из лучших способов защиты вашего веб-сервера Apache..

Если вы новичок в Apache HTTP, то я бы порекомендовал курс администрирования Apache HTTP.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map