IPsec *** 基礎實驗

做一個基本的 IPSEC ***實驗,拓撲爲SPOKE TO HUB  模式。
實驗環境爲模擬器
  dynamips for linux 2.82
  dynagen for linux 0.11
  IOS:3745-k9
  注意:只有 k8和k9 的路由器ios 支持***特性。
路由器R2,R3和R4做IPsec ***。
R1的接口地址爲:S1/0 1.1.1.1/24 
                                   S1/1 1.1.2.1/24
                                   S1/2 1.1.3.1/23
R2的接口地址爲:S1/0 1.1.1.2/24
                                   LO 0 192.168.2.0/24
R3的接口地址爲:S1/0 1.1.2.2/24
                                   LO 0 192.168.3.0/24
R4的接口地址爲:S1/0 1.1.3.2/24
                                   LO 0 192.168.4.0/24
其中LO口爲需要加密的網絡,因爲基本的***不支持動態路由協議,如果要用路由則需要GRE封裝,這裏只啓用靜態路由,關於***的理論知識,這裏不作介紹。
靜態路由設置,IP地址設置等在這裏不做描述了。
貼上R1的路由表:
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
     1.0.0.0/24 is subnetted, 3 subnets
C       1.1.1.0 is directly connected, Serial1/0
C       1.1.2.0 is directly connected, Serial1/1
C       1.1.3.0 is directly connected, Serial1/2
S    192.168.4.0/24 is directly connected, Serial1/2
S    192.168.2.0/24 is directly connected, Serial1/0
S    192.168.3.0/24 is directly connected, Serial1/1
現在R2上面啓用IPsec ***
r2(config)#crypto isakmp policy 1     #定義IKE策略1
r2(config-isakmp)#authentication pre-share    #定義認證的方式採用預共享KEY
r2(config-isakmp)#encryption 3des    #定義加密算法採用3des
r2(config-isakmp)#hash sha     #定義哈西採用sha
r2(config-isakmp)#group 2    #定義DH交換採用組2 模式
r2(config-isakmp)#exit
r2(config)#crypto isakmp key fhw address 0.0.0.0   #定義預共享key 和認證對端ip
r2(config-isakmp)#exit
階段一設置結束,設置ipsec過程
r2(config)#crypto ipsec transform-set test esp-3des ah-sha-hmac   #定義ipsec 加密方式和散列算法
r2(cfg-crypto-trans)#mode tunnel    #定義隧道模式
r2(config)#crypto map r2 1 ipsec-isakmp   #定義加密圖,認證方式採用ipsec-isakmp
r2(config-crypto-map)#set peer 1.1.3.2   #設置***對端,此處爲r4的s1/0地址
r2(config-crypto-map)#set transform-set test  #設置採用剛剛定義的加密方式test
r2(config-crypto-map)#match address 101    #定義受保護流量爲acl 101
r2(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.255    #定義訪問控制列表101,在這裏r4受保護流量爲192.168.4.0/24
 r2(config)#int s1/0
r2(config-if)#crypto map r2   #在端口s1/0上面應用加密圖
至此,r2上面基本的***設置完成。
設置R4上面定義IKE
r4(config)#crypto isakmp policy 1
r4(config-isakmp)#authentication pre-share
r4(config-isakmp)#encryption 3des
r4(config-isakmp)#group 2
r4(config-isakmp)#hash sha
r4(config)#crypto isakmp key fhw address 0.0.0.0
定義R4上面的ipsec,在這裏可以通過方向路由注入的方式和對端通訊,因爲在很多情況下可能並不知道對端的ip,比如對段爲動態adsl接入時。
r4(config)#crypto ipsec transform-set test esp-3des ah-sha-hmac
r4(cfg-crypto-trans)#mode tunnel
r4(config)#crypto dynamic-map r 1   #因爲要採用反向路由注入,所以採用動態加密圖的方式
r4(config-crypto-map)#reverse-route    #啓用返鄉路由注入
r4(config-crypto-map)#match address 101
r4(config-crypto-map)#set transform-set test
r4(config)#crypto map r4 1 ipsec-isakmp dynamic r  #定義加密圖r4 並將動態加密圖發佈進來
r4(config)#access-list 101 permit  ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255
r4(config)#int s1/0
r4(config-if)#crypto map r4
OK,到這裏R1和R4上面的***設置都OK了。
測試:
在R2上面測試:
r2#ping 192.168.4.1 source 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.4.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 12/48/84 ms
r2#show crypto isakmp sa
dst             src             state          conn-id slot
1.1.3.2         1.1.1.2         QM_IDLE              1    0
可以看到IKE的SA關聯已經建立
r2#show crypto ipsec sa
interface: Serial1/0
    Crypto map tag: r2, local addr. 1.1.1.2
   protected vrf:
   local  ident (addr/mask/prot/port): (192.168.2.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (192.168.4.0/255.255.255.0/0/0)
   current_peer: 1.1.3.2:500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 4, #pkts encrypt: 4, #pkts digest 4
    #pkts decaps: 4, #pkts decrypt: 4, #pkts verify 4
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 1, #recv errors 0
     local crypto endpt.: 1.1.1.2, remote crypto endpt.: 1.1.3.2
     path mtu 1500, ip mtu 1500, ip mtu idb Serial1/0
     current outbound spi: 62A2B4A0
     inbound esp sas:
      spi: 0xEE25A9E(249715358)
        transform: esp-3des ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2002, flow_id: 1, crypto map: r2
        sa timing: remaining key lifetime (k/sec): (4588906/3384)
        IV size: 8 bytes
        replay detection support: Y
     inbound ah sas:
      spi: 0xF209E41A(4060734490)
        transform: ah-sha-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2000, flow_id: 1, crypto map: r2
        sa timing: remaining key lifetime (k/sec): (4588906/3381)
        replay detection support: Y
     inbound pcp sas:
     outbound esp sas:
      spi: 0x62A2B4A0(1654830240)
        transform: esp-3des ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2003, flow_id: 2, crypto map: r2
        sa timing: remaining key lifetime (k/sec): (4588906/3381)
        IV size: 8 bytes
 replay detection support: Y
     outbound ah sas:
      spi: 0xBBC0DEC3(3149979331)
        transform: ah-sha-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2001, flow_id: 2, crypto map: r2
        sa timing: remaining key lifetime (k/sec): (4588906/3372)
        replay detection support: Y
     outbound pcp sas:
可以看到IPSEC的SA關聯信息
至此實驗基本OK!
設置R3可以參考R1的設置,相同道理。
由於是SPOKE TO HUB的方式,所以訪問控制列表控制比較麻煩,因爲各個節點和中心通訊是沒有問題的,如果想讓各個節點如R2和R3通訊,則需要在R4上面作全互聯的訪問控制列表,比較繁瑣,所以很多資料裏面也說明這種SPOKE TO HUB方式的IPsec ***建議不要超過10個外點,否則維護起來很麻煩,還有要說明的是,不可以用permit ip any any的方式來保護流量,要求精確匹配!!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章