亲爱的 serverfault 社区,
我目前正在将带有 OpenVPN 服务器的“普通” IPTABLES 防火墙迁移到包含 Endian Community Firewall 2.5.1 的新盒子中。
新的 Endian 防火墙包含一个 OpenVPN 服务器;但是,由于 VPN 用户有特殊要求,我无法使用具有这些设置的新服务器。
因此我替换了 Endian 盒上的 VPN 服务器配置(以及 VPN 配置文件的模板)。
问题是我必须使用 tun0 作为设备,而不是 tap0。Endian 本身不支持 tun0,并以某种方式使用 tap0 作为 VPN 设备。
这导致 IPTABLES 规则仅适用于 tap 设备。因此,我不得不手动应用一些 IPTABLES 规则,以便让使用旧配置和 tun0 设备的 OpenVPN 正常工作。
当我重新启动新的 Endian 盒时,这些规则再次被覆盖(tap0 而不是 tun0)。我查明了为什么这些 IPTABLES 规则是用 tap0 生成的:/var/efw/openvpn/settings -> PURPLE_DEVICE=tap0
Endian 使用此文件生成 IPTABLES 规则。当我将 PURPLE_DEVICE 的值更改为 tun0 并重新生成 IPTABLES 规则时,一切都正常。不幸的是,重新启动 Endian 框会覆盖设置文件,而我不知道如何阻止 Endian 这样做。
那么 - 我如何才能永久更改设置文件以使其始终包含 PURPLE_DEVICE = tun0?
我已经编辑了 /usr/lib/efw/openvpn/default/settings,但不幸的是,这似乎没有任何效果。
由于 Endian 不支持,我无法在此文件上设置不可变位。
答案1
编辑 /usr/lib/python2.4/site-packages/endian/restartscripts/openvpnjob.py 就可以达到目的:函数 get_tap() 搜索 tap 设备;只需将搜索切换为 tun 即可。