في المرة الأولى التي أنشأت فيها IPSec بين Juniper SRX و Cisco ASA ، عادت إلى عام 2014. حتى مع ذلك ، كان الأمر مؤلماً للغاية ، لأنه كان هناك الكثير من المشكلات (عادةً ما يكون هناك نفق ينهار أثناء التجديد) ، كان من الصعب تشخيصه (كانت ASA في مكان عملائنا ، وكانت فرص تصحيح الأخطاء محدودة) ، لكن نجحت بطريقة ما.
منذ ذلك الحين ، تم تحديث JunOS الموصى بها لـ SRX إلى 15.1 (لخط SRX300 ، على الأقل) ، وتعلم ASA كيفية استخدام IPSec القائم على التوجيه (إصدار البرنامج 9.8) ، مما يبسط التكوين قليلاً. وفي العمل الحالي منذ وقت ليس ببعيد كانت هناك فرصة لتجميع مثل هذا المخطط مرة أخرى. ومرة أخرى ، دون جدوى - أثناء التجديد ، سقط النفق بأمان (ولم يرتفع دائمًا دون إعادة التشغيل يدويًا). ومرة أخرى في سجلات الصمت والارتباك ، ولكن بسبب كان ASA مع شريكنا ، ثم لم يكن هناك طريقة لاول مرة ، على التوالي.
والآن أتاحت الفرصة لتجميع مخطط يكون فيه كلا الجانبين (SRX و ASA) تحت سيطرتنا ، على التوالي ، يمكنك اللعب للأبد.
ترتيب
إذن ما لدينا:
- Juniper SRX340 (JunOS 15.1X49D150.2)
- Cisco ASA 5506 (البرنامج 9.8.4)
- IPSec القائم على الطريق بينهما (سيتم توفير التوجيه بواسطة BGP ، وسأقول أيضًا بضع كلمات عن ذلك)
مخطط

