Ubuntu

Tacacs+ 與 PAM 兩因素 Google 身份驗證?

  • March 30, 2017

我正在為我的校園網路開發一個 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

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