我的服务器网络很小,我想提高总体安全性。我没有足够的时间/金钱/偏执狂来建立VPN-我可以提高系统安全性的基本方法是什么?
一件事可能是要求用户既发送密钥又输入密码。Google很难做到这一点,因为有关“ ssh key password”的所有内容都是关于没有密码的sshing。:-)
我一直想使用的一种方案是要求传入连接仅来自dyndns ip地址的白名单。我知道一些安全负责人会想到这个主意,但是事实是,利用一个盒子会增加非常大的复杂性。
你怎么看?还有什么呢?
我的服务器网络很小,我想提高总体安全性。我没有足够的时间/金钱/偏执狂来建立VPN-我可以提高系统安全性的基本方法是什么?
一件事可能是要求用户既发送密钥又输入密码。Google很难做到这一点,因为有关“ ssh key password”的所有内容都是关于没有密码的sshing。:-)
我一直想使用的一种方案是要求传入连接仅来自dyndns ip地址的白名单。我知道一些安全负责人会想到这个主意,但是事实是,利用一个盒子会增加非常大的复杂性。
你怎么看?还有什么呢?
Answers:
使用密码和密钥的登录与“仅使用密钥”相同。在密钥创建过程中,要求您输入密码。如果将其保留为空白,则不会要求您输入密码。如果您填写了一些密码,则每次登录时都会要求您输入密码。
如果您担心安全性,请考虑在本论坛中数以万亿次提及的一些建议:
等等
更新:有关如何在OpenSSH服务器上同时要求公共密钥和本地系统密码的信息,请参阅此处的答案。
我发现有趣的一个想法是端口敲门 -基本上,为了建立ssh连接,您必须首先探究其他端口序列,然后ssh服务器将确认连接请求。如果未使用正确的端口顺序,则没有响应,因此实际上看起来好像没有ssh服务器在运行。端口顺序是可定制的,可以与您的目标用户共享;其他人实际上将无法连接。
我自己还没有尝试过,但是从我所听到的(实际上并不多)来看,开销可以忽略不计,并且极大地降低了您的可见性。
与直接在SSH中启用相关的补丁和许多相关讨论:
也可以通过将密码验证脚本与ForceCommand
配置选项结合使用而无需修改即可完成此操作。
最后,尽管没有模块可用,但如果将公钥身份验证移至PAM,则您可以要求两个步骤都通过,然后PAM才认为身份验证成功。
只需使用
RequiredAuthentications publickey, password
在sshd_config
如果你正在使用的sshd从ssh.com。此功能在OpenSSH中不可用。
RequiredAuthentications
绝对是OpenSSH的非标准扩展
您也可以使用一次性密码来提高安全性。如果用户先前生成了下一个密码,这将允许用户从可能具有按键记录程序的不安全终端登录。此外,即使您始终随身携带旧版Java MIDP电话,也可以安装密码生成器。
关于您最初要求同时输入密钥和密码的问题,如果您正在运行RHEL或CentOS 6.3,现在可以这样做。在RHEL 6.3发布说明形容它,它的加入给你的sshd_config中的问题
RequiredAuthentications2 publickey,password
我非常同意3molo。OpenSSH是Linux和Unix的默认SSH服务器。我们没有理由更改它,尤其是出于安全性考虑。VPN应该是最好的解决方案,它可以加密我们的流量并提供两步密码授权。