日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何在Linux中為SSH啟用多因素身份驗(yàn)證

譯者 | 康少京

審校 | 梁策 孫淑娟

介紹

安全無(wú)小事。隨著入侵事件數(shù)量與日俱增,據(jù)估計(jì),到2025年,網(wǎng)絡(luò)犯罪將給企業(yè)帶來(lái)10.5萬(wàn)億美元的損失。

所以,在技術(shù)堆棧之上構(gòu)筑一個(gè)強(qiáng)大的安全層十分必要。在本文中,我們將展示如何使用多因素身份驗(yàn)證的SSH 實(shí)現(xiàn)安全。

SSH,即Secure Shell,它是一種網(wǎng)絡(luò)協(xié)議,允許用戶(hù)連接到遠(yuǎn)程機(jī)器(服務(wù)器)并訪(fǎng)問(wèn)資源。

SSH協(xié)議實(shí)現(xiàn)了兩種安全類(lèi)型,即基于密碼的身份驗(yàn)證和基于密鑰的身份驗(yàn)證。

與基于密碼的身份驗(yàn)證相比,一般認(rèn)為基于密鑰的(公共->私有)身份驗(yàn)證更為安全,因此大多數(shù)SSH強(qiáng)化說(shuō)明更建議禁用基于密碼的身份驗(yàn)證,只啟用基于密鑰的身份驗(yàn)證。

但無(wú)論選擇哪種身份驗(yàn)證機(jī)制,我們都可以通過(guò)實(shí)現(xiàn)多因素身份驗(yàn)證設(shè)置來(lái)提高SSH的安全性。

什么是多因素身份驗(yàn)證?

多因素身份驗(yàn)證(MFA)是一種安全的認(rèn)證過(guò)程,它需要從獨(dú)立的憑證類(lèi)別中選擇多種認(rèn)證技術(shù)。

多因素身份驗(yàn)證也稱(chēng)為“雙因子驗(yàn)證 (2FA)”。

在驗(yàn)證你的所述身份時(shí),多因素身份驗(yàn)證涉及兩個(gè)因素:

第一是創(chuàng)建用戶(hù)賬戶(hù)時(shí)創(chuàng)建的密碼。

第二是任何生成動(dòng)態(tài)口令(OTP)的應(yīng)用程序,或任何向設(shè)備發(fā)送短信或撥打電話(huà)的協(xié)議。

根據(jù)應(yīng)用程序的實(shí)現(xiàn)方式,身份驗(yàn)證的方式會(huì)有所不同。MFA使用的一些常用工具包括:

  • 安裝在移動(dòng)設(shè)備上生成令牌的應(yīng)用程序。
  • 如Yubikey 之類(lèi)的外部設(shè)備。
  • 指紋
  • 面部識(shí)別
  • 基于OTP密碼的短信或來(lái)電

為了啟用SSH多因素身份驗(yàn)證,我們將使用“Google Authenticator”應(yīng)用程序。 它使用OATH-TOTP,以及Twilio Authy 或者FreeOTP等其他替代工具,你可以安裝并試用。

我們將從在服務(wù)器和移動(dòng)設(shè)備上安裝Google Authenticator 應(yīng)用開(kāi)始,并嘗試啟用 MFA和驗(yàn)證。

安裝谷歌身份驗(yàn)證器

首先通過(guò)playstore/Itunes在A(yíng)ndroid或IOS設(shè)備上安裝Google Authenticator 應(yīng)用程序。

現(xiàn)在,在Linux系統(tǒng)上安裝Google Authenticator應(yīng)用程序。

根據(jù)發(fā)行版本,運(yùn)行以下安裝命令。

在Ubuntu及其衍生發(fā)行版中,運(yùn)行以下命令:

$ sudo dnf install google-authenticator -y

在基于RHEL的發(fā)行版中,運(yùn)行以下命令:

$ sudo dnf install google-authenticator -y

對(duì)基于A(yíng)rch 的發(fā)行版,運(yùn)行以下命令;

$ sudo pacman -S libpam-google-authenticator

為用戶(hù)生成初始令牌

作為設(shè)置MFA的第一步,你必須從終端運(yùn)行以下命令。這將通過(guò)生成TOTP密鑰來(lái)完成初始設(shè)置。此密鑰適用于運(yùn)行命令的用戶(hù),并不適用于系統(tǒng)中的所有用戶(hù)。

