denyhosts 阻止現有使用者從未知(新)IP 地址登錄
我已經設置了拒絕主機並在 Ubuntu 12.04 上工作。它顯然運作良好,只是它太嚴格了。
我可以從預先添加到 hosts.allow 的任何 IP 地址登錄。我的 sshd_config 不允許密碼登錄,只能使用密鑰登錄。
但是,使用我的有效 RSA 密鑰(從我已知的 IP 地址工作)從新 IP 地址登錄,伺服器在 /var/log/auth.log 中顯示此消息:
6月23日 19:16:31 MyServerName sshd
$$ 5949 $$: 拒絕從 hostname.comcast.net (XXX.XXX.XXX.XXX) 連接
為了連接,我所要做的就是將新的 IP 地址添加到 /etc/hosts.allow。就是這樣。然後我可以登錄:
6 月 23 日 19:45:03 MyServerName sshd
$$ 6024 $$:接受來自 XXX.XXX.XXX.XXX 埠 61236 ssh2
Jun 23 19:45:03 MyServerName sshd的使用者名公鑰$$ 6026 $$: pam_unix(sshd:session): 由 (uid=0) 為使用者使用者名打開的會話
我沒有更改任何預設的拒絕主機配置值,它工作得非常好——除了它太嚴格了。
(或者是否有其他內容讀取 /etc/hosts.allow?)
我需要允許任何 linux 使用者(其帳戶已經存在於伺服器上)從任何 IP 地址登錄,而無需事先在伺服器上進行更改(例如將 IP 添加到 hosts.allow 中)。
EightBitTony 建議拒絕主機應該允許這種行為。為了回應EightBitTony,我更改了這個問題和標題。
Denyhosts僅阻止失敗的登錄(在預定義的計數之後)。據我所知,它不會先發製人地阻止人們。
您不能同時阻止較低級別 (IP) 的訪問並要求較高級別協議 (SSH) 覆蓋該阻止 - 僅僅是因為永遠無法達到更高級別(在阻止的情況下)。
您可以限制一般使用者的登錄主機,並只允許一個使用者從任何地方登錄。但這不是一個動態的解決方案。
您還可以執行兩個
sshd
實例,一個使用拒絕主機,另一個只能由該使用者使用。不幸的是,似乎不可能在配置中禁用 libwrap,因此您可能必須sshd
使用(輸出)相應的選項進行編譯或在 VM 或容器中執行第二個實例。