VPN启动后启动SSH服务器

VPN启动后启动SSH服务器

我在 Ubuntu 14.04 和 OpenSSH 上运行 OpenVPN 服务器。

我已将 SSH 服务器配置为绑定到 VPN 接口上的 IP 地址。一旦我的机器启动,绑定到该 IP 就会失败。

一旦我登录,就可以看到没有在听netstatsshd我可以重新启动sshd,机器将开始正常监听。我的 VPN 上的 IP 是我配置sshd为侦听的唯一 IP。

启动时:

sshd[1016]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[1016]: error: Bind to port 22 on 10.8.0.1 failed: Cannot assign requested address.
sshd[1016]: fatal: Cannot bind any address.

重新启动 SSH:

sshd[3481]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[3481]: Server listening on 10.8.0.1 port 22.

我最好的猜测是,这sshd是在我的 VPN 启动并运行之前开始的。有没有办法确保sshd之后启动,以便它可以正确绑定?

关于做什么或检查有什么建议吗?

答案1

我找到了解决方案。

在 OpenVPN 配置文件中,/etc/openvpn/server.conf您可以指定要运行的脚本向上。如果你看一下 OpenVPN 手册页man openvpn,你就会明白--up cmd。在/etc/openvpn/server.conf配置文件中,我添加了一行:

up "/etc/openvpn/up.sh"

该文件是我创建的,将在 VPN 启动时执行。现在,我的看起来像这样:

#!/bin/sh
logger VPN is UP
service ssh restart

现在,每次我的 OpenVPN 服务器启动时,它也会重新启动 OpenSSH 服务器。同样,--down cmd如果我希望在服务器关闭时执行脚本,我也可以使用并指定服务器配置文件中的文件。

您可以在 OpenVPN 手册页中阅读有关这些内容的更多信息 -man openvpn

答案2

看起来 ssh 使用 upstart,但 openvpn 没有……你也许可以通过这样做来强制 ssh 延迟启动,但它未经测试(我不想搞乱我的安装):

update-rc.d ssh defaults 99

由于它未经测试:买者自负

相关内容