Ssh

Denyhosts:如何始終允許某些已知使用者?

  • June 29, 2014

使用 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.*

這些允許為任何類型的需求配置訪問權限。

引用自:https://unix.stackexchange.com/questions/116320