Denyhosts:如何始終允許某些已知使用者?
使用 Denyhosts,我如何通過使用者名加上他們擁有有效 RSA 密鑰對的事實(或結合其他一些關於使用者的已知事實,例如 MAC 地址)將已知的好使用者“列入白名單”?
一些背景:
在 Ubuntu 伺服器上,denyhosts 阻止了一些 SSH 使用者(但不是全部)登錄。這些使用者的配置完全相同——即使使用相同的 Linux 使用者帳戶。每個使用者都有一個 RSA 密鑰對,並且只能通過密鑰對登錄。不允許基於密碼的 SSH 登錄。(這些是對更新伺服器的自動 SSH 登錄。)
如果我將有問題的使用者的 IP 地址添加到 Denyhost 的 hosts.allow 文件中(並從任何受限/拒絕文件中刪除該地址),則使用者可以像其他使用者一樣登錄。但是這些使用者都沒有靜態 IP 地址,因此這不是解決方案。
鑑於這些使用者擁有有效的 RSA 密鑰並且他們擁有 Linux 使用者帳戶這一事實,有沒有辦法讓拒絕主機停止阻止他們(不會削弱其正常功能,特別是對於所有試圖登錄的潛在攻擊者密碼無效)?
更新:
我有
PasswordAuthentication no
其他AllowUsers foo@*
相關/etc/ssh/sshd_config
設置,因此我的使用者只能使用 RSAAuthentication 登錄。當然,我總是可以停止使用 Denyhosts。但我的問題是如何讓 Denyhosts 以我想要的方式工作,這樣我就不必停止使用它。
完全停止使用 hosts.allow / hosts.deny 並重新配置 sshd 以禁止使用密碼登錄。
使用者現在只能通過鑰匙進入。
none of these users have static IP addresses
好的,那麼您不能使用基於主機的身份驗證。
可能的解決方案:
使用
AllowUsers
在/etc/ssh/sshd_config
例如
AllowUsers foo@, bar@
甚至更好
AllowUsers foo@123.123.*, bar@234.234.234.*, baz@111.*
DenyUsers 也一樣
DenyUsers foo@badhost, foo@100.100.*, bar@99.33.*
這些允許為任何類型的需求配置訪問權限。