如何在Linux平臺(tái)下搭建雙因子驗(yàn)證系統(tǒng)?
譯文【51CTO.com快譯】雙因子驗(yàn)證應(yīng)該是一項(xiàng)必用技術(shù)。本文作者介紹了為L(zhǎng)inux臺(tái)式機(jī)和服務(wù)器添加這個(gè)安全層的新方法。
如果你是Linux管理員,期望盡可能?chē)?yán)加保護(hù)你的Linux服務(wù)器和桌面,那就應(yīng)該使用雙因子驗(yàn)證。并將它視為“不二的選擇”,原因何在?因?yàn)樘砑与p因子驗(yàn)證后,惡意用戶訪問(wèn)你的機(jī)器要難得多。你可以組建這樣的一臺(tái)Linux機(jī)器:要是沒(méi)有與這臺(tái)機(jī)器關(guān)聯(lián)的雙因子驗(yàn)證代碼,你無(wú)法登錄到控制臺(tái)或桌面,或者無(wú)法通過(guò)安全外殼來(lái)登錄。
下面我要介紹在Ubuntu Server 16.04上搭建這個(gè)系統(tǒng)的過(guò)程。如果你之前嘗試過(guò)這個(gè)過(guò)程,就知道步驟有了變化,之前詳述的方法再也不管用。
準(zhǔn)備工作
添加雙因子驗(yàn)證時(shí)要記住一點(diǎn):一旦搭建完畢,要是沒(méi)有第三方生成的代碼,你無(wú)法進(jìn)入自己的機(jī)器。每當(dāng)你想要登錄,就需要智能手機(jī)或緊急代碼(安裝必要工具時(shí)生成的)。
需要的東西
顯然,你需要一臺(tái)Linux服務(wù)器或臺(tái)式機(jī)。確保它已全面更新,數(shù)據(jù)已作好備份。還需要第三方應(yīng)用軟件(比如Authy或Google Authenticator)來(lái)生成雙因子代碼。我本人使用Authy完成這項(xiàng)任務(wù)。安裝Authy或Google Authenticator應(yīng)用軟件的過(guò)程就不作介紹了,因?yàn)檫@個(gè)過(guò)程不需要加以說(shuō)明。
好了,咱們開(kāi)始搭建吧。
安裝
登錄到Linux機(jī)器,遵循這些步驟:
1. 打開(kāi)終端窗口
2. 執(zhí)行命令sudo apt install libpam-google-authenticator
3. 輸入sudo密碼后,按回車(chē)鍵
4. 看到提示后,輸入y,按回車(chē)鍵
5. 讓安裝完成
現(xiàn)在可以針對(duì)雙因子驗(yàn)證來(lái)配置機(jī)器了。
配置
回到終端窗口,執(zhí)行命令sudo nano /etc/pam.d/common-auth。將下面這一行添加到文件末尾:
- auth required pam_google_authenticator.so nullok
保存并關(guān)閉該文件。
現(xiàn)在我們要為需要登錄到該機(jī)器的每個(gè)用戶安裝Google-authenticator。我將演示只有一個(gè)用戶的情況?;氐浇K端窗口,以該用戶的身份執(zhí)行命令command google-authenticator。需要回答一系列問(wèn)題。第一個(gè)問(wèn)題是:你希望驗(yàn)證令牌基于時(shí)間(y/n)y嗎?回答y,會(huì)看到一個(gè)二維碼(圖A)。在手機(jī)上打開(kāi)雙因子應(yīng)用,添加一個(gè)新帳戶,掃描該代碼。
圖A:掃描二維碼,將帳戶添加到你的第三方應(yīng)用軟件
一旦添加好代碼,回答剩余的問(wèn)題:
- 希望我更新你的“/home/jlwallen/.google_authenticator”文件(y/n) 嗎?
- 希望禁止多次使用同一個(gè)驗(yàn)證令牌(y/n)嗎?這將限制你在大概每30秒登錄一次,但提高了發(fā)覺(jué)或甚至防止中間人攻擊的機(jī)會(huì)。
- 默認(rèn)情況下,令牌有效時(shí)間是30秒,為了補(bǔ)償客戶端與服務(wù)器可能出現(xiàn)的時(shí)間偏差,我們?cè)试S當(dāng)前時(shí)間前后有一個(gè)額外的令牌。如果你遇到了時(shí)間同步糟糕的問(wèn)題,可以將時(shí)間窗口由默認(rèn)的1分30秒調(diào)大到約4分鐘。你希望這么做(y/n)嗎?
- 如果你登錄的計(jì)算機(jī)沒(méi)有加固、因而防范不了蠻力登錄,可以對(duì)驗(yàn)證模塊啟用速率進(jìn)行限制。默認(rèn)情況下,這將攻擊者限制在每30秒最多只能登錄3次。你希望啟用速率限制(y/n)嗎?
輸入y后按回車(chē)鍵,回答每個(gè)問(wèn)題。
配置SSH
接下來(lái),我們配置ssh以便允許雙因子驗(yàn)證,不然你無(wú)法通過(guò)ssh登錄。步驟如下:
先啟用PAM模塊。為此,執(zhí)行命令sudo nano /etc/pam.d/sshd。文件打開(kāi)后,將下面這一行添加到文件末尾:
- auth required pam_google_authenticator.so nullok
保存該文件,然后執(zhí)行命令sudo nano /etc/ssh/sshd_config。在該文件中,尋找:
- ChallengeResponseAuthentication no
找到后,改成:
- ChallengeResponseAuthentication yes
保存該文件,用命令sudo systemctl restart sshd重啟sshd。
登錄
從當(dāng)前的工作終端窗口退出服務(wù)器之前,強(qiáng)烈建議你打開(kāi)新的窗口,試著通過(guò)安全外殼登錄機(jī)器。要是無(wú)法登錄,回頭查一遍步驟,確保沒(méi)有漏掉哪個(gè)環(huán)節(jié)。一旦以這種方式成功登錄,就可以安全地退出當(dāng)前的會(huì)話、重新登錄了。
恭喜多了一道新的安全防線
以上就是為你的Linux機(jī)器添加另外一道安全防線的所有步驟。切記:要是沒(méi)有那個(gè)第三方雙因子驗(yàn)證應(yīng)用軟件,你就無(wú)法登錄剛配置的機(jī)器,所以確保手機(jī)隨時(shí)在身邊。
Authy的下載地址:
https://play.google.com/store/apps/details?id=com.authy.authy
Google Authenticato的下載地址:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
原文標(biāo)題:How to set up two-factor authentication in Linux,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】