谷歌Google Authenticator實現雙因素認證

參考:
https://www.cnblogs.com/hanyifeng/p/kevin4real.html

介紹:什麼是雙因素認證

雙因素身份認證就是通過你所知道再加上你所能擁有的這二個要素組合到一起才能發揮作用的身份認證系統。雙因素認證是一種採用時間同步技術的系統,採用了基於時間、事件和密鑰三變量而產生的一次性密碼來代替傳統的靜態密碼。每個動態密碼卡都有一個唯一的密鑰,該密鑰同時存放在服務器端,每次認證時動態密碼卡與服務器分別根據同樣的密鑰,同樣的隨機參數(時間、事件)和同樣的算法計算了認證的動態密碼,從而確保密碼的一致性,從而實現了用戶的認證。

說白了,就像我們幾年前去銀行辦卡送的口令牌,以及網易遊戲中的將軍令,在你使用網銀或登陸游戲時會再讓你輸入動態口令的。

產品分類

市面上有基於硬件的,也有基於軟件的產品,具體可以另搜啊,本人喜歡開源的東東,並找到了Google開源的二次認證系統Google Authenticator OpenSource,可以利用智能手機生產30秒動態口令配合登陸linux系統,該驗證器提供了一個六位數的一次性密碼。目前ios 和Android 都有客戶端供於下載。

目的

1.實現登陸linux 服務器時,先輸入動態口令,認證成功後,在下一步輸入用戶密碼。如果口令失敗,不會進行下一步的本地密碼認證。

2.部署完成後,即使服務器不能上網,或者手機客戶端不能上網,整個二步驗證系統還是可以正常運行的。

基礎+部署步驟

稍後補充
可以參考:https://010sec.cn/2018/02/16/useing-google-authenticator.html

1.Install the open source Google Authenticator PAM module

# 需要安裝阿里雲epel源
yum install google-authenticator pam-devel libpng-devel

2.Install Google Authenticator

在手機上根據自己的操作系統類型下載身份驗證器(或者在谷歌瀏覽器端直接下載https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai)

3.Get the verification code

# 切換用戶
[user@locaohost ~]$ google-authenticator -l [email protected] -t -d -r 3 -R 30 -w 3

# 參數說明:
# google-authenticator -h 能看到可用的參數。上面命令用到的參數解釋如下:
# -l 設置移動設備上的程序對應的 OTP 碼的標籤,便於區分不同的應用。
# -t 設置採用基於時間的驗證。相應的也可以 -c 參數採用基於計數的驗證。
# -d 禁止重用基於時間的驗證碼
# -r 限制登錄頻率
# -R 設置登錄頻率限制的時間間隔
# -w 設置時間窗的大小,主要在移動設備的時間不是準確同步的情況下比較有用

4.Change /etc/ssh/sshd_config

# 配置採用Public Key + Google Authenticator 認證
[root@server1 ~]# vim /etc/ssh/sshd_config 
Protocol 2
AuthenticationMethods  publickey,keyboard-interactive
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes

5.Change /etc/pam.d/sshd

[root@server1 ~]# vim /etc/pam.d/sshd
# 第一行添加:
auth [success=done new_authtok_reqd=done default=die] pam_google_authenticator.so nullok

6.Restart SSH Service

systemctl restart sshd

7.生成私鑰和公鑰

[root@server2 ~]# yum whatprovides rz
[root@server2 ~]# yum install lrzsz -y
[root@server2 .ssh]# ssh-copy-id localhost
[root@server2 .ssh]# cp id_rsa.pub authorized_keys
[root@server2 .ssh]# sz id_rsa.pub
[root@server2 .ssh]# sz id_rsa
[root@server2 .ssh]# chmod 600 authorized_keys
[root@server2 ~]# cat .google_authenticator
KEJLQ2QW426ZNCKTHNEZEXUUE4

生成OTP碼之後就可以登陸了。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章