CentOS 7 使用 Google Authenticator 實現兩步驟驗證 (內容更新 – 2019/09/18 )

心得:

主要在系統上實踐兩步驟驗證的功能,對於安全性能夠有著更高的實現

設定與安裝:

下載google-authenticator-libpam
https://github.com/google/google-authenticator-libpam

安裝 Development Tools:

# yum groupinstall "Development Tools"

裡面包含以下套件,可自行斟酌安裝
* flex
* gcc c/c++ compiler
* redhat-rpm-config
* strace
* rpm-build
* make
* pkgconfig
* gettext
* automake
* strace64
* gdb
* bison
* libtool
* autoconf
* gcc-c++ compiler
* binutils and all dependencies.

Compile libpam:

# unzip google-authenticator-libpam-master.zip
# cd google-authenticator-libpam-master
# ./bootstrap.sh
# ./configure
# make && make install

如果出現:

configure: error: Unable to find the PAM library or the PAM header files

請安裝此套件後,重新執行./configure:

# yum install pam-devel

如果沒有特別指定,pam_google_authenticator.so會在/usr/local/lib/security/目錄中
或是直接尋找

# find / -name pam_google_authenticator.so -type f

將其移動或複製到/usr/lib64/security/

# mv /usr/local/lib/security/pam_google_authenticator.* /usr/lib64/security/

修改 sshd_config 設定:

將 sshd_config 中 ChallengeResponseAuthentication 改為 yes

# vim /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
# systemctl restart sshd

修改 /etc/pam.d/system-auth-ac 或 /etc/pam.d/password-auth-ac:

簡單理解 system-auth-ac 主要是管本機登入認証

而 password-auth-ac 主要是管 ssh 登入認証

但建議不要死記,可以參考 /etc/pam.d 底下的 su、sudo、sshd 的 auth substack 等參數

如果知道系統 pam 的運作原理,對於往後設定連線狀況排除會有一定的幫助

在原本 auth required 次行加入以下

auth required pam_google_authenticator.so nullok

nullok 的作用是讓未設定 google-auth 的 Account
能夠跳過兩步驟驗證登入,基於安全性當會建議拿掉紅字部份

為帳戶設定 Google-Authenticator:
登入需要設定的帳號,執行如下圖

# google-authenticator

CentOS 7 SSH 雙因素認證 (Using Google Authenticator).png
Google-Authenticator 可以使用 QRCode 或是 secret key 加入
下面五組數字,是在您手邊無法使用認證因素時,緊急使用登入的
設定完成後,預設在 User 的家目錄下產生一個 .google_authenticator
裡面有著 secret key 與 emergency scratch codes
相反的,這個檔案也就非常重要,最好不要亂修改權限以及放在公開空間

CentOS 7 使用 Google Authenticator 實現兩步驟驗證 (內容更新 – 2019/09/18 ) 有 “ 2 則迴響 ”

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s