Difference between revisions of "Cisco IPsec"
Helikopter (talk | contribs) |
Helikopter (talk | contribs) |
||
Line 13: | Line 13: | ||
show crypto isakmp policy | show crypto isakmp policy | ||
+ | |||
PSK Authentication | PSK Authentication | ||
crypto isakmp key S3cr3ts address 3.3.3.3 | crypto isakmp key S3cr3ts address 3.3.3.3 | ||
Line 39: | Line 40: | ||
ip address 192.168.1.1 255.255.255.0 | ip address 192.168.1.1 255.255.255.0 | ||
− | Verify Fas 1 och 2. Inget förhandlas förens det skickas trafik. | + | Verify Fas 1 och 2. Inget förhandlas förens det skickas trafik som triggar tunneln. |
show crypto isakmp sa | show crypto isakmp sa | ||
show crypto ipsec sa | show crypto ipsec sa | ||
+ | show crypto session | ||
Reverse Route Injection | Reverse Route Injection | ||
Line 85: | Line 87: | ||
Verify | Verify | ||
show crypto ipsec sa | show crypto ipsec sa | ||
+ | show crypto session | ||
Local och remote kommer alltid att förhandlas som '''0.0.0.0/0 <-> 0.0.0.0/0''' vilket gör att det aldrig behövs mer än en entry per tunnel. | Local och remote kommer alltid att förhandlas som '''0.0.0.0/0 <-> 0.0.0.0/0''' vilket gör att det aldrig behövs mer än en entry per tunnel. | ||
Line 140: | Line 143: | ||
show crypto ikev2 sa | show crypto ikev2 sa | ||
− | + | ==Others== | |
− | |||
− | |||
'''QoS''' <br/> | '''QoS''' <br/> | ||
Eftersom trafiken är enkapsulerad och krypterad måste QoS-beslut fattas innan, man kan använda QoS pre-classify på crypto map. Se även [[Cisco_QoS|Cisco QoS]]. | Eftersom trafiken är enkapsulerad och krypterad måste QoS-beslut fattas innan, man kan använda QoS pre-classify på crypto map. Se även [[Cisco_QoS|Cisco QoS]]. | ||
+ | crypto map VPNMAP 10 ipsec-isakmp | ||
+ | qos pre-classify | ||
+ | |||
+ | ===High Availability=== | ||
+ | Det finns inget samspel mellan IPSec och [[Cisco_HSRP|HSRP]], dvs HSRP kan inte hålla koll på IPSec's SA state och IPSec vet inte när HSRP gör en failover. Däremot kan man konfigurera crypto-mapen att sourcea IKE fas 1 och 2 från HSRP VIP. HSRP group names bör matcha på båda enheterna. Även om HSRP konvergerar snabbt kan det ta en stund innan IPsec-tunnlar är uppsatta på nytt efter en failover. Därför är denna metod inte optimal utan det man t.ex. kan göra istället är att ha uppe två tunnlar parallellt och sedan styra routingen med [[Cisco_Routing#IP_SLA|IP SLA]]. | ||
+ | |||
+ | crypto dynamic-map VPNMAP 10 | ||
+ | set transform-set PHASE2 | ||
+ | match address ACL | ||
+ | reverse-route | ||
+ | |||
+ | crypto map CRYPTO 10 ipsec-isakmp dynamic VPNMAP | ||
+ | |||
+ | interface GigabitEthernet0/1 | ||
+ | standby 1 name IPSEC | ||
+ | crypto map CRYPTO redundancy IPSEC | ||
+ | |||
+ | =GET VPN= | ||
+ | Group Encrypted Transport VPN är en Cisco proprietary VPN-teknik som inte använder point-to-point-tunnlar utan istället tillhandahåller any-to-any kryptering genom att alla inblandade enheter kör med samma IPsec-nycklar. Group Domain Of Interpretation (RFC 3547) är ett group key management protocol som används för att distribuera dessa nycklar till alla Group Members (IOS devices) som vill ha det. GDOI körs mellan GM och Key Server. KS är en IOS-enhet som är ansvarig för att skapa och hålla koll på GET VPN control plane. All policy konfigureras på den som t.ex. krypteringsalgoritmer, timers och vilken trafik som ska krypteras. Detta laddas sedan ner av GMs under registreringen. Även om inte all policy är intressant för alla kommer det fortfarande att hämtas från KS. GET VPN har stöd för multipla KS för HA och GMs kan konfigureras att registrera med flera. Den KS med högst prio blir primary KS och övriga blir secondary. Vid lika används högst IP som tiebreaker. Nycklarna refreshas med jämna mellanrum (default 24h) genom en rekey-process. Detta görs med UDP 848 antingen med unicast eller multicast. Använder man unicast kommer varje GM att skicka ACK message som svar på den nya nyckeln. Det är endast primary KS som skickar rekey messages. Normalt sett får GMs skicka trafik utan kryptering innan man har registrerat sig med KS, detta kallas Fail-Open. | ||
+ | |||
+ | GET VPN använder Tunnel mode IPSec men istället för att använda tunnel endpoints i den nya IP-headern återanvänds orginal-IP. Detta gör att GET VPN inte passar bra att köra över internet eftersom där kan inte privata adresser routas. Därför är GET VPN bäst lämpat för privata nät, t.ex. som gör över MPLS VPN eller VPLS. Vill man däremot köra det över internet kan man kombinera det med [[Cisco_DMVPN|DMVPN]]. | ||
+ | |||
+ | GDOI Payloads | ||
+ | * GDOI SA | ||
+ | * SA KEK: används för att säkra GET VPN control plane | ||
+ | * SA TEK: används för att säkra data plane | ||
+ | * Key Download (KD) | ||
+ | * Sequence Number (SEQ) | ||
+ | * Proof of Possession (POP) | ||
+ | |||
+ | ===Konfiguration=== | ||
+ | '''Key Server''' <br/> | ||
+ | Generera RSA-nycklar | ||
+ | crypto key generate rsa general-keys label GDOI_KEYS modulus 2048 exportable | ||
+ | |||
+ | KS har all IPsec-konf som sedan laddas ner av gruppmedlemmarna | ||
+ | crypto isakmp policy 10 | ||
+ | authentication pre-share | ||
+ | |||
+ | crypto isakmp key 0 SECRET address 2.2.2.2 #GM-1 | ||
+ | crypto isakmp key 0 SECRET address 3.3.3.3 #GM-2 | ||
+ | crypto isakmp key 0 SECRET address 4.4.4.4 #GM-3 | ||
+ | |||
+ | crypto ipsec transform-set PHASE2 esp-aes esp-sha-hmac | ||
+ | |||
+ | crypto ipsec profile GDOI_PROFILE | ||
+ | set transform-set PHASE2 | ||
+ | |||
+ | ip access-list extended SYMMETRIC_ACL | ||
+ | permit ip 172.16.0.0 0.0.255.255 172.16.0.0 0.0.255.255 | ||
+ | |||
+ | crypto gdoi group GDOI_GROUP | ||
+ | identity number 123 | ||
+ | server local | ||
+ | rekey transport unicast | ||
+ | rekey authentication mypubkey rsa GDOI_KEYS | ||
+ | rekey retransmit 60 number 2 | ||
+ | sa ipsec 1 | ||
+ | profile GDOI_PROFILE | ||
+ | match address ipv4 SYMMETRIC_ACL | ||
+ | replay time window-size 5 | ||
+ | address ipv4 1.1.1.1 | ||
+ | |||
+ | '''Group Member''' | ||
+ | crypto isakmp policy 10 | ||
+ | authentication pre-share | ||
+ | |||
+ | crypto isakmp key 0 SECRET address 1.1.1.1 #KS | ||
+ | |||
+ | crypto gdoi group GDOI_GROUP | ||
+ | identity number 123 | ||
+ | server address ipv4 1.1.1.1 | ||
+ | |||
+ | crypto map GETVPN local-address Loopback 0 | ||
+ | crypto map GETVPN 10 gdoi | ||
+ | set group GDOI_GROUP | ||
+ | |||
+ | interface Gi2 | ||
+ | description To KS | ||
+ | crypto map GETVPN | ||
+ | |||
+ | '''Verify''' | ||
+ | show crypto gdoi | ||
+ | show crypto gdoi ks | ||
+ | show crypto gdoi gm | ||
+ | |||
+ | '''Suite B''' <br/> | ||
+ | GET VPN har stöd för Suite B men måste sättas upp för det genom att på KS konfigurera de säkra algoritmer som ska användas. | ||
+ | show crypto gdoi feature suite-b | ||
[[Category:Cisco]] | [[Category:Cisco]] |
Revision as of 13:21, 25 November 2016
IPsec (RFC 4301) är en teknik för att skydda datakommunikation och räknas som en secure VPN. Det finns i tunnel och transport mode beroende på om det ska tunnlas och krypteras eller endast krypteras. IPsec funkar med IPv4/IPv6 och kan köras över en GRE-tunnel. Virtual Tunnel Interface (VTI) är routebara interface som används för att terminera IPsec-tunnlar, detta gör IPsec flexibelt och det kan användas både för unicast och multicast.
Se även Cisco Security, Cisco DMVPN och ASA VPN.
Contents
Konfiguration
Legacy
IPsec VPN med crypto maps och IKEv1 är den äldsta och minst skalbara varianten av IPsec VPN.
crypto isakmp policy 10 encryption aes 256 authentication pre-share group 20 lifetime 86400 show crypto isakmp policy
PSK Authentication
crypto isakmp key S3cr3ts address 3.3.3.3 show crypto isakmp key
Fas 2
crypto ipsec transform-set PHASE2 esp-aes esp-sha-hmac mode tunnel ip access-list extended CRYPTO permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 crypto map VPNMAP 10 ipsec-isakmp set peer 3.3.3.3 set transform-set PHASE2 match address CRYPTO
Interfaces
interface GigabitEthernet0/1 description Internet ip address 2.2.2.2 255.255.255.0 crypto map VPNMAP interface GigabitEthernet0/2 description Inside ip address 192.168.1.1 255.255.255.0
Verify Fas 1 och 2. Inget förhandlas förens det skickas trafik som triggar tunneln.
show crypto isakmp sa show crypto ipsec sa show crypto session
Reverse Route Injection
crypto map VPNMAP 10 ipsec-isakmp set reverse-route distance 10
Loopback
crypto map VPNMAP local-address Loopback0
GRE over IPsec with Profile
En fördel med att tunnla trafiken med GRE är att routingprotokoll kan användas över tunneln. Trafiken krypteras efter att det har enkapsulerats med GRE. Man bör manuellt ange ip mtu på tunnel-interfacet för det tar ej hänsyn till ESP-enkapsuleringen som lägger till overhead.
crypto isakmp policy 10 encryption aes 256 authentication pre-share group 20 lifetime 86400 crypto isakmp key S3cr3ts address 3.3.3.3 crypto ipsec transform-set PHASE2 esp-aes esp-sha-hmac mode transport #Spara overhead genom att köra i transport mode crypto ipsec profile GRE_OVER_IPSEC set transform-set PHASE2 interface Tunnel0 ip address 1.1.1.1 255.255.255.0 ip mtu 1400 ip tcp adjust-mss 1360 tunnel source Loopback0 tunnel destination 3.3.3.3 tunnel protection ipsec profile GRE_OVER_IPSEC
Verify
show crypto ipsec profile
VTI
Med VPN som byggs med Virtual Tunnel Interface kan man både använda dynamic routing och multicast. Det fungerar likadant som GRE över IPsec men annan enkapsulering används. Payloaden enkapsuleras direkt i IPsec som är en IP-enkapsulering därför stöds inget annat än IP (så t.ex. IS-IS fungerar ej). Detta gör att tunnel-interfacet vet sin korrekta mtu. VTI konfigureras likadant som GRE över IPsec med profil men med en skillnad, här följer därför endast skillnaden samt att transform set alltid måste köras i tunnel mode.
crypto ipsec transform-set PHASE2 esp-aes esp-sha-hmac mode tunnel interface Tunnel0 tunnel mode ipsec ipv4
Verify
show crypto ipsec sa show crypto session
Local och remote kommer alltid att förhandlas som 0.0.0.0/0 <-> 0.0.0.0/0 vilket gör att det aldrig behövs mer än en entry per tunnel.
IKEv2
IKEv2 har inbyggt stöd för NAT traversal och ID är alltid skyddat till skillnad från IKEv1 aggressive mode.
Key ring
crypto ikev2 keyring IKEv2_KEYRING peer SITE2 address 3.3.3.3 pre-shared-key local PSK01 pre-shared-key remote PSK02
Proposal
crypto ikev2 proposal IKEv2_PROPOSAL encryption aes-cbc-256 integrity sha512 group 20 show crypto ikev2 proposal
Används aes-gcm måste prf köras på båda sidor.
Profile
crypto ikev2 profile IKEv2_PROFILE match identity remote address 3.3.3.3 255.255.255.255 identity local address 2.2.2.2 authentication remote pre-share authentication local pre-share keyring local IKEv2_KEYRING show crypto ikev2 profile
Policy
crypto ikev2 policy IKEv2_POLICY proposal IKEv2_PROPOSAL show crypto ikev2 policy
Transform set
crypto ipsec transform-set SITE2 esp-aes 256 esp-sha-hmac mode tunnel show crypto ipsec transform-set
Crypto map
crypto map IKEv2_MAP 1000 ipsec-isakmp set peer 3.3.3.3 set transform-set SITE2 match address CRYPTO interface gi2 crypto map IKEv2_MAP show crypto map
Verify
show crypto ikev2 sa
Others
QoS
Eftersom trafiken är enkapsulerad och krypterad måste QoS-beslut fattas innan, man kan använda QoS pre-classify på crypto map. Se även Cisco QoS.
crypto map VPNMAP 10 ipsec-isakmp qos pre-classify
High Availability
Det finns inget samspel mellan IPSec och HSRP, dvs HSRP kan inte hålla koll på IPSec's SA state och IPSec vet inte när HSRP gör en failover. Däremot kan man konfigurera crypto-mapen att sourcea IKE fas 1 och 2 från HSRP VIP. HSRP group names bör matcha på båda enheterna. Även om HSRP konvergerar snabbt kan det ta en stund innan IPsec-tunnlar är uppsatta på nytt efter en failover. Därför är denna metod inte optimal utan det man t.ex. kan göra istället är att ha uppe två tunnlar parallellt och sedan styra routingen med IP SLA.
crypto dynamic-map VPNMAP 10 set transform-set PHASE2 match address ACL reverse-route crypto map CRYPTO 10 ipsec-isakmp dynamic VPNMAP interface GigabitEthernet0/1 standby 1 name IPSEC crypto map CRYPTO redundancy IPSEC
GET VPN
Group Encrypted Transport VPN är en Cisco proprietary VPN-teknik som inte använder point-to-point-tunnlar utan istället tillhandahåller any-to-any kryptering genom att alla inblandade enheter kör med samma IPsec-nycklar. Group Domain Of Interpretation (RFC 3547) är ett group key management protocol som används för att distribuera dessa nycklar till alla Group Members (IOS devices) som vill ha det. GDOI körs mellan GM och Key Server. KS är en IOS-enhet som är ansvarig för att skapa och hålla koll på GET VPN control plane. All policy konfigureras på den som t.ex. krypteringsalgoritmer, timers och vilken trafik som ska krypteras. Detta laddas sedan ner av GMs under registreringen. Även om inte all policy är intressant för alla kommer det fortfarande att hämtas från KS. GET VPN har stöd för multipla KS för HA och GMs kan konfigureras att registrera med flera. Den KS med högst prio blir primary KS och övriga blir secondary. Vid lika används högst IP som tiebreaker. Nycklarna refreshas med jämna mellanrum (default 24h) genom en rekey-process. Detta görs med UDP 848 antingen med unicast eller multicast. Använder man unicast kommer varje GM att skicka ACK message som svar på den nya nyckeln. Det är endast primary KS som skickar rekey messages. Normalt sett får GMs skicka trafik utan kryptering innan man har registrerat sig med KS, detta kallas Fail-Open.
GET VPN använder Tunnel mode IPSec men istället för att använda tunnel endpoints i den nya IP-headern återanvänds orginal-IP. Detta gör att GET VPN inte passar bra att köra över internet eftersom där kan inte privata adresser routas. Därför är GET VPN bäst lämpat för privata nät, t.ex. som gör över MPLS VPN eller VPLS. Vill man däremot köra det över internet kan man kombinera det med DMVPN.
GDOI Payloads
- GDOI SA
- SA KEK: används för att säkra GET VPN control plane
- SA TEK: används för att säkra data plane
- Key Download (KD)
- Sequence Number (SEQ)
- Proof of Possession (POP)
Konfiguration
Key Server
Generera RSA-nycklar
crypto key generate rsa general-keys label GDOI_KEYS modulus 2048 exportable
KS har all IPsec-konf som sedan laddas ner av gruppmedlemmarna
crypto isakmp policy 10 authentication pre-share crypto isakmp key 0 SECRET address 2.2.2.2 #GM-1 crypto isakmp key 0 SECRET address 3.3.3.3 #GM-2 crypto isakmp key 0 SECRET address 4.4.4.4 #GM-3 crypto ipsec transform-set PHASE2 esp-aes esp-sha-hmac crypto ipsec profile GDOI_PROFILE set transform-set PHASE2 ip access-list extended SYMMETRIC_ACL permit ip 172.16.0.0 0.0.255.255 172.16.0.0 0.0.255.255 crypto gdoi group GDOI_GROUP identity number 123 server local rekey transport unicast rekey authentication mypubkey rsa GDOI_KEYS rekey retransmit 60 number 2 sa ipsec 1 profile GDOI_PROFILE match address ipv4 SYMMETRIC_ACL replay time window-size 5 address ipv4 1.1.1.1
Group Member
crypto isakmp policy 10 authentication pre-share crypto isakmp key 0 SECRET address 1.1.1.1 #KS crypto gdoi group GDOI_GROUP identity number 123 server address ipv4 1.1.1.1 crypto map GETVPN local-address Loopback 0 crypto map GETVPN 10 gdoi set group GDOI_GROUP interface Gi2 description To KS crypto map GETVPN
Verify
show crypto gdoi show crypto gdoi ks show crypto gdoi gm
Suite B
GET VPN har stöd för Suite B men måste sättas upp för det genom att på KS konfigurera de säkra algoritmer som ska användas.
show crypto gdoi feature suite-b