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

如何使用OpenVPN和PrivacyIDEA搭建雙因素認(rèn)證的遠(yuǎn)程接入

原創(chuàng)
運(yùn)維 系統(tǒng)運(yùn)維 開(kāi)源
RSA提供了完整的身份認(rèn)證解決方案,特別是RSA SecurID雙因素身份認(rèn)證解決方案,已成為該領(lǐng)域的事實(shí)標(biāo)準(zhǔn),該解決方案以易于實(shí)現(xiàn)、成熟、可靠等特點(diǎn)在信息安全領(lǐng)域贏得廣泛信賴(lài)。RSA的產(chǎn)品覆蓋也非常的廣,除了傳統(tǒng)的硬件token設(shè)備,也有在智能設(shè)備上使用的軟token,非常方便。

   對(duì)于公司來(lái)講,VPN遠(yuǎn)程接入系統(tǒng)來(lái)滿(mǎn)足員工在家和出差途中訪問(wèn)公司IT資源已經(jīng)成為趨勢(shì)。但是,員工密碼管理意識(shí)薄弱,以及攻擊者利用社工庫(kù)進(jìn)行攻擊等問(wèn)題,往往給攻擊者提供了便利的渠道。使用雙因素認(rèn)證體系是對(duì)密碼驗(yàn)證手段非常有效的加強(qiáng)。當(dāng)前這種安全身份驗(yàn)證系統(tǒng)比較多,著名的就有RSA提供的安全身份認(rèn)證系統(tǒng)。

  RSA提供了完整的身份認(rèn)證解決方案,特別是RSA SecurID雙因素身份認(rèn)證解決方案,已成為該領(lǐng)域的事實(shí)標(biāo)準(zhǔn),該解決方案以易于實(shí)現(xiàn)、成熟、可靠等特點(diǎn)在信息安全領(lǐng)域贏得廣泛信賴(lài)。RSA的產(chǎn)品覆蓋也非常的廣,除了傳統(tǒng)的硬件token設(shè)備,也有在智能設(shè)備上使用的軟token,非常方便。

  但是對(duì)于中小型公司來(lái)講,使用RSA這種商用身份認(rèn)證解決方案成本高昂。往往因?yàn)镮T預(yù)算不足限制了企業(yè)對(duì)雙因素方案的選擇。

  Google Authenticator項(xiàng)目是可用于多手機(jī)平臺(tái)的生成一次性密碼的軟件實(shí)現(xiàn),包含可插拔驗(yàn)證模塊(PAM)的實(shí)現(xiàn)。通過(guò)使用開(kāi)放標(biāo)準(zhǔn)的Initiative for Open Authentication (OATH,與OAuth不同)來(lái)生成一次性密碼。支持RFC 4226文檔定義的基于HMAC的一次性密碼(HOTP)算法和由 RFC 6238文檔定義的基于時(shí)間的一次性密碼 (TOTP)算法。

  隨著google-authenticator的成熟,使用openvpn和雙因素認(rèn)證系統(tǒng)結(jié)合,讓搭建完全基于開(kāi)源軟件的安全遠(yuǎn)程接入系統(tǒng)成為可能。

  OpenVPN是一個(gè)用于創(chuàng)建虛擬專(zhuān)用網(wǎng)絡(luò)(Virtual Private Network)加密通道的免費(fèi)開(kāi)源軟件。使用OpenVPN可以方便地在家庭、辦公場(chǎng)所、住宿酒店等不同網(wǎng)絡(luò)訪問(wèn)場(chǎng)所之間搭建類(lèi)似于局域網(wǎng)的專(zhuān)用網(wǎng)絡(luò)通道。

  在PAM中使用Google Authenticator,提供雙因素認(rèn)證已經(jīng)實(shí)現(xiàn)。但是管理維護(hù)非常麻煩,也不直觀。用戶(hù)必須是系統(tǒng)賬戶(hù),用戶(hù)修改pin碼或者生成新的token需要登陸系統(tǒng),執(zhí)行命令,對(duì)于小白用戶(hù)的使用有些困難,登錄系統(tǒng)也會(huì)有潛在的安全風(fēng)險(xiǎn)。對(duì)于管理員來(lái)講,不能使用公司現(xiàn)有的賬戶(hù)系統(tǒng),需要在認(rèn)證系統(tǒng)上創(chuàng)建管理另一套賬戶(hù)系統(tǒng)。

  PrivacyIDEA是一個(gè)模塊化的認(rèn)證系統(tǒng),認(rèn)證服務(wù)器。使用privacyIDEA可以增強(qiáng)本地登錄,VPN,遠(yuǎn)程訪問(wèn),SSH連接,在認(rèn)證期間訪問(wèn)網(wǎng)站或門(mén)戶(hù)網(wǎng)站是很好使用的雙因素,提高現(xiàn)有應(yīng)用程序的安全性。它最初被用于OTP(一次性密碼),認(rèn)證設(shè)備來(lái)作為一個(gè)OTP服務(wù)器。但其他的“設(shè)備”之類(lèi)的挑戰(zhàn)響應(yīng),SSH密鑰和X509證書(shū)也可提供。它可以運(yùn)行在Linux系統(tǒng)并且是完全開(kāi)源的。

  PrivacyIDEA有著友好的管理界面。無(wú)論是管理員管理系統(tǒng)還是用戶(hù)自管理,都可以非常方便輕松的在Web上完成操作。PrivacyIDEA可以讀取本地文件中的用戶(hù)、數(shù)據(jù)庫(kù)中的用戶(hù),也可以讀取LDAP中的用戶(hù)。這樣就可以完全和公司的賬戶(hù)系統(tǒng)聯(lián)動(dòng),非常方便。

