我有一个QNAP TS-253 Pro (QTS 4.2.0),在上面配置了一个 OpenVPN 服务器并且运行良好。由于我想使用客户端证书来保护 VPN 连接,因此 Web 界面上的内置配置根本没有用。
所以我通过 SSH / SCP 将我的配置和证书文件导入到/etc/openvpn,重新启动 OpenVPN 服务器并且它运行良好,直到我重新启动 QNAP NAS。配置已恢复为 QNAP 的出厂默认设置。
看来,/etc/openvpn目录只是/mnt/ext/opt/vpnopenvpn/etc/openvpn/的符号链接,它保存了我的 QNAP 网络界面的原始配置。我尝试的下一件事是在那里编辑配置,并希望它不会在下次启动时被替换,但这不是解决方案。重新启动并在/mnt/ext/opt/vpnopenvpn/etc/openvpn/ 中找到出厂默认的 OpenVPN 配置文件。
我在 QNAPs 官方论坛、非官方博客文章和 QNAP 本身的一些 init.d-scripts 上挖掘了许多线程,以找到一种方法来关闭出厂默认设置的自动推出或让 QNAP 推出我的工作配置到/etc/openvpn。
这是我不成功的尝试列表:
有谁知道,如何阻止 QTS 重写我的配置文件?我不想每次重新启动 QNAP 时都手动复制 OpenVPN 配置...
我一直在寻找类似的解决方案,因为我需要一个用于固定 IP 号码的服务器端 Open VPN 配置。我的解决方案是在 vpn_openvpn.sh 文件启动 daemon_mgr 之前在我的案例第 210 行中添加一行。
<snip>
usr/bin/openssl verify -CAfile /etc/openvpn/keys/ca.crt /etc/openvpn/keys/myserver.crt 2>/dev/null | /bin/grep "OK" >/dev/null
echo client-config-dir clientconfig >>/etc/openvpn/server.conf
if [ $? == 0 ] && [ ! -f ${PIDFILE} ]; then
</snip>
Run Code Online (Sandbox Code Playgroud)
我添加了以 echo 开头的行。此时您还应该可以修改 /etc/openvpn/server.conf 中的配置
当添加到此处时,该行将在 OpenVPN 服务器重新启动后继续存在,但正如您已经痛苦地经历过的那样,许多文件会在启动时重新创建。这就是 autorun.sh 发挥作用的地方。如何使用它,您可以在这里找到。确切的语法取决于您获得的 QNAP NAS 类型。
您可以在此处添加 sed 行以在启动时重新创建“修复”。
sed "210i echo client-config-dir clientconfig >>/etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart
Run Code Online (Sandbox Code Playgroud)
在您的情况下,autorun.sh 应该如下所示:
sed "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp /etc/init.d/vpn_openvpn.sh
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart
Run Code Online (Sandbox Code Playgroud)
让我知道它是否有效
编辑:经过一番重新思考,你可以做得更短
sed -i "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5575 次 |
| 最近记录: |