CentOS 7 SSH 兩步驟驗證 (Using Google Authenticator)

本篇主要介紹CentOS 7 搭配 Google-Authenticator 實現雙因素認證

下載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與pam設定:

# vim /etc/pam.d/sshd

於最後面加入以下設定值:

auth required pam_google_authenticator.so nullok

nullok的作用是讓未設定google-auth的Account
能夠單次認證登入,可自行考量實際環境變更此參數

將sshd_config中ChallengeResponseAuthentication改為yes

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

為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
相反的,這個檔案也就非常重要,切記不要亂修改權限還有放在公開空間

pam設定差異:
相信比較熟悉Linux會知道,因為只在sshd中下設定了
auth required pam_google_authenticator.so
因此只於ssh中生效,假如您希望su也生效,可以到/etc/pam.d/su加入即可

其他的也可以如法炮製,但建議最多就ssh跟su加入就好
否則當時間出現問題時加上沒有緊急碼,可不是開玩笑的
至少本機認證設定這項是比較不建議的,為什麼?

本機登入之所以不設定,是因為一般外來者幾乎不可能在本機下進行入侵
假如您讓外來者能夠來到本機進行登入,我想這時候就不是帳號認證的問題了…

廣告

對「CentOS 7 SSH 兩步驟驗證 (Using Google Authenticator)」的一則回應

發表迴響

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

WordPress.com 標誌

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

Google photo

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

Twitter picture

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

Facebook照片

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

連結到 %s