Windows Server 2008 NPS雙重認(rèn)證的設(shè)置方法
本文我們將探討如何通過Windows Server 2008 NPS(網(wǎng)絡(luò)策略服務(wù)器)為不同的遠(yuǎn)程訪問解決方案添加雙重身份驗(yàn)證以幫助企業(yè)增強(qiáng)訪問網(wǎng)絡(luò)的身份驗(yàn)證。
不管是由于監(jiān)管要求,還是因?yàn)殪o態(tài)密碼不能提供足夠安全性的事實(shí),越來越多的企業(yè)開始部署高強(qiáng)度的身份驗(yàn)證以確保企業(yè)安全性。在本文中我們將探討如何通過Windows Server 2008 NPS(網(wǎng)絡(luò)策略服務(wù)器)為不同的遠(yuǎn)程訪問解決方案添加雙因素身份驗(yàn)證以幫助企業(yè)增強(qiáng)訪問網(wǎng)絡(luò)的身份驗(yàn)證。對(duì)于雙因素身份驗(yàn)證,我們將使用WiKID強(qiáng)認(rèn)證服務(wù)器,WiKID是一款基于商業(yè)/開源軟件的雙因素身份驗(yàn)證解決方案,WiKID 旨在成為令牌、證書、密碼的安全替代品。
假設(shè)你的環(huán)境中既有Windows系統(tǒng)又有Linux/Unix,然后你需要部署雙因素身份驗(yàn)證來滿足PCI要求,你想要保護(hù)所有關(guān)鍵系統(tǒng)(大多數(shù)是Linux系統(tǒng))并且你打算使用雙因素身份驗(yàn)證(這里我們只討論SSH)鎖定遠(yuǎn)程桌面。這就需要?jiǎng)?chuàng)建一個(gè)雙因素驗(yàn)證鎖定的SSH網(wǎng)關(guān)服務(wù)器,然后管理就可以使用公鑰驗(yàn)證從網(wǎng)關(guān)訪問其他服務(wù)器。
SSH為遠(yuǎn)程管理服務(wù)器提供了一個(gè)高度安全的渠道,然而,在面對(duì)審計(jì)時(shí),大家需要注意幾個(gè)與驗(yàn)證相關(guān)的潛在問題:
◆不能控制哪些用戶擁有公鑰授權(quán)
◆不能執(zhí)行(或者確定是否在使用)密碼復(fù)雜性
◆不能設(shè)置公鑰失效
另外,還需要為其他服務(wù)添加雙因素身份驗(yàn)證,包括RDP和VPN等。為所有服務(wù)和不能用于其他服務(wù)的SSH密鑰設(shè)置單個(gè)雙因素認(rèn)證服務(wù)是非常有效的。
概述
完成所有設(shè)置后,系統(tǒng)將這樣運(yùn)行:用戶從他們的WiKID軟件令牌生成一個(gè)一次性密碼,并將其輸入到SSH密碼框,密碼將通過radius獲得SSH網(wǎng)關(guān)到NPS的驗(yàn)證。然后NPS將驗(yàn)證用戶在Active Directory及相關(guān)組群中是否有效,如果有效,NPS會(huì)通過radius將用戶名和一次性密碼發(fā)送給WiKID強(qiáng)認(rèn)證服務(wù)器。如果OTP是有效的,WiKID服務(wù)器會(huì)響應(yīng)NPS,然后NPS響應(yīng)SSH網(wǎng)關(guān),用戶將被授予訪問權(quán)限。請(qǐng)注意,這個(gè)過程只是驗(yàn)證過程,會(huì)話管理仍然由SSH網(wǎng)關(guān)或者其他你在使用的遠(yuǎn)程訪問服務(wù)來處理。
首先我們需要啟用Windows Server 2008網(wǎng)絡(luò)策略服務(wù)器 (NPS)
添加“網(wǎng)絡(luò)策略和訪問服務(wù)”角色到域控制器
在安裝過程中,啟用以下角色服務(wù)器:
◆網(wǎng)絡(luò)策略服務(wù)器
◆Routing & Remote Access Services路由和遠(yuǎn)程訪問服務(wù)
◆Remote Access Service遠(yuǎn)程訪問服務(wù)
◆Routing路由
然后我們需要添加一個(gè)新的RADIUS客戶端,本文中即SSH網(wǎng)關(guān)
在管理工具(Administrative Tools)中選擇網(wǎng)絡(luò)策略服務(wù)器
右鍵點(diǎn)擊Radius Clients并選擇新建
添加遠(yuǎn)程訪問服務(wù)器(RAS、VPN等)的名稱和IP地址,并創(chuàng)建一個(gè)共享密碼,你將需要在WiKID服務(wù)器中輸入相同的共享密碼,點(diǎn)擊確認(rèn)。
添加新的Radius服務(wù)器,即WiKID強(qiáng)認(rèn)證服務(wù)器
右鍵單擊Remote RADIUS服務(wù)器并命名這個(gè)組,如“WiKID”
點(diǎn)擊添加按鈕來向該組添加一個(gè)新的radius服務(wù)器
在第一個(gè)選項(xiàng)中輸入WiKID服務(wù)器的IP地址,在第二個(gè)選項(xiàng)中,輸入共享密碼。
創(chuàng)建網(wǎng)絡(luò)策略
現(xiàn)在我們已經(jīng)創(chuàng)建了radius客戶端和radius服務(wù)器(WiKID),下面我們需要?jiǎng)?chuàng)建一個(gè)新的網(wǎng)絡(luò)策略來告訴IAS哪些用戶可以代理到WiKID。
輸入名稱,將網(wǎng)絡(luò)訪問服務(wù)器類型保持為“未指定(Unspecified)”或者選擇遠(yuǎn)程訪問系統(tǒng)
點(diǎn)擊Conditions選項(xiàng),我為所有來自我的服務(wù)器IP地址的請(qǐng)求添加了一個(gè)條件。
點(diǎn)擊Settings Page,點(diǎn)擊Authentication并選擇“Forward requests to the following remote RADIUS server group for authentication(將請(qǐng)求轉(zhuǎn)發(fā)到以下遠(yuǎn)程RADIUS服務(wù)器組進(jìn)行驗(yàn)證)”,選擇WiKID。
配置WiKID強(qiáng)認(rèn)證服務(wù)器
現(xiàn)在我們已經(jīng)配置了NPS來代理身份驗(yàn)證,我們需要配置WiKID來接受它們,這里我們只需要為NPS添加一個(gè)radius網(wǎng)絡(luò)客戶端:登錄到WiKIDAdmin網(wǎng)絡(luò)界面,點(diǎn)擊網(wǎng)絡(luò)客戶選項(xiàng),點(diǎn)擊“創(chuàng)建新網(wǎng)絡(luò)客戶端”,給網(wǎng)絡(luò)客戶端命名,指定IP地址,根據(jù)協(xié)議選擇Radius并選擇使用哪個(gè)WiKID域(WiKID域涵蓋用戶并且指定某種安全參數(shù),如PIN長(zhǎng)度、一次性密碼的使用時(shí)間等)。
在接下來的頁(yè)面中,輸入共享密碼,也就是上文在NPS中的密碼。確保輸入相同的密碼!!WiKID支持在網(wǎng)絡(luò)客戶端水平和每個(gè)用戶組水平添加radius返回屬性,不過這超出了本文的范圍。
此時(shí)會(huì)有消息提示說已經(jīng)成功添加網(wǎng)絡(luò)客戶端,你需要從命令行重啟WiKID服務(wù)器,這會(huì)使網(wǎng)絡(luò)客戶端會(huì)加載到radius界面,并打開內(nèi)置WiKID防火墻的radius端口。
- # wikidctl restart
#p#配置SSH網(wǎng)關(guān)服務(wù)器
配置SSH網(wǎng)關(guān)
現(xiàn)在我們將需要配置中央SSH網(wǎng)關(guān),linux系統(tǒng)是導(dǎo)向所有生產(chǎn)服務(wù)器的網(wǎng)關(guān)/代理,它必須被嚴(yán)格鎖定,并且不能有多余的軟件或者服務(wù)器在上面運(yùn)行。此外,linux系統(tǒng)還需要有一個(gè)處理入站連接的外部接口以及處理內(nèi)部連接的內(nèi)部接口。首先我們需要配置網(wǎng)關(guān)使用WiKID對(duì)SSH用戶進(jìn)行高強(qiáng)度驗(yàn)證。
從安裝PAM Radius開始,
下載最新版本的tar文件
運(yùn)行:
- $ make
將產(chǎn)生的共享庫(kù)復(fù)制到/lib/security。
- $ sudo cp pam_radius_auth.so /lib/security/
編輯/etc/pam.d/sshd來允許進(jìn)行Radius身份驗(yàn)證
- $ sudo vi /etc/pam.d/sshd
注意:不同版本的linux有不同的pam.d文件格式。 請(qǐng)檢查linux的具體版本,以下說明適用于Fedora/ Redhat/Centos
轉(zhuǎn)到該文件的第一行,點(diǎn)擊Insert鍵或者i鍵,插入到這一行。
- auth sufficient /lib/security/pam_radius_auth.so
Sufficient標(biāo)簽意味著,如果Radius身份驗(yàn)證成功的話,就不再需要額外的身份驗(yàn)證。然而,如果Radius驗(yàn)證失敗的話,將需要來自該系統(tǒng)的用戶名和密碼來驗(yàn)證。使用“Required”來請(qǐng)求強(qiáng)認(rèn)證。
寫入文件并推出,點(diǎn)擊Esc鍵來推出插入模式,并輸入':wq'
編輯或創(chuàng)建/etc/raddb/server文件。
- vi /etc/raddb/server
下面這行:
- 127.0.0.1 secret 1
添加這一行,替代routableIPAddress:
- routableIPaddress shared_secret 1
routeableIPaddress是NPS服務(wù)器的IP地址
編輯 /etc/pam.d/sshd文件:
- #%PAM-1.0
- auth sufficient /lib/security/pam_radius_auth.so
- auth include system-auth
- account required pam_nologin.so
- account include system-auth
- password include system-auth
- session include system-auth
- session required pam_loginuid.so
添加WiKID服務(wù)器到/etc/raddb/server文件,使用WiKID服務(wù)器的外部IP地址以及在網(wǎng)絡(luò)客戶端創(chuàng)建頁(yè)面輸入的共享密碼:
- # server[:port] shared_secret timeout (s)
- 127.0.0.1 secret 1
- xxx.xxx.xxx.xx wikidserver_secret 3
這里也需要向SSH配置增加一些安全性,打開/etc/ssh/sshd_con**(不是附近的ssh_con**文件),添加這些配置選項(xiàng):
- #Protocol 2,1
#檢查只有協(xié)議2被允許: Protocol 2
#禁用root登錄:
- PermitRootLogin no
#禁用沒有密碼的帳號(hào):
- PermitEmptyPasswords no
現(xiàn)在網(wǎng)關(guān)已經(jīng)設(shè)置為使用WiKID一次性密碼來進(jìn)行SSH驗(yàn)證,所有用戶必須注冊(cè)到WiKID服務(wù)器,沒有人可以作為root登錄。下面我們將做點(diǎn)小變動(dòng),讓用戶可以在網(wǎng)關(guān)創(chuàng)建自己的RSA密鑰,只要用戶在WiKID注冊(cè)后,就能創(chuàng)建自己的密鑰:
- class="command">ssh-keygen -t rsa
其實(shí),這些密鑰的密碼短語是多余的,我們必須確保用戶不能訪問其他密鑰。
配置目標(biāo)服務(wù)器
顯然,我們需要將這些服務(wù)器配置為僅接受來自網(wǎng)關(guān)的SSH請(qǐng)求,這可以通過限制端口22對(duì)內(nèi)部地址的訪問來實(shí)現(xiàn),編輯/etc/syscon**/iptables或者端口22的SSH這行:
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
允許WiKID軟件令牌
啟動(dòng)WiKID令牌,選擇與SSH網(wǎng)關(guān)相關(guān)的域名,然后輸入密碼,就能獲得一次性密碼,這個(gè)密碼是有時(shí)間限制的,可以在WiKID服務(wù)器任意設(shè)置密碼的有效時(shí)間。
當(dāng)SSH框彈出時(shí)用戶只需輸入一次性密碼
令牌同樣也可以從命令行運(yùn)行,這對(duì)于SSH很便捷:
- java -cp jWiKID-3.1.3.jar:jwcl.jar com.wikidsystems.jw.JWcl domainid
domainid是12位域標(biāo)識(shí)符
結(jié)論
很多企業(yè)都面臨著合規(guī)和監(jiān)管的問題,網(wǎng)絡(luò)環(huán)境也變得越來越復(fù)雜和危險(xiǎn),同時(shí),用戶也需要更多的遠(yuǎn)程訪問,這些都給企業(yè)的安全部門帶來不小挑戰(zhàn)。
本文主要探討的是向SSH添加雙因素驗(yàn)證,我們選擇Radius作為網(wǎng)絡(luò)驗(yàn)證標(biāo)準(zhǔn),這是個(gè)不錯(cuò)的選擇。大部分VPN、遠(yuǎn)程桌面系統(tǒng)、網(wǎng)絡(luò)服務(wù)器和其他遠(yuǎn)程訪問服務(wù)都支持Radius,當(dāng)大家在考慮添加雙因素驗(yàn)證時(shí),只需要考慮系統(tǒng)是否支持Radius即可,然后可以將Radius指向NPS服務(wù)器,就可以實(shí)現(xiàn)雙因素驗(yàn)證。
【編輯推薦】