[[162052]]

  PrivacyIDEA的HOTP、TOTP使用Google Authenticator。這樣,我們?cè)谥悄苁謾C(jī)上的使用Google Authenticator的APP將非常方便。

  PrivacyIDEA提供了三種方式和OpenVPN集成。第一種,使用PAM的privacyidea_pam.py模塊。OpneVPN使用PAM認(rèn)證,PAM調(diào)用privacyidea_pam.py模塊和PrivacyIDEA做驗(yàn)證。第二種,直接集成OpenVPN和FreeRADIUS。OpenVPN使用radius認(rèn)證,F(xiàn)reeRADIUS向PrivacyIDEA驗(yàn)證。第三種,在OpenVPN中使用RADIUS的PAM模塊。

  一、方案原理

  綜合考慮我們使用第二種方式:OpenVPN+FreeRADIUS+PrivacyIDEA。這種方案非常容易排錯(cuò),通用性要好的多。

  原理圖:

  OpenVPN

  相關(guān)步驟是首先遠(yuǎn)端用戶(hù)發(fā)起VPN連接,提供認(rèn)證信息。然后,OpenVPN向FreeRADIUS去做認(rèn)證并提供用戶(hù)認(rèn)證信息。接著,F(xiàn)reeRADIUS通過(guò)perl腳本向PrivacyIDEA驗(yàn)證信息正確與否。然后,PrivacyIDEA將驗(yàn)證結(jié)果發(fā)給FreeRADIUS,F(xiàn)reeRADIUS再將認(rèn)證結(jié)果發(fā)送OpenvVPN。最后,OpenvVPN查看結(jié)果,認(rèn)證成功建立連接。如果認(rèn)證失敗,斷開(kāi)連接,發(fā)送失敗信息。

  二、軟件安裝和配置

  我們?cè)诓僮飨到y(tǒng)Ubuntu-Server14.04上進(jìn)行具體操作。

  1.安裝管理PrivacyIDEA

  1.1 系統(tǒng)時(shí)間

  TOTP是基于時(shí)間的一次性密碼,時(shí)間的一致與否直接關(guān)系到token碼和認(rèn)證的成敗。所以,需要終端(手機(jī))和privacyidea系統(tǒng)必須時(shí)鐘同步。

  設(shè)置本地時(shí)區(qū),開(kāi)啟ntp服務(wù)。

  1.2 添加PrivacyIDEA源

  命令添加倉(cāng)庫(kù)或者直接寫(xiě)在/etc/apt/sources.list中?! ?/p>

  1. ##add-apt-repository ppa:privacyidea/privacyidea 

  或者:vi /etc/apt/sources.list 添加倉(cāng)庫(kù)。 

  1. deb http://ppa.launchpad.net/privacyidea/privacyidea/ubuntu trusty main 
  2.  
  3. deb-src http://ppa.launchpad.net/privacyidea/privacyidea/ubuntu trusty main 

  倉(cāng)庫(kù)升級(jí):apt-get update。

  1.3 安裝PrivacyIDEA  

  1. # apt-get install privacyidea-apache2 

  安裝成功后,需要安裝依賴(lài)包,生成一些web使用的證書(shū)。

  創(chuàng)建privacyidea系統(tǒng)管理員  

  1. #pi-manager admin add ideauser –e ideauser@gmail.com 

  默認(rèn)系統(tǒng)的管理頁(yè)面:https://<you local_ip>,登錄Web界面,管理系統(tǒng)。

  安裝完成就可以登錄管理界面,管理你的PrivacyIDEA了。

  部分界面圖:

 

  繼續(xù)……

