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