Juniper SRX et Cisco ASA: nouvelle série

La première fois que j'ai construit IPSec entre Juniper SRX et Cisco ASA, c'était en 2014. Même alors, c'était très douloureux, car il y avait beaucoup de problèmes (généralement un tunnel s'effondrant pendant la régénération), c'était difficile à diagnostiquer (ASA était chez notre client, donc les possibilités de débogage étaient limitées), mais d'une manière ou d'une autre, cela a fonctionné.

image

Depuis lors, le JunOS recommandé pour SRX a été mis à jour vers 15.1 (pour la ligne SRX300, au moins), et l'ASA a appris à utiliser IPSec basé sur la route (version logicielle 9.8), ce qui simplifie un peu la configuration. Et au travail actuel il n'y a pas si longtemps, il y avait une chance de remonter un tel schéma. Et encore une fois, sans succès - pendant la régénération, le tunnel est tombé en toute sécurité (et n'a pas toujours augmenté sans redémarrage manuel). Et encore une fois dans les journaux le silence et la confusion, mais parce que ASA était avec notre partenaire, alors il n'y avait aucun moyen de débuter, respectivement.

Et maintenant, l'occasion s'est présentée pour assembler un schéma dans lequel les deux parties (SRX et ASA) sont sous notre contrôle, respectivement, vous pouvez jouer pour de bon.

Disposition


Donc ce que nous avons:

  • Juniper SRX340 (JunOS 15.1X49D150.2)
  • Cisco ASA 5506 (logiciel 9.8.4)
  • IPSec basĂ© sur l'itinĂ©raire entre eux (le routage sera fourni par BGP, je vais aussi en dire quelques mots)

Schéma




La configuration


Genévrier


Commençons par la configuration SRX. J'ai pas mal de tunnels différents construits dessus, à la fin je suis arrivé à quelque chose comme ça:

set security ike policy IKE-ASA mode main set security ike policy IKE-ASA proposals SHA256-AES128-5-86400 set security ike policy IKE-ASA pre-shared-key ascii-text ... set security ike gateway GW-ASA ike-policy IKE-ASA set security ike gateway GW-ASA address 192.0.2.2 set security ike gateway GW-ASA dead-peer-detection interval 10 set security ike gateway GW-ASA dead-peer-detection threshold 3 set security ike gateway GW-ASA local-identity inet 198.51.100.2 set security ike gateway GW-ASA external-interface ae0.4 set security ike gateway GW-ASA version v2-only set security ipsec vpn VPN-ASA bind-interface st0.7 set security ipsec vpn VPN-ASA df-bit clear set security ipsec vpn VPN-ASA vpn-monitor source-interface st0.7 set security ipsec vpn VPN-ASA vpn-monitor destination-ip 169.254.100.2 set security ipsec vpn VPN-ASA ike gateway GW-ASA set security ipsec vpn VPN-ASA ike ipsec-policy SHA256-AES128-3600-14-policy set security ipsec vpn VPN-ASA establish-tunnels immediately set interfaces st0 unit 7 description "ASA AnyConnect router" set interfaces st0 unit 7 family inet mtu 1436 set interfaces st0 unit 7 family inet address 169.254.100.1/30 set routing-options static route 192.0.2.2/32 next-hop 198.51.100.1 set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic system-services ping set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic system-services ike set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic system-services traceroute set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic protocols bgp 

On peut voir que IKEv2 est utilisé sans sélecteurs de trafic (nous avons déjà suffisamment de fonds dans notre arsenal pour limiter le flux de trafic - des listes de préfixes BGP aux politiques de sécurité). Pour le tas, DPD (détection des pairs morts) et vpn-monitor sont utilisés (ils ont un type de vérification légèrement différent, j'utilise les deux pour la fiabilité).

Cisco


Configuration ASA:
 crypto ipsec ikev2 ipsec-proposal SHA256-AES128 protocol esp encryption aes-256 aes-192 aes protocol esp integrity sha-256 crypto ipsec profile IPSEC-PROFILE-AMS1-VPN2 set ikev2 ipsec-proposal SHA256-AES128 set pfs group14 set security-association lifetime kilobytes unlimited set security-association lifetime seconds 3600 crypto ikev2 policy 1 encryption aes-256 aes-192 aes integrity sha256 group 5 prf sha256 lifetime seconds 86400 tunnel-group 198.51.100.2 type ipsec-l2l tunnel-group 198.51.100.2 ipsec-attributes isakmp keepalive threshold 30 retry 10 ikev2 remote-authentication pre-shared-key ... ikev2 local-authentication pre-shared-key ... crypto ikev2 enable outside interface Tunnel7 nameif l2l-ams1-vpn2 ip address 169.254.100.2 255.255.255.252 tunnel source interface outside tunnel destination 198.51.100.2 tunnel mode ipsec ipv4 tunnel protection ipsec profile IPSEC-PROFILE-AMS1-VPN2 

La structure des configurations est approximativement la mĂŞme sur les deux routeurs, mais, comme d'habitude, les noms de section ne correspondent pas du tout. Voyons ce qui correspond Ă  quoi.

Comparaison de configuration


Politique / proposition IKE


 crypto ikev2 policy 1 encryption aes-256 aes-192 aes integrity sha256 group 5 prf sha256 lifetime seconds 86400 

 set security ike proposal SHA256-AES128-5-86400 description ike-phase1-proposal1 set security ike proposal SHA256-AES128-5-86400 authentication-method pre-shared-keys set security ike proposal SHA256-AES128-5-86400 dh-group group5 set security ike proposal SHA256-AES128-5-86400 authentication-algorithm sha-256 set security ike proposal SHA256-AES128-5-86400 encryption-algorithm aes-128-cbc set security ike proposal SHA256-AES128-5-86400 lifetime-seconds 86400 set security ike policy IKE-ASA mode main set security ike policy IKE-ASA proposals SHA256-AES128-5-86400 set security ike policy IKE-ASA pre-shared-key ascii-text ... 

Ici commence une certaine confusion dans la terminologie. Ce que Cisco appelle la stratégie IKE, Juniper a la proposition IKE. Et la politique IKE de Juniper est similaire au groupe de tunnel ASA ... Personnellement, j'aime davantage l'approche Juniper, mais ici, bien sûr, c'est une question d'habitude.

Je dois dire que la configuration d'IKEv2 (en particulier basée sur l'itinéraire) sur l'ASA semble toujours beaucoup plus logique que les cartes cryptographiques et l'autre honte qui était auparavant.

Politique / proposition IPSec


 crypto ipsec ikev2 ipsec-proposal SHA256-AES128 protocol esp encryption aes-256 aes-192 aes protocol esp integrity sha-256 crypto ipsec profile IPSEC-PROFILE-SHA256-AES128-3600-14 set ikev2 ipsec-proposal SHA256-AES128 set pfs group14 set security-association lifetime kilobytes unlimited set security-association lifetime seconds 3600 

 set security ipsec proposal SHA256-AES128-3600 description ipsec-phase2-proposal set security ipsec proposal SHA256-AES128-3600 protocol esp set security ipsec proposal SHA256-AES128-3600 authentication-algorithm hmac-sha-256-128 set security ipsec proposal SHA256-AES128-3600 encryption-algorithm aes-128-cbc set security ipsec proposal SHA256-AES128-3600 lifetime-seconds 3600 set security ipsec policy SHA256-AES128-3600-14-policy description SHA256-AES128-3600-14-policy set security ipsec policy SHA256-AES128-3600-14-policy perfect-forward-secrecy keys group14 set security ipsec policy SHA256-AES128-3600-14-policy proposals SHA256-AES128-3600 

Ici, les deux fournisseurs font plus ou moins de la même manière - nous créons d'abord une proposition avec des paramètres de cryptage / authentification, puis nous y suspendons la durée de vie et les pfs.

Passerelle


 tunnel-group 198.51.100.2 type ipsec-l2l tunnel-group 198.51.100.2 ipsec-attributes isakmp keepalive threshold 30 retry 10 ikev2 remote-authentication pre-shared-key ... ikev2 local-authentication pre-shared-key ... 

 set security ike gateway GW-ASA ike-policy IKE-ASA-LEGAL set security ike gateway GW-ASA address 192.0.2.2 set security ike gateway GW-ASA dead-peer-detection interval 10 set security ike gateway GW-ASA dead-peer-detection threshold 3 set security ike gateway GW-ASA local-identity inet 198.51.100.2 set security ike gateway GW-ASA external-interface ae0.4 set security ike gateway GW-ASA version v2-only 

Et ici, les différences sont plus prononcées. Sur ASA PSK est indiqué directement dans les paramètres de pair. Juniper vous permet de spécifier à la fois l'interface sortante et des options supplémentaires comme local-identity, en plus il se réfère à la politique ike (où nous avons spécifié le PSK).

Par ailleurs, si vous souhaitez convertir IKEv2 en IKEv1 sur ASA (et vice versa), Cisco devra recréer l'intégralité du groupe de tunnels. Et sur SRX, changez juste une option. (Certes, des options incompatibles peuvent apparaître plus tard avec la validation, mais ce sont les détails)

VPN / VTI


 interface Tunnel7 nameif l2l-ams1-vpn2 ip address 169.254.100.2 255.255.255.252 tunnel source interface outside tunnel destination 198.51.100.2 tunnel mode ipsec ipv4 tunnel protection ipsec profile IPSEC-PROFILE-SHA256-AES128-3600-14 

 set security ipsec vpn VPN-ASA bind-interface st0.7 set security ipsec vpn VPN-ASA df-bit clear set security ipsec vpn VPN-ASA vpn-monitor source-interface st0.7 set security ipsec vpn VPN-ASA vpn-monitor destination-ip 169.254.100.2 set security ipsec vpn VPN-ASA ike gateway GW-ASA set security ipsec vpn VPN-ASA ike ipsec-policy SHA256-AES128-3600-14-policy set security ipsec vpn VPN-ASA establish-tunnels immediately set interfaces st0 unit 7 description "AnyConnect router" set interfaces st0 unit 7 family inet mtu 1436 set interfaces st0 unit 7 family inet address 169.254.100.1/30 

Et encore une fois la configuration Juniper me semble plus logique. Le VPN est configuré séparément (il peut également être basé sur des règles), le tunnel de sécurité lui-même est séparé. Remerciements particuliers pour les «établir immédiatement des tunnels». Une option très utile;) (tsiskovody comprend ce que je veux dire). Un autre «bonus» de SRX est qu'il est possible de créer des IPSecs multipoints, à la fois avec la détection automatique des pairs (cela ne fonctionne, malheureusement, qu'entre SRX) et avec le routage manuel. Bien sûr, ce n'est pas un DMVPN à part entière, mais la vie dans des configurations telles que «un centre - plusieurs branches» le rend beaucoup plus facile.

