我有一个域名mysite.com指向我的专用服务器(debian 7)。 经过身份验证的用户将支持具有本地地址和伪装的OpenVPN。
我想要做的是将未经身份验证的用户发送到服务器的远程IP,将经过身份验证的用户发送到本地IP。为了使事情变得更有趣,我有一个反向代理设置来将子域发送到不同的端口。
到目前为止,我已经看过iptables prerouting和apache2 proxy。
基本思路是如果用户可以达到10.8.0.1域mysite.com应该解析为10.8.0.1否则应该解析为远程ip。我怎样才能做到这一点?
答案 0 :(得分:0)
openVPN允许您指定DNS服务器以及VPN-IP地址。如果您控制此DNS服务器,则可以轻松创建一个ACL,该ACL将返回10.8.0.1
来自VPN网络的查询,以及查询来自此网络外的公共IP地址。
在openVPN配置中,您将添加如下内容(假设您的DNS服务器具有IP 10.8.0.53
)
push "dhcp-option DNS 10.8.0.53"
如何配置DNS服务器显然取决于您使用的实际服务器(您没有提及)。
在bind9
中,它看起来类似于以下内容:
acl authenticated { 10.8.0.0/24; };
view "authenticated" {
match-clients { authenticated; };
zone "mysite.com" {
type master;
file "/etc/bind/db.authenticated";
};
};
view "anonymous" {
match-clients { any; }
zone "mysite.com" {
type master;
file "/etc/bind/db.anonymous";
};
}