自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux上用一次性密碼確保SSH登錄安全?

譯文
安全 數(shù)據(jù)安全
常言道,安全不是一種產(chǎn)品,而是一個(gè)過程。雖然SSH協(xié)議本身在設(shè)計(jì)上采用了密碼,因而很安全,但要是它未得到適當(dāng)管理:無論是弱密碼、密鑰泄密還是過時(shí)的SSH客戶軟件,有人就會(huì)對(duì)你的SSH服務(wù)造成嚴(yán)重破壞。

常言道,安全不是一種產(chǎn)品,而是一個(gè)過程。雖然SSH協(xié)議本身在設(shè)計(jì)上采用了密碼,因而很安全,但要是它未得到適當(dāng)管理:無論是弱密碼、密鑰泄密還是過時(shí)的SSH客戶軟件,有人就會(huì)對(duì)你的SSH服務(wù)造成嚴(yán)重破壞。

至于SSH驗(yàn)證,公鑰驗(yàn)證通常被認(rèn)為比密碼驗(yàn)證來得安全。然而,如果你從公共或共享的計(jì)算機(jī)登錄,密鑰驗(yàn)證實(shí)際上并不可取,甚至不太安全。因?yàn)樵谶@類計(jì)算機(jī)上,總是有可能潛藏著隱形擊鍵記錄程序或內(nèi)存抓取惡意軟件(memory scraper)之類的威脅。要是你無法信任本地計(jì)算機(jī),最好還是使用別的密碼。這時(shí)候,“一次性密碼”就派得上用場(chǎng)。顧名思義,每個(gè)一次性密碼只能用一次。這種一次性密碼可以在不可信任的環(huán)境下安全地使用,因?yàn)榧词贡蝗吮I取,它們也無法再次使用。

生成一次性密碼的辦法之一就是通過谷歌驗(yàn)證器(Google Authenticator)。在本教程中,我將演示創(chuàng)建用于SSH登錄的一次性密碼的另一種方法:OTPW(http://www.cl.cam.ac.uk/~mgk25/otpw.html),這是一次性密碼登錄程序包。不像谷歌驗(yàn)證器,你不用依賴任何第三方即可生成并驗(yàn)證一次性密碼。

OTPW簡(jiǎn)介

OTPW包括兩部分:一次性密碼生成器和集成PAM的驗(yàn)證實(shí)用例程。在OTPW中,一次性密碼由生成器通過推理法生成,并由用戶安全地?cái)y帶(比如打印在紙張上)。所生成密碼的密碼散列然后存儲(chǔ)在SSH服務(wù)器主機(jī)上。當(dāng)用戶用一次性密碼登錄時(shí),OTPW的PAM模塊就會(huì)驗(yàn)證密碼,使用后讓密碼作廢,防止再次使用。

第一步:在Linux上安裝和配置OTPW

在Debian、Ubuntu或Linux Mint上:

用apt-get安裝OTPW程序包。

$ sudo apt-get install libpam-otpw otpw-bin

使用文本編輯工具,打開SSH的PAM配置文件(/etc/pam.d/sshd),注釋掉下面這行代碼(以禁用密碼驗(yàn)證)。

#@include common-auth

然后添加下面兩行代碼(以啟用一次性密碼驗(yàn)證):

auth required pam_otpw.so
session optional pam_otpw.so

如何在Linux上用一次性密碼確保SSH登錄安全?

在Fedora或CentOS/RHEL上:

在基于紅帽的系統(tǒng)上,沒有作為預(yù)制程序包的OTPW。于是,我們通過從源代碼來構(gòu)建的方法,安裝OTPW。

首先,安裝基本組件:

$ sudo yum git gcc pam-devel
$ git clone https://www.cl.cam.ac.uk/~mgk25/git/otpw
$ cd otpw

使用文本編輯工具打開Makefile,編輯以“PAMLIB=”開頭的這一行,如下所示。

在64位系統(tǒng)上:

PAMLIB=/usr/lib64/security

在32位系統(tǒng)上:

PAMLIB=/usr/lib/security

編譯后安裝。請(qǐng)注意:安裝環(huán)節(jié)會(huì)自動(dòng)重啟SSH服務(wù)器。所以如果你使用SSH連接,就要準(zhǔn)備好斷開。

$ make
$ sudo make install

現(xiàn)在你需要更新SELinux策略,因?yàn)?usr/sbin/sshd試圖寫入到用戶的主目錄,而默認(rèn)的SELinux策略不允許這個(gè)操作。下面這些命令可以起到更新策略的作用。如果你不使用SELinux,跳過這一步好了。

$ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ sudo semodule -i mypol.pp

下一步,用文本編輯工具打開SSH的PAM配置文件(/etc/pam.d/sshd),注釋掉下面這行代碼(以禁用密碼驗(yàn)證)。

#auth substack password-auth

然后添加下面兩行代碼(以啟用一次性密碼驗(yàn)證):

auth required pam_otpw.so
session optional pam_otpw.so

#p#

第二步:針對(duì)一次性密碼配置SSH服務(wù)器

下一步是配置SSH服務(wù)器,以接受一次性密碼。