Interfaces


Je m'attarderai séparément sur la configuration des interfaces sur lesquelles IPSec est construit. Pour Juniper, il est respectivement ae0.4 , pour ASA il est à l' extérieur

 crypto ikev2 enable outside 

 set security zones security-zone ZONE-INTERNET interfaces ae0.4 host-inbound-traffic system-services ike set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic system-services ping set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic system-services traceroute set security zones security-zone ZONE-VPN interfaces st0.7 host-inbound-traffic protocols bgp 

Sur les interfaces, vous devez activer ike, sinon rien ne fonctionnera :) De plus, pour SRX, vous devez activer bgp / ospf / que ce soit pour les connexions entrantes sur l'interface st0.x.

Configurer BGP


Tout est assez banal ici (d'une part)

 set protocols bgp group ASA type external set protocols bgp group ASA description "AnyConnect router" set protocols bgp group ASA hold-time 30 set protocols bgp group ASA import IMPORT-EBGP-ASA set protocols bgp group ASA export EXPORT-EBGP-ASA set protocols bgp group ASA local-as 64666 set protocols bgp group ASA neighbor 169.254.100.2 peer-as 65001 set policy-options policy-statement EXPORT-EBGP-ASA term 0 from route-filter 10.0.0.0/8 exact set policy-options policy-statement EXPORT-EBGP-ASA term 0 then accept set policy-options policy-statement EXPORT-EBGP-ASA term 1 then reject set policy-options policy-statement IMPORT-EBGP-ASA term 1 then reject 

Sur ASA, nous donnons le préfixe agrégé de notre LAN - je l'aurai 10/8. Nous n'acceptons rien de l'ASA, car à partir de la version 9.8.4 du logiciel, vous ne pouvez toujours pas annoncer les adresses des interfaces de gestion (ce qui est compréhensible) et BVI (ce qui est très gênant) via BGP. Mais si vous avez d'autres réseaux derrière l'ASA, vous devrez bien sûr les ajouter à la politique.

 asa(config-router-af)# network 10.255.32.252 mask 255.255.255.254 ERROR: BGP configuration not supported on management-only/BVI interface 

Pour "voir" l'interface interne, vous devrez enregistrer une route statique sur le SRX en direction d'ipsec:

 set routing-options static route 10.255.32.252/31 next-hop 169.254.100.2 

De plus, ASA ne sait toujours pas comment boucler les interfaces, nous enverrons donc tous les journaux / netflow et autres journaux de l'intérieur.

L'ASA5506 possède un commutateur intégré, vous pouvez donc utiliser l'interface virtuelle BVI (particulièrement utile lorsque vous avez un schéma «routeur sur bâton» et qu'un seul port physique est utilisé.

 interface BVI1 nameif inside security-level 100 ip address 10.255.32.253 255.255.255.254 management-access inside 

Après cela, aux bons endroits (journalisation, snmp, flux), vous devrez spécifier `inside` comme interface source.

En cas de problème, alias dépannage


IKE / IPSec


Tout d'abord, vous devez installer les deux phases d'IPSec (pour Juniper, il s'agit en fait d'IKE / IPSec).

Nous regardons:

 admin@srx> show security ike security-associations Index State Initiator cookie Responder cookie Mode Remote Address 2128190 UP ae7d7d447326218a 2be3b3004ae0e36a IKEv2 192.0.2.2 admin@srx> show security ipsec security-associations Total active tunnels: 6 ID Algorithm SPI Life:sec/kb Mon lsys Port Gateway <131077 ESP:aes-cbc-128/sha256 fec3c7d1 2867/ unlim U root 500 192.0.2.2 >131077 ESP:aes-cbc-128/sha256 74d792ca 2867/ unlim U root 500 192.0.2.2 

Sur l'ASA:

 asa# sho crypto ikev2 sa IKEv2 SAs: Session-id:5, Status:UP-ACTIVE, IKE count:1, CHILD count:1 Tunnel-id Local Remote Status Role 585564345 192.0.2.2/500 198.51.100.2/500 READY RESPONDER Encr: AES-CBC, keysize: 128, Hash: SHA256, DH Grp:5, Auth sign: PSK, Auth verify: PSK Life/Active Time: 86400/47018 sec Child sa: local selector 0.0.0.0/0 - 255.255.255.255/65535 remote selector 0.0.0.0/0 - 255.255.255.255/65535 ESP spi in/out: 0xc989d9ea/0xcca8b6d5 

Chez Juniper, vous pouvez toujours voir des statistiques sur le tunnel IPSec, y compris les raisons de la chute:

 admin@srx> show security ipsec security-associations index 131078 detail ID: 131078 Virtual-system: root, VPN Name: VPN-ASA-LEGAL-PL Local Gateway: 198.51.100.2, Remote Gateway: 192.0.2.2 Local Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0) Remote Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0) Version: IKEv2 DF-bit: clear, Copy-Outer-DSCP Disabled, Bind-interface: st0.7 Port: 500, Nego#: 734, Fail#: 0, Def-Del#: 0 Flag: 0x600a29 Tunnel events: Mon Dec 09 2019 13:40:35: IPSec SA rekey successfully completed (48 times) Mon Dec 09 2019 00:30:47: IKE SA rekey successfully completed (10 times) Fri Nov 29 2019 02:13:55: IPSec SA negotiation successfully completed (1 times) Fri Nov 29 2019 02:13:55: IKE SA negotiation successfully completed (1 times) Fri Nov 29 2019 02:13:55: No response from peer. Negotiation failed (7 times) Fri Nov 29 2019 02:10:14: DPD detected peer as down. Existing IKE/IPSec SAs cleared (1 times) Fri Nov 29 2019 01:39:15: IPSec SA rekey successfully completed (1 times) Fri Nov 29 2019 00:49:50: IPSec SA negotiation successfully completed (1 times) Fri Nov 29 2019 00:49:50: IKE SA negotiation successfully completed (1 times) Fri Nov 29 2019 00:49:30: No response from peer. Negotiation failed (23 times) Fri Nov 29 2019 00:37:24: DPD detected peer as down. Existing IKE/IPSec SAs cleared (1 times) Fri Nov 29 2019 00:30:00: IPSec SA rekey successfully completed (77 times) Thu Nov 28 2019 20:11:31: IKE SA rekey successfully completed (7 times) Tue Nov 26 2019 08:51:44: IPSec SA negotiation successfully completed (1 times) Thu Nov 21 2019 21:24:32: IKE SA negotiation successfully completed (1 times) Thu Nov 21 2019 01:06:27: IKE SA rekey successfully completed (6 times) Direction: inbound, SPI: 4bd2e2bd, AUX-SPI: 0 , VPN Monitoring: UP Hard lifetime: Expires in 3132 seconds Lifesize Remaining: Unlimited Soft lifetime: Expires in 2495 seconds Mode: Tunnel(10 10), Type: dynamic, State: installed Protocol: ESP, Authentication: hmac-sha256-128, Encryption: aes-cbc (128 bits) Anti-replay service: counter-based enabled, Replay window size: 64 Direction: outbound, SPI: 504f306e, AUX-SPI: 0 , VPN Monitoring: UP Hard lifetime: Expires in 3132 seconds Lifesize Remaining: Unlimited Soft lifetime: Expires in 2495 seconds Mode: Tunnel(10 10), Type: dynamic, State: installed Protocol: ESP, Authentication: hmac-sha256-128, Encryption: aes-cbc (128 bits) Anti-replay service: counter-based enabled, Replay window size: 64 

Si tout est en ordre avec IPSec, alors vous devez regarder l'ACL (politiques de sécurité, règles entrantes d'hôte, etc.). Dans les cas extrêmes, vous pouvez essayer de recharger la boîte (ASA) - cela m'a aidé.
UPD: À propos du débogage IPsec dans Juniper que j'ai déjà attribué à Habr

BGP


Tout est assez standard ici - si la session n'est pas installée, vous pouvez voir à travers la capture si BGP-hello vole dans les deux sens.

Total


C’est tout. Je ne sais pas si le nouveau logiciel est à blâmer, ou les étoiles se sont réunies comme ça - mais le tunnel ASA <> SRX reste stable et ne tombe pas une fois par jour, comme c'était le cas auparavant.

J'espère que vous réussirez aussi!

Source: https://habr.com/ru/post/fr481620/


All Articles