ترتيب
العرعر شجر
لنبدأ بتكوين SRX. لدي عدد قليل من الأنفاق المختلفة التي بنيت عليها ، في النهاية جئت إلى شيء مثل هذا:
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
يمكن ملاحظة أن IKEv2 يستخدم بدون محددات حركة المرور (لدينا بالفعل أموال كافية في ترسانتنا للحد من تدفق حركة المرور - من قوائم بادئة BGP إلى سياسات الأمان). إلى كومة الذاكرة المؤقتة ، يتم استخدام DPD (اكتشاف نظير ميت) وشاشة vpn (لديهم نوع مختلف تمامًا من الفحوصات ، وأنا أستخدمهما من أجل الموثوقية).
سيسكو
تكوين 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
هيكل التكوينات هو نفسه تقريبا على كلا الموجهات ، ولكن كالمعتاد ، لا تتطابق أسماء الأقسام على الإطلاق. دعنا نتعرف على ما يتوافق مع ما.
مقارنة التكوين
سياسة / اقتراح 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 ...
هنا يبدأ بعض الالتباس في المصطلحات. ما تسميه Cisco سياسة IKE ، لدى Juniper اقتراح IKE. تشبه سياسة IKE Juniper مجموعة النفق ASA ... شخصياً ، أحب أسلوب Juniper أكثر ، ولكن هنا بالطبع ، إنها عادة.
يجب أن أقول أن تكوين IKEv2 (خاصةً الطريق المستند إلى) على ASA لا يزال يبدو أكثر منطقية من خرائط التشفير والخزي الآخر الذي كان من قبل.
سياسة / اقتراح 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
هنا ، يقوم كلا البائعين بعمل علامة زائد أو ناقص بالطريقة نفسها - أولاً ، نقوم بإنشاء اقتراح بمعلمات التشفير / المصادقة ، ثم نعلق العمر ونفرض pfs عليه.
بوابة
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
وهنا الاختلافات أكثر وضوحا. على ASA PSK يشار مباشرة في إعدادات النظير. يسمح لك Juniper بتحديد الواجهة الصادرة والخيارات الإضافية مثل الهوية المحلية ، بالإضافة إلى أنه يشير إلى سياسة ike (حيث حددنا PSK).
بالمناسبة ، إذا كنت ترغب في تحويل IKEv2 إلى IKEv1 على ASA (والعكس صحيح) ، فستحتاج Cisco إلى إعادة إنشاء مجموعة النفق بأكملها. وعلى SRX ، فقط قم بتغيير خيار واحد.
(صحيحًا ، قد تأتي الخيارات غير المتوافقة لاحقًا مع الالتزام ، ولكن هذه هي التفاصيل)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
ومرة أخرى يبدو أن تكوين جونيبر أكثر منطقية. يتم تكوين VPN بشكل منفصل (يمكن أن يكون أيضًا مستندًا إلى السياسة) ، ونفق الأمان نفسه منفصل. شكر خاص على "إنشاء الأنفاق على الفور". خيار مفيد للغاية ؛) (tsiskovody فهم ما أعنيه). هناك "مكافأة" أخرى لـ SRX وهي أنه من الممكن إنشاء IPSecs متعددة النقاط ، مع الكشف التلقائي عن الأقران (يعمل ، لسوء الحظ ، فقط بين SRX) ، ومع التوجيه اليدوي. هذا ، بالطبع ، ليس DMVPN مكتمل ، ولكن الحياة في أجهزة مثل "مركز واحد - العديد من الفروع" تجعل الأمر أسهل بكثير.
واجهات
سأفصل بشكل منفصل عن تكوين الواجهات التي تم بناء IPSec عليها. بالنسبة لـ Juniper ، فهو ، على التوالي ،
ae0.4 ، بالنسبة لـ ASA فهو
خارج 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
في الواجهات ، تحتاج إلى تمكين ike ، وإلا فلن يعمل شيء :) بالإضافة إلى ذلك ، بالنسبة إلى SRX ، تحتاج إلى تمكين bgp / ospf / مهما للاتصالات الواردة على واجهة st0.x.
تكوين BGP
كل شيء عادي جدا هنا (من ناحية)
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
في ASA نعطي البادئة المجمعة لشبكة LAN الخاصة بنا - سأحصل عليها 10/8. لا نقبل أي شيء من ASA ، لأنه من إصدار البرنامج 9.8.4 لا يزال يتعذر عليك الإعلان عن عناوين واجهات الإدارة (وهو أمر مفهوم) و BVI (وهو أمر غير مريح للغاية) عبر BGP. ولكن إذا كان لديك أي شبكات أخرى وراء ASA ، فسوف تحتاج إلى إضافتها إلى السياسة ، بالطبع.
asa(config-router-af)# network 10.255.32.252 mask 255.255.255.254 ERROR: BGP configuration not supported on management-only/BVI interface
"لرؤية" الواجهة الداخلية ، ستحتاج إلى تسجيل مسار ثابت على SRX في اتجاه ipsec:
set routing-options static route 10.255.32.252/31 next-hop 169.254.100.2
بالإضافة إلى ذلك ، لا يزال ASA لا يعرف كيفية استرجاع الواجهات ، لذلك سوف نرسل جميع / netflow وسجلات أخرى من الداخل.
يحتوي ASA5506 على مفتاح مضمن ، بحيث يمكنك استخدام واجهة BVI الافتراضية (مفيدة بشكل خاص عندما يكون لديك نظام توجيه على عصا ، ويتم استخدام منفذ فعلي واحد فقط.
interface BVI1 nameif inside security-level 100 ip address 10.255.32.253 255.255.255.254 management-access inside
بعد ذلك ، في الأماكن الصحيحة (التسجيل ، snmp ، التدفق) ، ستحتاج إلى تحديد "الداخل" كواجهة المصدر.
إذا حدث خطأ ما ويعرف أيضًا باسم استكشاف الأخطاء وإصلاحها
ايك / IPSec
أولاً ، يجب تثبيت مرحلتي IPSec (بالنسبة لـ Juniper ، هذا ، في الواقع ، IKE / IPSec).
نحن ننظر:
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
على 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
في Juniper ، لا يزال بإمكانك مشاهدة إحصائيات على نفق ipsec ، بما في ذلك أسباب السقوط:
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
إذا كان كل شيء على ما يرام مع IPSec ، فأنت بحاجة إلى إلقاء نظرة على ACL (سياسات الأمان ، قواعد المضيف الواردة ، وما إلى ذلك). في الحالات القصوى ، يمكنك محاولة إعادة تحميل المربع (ASA) - كان يستخدم لمساعدتي.
محدث: حول تصحيح IPsec في Juniper قمت بتعيينه بالفعل لـ Habr
BGP
كل شيء قياسي هنا - إذا لم يتم تثبيت الجلسة ، يمكنك معرفة ما إذا كانت BGP-hello تطير في كلا الاتجاهين.
في المجموع
هذا كل شيء. لا أعرف ما إذا كان البرنامج الجديد هو السبب في ذلك أم أن النجوم تجمعت مع ذلك - لكن نفق ASA <> SRX يبقى ثابتًا ولا يسقط مرة واحدة يوميًا ، كما كان من قبل.
أتمنى أن تنجح أيضًا!