我可能会以错误的方式来攻击这个问题,如果是的话,让我知道。
我有一个服务器可以通过SSH从公共互联网和本地局域网。 我想有两个非常不同的安全策略为每个,运行两个sshd与两个不同的sshd_config文件,每个不同的端口上。
我想改变的一些事情是允许在局域网上进行密码或公钥authentication,而只能从互联网上公开密钥。 所有(真实)用户都可以从局域网侧login,但只有某些授权用户会被单独列入白名单,通过互联网login。
据我所知,这需要有两个不同的SSH守护进程在不同的端口上运行不同的sshd_config 。 我很好,不同的端口部分,我可以通过我的防火墙轻松转发端口22到任何我想要的端口。
所以我的问题是在Ubuntu 10.04 LTS下实际启动第二个sshd的最好方法是什么。 有没有推荐的方法来做这样的事情? 当然,我不是第一个有这种需求的人。
我有一些暴发户的经验,我可以手动破解第二个sshd到/etc/init/ssh.conf我想,但我不知道如果这将被覆盖的包。 但是我这样做,重要的是确保在任何自动或手动升级openssh-server软件包之后,两个sshd进程总能重新启动。
提前致谢。
启动单独的SSH守护进程,但是您的操作系统通常会启动SSH守护进程:
如果Ubuntu现在正在使用upstart来启动sshd,那么创build一个看起来像标准的新的upstart作业,只需要在你的自定义configuration文件中指向守护进程。
如果使用init.d & rc#.d脚本,则将其复制并根据需要进行修改。
这样可以避免任何软件包更新压制自定义设置,并可以对启动/停止/重新启动要定向的特定SSH守护进程进行细化控制。 这也意味着一个进入你的系统的pipe理员将能够识别正在发生的事情以及如何启动/停止/重启这些守护进程,因为它是以操作系统的惯常方式完成的,而不是通过hackery完成的。