用文本編輯工具打開/etc/ssh/sshd_config,設(shè)置下列三個(gè)參數(shù)。確保你沒有不止一次地添加這幾行,因?yàn)槟菚?huì)引起SSH服務(wù)器失效。

UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
UsePAM yes

你還需要禁用默認(rèn)的密碼驗(yàn)證??梢砸暻闆r,禁用公密驗(yàn)證,那樣萬一你沒有一次性密碼,就可以恢復(fù)到基于密鑰的驗(yàn)證。

PubkeyAuthentication yes
PasswordAuthentication no

現(xiàn)在,重啟SSH服務(wù)器。

在Debian、Ubuntu或Linux Mint上:

$ sudo service ssh restart

在Fedora或CentOS/RHEL 7上:

$ sudo systemctl restart sshd

#p#

第三步:用OTPW生成一次性密碼

如前所述,你需要事先創(chuàng)建一次性密碼,并將它們存儲(chǔ)在遠(yuǎn)程SSH服務(wù)器主機(jī)上。為此,以你登錄時(shí)所用的用戶身份運(yùn)行otpw-gen工具。

$ cd ~
$ otpw-gen > temporary_password.txt

如何在Linux上用一次性密碼確保SSH登錄安全?

它會(huì)要求你設(shè)置一個(gè)前綴密碼。你以后登錄時(shí),就需要輸入這個(gè)前綴密碼以及一次性密碼。實(shí)際上前綴密碼是另一層保護(hù)機(jī)制。即使密碼表落到了不法分子手里,前綴密碼也會(huì)迫使對(duì)方采用蠻力攻擊。

一旦前綴密碼設(shè)置完畢,命令會(huì)生成280個(gè)一次性密碼,并將它們存儲(chǔ)在輸出文本文件(比如temporary_password.txt)中。每個(gè)密碼(默認(rèn)情況下長(zhǎng)度是8個(gè)字符)的前面是三位數(shù)的索引號(hào)。你可以將文件打印在紙張上,隨身攜帶。

如何在Linux上用一次性密碼確保SSH登錄安全?

你還會(huì)看到~/.otpw文件已創(chuàng)建,這些密碼的密碼散列就存儲(chǔ)在其中。每一行的頭三位表明了將用于SSH登錄的密碼的索引號(hào)。

$ more ~/.otpw
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登錄的一次性密碼

現(xiàn)在,不妨像平常那樣登錄到SSH服務(wù)器:

$ ssh user@remote_host

如果OTPW成功設(shè)置,你會(huì)看到略有不同的密碼提示符:

Password 191:

現(xiàn)在打開密碼表,尋找密碼表中的索引號(hào)“191”。

023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt

據(jù)上面密碼表顯示,編號(hào)“191”的一次性密碼是“fOO+PeiD”。你需要在前面加上前綴密碼。比如說,如果你的前綴密碼是“000”,那么需要輸入的實(shí)際的一次性密碼是“000fOO+PeiD”。

一旦你成功登錄,所使用的密碼會(huì)自動(dòng)作廢。如果你查看~/.otpw,就會(huì)注意到第一行被換成了“---------------”,這意味著密碼“191”已經(jīng)無效。

OTPW1
280 3 12 8
---------------
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64jBT
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z

結(jié)束語

我在本教程中演示了如何使用OTPW程序包,設(shè)置用于SSH登錄的一次性密碼。你可能認(rèn)識(shí)到,打印的密碼表就好比是雙因子驗(yàn)證中的安全令牌,只是比較平實(shí)罷了。不過,它更簡(jiǎn)單,你也不用依賴任何第三方即可實(shí)現(xiàn)。無論你使用什么機(jī)制來創(chuàng)建一次性密碼,當(dāng)你需要從不可信任的公共計(jì)算機(jī)登錄到SSH服務(wù)器時(shí),它們都大有幫助。歡迎留言交流。

英文:How to secure SSH login with one-time passwords on Linux

責(zé)任編輯:藍(lán)雨淚 來源: 51CTO.com
相關(guān)推薦

2015-04-16 16:33:18

網(wǎng)絡(luò)·安全技術(shù)周刊

2014-08-04 14:38:25

LinuxToken

2019-11-11 10:20:10

Linux重命名命令

2013-04-17 09:16:37

2014-03-06 15:16:18

安全管理linux安全

2011-04-18 13:36:42

2012-02-01 16:48:54

后門Putty

2010-11-24 16:32:50

2016-01-25 13:03:21

2023-09-26 07:11:15

KubernetesJob節(jié)點(diǎn)

2024-04-03 09:00:10

2024-02-28 08:18:13

Java日志項(xiàng)目

2021-07-26 09:56:19

AI 數(shù)據(jù)人工智能

2019-08-06 09:21:45

2021-08-12 09:48:21

Webpack Loa工具Webpack

2024-07-17 11:27:26

2021-09-02 07:26:27

Django 驗(yàn)證碼Framework

2020-05-28 08:29:54

目錄腳本測(cè)試

2018-03-09 09:45:52

LinuxSSH登錄導(dǎo)語

2009-12-25 14:46:53

Windows 7文件關(guān)聯(lián)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)