Как я могу исключить mod_security из подкаталогов на Amazon EC2 с LAMP?
Я никогда не активировал до mod_security
или отредактируйте виртуальные хосты, так что это новый вызов для меня, я пытался следовать этому уроку, но кажется, что большинство уроков в Интернете не отражают мою ситуацию. У меня есть экземпляр EC2 под управлением Apache 2 на Ubuntu 14.04, у меня нет файла с именем httpd, однако внутри моего /etc/apache2/sites-available
папка у меня есть файл с именем 000-default.conf
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
<Directory /var/www >
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
а это мой security2.conf
расположенный в /etc/apache2/mods-available
<IfModule security2_module>
SecDataDir /var/cache/modsecurity
Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/activated_rules/*.conf"
IncludeOptional /etc/modsecurity/*.conf
</IfModule>
Я хочу включить mod_security
но сейчас я не могу, потому что внутри ../html
папка (папка моего сайта) У меня есть Wordpress и phpMyAdmin (поэтому, если я удаляю SecRuleEngine Off, это дает мне разрешение на ошибку, запрещенное на всех веб-сайтах). Из упомянутого выше руководства я знаю, что мне нужно использовать этот код для исключения определенного каталога:
<Directory "/var/www/wp-admin">
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
</Directory>
Что я не понимаю: мне нужно создать новый файл.conf внутри /sites-available
? Например, как он должен выглядеть как файл.conf, чтобы исключить каталог phpMyAdmin, расположенный в /usr/share/phpmyadmin
?
1 ответ
[Это было слишком долго для комментария, поэтому разместил его как ответ. Надеюсь, поможет]
Кажется, вы не настроили виртуальные хосты. Вместо этого есть только один основной DocumentRoot, и вы вызываете сайты с http://ip-address/site-folder.
Скажем, два виртуальных хоста: один в / var / www / html / wordpress, а другой / var / www / html / phpmyadmin.
Если вам нужно отключить phpmyadmin, то под конфигурацией виртуального хоста phpmyadmin добавьте строку, которую вы указали во второй половине:
<VirtualHost *:80>
..
..
..
<Directory "/var/www/html/phpmyadmin">
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
</Directory>
..
..
</VirtualHost>
И чтобы отключить его для администратора WordPress, добавьте то же самое в конфигурацию виртуального хоста сайта WordPress: т.е.
<virtualhost *:80>
..
..
..
<Directory "/var/www/html/wordpress/wp-admin">
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
</Directory>
..
..
</VirtualHost>
Если конфигурация VirtualHost отсутствует, вы можете попробовать добавить директиву: <Directory>..</Directory>
для phpmyadmin и wp-admin в файле конфигурации mod_security: '/etc/apache2/mods-available/security2.conf'
Проверьте синтаксис с apachectl -t
перед перезагрузкой.