使用本地未绑定 DNS 服务器进行 Strongswan VPN 连接

使用本地未绑定 DNS 服务器进行 Strongswan VPN 连接

想法:我想使用与 VPN 解决方案安装在同一台服务器上的非绑定 DNS,以便使用 DNS 为所有 VPN 连接阻止广告和类似的不需要的网站。

目前,未绑定是针对本地请求设置的。

如何设置 Strongswan/ipsec 以使用未绑定作为 DNS 服务器?我需要开放未绑定到互联网吗,还是我可以通过服务器从 VPN 连接本地查询 DNS?

提前致谢!

附言:如果您需要有关设置的任何其他信息,请随时询问。

答案1

一种方法是从您用于客户端虚拟 IP 的子网中为服务器分配一个 IP 地址。然后,将该 IP 地址作为 DNS 服务器分配给客户端,并从 IP 地址池中排除该 IP。或者,通过 Netfilter 的策略匹配模块过滤对该 IP 地址的访问(请参阅iptables-扩展您可以使用手册页 (man page) 来设置它只能通过 VPN 访问。

例如,如果您的 IP 地址池为192.168.8.0/24(例如在rightsourceipipsec.conf 或 swanctl.conf 中的“pool”部分中配置),则您将其分配192.168.8.1给服务器(在任何接口上,例如lo),然后将池更改为192.168.8.2/24(因此分配给客户端的第一个地址将是192.168.8.2)。要分配192.168.8.1为 DNS 服务器,请在 ipsec.conf 或 swanctl.conf 中的 pool 部分中进行配置rightdns

虽然您也可以使用服务器的公共 IP 地址,并且仅允许使用上述策略匹配通过 VPN 访问 UDP 端口 53,但这不适用于 Apple 客户端,因为它们不会通过 VPN 向服务器的公共 IP 发送数据包(因此您必须使 DNS 服务器公开可用,或动态添加允许从客户端的公共/NAT 的 IP 地址访问它的防火墙规则)。

相关内容