日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

IPSec VPN是目前應用最廣泛、最安全的VPN,從個人手機到平板電腦再到路由器、企業的防火墻都能輕松的創建IPSec VPN,保護使用者的數據安全防止數據被劫持,嗅探,因此掌握IPSec VPN原理以及常見問題排查對于運維及開發人員來說都至關重要。本期華云數據“智匯華云”專欄將為您奉上IPSec VPN原理介紹與實現。

IPSec全稱是Internet Protocol Security,是由(Internet Engineering Task Force)制定的一組開放的網絡安全協議。它并不是一個單獨的協議,而是一系列為IP網絡提供安全性的協議和服務的集合,主要包括:

1.IKE(Internet Key Exchange 因特網密鑰交換協議)

2.ESP(encapsulating security payload 封裝安全載荷)

3.AH(Authentication Header 認證頭協議,無法經過NAT,基本不使用)

IKE因特網密鑰交換

IKE協議有v1版本和v2版本,目前我們主要使用v1版本,v1版本是基于UDP500 和4500(NAT使用)端口號的應用層協議。IKE協議的主要作用是交換IPSec對等體兩端的SA(Security Association),SA一般包括:

1.使用哪種協議(AH、ESP還是兩者結合使用)

2.協議的封裝模式(傳輸模式和隧道模式)

3.認證算法(MD5、SHA-1)

4.加密算法(DES、3DES和AES128、aes256)對稱加密,用于加密數據

5.pfsgroup(diffie-hellman group)modp1024,modp1536,modp2048非對稱加密,用于安全交換密鑰

6.特定流中保護數據的共享密鑰以及密鑰的生存周期等

IKEv1版本的協商過程分為兩個階段。

第一階段叫做IKE(ISAKMP) SA,協商出來的SA給第二階段使用,這一階段又有兩種協商模式,使用中一般使用主模式,比較安全

main mode,安全,但是要6個數據包

aggressive(野蠻模式),只需要4個數據包,由于不安全容易被暴力破解,一般不使用

第二階段叫做IPSec SA,協商出來的SA給用戶數據流加密使用

封裝協議(安全協議)

IPSec的封裝協議有兩種:

1.AH(Authentication Header) 認證頭協議,協議號為51。工作原理是在每一個數據包的標準IP報頭后面添加一個AH報文頭,基本不使用。

2.ESP(encapsulating security payload) 封裝安全載荷,協議號為50。工作原理是在每一個數據包的標準IP報頭后面添加一個ESP報文頭,并在數據包后面追加一個ESP尾(ESP Tail和ESP Auth data)。

*與AH不同的是,ESP將數據中的有效載荷進行加密后再封裝到數據包中,以保證數據的機密性,但ESP沒有對IP頭的內容進行保護。

封裝模式

IPSec的封裝模式也有兩種,實際使用的時候雙方協商出封裝協議和封裝模式,一并使用:

1.傳輸模式(host-to-host transport mode),在傳輸模式中,AH頭或ESP頭被插入到IP頭與傳輸層協議頭之間,保護TCP/UDP/ICMP負載。傳輸模式不改變報文頭,基本不使用。

2.隧道模式(tunneling mode ),隧道模式下,AH協議的完整性驗證范圍為包括新增IP頭在內的整個IP報文。ESP協議驗證報文的完整性檢查部分包括ESP頭、原IP頭、傳輸層協議頭、數據和ESP報尾,但不包括新IP頭,因此ESP協議無法保證新IP頭的安全。ESP的加密部分包括原IP頭、傳輸層協議頭、數據和ESP報尾。

IPSec實現-控制面

上面講的都是IPSec協議上的定義和規范,具體到IPSec在linux系統的實現上主要有各種swan(openswan,strongswan,libreswan),這些應用程序負責協商雙方的加密算法,加密方式,隧道模式,路由策略。并通過linux的xfrm內核接口調用下發到數據面中。

IPSec實現-數據面

IPSec在Linux上有兩種數據面,目前一般使用第二種Linux內核的XFRM框架,除非是很老的機器沒有這個的時候會用第一種:

1.KLIPS ,很古老,2.6版本以前的Linux版本使用。通過創建出虛擬IPSec接口,路由IPSec數據包,可以很方便添加firewall規則。

2.Linux內核XFRM/NETKEY(ipsec transform),執行具體的轉發策略和封包解包,如果有offload還要執行offload提升速度。新版本內核也支持創建出虛擬IPSec接口,方便添加firewall規則。

控制面-Libreswan

這里我們主要講一下libreswan,libreswan是目前使用較多的IPSec控制面實現,平常使用中需要掌握libreswan中的pluto和whack命令

1.pluto 命令是IPsec IKE keying守護進程,負責自動化ipsec之間的SA協商。

啟動pluto守護進程命令:ipsec pluto

2.whack命令是用戶和pluto守護進程進行交互使用的命令

# 添加一條ipsec連接(vpn1的具體配置寫在文件中)

ipsec whack addconn vpn1 --config ipsec.config

# 允許pluto守護進程開始監聽

ipsec whack --listen

# 初始化ipsec連接

ipsec whack --initiate --name vpn1

數據面-XFRM

Linux內核通過XFRM框架來支持IPSec的數據面實現,xfrm框架支持Linux的網絡namespace。

xfrm使用兩個數據庫記錄ipsec的數據面信息。

1.xfrm策略,存儲在內核的SPD(security policy database)中。告訴ipsec哪些流量需要進行ipsec處理。

2.xfrm狀態,存儲在內核的SADB(security association database)中。表示單向流量,包含加密密鑰,標志,請求ID,統計信息等信息。

手動創建ipsec隧道

ip xfrm命令可以手動創建兩臺之間使用ipsec隧道通信,跳過libreswan的控制面SA協商

192.168.0.6 <=======> 192.168.0.28,腳本如下:

A=192.168.0.6

B=192.168.0.28

ip xfrm state add src $A dst $B proto esp spi 0x00000301 mode tunnel auth md5 0x96358c90783bbfa3d7b196ceabe0536b\

enc des3_ede 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ip xfrm state add src $B dst $A proto esp spi 0x00000302 mode tunnel auth md5 0x99358c90783bbfa3d7b196ceabe0536b\

enc des3_ede 0xffddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ip xfrm policy add src $A dst $B dir out ptype main tmpl src $A dst $B proto esp mode tunnel

ip xfrm policy add src $B dst $A dir in ptype main tmpl src $B dst $A proto esp mode tunnel

ip xfrm state add src $A dst $B proto esp spi 0x00000301 mode tunnel auth md5 0x96358c90783bbfa3d7b196ceabe0536b\

enc des3_ede 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ip xfrm state add src $B dst $A proto esp spi 0x00000302 mode tunnel auth md5 0x99358c90783bbfa3d7b196ceabe0536b\

enc des3_ede 0xffddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ip xfrm policy add src $A dst $B dir in ptype main tmpl src $A dst $B proto esp mode tunnel

ip xfrm policy add src $B dst $A dir out ptype main tmpl src $B dst $A proto esp mode tunnel

tcpdump 抓包

抓包看兩臺機器之間的ping包,可以發現ping包已經被加密為ESP報文。

分享到:
標簽:智匯華云:IPSecVPN原理介紹與實現
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定