Как я могу узнать, установлен ли mod_security на моем сервере Apache? Еще хотелось бы узнать его версию.
У меня возникли проблемы с загрузкой, и я попытался отключить mod_security с помощью .htaccess. Но это привело к возникновению 500 внутренних ошибок сервера.
Я где-то читал, что в зависимости от моей версии mod_security я не смогу отключить ее с помощью .htaccess. Поэтому я хотел бы понять, установлен ли у меня mod_security и какая это версия.
Я на коробке сентос 5.
Спасибо!
ОБНОВЛЕНИЕ -1 xxxxxxxxxxxxx
Означает ли приведенный ниже вывод, что у меня не установлен mod_security?
[root@u11 htdocs]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Нет - приведенный выше вывод описывает только предварительно скомпилированные модули.
Наличие mod_so.c
однако запись означает, что Apache может динамически загружать дополнительные модули.
Если у вас есть доступ к центральной конфигурации, вы можете просто взглянуть на это и проверить, есть ли строка вроде:
LoadModule security_module modules/mod_security.so
Если есть, значит, у вас загружен mod_security - ПРИМЕЧАНИЕ: это также может быть во включенном файле конфигурации.
Предполагая, что ваша конфигурация находится в / etc / httpd - вы можете запустить следующее, чтобы узнать, присутствует ли конфигурация:
grep -ir security_module /etc/httpd
(Заменить /etc/httpd
с центральным каталогом конфигурации).
Если у вас нет доступа к конфигурации сервера, вы можете использовать <IfModule mod_security.c>
в вашем .htaccess, чтобы узнать, включен ли он:
<IfModule mod_security.c> ... Perform some kind of redirect or re-writing in here ... </IfModule>
Надеюсь это поможет.
В некоторых средах mod_security не требуется, поскольку политика брандмауэра реализуется аппаратно; используя Debian, вы должны найти информацию о вводе этого модуля
grep -ir security_module /etc/apache2/mods-enabled/mod-security.conf
Если этого файла нет, он НЕ может быть включен хостинг-провайдером, поэтому проверьте ситуацию также с ними.