Linux

限制並發登錄到 LDAP Linux 網路上的多個桌面?

  • March 29, 2016

在一個私有的、全 Linux LDAP 身份驗證的網路中,如何限制單個使用者帳戶一次登錄的桌面電腦的數量?

以下是要防止的情況: 擁有有效帳戶的使用者使用同一個帳戶登錄到 10 個不同的桌面,這樣他就可以與他的 9 個朋友一起玩遊戲;這些朋友都沒有網路上的有效帳戶。

伺服器是帶有 OpenLDAP 的 RHEL 5,桌面是 Fedora 11(可用時將是 CentOS 5.4)。所有桌面登錄均通過伺服器上的 LDAP。

注意:可以使用in來限制台機器上的並發登錄,但這在所述場景中是無用的。maxlogins``/etc/security/limits.conf

另請注意:在帶有 Active Directory 的 Windows 網路上,UserLock 和 LimitLogin 等軟體可以完成此操作;但是這個網路沒有 Windows 也沒有 AD 伺服器。

編輯:我意識到 LDAP 不能自己做到這一點;如果有成熟的、經過良好測試的附加產品,類似於前面提到的基於 Windows 的產品,那將是一個好消息。我什至會考慮非免費/非自由的解決方案。

搜尋後它看起來不像 LDAP 或 Kerberos 會這樣做。顯然 LDAP 中沒有它的屬性,而且從 LDAP 的角度來看,它確實沒有辦法工作。LDAP 沒有註銷,因此它永遠無法減少登錄計數。

鑑於此,解決方案似乎必須是臨時的。

您將需要一個服務來監視每台機器上/var/run/utmp的命令w(顯示目前登錄的使用者)並通過某種機制(例如,nfs 掛載 + 文本文件)將其報告給中央伺服器。

然後,您將需要一個登錄腳本,如果使用者超過了並發登錄的限制,則將其踢出。登錄腳本將從中央伺服器讀取目前登錄計數。或者,您可以擁有一項服務,該服務根據從中央伺服器檢索到的登錄計數值來修改maxlogins輸入/etc/security/limits.conf

maxlogins = $total_logins - $current_logins

基本上,最重要的考慮是使用者沒有權限自己更改登錄計數,或者他們可以手動更改該值以允許更多登錄。

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