作为一个使用多台虚拟机的用户,为所有的虚拟机设置一个统一的防火墙并配置IPS和WAF设备是十分必要的。
OPNsense不失为一种很好的选择,只要将OPNsensen的WAN端口设置为NAT,将LAN端口设置为hostonly(仅主机模式)。将其余所有的虚拟机都配置为host-only(仅主机模式)就可以实现所有的虚拟机设置OPNsense软路由实现对所有虚拟机网络的统一管理和组网。
1虚拟机安装OPNsense
OPNsense的具体安装过程就不说了。
本文的主要目的是鉴于现在网络上的一些创作者,对于这种技术方案都是照抄的国外两个十分相似的文章而写成的。两篇文章都使用的是Unbound DNS转发至DNSCrypt-Proxy,使用DNSCrypt-Proxy监听本地127.0.0.1的方式实现,而且在配置Unbound DNS转发的过程中都使用了Custom options功能,而这一功能在Unbound DNS的21.7版本中已经被移除了(参见注释1)。
Unbound DNS插件转发配置中的Custom options功能已经没有了,配置这个的AI都有点傻傻的可爱呀。
2安装DNSCrypt-Proxy插件
对于DNSCrypt-Proxy的安装,很简单。
在系统-固件-插件中搜索并安装。
在服务中选择DNSCrypt-Proxy-配置。
然后勾选开启及填写以下选项。
按照这个配置绝对是可以使用的。
启用DNSCrypt-Proxy |
打勾不填写 |
这个必须开 |
监听地址 |
0.0.0.0:53 |
如果您设置的是其它DNS服务转发,此处应设置为127.0.0.1 and ::1。不开启IPV6的话and及以后可以不写 |
允许特权端口 |
打勾不填写 |
如果不想监听传统的dns端口此处可以不开启 |
最大客户端连接数量 |
保持默认或填写 |
|
使用IPv4服务器 |
打勾不填写 |
开启IPv4的话开启 |
使用IPv6服务器 |
打勾不填写 |
不开启IPV6的话不开启 |
使用DNSCrypt服务器 |
打勾不填写 |
|
使用DNS-over-HTTPS服务器 |
打勾不填写 |
要配置DOH这个必须选 |
服务器列表 |
填写DOH服务器名称 |
写您自己找到的提供DOH服务器名称,注意不要写成IP地址。 |
下面把我的配置图给大家参考一下。
按照官方文档的说法,此处的设置是在不开启Unbound DNS或DNSmasq DNS时应该设置的。(参见注释2)
然后给大家看一下,DOH服务器如何配置。
图中的后备解析器是在服务器解析失败时备用的,一般设置为公共的提供DOH服务的服务器。在服务器列表中要填写服务器名,而不是地址。由于这里我选择的是私有的服务器,这里就不向大家展示了(重复一下上文,这里一定要填写DOH服务器名称而不是IP地址)。
配置完成以后,记得开启服务,并检查防火墙配置。
3测试配置
然后到vm中的一台虚拟机上去看一下,地址解析是不是正常。
这里面我的OPNsense LAN地址为192.168.222.xxx。我在LAN网段中的一台linux上,用sohu.com测试一下,这个linux的虚拟机网卡配置如上文所说是仅主机模式,与OPNsense的LAN网卡配置相同。
在终端中输入nslookup www.sohu.com。
看到解析正常。
如果不放心,还可以到OPNsense的防火墙日志和DNSCrypt-Proxy的日志中查看一下。
至此,我们利用OPNsense软路由实现对VM虚拟机中所有虚拟机上网的统一管理、网段分配特别是设置统一的DOH服务器,防止ISP监听DNS请求的所有需求,通过一个简单的实验就完成了。
附
如果将宿主机网卡直接分配给虚拟软路由,宿主机通过本地桥接也可以实现上网。这样就实现了用虚拟机管控所有网络流量的目的,同时相当于为宿主机增加了DOH/DOT功能、Proxy功能。
本文内容及图片均为原创,转载及引用请征得本人同意并注明出处。
最早发表于知乎,两篇内容除了宿主机桥接上网以外其余内容相当无需移步。
评论前必须登录!
注册