主頁(yè) > 知識(shí)庫(kù) > 通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程

通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程

熱門(mén)標(biāo)簽:義烏市400電話辦理 大連企業(yè)電銷機(jī)器人線路 優(yōu)邁系統(tǒng)外呼顯示亂層 上海電銷卡外呼系統(tǒng)供應(yīng)商 營(yíng)銷智能外呼系統(tǒng)口碑推薦 怎么查看地圖標(biāo)注的地點(diǎn) 岑溪電銷機(jī)器人 電銷機(jī)器人錄音用什么軟件 布谷電銷機(jī)器人價(jià)格

有人說(shuō),安全不是一個(gè)產(chǎn)品,而是一個(gè)過(guò)程(LCTT 注:安全公司 McAfee 認(rèn)為,安全風(fēng)險(xiǎn)管理是一個(gè)方法論,而不是安全產(chǎn)品的堆疊)。雖然 SSH 協(xié)議被設(shè)計(jì)成使用加密技術(shù)來(lái)確保安全,但如果使用不當(dāng),別人還是能夠破壞你的系統(tǒng):比如弱密碼、密鑰泄露、使用過(guò)時(shí)的 SSH 客戶端等,都能引發(fā)安全問(wèn)題。

在考慮 SSH 認(rèn)證方案時(shí),大家普遍認(rèn)為公鑰認(rèn)證比密碼認(rèn)證更安全。然而,公鑰認(rèn)證技術(shù)并不是為公共環(huán)境設(shè)置的,如果你在一臺(tái)公用電腦上使用公鑰認(rèn)證登錄 SSH 服務(wù)器,你的服務(wù)器已經(jīng)毫無(wú)安全可言了,公用的電腦可能會(huì)記錄你的公鑰,或從你的內(nèi)存中讀取公鑰。如果你不信任本地電腦,那你最好還是使用其他方式登錄服務(wù)器?,F(xiàn)在就是“一次性密碼(OTP)”派上用場(chǎng)的時(shí)候了,就像名字所示,一次性密碼只能被使用一次。這種一次性密碼非常合適在不安全的環(huán)境下發(fā)揮作用,就算它被竊取,也無(wú)法再次使用。

有個(gè)生成一次性密碼的方法是通過(guò)谷歌認(rèn)證器,但在本文中,我要介紹的是另一種 SSH 登錄方案:OTPW,它是個(gè)一次性密碼登錄的軟件包。不像谷歌認(rèn)證,OTPW 不需要依賴任何第三方庫(kù)。
OTPW 是什么

OTPW 由一次性密碼生成器和 PAM 認(rèn)證規(guī)則組成。在 OTPW 中一次性密碼由生成器事先生成,然后由用戶以某種安全的方式獲得(比如打印到紙上)。另一方面,這些密碼會(huì)通過(guò) Hash 加密保存在 SSH 服務(wù)器端。當(dāng)用戶使用一次性密碼登錄系統(tǒng)時(shí),OTPW 的 PAM 模塊認(rèn)證這些密碼,并且保證它們不能再次使用。
步驟1:OTPW 的安裝和配置
在 Debian, Ubuntu 或 Linux Mint 發(fā)行版上

使用 apt-get 安裝:

   

復(fù)制代碼
代碼如下:
$ sudo apt-get install libpam-otpw otpw-bin

打開(kāi)針對(duì) SSH 服務(wù)的 PAM 配置文件(/etc/pam.d/sshd),注釋掉下面這行(目的是禁用 PAM 的密碼認(rèn)證功能):

   

復(fù)制代碼
代碼如下:
#@include common-auth

添加下面兩行(用于打開(kāi)一次性密碼認(rèn)證功能):

   

復(fù)制代碼
代碼如下:
auth required pam_otpw.so
session optional pam_otpw.so

 在 Fedora 或 CentOS/RHEL 發(fā)行版上

在基于 RedHat 的發(fā)行版中沒(méi)有編譯好的 OTPW,所以我們需要使用源代碼來(lái)安裝它。

首先,安裝編譯環(huán)境:

   

復(fù)制代碼
代碼如下:
$ sudo yum git gcc pam-devel
$ git clone https://www.cl.cam.ac.uk/~mgk25/git/otpw
$ cd otpw

打開(kāi) Makefile 文件,編輯以“PAMLIB=”開(kāi)頭的那行配置:

64 位系統(tǒng):

   

復(fù)制代碼
代碼如下:
PAMLIB=/usr/lib64/security

32 位系統(tǒng):

   

復(fù)制代碼
代碼如下:
PAMLIB=/usr/lib/security

編譯安裝。需要注意的是安裝過(guò)程會(huì)自動(dòng)重啟 SSH 服務(wù)一下,所以如果你是使用 SSH 連接到服務(wù)器,做好被斷開(kāi)連接的準(zhǔn)備吧(LCTT 譯注:也許不會(huì)被斷開(kāi)連接,即便被斷開(kāi)連接,請(qǐng)使用原來(lái)的方式重新連接即可,現(xiàn)在還沒(méi)有換成一次性口令方式。)。

   

復(fù)制代碼
代碼如下:
$ make
$ sudo make install

現(xiàn)在你需要更新 SELinux 策略,因?yàn)?/usr/sbin/sshd 會(huì)往你的 home 目錄寫(xiě)數(shù)據(jù),而 SELinux 默認(rèn)是不允許這么做的。如果沒(méi)有使用 SELinux 服務(wù)(LCTT 注:使用 getenforce 命令查看結(jié)果,如果是 enforcing,就是打開(kāi)了 SELinux 服務(wù)),請(qǐng)?zhí)^(guò)這一步。

   

復(fù)制代碼
代碼如下:
$ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ sudo semodule -i mypol.pp

