Apache允许/拒绝在同一服务器

时间:2015-05-31 18:05:08

标签: apache .htaccess openvpn

我有一个限制访问文件夹的.htaccess文件。允许的唯一IP是服务器IP,我还使用密码保护文件夹:

order deny,allow
allow from X.X.X.X
deny from all

AuthUserFile /path/to/.htpasswd
AuthType Basic
AuthName "test"
Require user username

当我使用带动态端口转发的SSH隧道访问文件夹(ssh -fND 1080 user@host.com)时,这非常有用。

现在我想在我的服务器上安装OpenVPN而不是SSH来访问此文件夹。我在我的Debian GNU / Linux虚拟专用服务器上安装了预配置的OpenVPN Access Server,我可以使用sudo openvpn --config client.ovpn和我的VPN用户名/密码连接。

访问http://whatismyipaddress.com/等网站时,我可以看到我的服务器IP地址。 但是当我访问安装了OpenVPN服务器的Apache HTTP服务器时,我可以看到我的真实IP地址出现在/var/log/apache2/access.log中。 我没有与此服务器关联的域,并希望通过托管服务提供商(vpsXXXXX.ovh.net)的服务器IP地址或默认域访问受保护的文件夹。 我的问题可能与帖子Restricting Apache2 virtual host access only to a VPN有关 但我没有使用域名来访问服务器。

如果服务器使用相同的IP地址(但不同的端口),HTTP服务器如何获取OpenVPN服务器IP地址而不是我的真实IP地址?

1 个答案:

答案 0 :(得分:2)

这与链接文章中的问题基本相同:如果您的1.2.3.4上有OpenVPN服务器且Apache服务器正在侦听相同的1.2.3.4 ip,那么当您连接到Apache服务器时,连接不会被路由通过VPN,但通常通过互联网。由于您没有通过VPN连接到Apache服务器,它将看到您的公共IP。

一种解决方案是将vpsXXXXX.ovh.net域(仅适合您)以某种方式解析为私有IP,这将通过VPN路由您的连接 - 可能使用本地DNS服务器或手动编辑您的主机文件你的本地电脑。 如果采用这种方法,您还必须使用Listen x.y.z.t

使Apache监听私有IP

虽然可能有更好的解决方案。

相关:https://forums.opensuse.org/showthread.php/481949-Running-apache-when-using-an-openvpn-connection