$ google-authenticator

在某些步驟中,系統(tǒng)會(huì)提示你使用 (y/n) 選項(xiàng)。

第1步:它將提示你選擇基于時(shí)間的身份驗(yàn)證令牌?;跁r(shí)間的身份驗(yàn)證令牌將每30秒生成一個(gè)新代碼。 按“y”繼續(xù)。

運(yùn)行Google身份驗(yàn)證器命令

第2步:秘密令牌將與二維碼一起生成。打開(kāi)Google Authenticator移動(dòng)應(yīng)用程序,掃描二維碼或手動(dòng)鍵入密鑰來(lái)注冊(cè)設(shè)備。完成后,現(xiàn)在應(yīng)用程序?qū)㈤_(kāi)始每30秒生成一次令牌。

密鑰和驗(yàn)證碼

第3步:在這一步中,它將提示你更新在主目錄下的google_authenticator文件。所有的密鑰、驗(yàn)證碼、緊急刮擦碼都保存在這個(gè)文件中。按“y”繼續(xù)。

更新google_authenticator文件

第 4 步:若在這一步中選擇“y”,令牌在進(jìn)行身份驗(yàn)證后將立即過(guò)期。在這種情況下,即使一些黑客得到了你的令牌也會(huì)過(guò)期。

禁止多次使用相同的身份驗(yàn)證

第 5 步:這一步?jīng)Q定允許使用令牌個(gè)數(shù)以及時(shí)間范圍。當(dāng)選擇“n”時(shí),它將允許在90秒的窗口內(nèi)使用3個(gè)令牌。如果我按“y”,它將在240秒的時(shí)間窗口內(nèi)允許17個(gè)令牌。

令牌數(shù)量

第 6 步:此步驟將要求你啟用速率限制。速率限制允許攻擊者每30秒僅嘗試3次登錄嘗試。如果令牌錯(cuò)誤,那么他們必須等待N次重試。

限速

我們已經(jīng)完成了第一步。打開(kāi)文件~/.google_authenticator,你可以找到這些步驟做的所有設(shè)置和密碼。

$ cat ~/.google_authenticator

查看 google_authenticator 設(shè)置

你還可以將參數(shù)傳遞給google-authenticator命令,該命令將創(chuàng)建密鑰和其他設(shè)置,而無(wú)需執(zhí)行這一系列步驟。

$ google-authenticator -q -t -d -f -r 3 -R 30 -w 3

請(qǐng)參閱 google-authenticator help部分,了解這些參數(shù)的作用。

$ google-authenticator --help

顯示 google-authenticator help部分

為多因素身份驗(yàn)證配置 SSH

在使用MFA前,我們必須對(duì) openSSH 進(jìn)行一些配置更改。

注:

最佳實(shí)踐總是要求在任何更改之前備份配置文件。如果出現(xiàn)任何問(wèn)題,還有恢復(fù)更改的余地。

那么在更改SSH配置文件時(shí),請(qǐng)確保單獨(dú)打開(kāi)一個(gè)會(huì)話(huà),這樣你就不會(huì)將自己鎖在外面了。

運(yùn)行以下命令來(lái)備份SSH配置文件。

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

$ sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.backup

首先,通過(guò)將 ChallengeResponseAuthentication選項(xiàng)設(shè)置為“yes”來(lái)啟用,使SSH 能夠使用MFA。

配置SSH以使用 MFA

接下來(lái),編輯 /etc/pam.d/sshd 文件:

$ sudo vi /etc/pam.d/sshd

同時(shí)在文件底部添加以下內(nèi)容:

auth required pam_google_authenticator.so nullok
auth required pam_permit.so

編輯 sshd Pam 配置文件

如果希望所有用戶(hù)都必須使用MFA,請(qǐng)刪除“nullok”一詞。

重新啟動(dòng) SSH 服務(wù)以使更改生效。

$ sudo systemctl restart sshd

測(cè)試雙因素身份驗(yàn)證

接下來(lái)測(cè)試所做的更改是否生效:

通過(guò)SSH連接到服務(wù)器,系統(tǒng)會(huì)要求你輸入密碼作為第一因素,然后輸入驗(yàn)證碼作為第二因素身份驗(yàn)證,如下圖所示。

