Tacacs+ 與 PAM 兩因素 Google 身份驗證?
我正在為我的校園網路開發一個 tacacs+ 伺服器,我一直想知道如何設置一個 tacacs+ 伺服器來與執行 google 的兩因素身份驗證的 PAM 通信。我做了很多Google搜尋,找到了一些有用的資訊,但我還沒有找到清晰的“路線圖”,而且很多步驟充其量看起來很模糊。我現在正在執行一個 Ubuntu tacacs+ 測試台,還沒有配置交換機或路由器。
有沒有人做過這樣的事情?我在這裡的 redhat 電子郵件鏈中找到了一個相對不錯的指南: https ://www.redhat.com/archives/pam-list/2014-March/msg00008.html
我不知道下一步該去哪裡,也不知道這個系統是如何工作的。有沒有我可以遵循的範例或任何人的一些建議?我覺得我現在正處於試錯模式。
編輯:具體來說,現在,我正盯著 /etc/pam.d/(tac_plus? 不管它叫什麼) 中的範例 PAM 配置文件,我不確定到底需要去那裡。那是Google身份驗證器的東西還是 tacacs+ 的東西?我的範例類似於下面發布的程式碼,但我不確定這裡發生了什麼:
auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 session optional pam_ldap.so
還有一個 tacacs 的配置,看起來非常簡單,但和其他所有東西一樣,我以前從未見過,所以我不太確定。它看起來像這樣:
# admin group group = admins { default service = permit login = PAM service = exec { priv-lvl = 15 } }
將其分為兩部分,pam 目錄用於對服務進行身份驗證:tac_plus。tac_plus 配置文件用於服務:tacacs+
帕姆
Pam 是您的可插入身份驗證,這是您將使用 google auth 配置使用者/密碼身份驗證的地方,因為 google auth 非常常用於 RADIUSD 和 SSHD 等服務,那麼我將為此竊取一些公共程式碼。
#1 Google搜尋結果是Supertech Guy,我實際上已經去寫了一篇關於他的一些安全實踐的譴責,但本質上是:
將此添加到 pam.d/tac_plus 的 auth 部分
auth requisite pam_google_authenticator.so forward_pass auth required pam_unix.so use_first_pass
如果您想從 ldap 提供使用者並預生成他們的 BASE32 密鑰而不是使用 google-auth 工具,則可以修改 google auth 密鑰的位置。 更多關於 google_auth pam 模組
TACACS++
tac_plus 是一項服務,當您使用此服務進行身份驗證時,它將使用 tac_plus 的 pam 模組,與 radiusd 和 sshd 相同。
有很多關於如何配置的指南,例如http://www.shrubbery.net/tac_plus/,遺憾的是我沒有親自配置 tac_plus。
讀
當您使用 google auth 進行身份驗證時,
forward_pass
您的密碼是 password&googleauth密碼:我的密碼
Google頂級:222555
您輸入的結果密碼:MyPassword222555