Security

是否有用於 DNSBL 查找的 PAM 模組?

  • June 30, 2014

當我意識到我的作業系統上游儲存庫中缺少一些可能非常有用的東西時,我一直在列舉我的一個後端生產伺服器上剩餘的安全問題。

我一直在尋找一個PAM 模組,它根據DNS 阻止列表( DNSBL )檢查遠端主機 IP 地址。

我的案例是……雖然IDS 軟體可以在檢測到 探測、漏洞掃描或暴力攻擊後做出響應-

一些服務(i.e. Apache2, proFTPd, Sendmail, SpamAssassin)包括DNSBL模組或功能,這有助於大大減少可以參與攻擊的機器數量。它通過阻止已知的受感染或殭屍機器、公共代理和 TOR 出口中繼節點(例如)來做到這一點。

據我所知,其他人沒有。Dovecot/Saslauthd不包括此類功能。這些經常成為我網路上*暴力攻擊的目標。*這些服務仍然被 IDS 系統覆蓋,但遭受了絕大多數攻擊

使用PAM模組在身份驗證期間檢查遠端主機 IP攻擊)

我想知道是否有一個現有的 PAM 模組可以用於此目的?如果沒有,為什麼開發人員忽略了這一點?

這將是一個非常簡單的模組,(在我看來)可以起到很好的作用..

目前,我已經編寫了一個與 PAM 互動的腳本(通過“pam_exec.so”模組)。由於某種原因,這不起作用(只會導致 BASH 崩潰)。當我有機會時,我計劃嘗試“pam_script.so”模組。

我願意編寫一個 PAM 模組來執行此操作,但不確定將一個軟體放入 Debian 或 Ubuntu 儲存庫有多難。

謝謝

我不知道這樣的模組。您的第二個問題(為什麼)將徵求主要基於意見的答案,因為我想不出任何明確的原因來解釋為什麼這樣的 PAM 模組存在。

以下是我在評估可行性時確定的設計注意事項:

  • 速度不得拖延登錄。當涉及到預設配置下的 DNS 延遲時,ssh+PAM 已經處於不利地位。我想說的是,對每台伺服器的 DNS 查找應該並行進行,以避免將超時堆疊在彼此之上。
  • 重試不好:只要重試被認為是在/etc/resolv.conf. 如果實現了 DNS 重試,則模組不得使用 C 庫進行 DNS 查找。最終結果將是嵌套的重試操作。
  • 跳過私有 IP 範圍:RFC1918(和類似的)空間應該始終獲得免費通行證,因為將此資訊傳遞給 DNSBL 是沒有用的。
  • 鎖定注意事項:當所有 DNS 不可用時會發生什麼?模組是否總是登錄失敗,除非使用私有 IP?這必須記錄在案。
  • 如果您在auth堆棧中被呼叫,則生成日誌錯誤。auth堆棧用於身份驗證。該模組不用於身份驗證。如果使用者將模組放在那裡,繞過auth堆棧的決定(SSH 密鑰身份驗證、GSSAPI 身份驗證等)將使模組失效。

引用自:https://serverfault.com/questions/608693