2.安裝配置FreeRADIUS

  PrivacyIDEA提供了FreeRADIUS的PrivacyIDEA版本。其實(shí),也就是做了一些配置的FreeRADIUS。也可以直接安裝FreeRADIUS,然后在做配置。我們安裝FreeRADIUS的PrivacyIDEA版本。

  2.1 安裝privacyidea-radius  

  1. # apt-get install privacyidea-radius 

  FreeRADIUS配置的認(rèn)證類(lèi)型是Perl程序,PrivacyIDEA使用POST的方式和Perl程序交互。

  默認(rèn)Perl程序是/usr/share/privacyidea/freeradius/privacyidea_radius.pm。

  在FreeRADIUS的配置中可以查看。

  2.2 配置FreeRADIUS

  配置RADIUS的clients文件?! ?/p>

  1. # vim /etc/freeradius/clients.conf 

  默認(rèn)本機(jī)127.0.0.1是RADIUS的client,如果有其他的設(shè)備,加在clients中。

  安裝完成可以先測(cè)試radius服務(wù)是否正常。

  3.安裝配置OpenVPN。

  3.1 安裝軟件easy-rsa方便證書(shū)的生成。 

  1. # apt-get install easy-rsa 
  2.  
  3. # apt-get install openvpn 

  安裝easy-rsa,方便證書(shū)的生成。

  3.2 生成證書(shū)

  # 修改vars文件

  cd /usr/share/easy-rsa/2.0/

  vim vars

  # 修改證書(shū)信息。

  1. export KEY_COUNTRY="CN" 
  2.   export KEY_PROVINCE="BeiJing" 
  3.   export KEY_CITY="BeiJing" 
  4.   export KEY_ORG="NetOps" 
  5.   export KEY_EMAIL=”netops@netops.com" 
  6.   export KEY_OU="netops" 

  # 初始化環(huán)境變量

  1. source vars 

  # 生成根證書(shū)、根密鑰、服務(wù)端證書(shū)、服務(wù)端密鑰、Diffie–Hellman key、ta.key文件。

  1. ./clean-all 
  2.   ./build-ca 
  3.   ./build-key-server OpenVPN 
  4.   ./build-dh 
  5.   openvpn --genkey --secret keys/ta.key 

  生成的證書(shū)文件會(huì)在當(dāng)前目錄的keys目錄下。

  3.3 配置OpenVPN

  # 拷貝一份服務(wù)端配置文件到/etc/openvpn下。

  1. cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/ 

  # 編輯配置文件

  根據(jù)需求,修改協(xié)議、網(wǎng)段、證書(shū)密鑰、推送路由、DNS等。如下:

  1. port 1194 
  2. proto tcp 
  3. dev tun 
  4. ca /usr/share/easy-rsa/2.0/keys/ca.crt 
  5. cert /usr/share/easy-rsa/2.0/keys/server.crt 
  6. key /usr/share/easy-rsa/2.0/keys/server.key 
  7. dh /usr/share/easy-rsa/2.0/keys/dh2048.pem 
  8. server 192.168.10.0 255.255.255.0 
  9. ifconfig-pool-persist ipp.txt 
  10. push "route 10.0.0.0 255.0.0.0" 
  11. push "dhcp-option DNS 10.10.10.10" 
  12. keepalive 10 120 
  13. tls-auth /usr/share/easy-rsa/2.0/keys/ta.key 0 
  14. comp-lzo 
  15. persist-key 
  16. persist-tun 
  17. status openvpn-status.log 
  18. log openvpn.log 
  19. log-append openvpn.log 
  20. verb 5 

  啟動(dòng)OpenVPN,測(cè)試能否啟動(dòng),提早解決。

  3.4 配置包轉(zhuǎn)發(fā)和防火墻

  3.4.1 開(kāi)啟包轉(zhuǎn)發(fā)

  1. # echo "1" > /proc/sys/net/ipv4/ip_forward 
  2.   # vim /etc/sysctl.conf 
  3.   net.ipv4.ip_forward = 1 

  3.4.2 配置防火墻

  1. #iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT 
  2.   #iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE 

  記得保存iptables并開(kāi)機(jī)自啟。

  4.安裝Radiusplugin

  Radiusplugin是OpenVPN支持RADIUS認(rèn)證的插件。

  在http://www.nongnu.org下載radiusplugin源碼包。

  4.1 安裝gcc c++ libgcrypt

  1. # apt-get install gcc g++ libgcrypt11 

  4.2 編譯Radiusplugin

  解壓包,進(jìn)入目錄,使用命令make編譯。

  4.3 配置Radiusplugin

  拷貝目錄中的radiusplugin.cnf文件和radiusplugin.so文件到/etc/openvpn下。

  修改radiusplugin.cnf文件。

  1. # vim radiusplugin.cnf 
  2. server 
  3. acctport=1813 
  4. authport=1812 
  5. name=127.0.0.1 
  6. retry=1 
  7. wait=1 
  8. sharedsecret=testing123 

  sharedsecret必須和freeradius clients.conf中的sharedsecret一致。

  5.再次修改OpenVPN配置文件

  修改OpenVPN配置文件,客戶(hù)端使用用戶(hù)名密碼認(rèn)證。OpenVPN使用RADIUS的認(rèn)證方式:

  5.1 修改配置文件server.conf

  1. # vim /etc/openvpn/server.conf 
  2.   client-cert-not-required 
  3.   username-as-common-name 
  4.   plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf 

  6.重啟服務(wù),測(cè)試

  6.1 重啟服務(wù)

  1. /etc/init.d/radiusd restart 
  2.   /etc/init.d/openvpn restart 

  6.2 配置OpenVPN客戶(hù)端

  安裝OpenVPN客戶(hù)端。下載根證書(shū)ca.crt,ta.key文件到OpenVPN安裝目錄的config目錄下,然后,配置客戶(hù)端xx.ovpn文件。