接下來(lái)打開(kāi) PAM 配置文件(/etc/pam.d/sshd),注釋下面這行(為了禁用密碼認(rèn)證):

  

復(fù)制代碼
代碼如下:
#auth substack password-auth

添加下面兩行(用于打開(kāi)一次性密碼認(rèn)證功能):

   

復(fù)制代碼
代碼如下:
auth required pam_otpw.so
session optional pam_otpw.so

步驟2:配置 SSH 服務(wù)器,使用一次性密碼

打開(kāi) /etc/ssh/sshd_config 文件,設(shè)置下面三個(gè)參數(shù)。你要確保下面的參數(shù)不會(huì)重復(fù)存在,否則 SSH 服務(wù)器可能會(huì)出現(xiàn)異常。

   

復(fù)制代碼
代碼如下:
UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
UsePAM yes

你還需要禁用默認(rèn)的密碼認(rèn)證功能。另外可以選擇開(kāi)啟公鑰認(rèn)證功能,那樣的話你就可以在沒(méi)有一次性密碼的時(shí)候使用公鑰進(jìn)行認(rèn)證。

   

復(fù)制代碼
代碼如下:
PubkeyAuthentication yes
PasswordAuthentication no

重啟 SSH 服務(wù)器。

Debian, Ubuntu 或 Linux Mint 發(fā)行版:

   

復(fù)制代碼
代碼如下:
$ sudo service ssh restart

Fedora 或 CentOS/RHEL 7 發(fā)行版:

   

復(fù)制代碼
代碼如下:
$ sudo systemctl restart sshd

(LCTT 譯注:雖然這里重啟了 sshd 服務(wù),但是你當(dāng)前的 ssh 連接應(yīng)該不受影響,只是在你完成下述步驟之前,無(wú)法按照原有方式建立新的連接了。因此,保險(xiǎn)起見(jiàn),要么多開(kāi)一個(gè) ssh 連接,避免誤退出當(dāng)前連接;要么將重啟 sshd 服務(wù)器步驟放到步驟3完成之后。)
步驟3:使用 OTPW 產(chǎn)生一次性密碼

之前提到過(guò),你需要事先創(chuàng)建一次性密碼,并保存起來(lái)。使用 otpw-gen 命令創(chuàng)建密碼:

   

復(fù)制代碼
代碼如下:
$ cd ~
$ otpw-gen > temporary_password.txt

  

    這個(gè)命令會(huì)讓你輸入密碼前綴,當(dāng)你以后登錄的時(shí)候,你需要同時(shí)輸入這個(gè)前綴以及一次性密碼。密碼前綴是另外一層保護(hù),就算你的一次性密碼表被泄漏,別人也無(wú)法通過(guò)暴力破解你的 SSH 密碼。

設(shè)置好密碼前綴后,這個(gè)命令會(huì)產(chǎn)生 280 個(gè)一次性密碼(LCTT 譯注:保存到 ~/.otpw 下),并將它們導(dǎo)出到一個(gè)文本文件中(如 temporary_password.txt)。每個(gè)密碼(默認(rèn)是 8 個(gè)字符)由一個(gè) 3 位十進(jìn)制數(shù)索引。你需要將這個(gè)密碼表打印出來(lái),并隨身攜帶。

查看 ./.otpw 文件,它存放了一次性密碼的 HASH 值。頭 3 位十進(jìn)制數(shù)與你隨身攜帶的密碼表的索引一一對(duì)應(yīng),在你登錄 SSH 服務(wù)器的時(shí)候會(huì)被用到。

   

復(fù)制代碼
代碼如下:
$ more ~/.otpw/p> p> OTPW1
280 3 12 8
191ai+:ENwmMqwn
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64jBT
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z

測(cè)試一次性密碼登錄 SSH 服務(wù)器

使用普通的方式登錄 SSH 服務(wù)器:

   

復(fù)制代碼
代碼如下:
$ ssh user@remote_host

如果 OTPW 成功運(yùn)行,你會(huì)看到一點(diǎn)與平時(shí)登錄不同的地方:

   

復(fù)制代碼
代碼如下:
Password 191:

現(xiàn)在打開(kāi)你的密碼表,找到索引號(hào)為 191 的密碼。

   

復(fù)制代碼
代碼如下:
023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt

從上表可知,191 號(hào)密碼是“fOO+PeiD”。你需要加上密碼前綴,比如你設(shè)置的前綴是“000”,則你實(shí)際需要輸入的密碼是“000fOO+PeiD”。

成功登錄后,你這次輸入的密碼自動(dòng)失效。查看 ~/.otpw 文件,你會(huì)發(fā)現(xiàn)第一行變成“---------------”,這表示 191 號(hào)密碼失效了。

   

復(fù)制代碼
代碼如下:
OTPW1
280 3 12 8
---------------
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64jBT
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z

總結(jié)

在這個(gè)教程中,我介紹了如何使用 OTPW 工具來(lái)設(shè)置一次性登錄密碼。你也許意識(shí)到了在這種雙因子的認(rèn)證方式中,打印一張密碼表讓人感覺(jué)好 low,但是這種方式是最簡(jiǎn)單的,并且不用依賴任何第三方軟件。無(wú)論你用哪種方式創(chuàng)建一次性密碼,在你需要在一個(gè)不可信任的環(huán)境登錄 SSH 服務(wù)器的時(shí)候,它們都很有用。你可以就這個(gè)主題來(lái)分享你的經(jīng)驗(yàn)和觀點(diǎn)。

標(biāo)簽:忻州 楚雄 來(lái)賓 阜陽(yáng) 遼陽(yáng) 淄博 荊州 迪慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程》,本文關(guān)鍵詞  通過(guò),OTPW,來(lái)用,SSH,安全,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章