使用 virtual_host 配置通过 httpd php 应用程序管理 ip 访问控制

使用 virtual_host 配置通过 httpd php 应用程序管理 ip 访问控制

问题

系统允许通用访问 php 应用程序“owncloud”。也就是说,允许访问整个网络的服务器。作为测试,“要求全部拒绝”不控制访问。

这个配置中缺少什么来限制对服务器主机的访问?

其他想法

hpptd.conf 是否也需要更改配置?这是 owncloud.conf 问题还是 httpd.conf 问题?这些症状是否与 php.conf 有关?

眼镜

Fedora 21

  • httpd
  • mod_ssl 级别 2.4.16
  • 作为达到此点的过程的一部分,htaccess 文件已被重命名。
  • /etc/httpd/conf/httpd.conf 文件是标准的。

/etc/httpd/conf.d/owncloud.conf 文件:

<VirtualHost *:443>
    ServerName owncloud
    ServerAlias owncloud
    DocumentRoot /var/www/html/owncloud
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/owncloud.pem
SSLCertificateKeyFile /etc/httpd/ssl/owncloud.key
<Directory /var/www/http/owncloud>
    Options +Indexes +FollowSymLinks
        AllowOverride All
        Require local
    <IfModule mod_php5.c>
    php_value upload_max_filesize 512M
    php_value post_max_size 512M
    php_value memory_limit 512M
    php_value mbstring.func_overload 0
    </IfModule>
    <IfModule pagespeed_module>
    </IfModule>
    RewriteEngine on
    RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
    RewriteRule ^\.well-known/carddav /remote.php/carddav/ [R]
    RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
</Directory>
</VirtualHost>

答案1

如果您的服务器允许流量进入,尽管有 和Require local,尤其是Require all denied,那么这是一个 apache/httpd 问题。它要么是覆盖(例如 .htaccess),要么是正在加载另一个配置文件。Apache 将根据最具体列出的目录。例如:将 /var/www/http/owncloud 设置为Require local,如果您将 /var/www/http/owncloud/theRealServerRoot 设置为Require all granted,那么每个人都可以访问“theRealServerRoot”中的任何内容,尽管他们被拒绝访问父目录。您可能已经知道这一点,但以防万一。此外,如果两个配置文件使用语句引用同一个目录<directory>,则加载的配置文件最后的将适用。加载通常按字母顺序进行。如果您有一个“security.conf”文件,其中定义了Require/var/www/http/owncloud 的替代语句,那么将使用这些语句代替 owncloud.conf 中的任何内容。

1)您能否仔细检查一下,在重命名 .htaccess 文件后,owncloud 是否没有重新创建这些文件?

2) conf.d 目录中还有哪些其他文件?您可以检查它们是否正在作用于该目录吗?

3) 另外,您发布的文件适用于 https;您正在测试针对 https:// URL 的访问,对吗?因为 http:// URL 可能有一组不同的规则。

4) 最后,但最不可能的是,您是否使用了反向代理或负载平衡器?这两者都会改变 apache/httpd 将看到的 IP 地址,并且如果在同一台服务器上运行,会产生相同的问题(尽管当您写入该Require all denied行时它仍会被阻止)。

相关内容