信息如下:

  1. client 
  2. dev tun 
  3. proto tcp 
  4. remote <youipaddress> 1194 
  5. resolv-retry infinite 
  6. nobind 
  7. persist-key 
  8. persist-tun 
  9. ca ca.crt 
  10. ns-cert-type server 
  11. tls-auth ta.key 1 
  12. comp-lzo 
  13. verb 3 
  14. auth-user-pass 

  注意:客戶(hù)端如果安裝在Windows系統(tǒng)上,打開(kāi)的時(shí)候要使用管理員權(quán)限,要不然系統(tǒng)不會(huì)添加VPN推送的路由。如果有多個(gè)VPN服務(wù),可以將根證書(shū)ca.crt,ta.key文件和客戶(hù)端xx.ovpn文件同樣放置到config下的同一個(gè)目錄。

  6.3 測(cè)試

  具體PrivacyIDEA的使用,可以查看官方文檔,也可以查看我整理的<PrivacyIDEA管理>。

  推薦分3步測(cè)試:1.測(cè)試PrivacyIDEA服務(wù)是否正常運(yùn)行,token認(rèn)證是否成功。2.測(cè)試RADIUS服務(wù)是否正常,RADIUS和PrivacyLDEA驗(yàn)證是否成功。3.測(cè)試OpenVPN認(rèn)證是否成功。根據(jù)提示基本就能判斷問(wèn)題,然后解決即可。

  先在智能手機(jī)上安裝google-authtication,在PrivacyIDEA上生成二維碼。然后,打開(kāi)google-authtication,掃一掃添加賬戶(hù)。這個(gè)時(shí)候你就能看到30秒變一次的token碼了。接著,在PrivacyIDEA的【Tokens】界面,測(cè)試token的pin碼或者token碼是否正確。如下:

  用命令radtest測(cè)試FreeRADIUS和PrivacyIDEA是否正常。也可以使用FreeRADIUS的debug模式開(kāi)啟FreeRADIUS的服務(wù),更方便的排錯(cuò)。

  再使用OpenVPN客戶(hù)端測(cè)試是否認(rèn)證成功。有問(wèn)題可以查看OpenVPN日志。

  注意:Radiusplugin在Centos上有時(shí)候會(huì)因?yàn)榘姹締?wèn)題報(bào)錯(cuò)??梢該Q一個(gè)版本編譯。

  因?yàn)榘姹締?wèn)題,你需要直接安裝FreeRADIUS的話,需要先修改FreeRADIUS的認(rèn)證類(lèi)型位Perl程序并下載privacyidea_radius.pm文件。最好修改FreeRADIUS的相關(guān)配置,記得2.x版本和3.x版本不一樣。

