如何使用 LAMP 从 Amazon EC2 上的子目录中排除 mod_security?

如何使用 LAMP 从 Amazon EC2 上的子目录中排除 mod_security?

我从来没有激活mod_security或编辑过虚拟主机,所以这对我来说是一个新的挑战,我试着遵循本教程但似乎网络上的大多数教程都没有反映我的情况。我有一个在 Ubuntu 14.04 上运行 Apache 2 的 EC2 实例,我没有名为 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?例如,排除位于 中的 phpMyAdmin 目录的 .conf 文件应该是什么样子的/usr/share/phpmyadmin

答案1

[这篇文章太长了,不适合发表评论,所以将其作为答案发布。希望对您有所帮助]

似乎您没有配置虚拟主机。相反,只有一个主 DocumentRoot,并且您使用以下方式调用网站http://ip 地址/站点文件夹网址。

假设有两个虚拟主机:一个在 /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>

来源:https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_security-with-apache-on-debian-ubuntu

如果没有 VirtualHost 配置,那么您可以尝试<Directory>..</Directory>在 mod_security 配置文件中为 phpmyadmin 和 wp-admin 添加指令:'/etc/apache2/mods-available/security2.conf'

apachectl -t在重新加载之前测试语法。

相关内容