解決主 SSH 伺服器的一些怪癖
我正在創辦一家網路託管公司,還有一些我還沒有弄清楚的細節,其中之一是某種 SSH VPN,用於連接到我們執行 CentOS 6 和 cPanel 的伺服器。
所以這就是我想要做的……
- 為我的員工提供具有特定使用者登錄名(user1、user2 等)的主伺服器。為了通過 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 訪問權限。
如果您正確設置了 DNS,您應該可以使用短名稱。放一些東西,例如:
搜尋 example.com
在您的 resolve.conf 中將有助於名稱解析。要更新配置、ssh 密鑰等,您確實需要查看 Puppet 或 Chef 之類的東西。隨著您的網路農場的發展,這將使您的生活變得更加輕鬆。
我將為您推荐一些不同的做法,以提高您的安全性並為您提供一些與低成本提供商的業務差異化。由於網路託管可能是一項低利潤的業務,增值服務的一些差異化可以大大有助於提高利潤,同時增加您的鎖定。
考慮將標準 SSH 登錄替換為:
- IPSEC 隧道到外圍設備,SSH 到單個主機
- SSH 隧道使用基於硬體設備的 PKI(這些您可以出售*)。
(或兩者一起)
Wham,您立即成為具有安全意識的網路主機 :)
以 root 身份登錄被認為是一種不好的做法!相反,讓他們以不受信任的使用者身份登錄,然後使用它
sudo
來執行需要 root 級別權限的命令。考慮使用安全強化指南(例如 NSA SRG、CIS 或 DISA STIG,包括 Apache 指南)來強化所有 centos 主機。
如果在軟體中堅持使用 ssh,請讓客戶端在其本地電腦上生成密鑰,因為這被認為更安全。給他們一個選項來加密他們的私鑰,然後將其上傳給您進行託管,作為備份。
在 PKI 上快速刷新,例如 SSH。
公鑰 = 加密器,無保密要求
私鑰=解密器,保護好這個,不要分享!
除非經過高度加密,否則 SSH 私鑰不應儲存在遠端主機上
要通過 SSH 連接到 Internet 上的主機,您只需將公鑰包含在授權密鑰文件中即可。見http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
您可以使用別名和其他命令來縮短使用者可能需要輸入的詳細資訊。
但是,從您的經驗水平來看,我建議您在進入 Linux 託管之前多做一些練習。信任最重要!
- 閱讀 Redhat 的證書管理系統、證書頒發機構軟體和可能的 Dogtag