作者介紹

[[162055]]

肖磊,2014年畢業(yè)于西安郵電大學(xué)。現(xiàn)任職360網(wǎng)絡(luò)工程師,負(fù)責(zé)辦公網(wǎng)、無(wú)線網(wǎng)和VPN,喜歡網(wǎng)絡(luò)技術(shù)、linux技術(shù)等。

責(zé)任編輯:武曉燕 來(lái)源: 51CTO
相關(guān)推薦

2022-08-01 00:08:03

雙因素認(rèn)證2FA

2015-03-12 13:44:44

DKEY雙因素認(rèn)證寧盾

2016-10-12 15:11:56

2020-09-30 11:22:16

帳戶(hù)安全

2020-05-25 07:00:00

雙因素認(rèn)證身份認(rèn)證密碼

2020-04-27 09:00:00

雙因素認(rèn)證身份認(rèn)證生物識(shí)別

2013-11-12 09:01:39

2011-08-15 09:31:55

2013-05-23 18:03:25

2010-04-20 10:00:29

2015-03-02 14:48:07

2015-03-09 11:20:25

雙因素認(rèn)證寧盾DKEY

2024-01-05 15:10:29

2013-11-27 17:45:19

2015-11-20 14:33:48

動(dòng)態(tài)密碼雙因素令牌

2011-08-25 21:38:32

2020-12-24 17:12:29

賬戶(hù)安全雙因素認(rèn)證Facebook

2021-09-15 18:36:08

雙因素認(rèn)證2FA身份驗(yàn)證

2015-03-11 11:10:55

DKEY雙因素認(rèn)證

2012-07-11 17:33:47

點(diǎn)贊
收藏

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