$ ssh username@hostname/IPaddress

測(cè)試雙因素身份驗(yàn)證

輸入SSH密碼和驗(yàn)證碼后,就可以登錄了。

由于我們沒(méi)有為所有用戶(hù)強(qiáng)制啟用MFA,現(xiàn)在我們測(cè)試一下,看看是否能夠連接到另一個(gè)沒(méi)有生成和設(shè)置令牌的用戶(hù)。

我有一個(gè)testuser ,能夠在不需提示,輸入驗(yàn)證碼的情況下連接成功。

使用備用用戶(hù)連接

看來(lái), 也可以不用驗(yàn)證碼登錄。

基于密鑰認(rèn)證的多因素身份驗(yàn)證

如果你設(shè)置了基于密鑰的身份驗(yàn)證,那么密碼或驗(yàn)證碼將不會(huì)提供。

因?yàn)槟J(rèn)情況下,SSH首先使用公鑰身份驗(yàn)證,如果找到了密鑰,則使用該密鑰進(jìn)行身份驗(yàn)證。如果找不到密鑰,它將使用基于密碼的身份驗(yàn)證。

你可以使用詳細(xì)模式來(lái)檢查這一點(diǎn)。

$ ssh -v username@hostname/IPaddress ## With verbose

帶有詳細(xì)模式的 SSH

在/etc/ssh/sshd_config文件的底部添加以下內(nèi)容:

AuthenticationMethods publickey,password publickey,keyboard-interactive

接下來(lái)打開(kāi)/etc/pam.d/sshd 并注釋掉以下行。

通用認(rèn)證

如果你沒(méi)有注釋掉"@include common-auth",那么它將啟用兩個(gè)以上的因素進(jìn)行身份驗(yàn)證。首先它使用密鑰進(jìn)行身份驗(yàn)證,然后是密碼和令牌。由于我只需要一個(gè)密鑰和令牌來(lái)進(jìn)行身份驗(yàn)證,所以要將它禁用。

三因素身份驗(yàn)證

重新啟動(dòng)sshd服務(wù)并測(cè)試更改是否正常。

$ sudo systemctl restart sshd

現(xiàn)在,如果我嘗試連接,它使用公鑰作為第一因素,驗(yàn)證碼作為第二因素進(jìn)行身份驗(yàn)證。

密鑰和驗(yàn)證碼

恢復(fù)步驟

在某些情況下,你可能會(huì)丟失或更換移動(dòng)設(shè)備,這時(shí)你必須重新安裝 google-authenticator應(yīng)用程序并注冊(cè)密鑰才能開(kāi)始生成令牌。

如果你被鎖定在系統(tǒng)之外,那么就必須要聯(lián)系系統(tǒng)管理員,為你提供注冊(cè)和使用的新密鑰。但是,你也可以通過(guò)另一種方法登錄并自行生成密鑰。

還記得在初始步驟中生成的代碼嗎?你可以使用緊急刮擦碼作為登錄的令牌。每個(gè)刮擦碼只能使用一次,它可以保存在安全的地方,以便在最需要的時(shí)候使用。

代碼保存在 ~/.google_authenticator 文件中。

$ cat ~/.google_authenticator

刮碼

現(xiàn)在可以運(yùn)行以下命令重新生成自己的密鑰。

$ google-authenticator

結(jié)論

本文展示了如何安裝谷歌身份驗(yàn)證器,以及使用不同配置為SSH啟用多因素身份驗(yàn)證的方式。

作為管理員,你還可以編寫(xiě)bash腳本來(lái)自動(dòng)生成密鑰并與用戶(hù)共享。在設(shè)置 MFA 之前,還應(yīng)加強(qiáng)SSH讓系統(tǒng)更安全。

作者介紹

卡爾???Karthick)是一位充滿(mǎn)熱情的軟件工程師,喜歡探索新技術(shù)。他是一位公眾講師,喜歡撰寫(xiě)Linux和開(kāi)源等方面的技術(shù)文章。


網(wǎng)站名稱(chēng):如何在Linux中為SSH啟用多因素身份驗(yàn)證
標(biāo)題鏈接:http://m.5511xx.com/article/ccdejsc.html