解决主 SSH 服务器的一些怪癖

解决主 SSH 服务器的一些怪癖

我正在创办一家网络托管公司,还有一些细节我还没有弄清楚,其中之一就是某种 SSH VPN,用于通过 cPanel 连接到运行 CentOS 6 的服务器。

所以这就是我想要做的...

1) 为我的员工准备一个主服务器,其中包含特定的用户登录名(用户 1、用户 2 等)。为了通过 SSH 访问我们的任何服务器,他们都需要先登录到这个主服务器。

2) 从这台主服务器,他们将能够ssh server.example.com并且主服务器能够让他们以 root 身份直接登录。

我知道需要做的是为每个用户生成一个密钥对,并将他们的私钥放在/root/.ssh/authorized_keys每台服务器上的文件中。我已经有办法使用 cron 自动为每台服务器更新此文件。

我可以让所有这些工作正常,但有时登录会有点问题,而且我还遇到了连接在 15 分钟后超时的问题。我想我有一个办法可以解决这个问题,但如果能得到任何帮助,我将不胜感激。

现在,对于这里的主要问题,我希望能够让用户使用短主机名或主机名的前缀登录,而不必在登录服务器时输入整个主机名。因此,如果我有一个主机名为的服务器s1.server.example.com,他们将能够使用s s1.server(s 将别名为 ssh)进行快速登录。我不确定如何做到这一点,但如果有一种简单的方法,而不需要设置主服务器上的每个服务器以使其短名称指向完整主机名,那么将来维护起来会容易得多。我猜可以编写某种类型的脚本来检查指向前缀的正确主机名。

任何指导都会非常感激,我尝试过很多不同的解决方案,但都没有成功,我宁愿它正常工作,而不用像我一样做一大堆“黑客攻击”。谢谢!


编辑

我想在这里向大家更新一下,因为我觉得我说得不太清楚。该系统仅供公司内高级员工访问,以便通过 root 提供一种快速简便的方式来管理我们的云系统。客户将无法访问这些系统,任何可能拥有 root 服务的客户都将使用直接 root 访问权限。

答案1

如果您正确设置了 DNS,则应该能够使用短名称。输入以下内容:

搜索 example.com

在您的 resolve.conf 中将有助于名称解析。要更新配置、ssh 密钥等,您确实需要研究 Puppet 或 Chef 之类的东西。随着您扩大 Web 农场,它将使您的生活变得轻松很多。

答案2

我将为您推荐一些不同的做法,以提高您的安全性,并让您与低成本提供商在业务上有所差异。由于网络托管可能是一项低利润业务,因此,通过增值服务进行一些差异化可以大大有助于降低利润率,同时增加您的锁定率。

考虑用以下方法替换标准 SSH 登录:

  • IPSEC 隧道连接到外围设备,SSH 连接到单个主机
  • 使用基于硬件设备的 PKI 的 SSH 隧道(您可以出售这些*)。

(或两者同时进行)

哇,你马上就成了一个有安全意识的网站托管商了 :)

以 root 身份登录是一种不好的做法!相反,让他们以不受信任的用户身份登录,然后用来sudo运行需要 root 级权限的命令。

考虑使用安全强化指南(例如 NSA SRG、CIS 或 DISA STIG,也包括 Apache 指南)来强化所有 centos 主机。

如果坚持使用软件中的 ssh,请让客户在本地计算机上生成密钥,因为这被认为更安全。给他们一个加密私钥的选项,并将其上传给您进行托管,作为备份。

快速刷新 PKI,例如 SSH。

公钥=加密器,无保密要求

私钥=解密器,保护好它,不要分享!

除非经过严格加密,否则 SSH 私钥不应存储在远程主机上

要通过 SSH 连接到互联网上的主机,你只需要将公钥包含在授权密钥文件中。请参阅http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html

您可以使用别名和其他命令来缩短用户可能需要输入的详细信息。

但是,从你的经验水平来看,我建议在进入 Linux 托管之前多练习一下。信任至关重要!

  • 阅读有关 Redhat 证书管理系统、证书颁发机构软件以及可能的 Dogtag 的信息

相关内容