我知道这可能是非常基本的,但我的服务器上有一个网站,我只想通过VPN访问。我在我的Windows机器上运行OpenVPN,它通过VPN连接到我的服务器。当VPN连接时,我可以使用VPN的IP地址访问我服务器上的站点。我想阻止所有其他方法,如实际的网站IP或我的域名。我会用htaccess吗?通常只对私人访问做什么。
答案 0 :(得分:2)
假设您的服务器vpn ip是10.1.2.3,那么您应该添加到您的apache配置
Listen 10.1.2.3:80
这样你就可以绑定Apache - 即接受传入的请求 - 仅限于该地址。
此外:
Listen指令不实现虚拟主机 - 它只是告诉 主服务器要监听的地址和端口。如果不 使用指令,服务器将表现相同 所有接受的请求的方式。但是,可以用来 为一个或多个地址指定不同的行为或 端口。要实现VirtualHost,必须首先告知服务器 听取要使用的地址和端口。然后一个 应为要设置的指定地址和端口创建节 此虚拟主机的行为。请注意,如果是 设置服务器没有收听的地址和端口,它 无法访问。
即。你可以保留原始的listen指令(监听所有接口)并过滤每个虚拟主机的访问权限,使你的“私有”虚拟主机配置如下:
<VirtualHost 10.1.2.3:80>
请参阅http://httpd.apache.org/docs/2.4/bind.html
最后如果出于某种原因你只能被限制在.htaccess,那么你可以在.htaccess中进行:
Order Deny,Allow
Deny from all
Allow from 10.1.2.1/24
即。只允许从你的vpn子网访问。
请注意,每次更改后都需要重新启动Web服务器。