Fading Coder

One Final Commit for the Last Sprint

Home > Tech > Content

Configuring Site-to-Site IPsec VPN Between FortiGate and Cisco FTD

Tech 1

Establishing site-to-site connectivity between FortiGate and Cisco Secure Firewall (FTD) requires policy-based VPN configuration on the FortiGate side to match FTD's traditional crypto map architecture. The implementations differ in Phase 2 handling—FortiGate uses multiple sleectors while FTD consolidates traffic via extended ACLs.

FortiGate Configuration

Enable policy-based IPsec mode and define the Phase 1 interface parameters. Ensure the proposal matches FTD's IKEv2 capabilities:

config vpn ipsec phase1-interface
    edit "Branch-VPN"
        set interface "port1"
        set ike-version 2
        set peertype any
        set proposal aes256gcm-prfsha384
        set dhgrp 14
        set remote-gw 203.0.113.50
        set psksecret ComplexPresharedKey2024
        set keylifeseconds 28800
    next
end

FortiGate requires distinct Phase 2 selectors for each source-destination subnet pair. Define these without Perfect Forward Secrecy (PFS) to match the FTD configuration:

config vpn ipsec phase2-interface
    edit "Branch-VPN-Net1"
        set phase1name "Branch-VPN"
        set proposal aes256gcm
        set pfs disable
        set keylifeseconds 3600
        set src-subnet 172.16.10.0 255.255.255.0
        set dst-subnet 192.168.100.0 255.255.255.0
    next
    edit "Branch-VPN-Net2"
        set phase1name "Branch-VPN"
        set proposal aes256gcm
        set pfs disable
        set keylifeseconds 3600
        set src-subnet 172.16.20.0 255.255.255.0
        set dst-subnet 192.168.200.0 255.255.255.0
    next
end

Apply the VPN to a firewall policy using the ipsec action:

config firewall policy
    edit 100
        set name "LAN_to_VPN"
        set srcintf "internal"
        set dstintf "port1"
        set action ipsec
        set srcaddr "172.16.10.0/24" "172.16.20.0/24"
        set dstaddr "192.168.100.0/24" "192.168.200.0/24"
        set schedule "always"
        set service "ALL"
        set vpntunnel "Branch-VPN"
    next
end

Cisco FTD Configuration

Although FTD primarily uses FMC/FDM for management, the underlying ASA CLI remains available for VPN configuration. Enable IKEv2 on the external interface and define the policy to match FortiGate's Phase 1 parameters:

crypto ikev2 enable outside

crypto ikev2 policy 10
 encryption aes-gcm-256
 integrity null
 group 14
 prf sha384
 lifetime seconds 28800

Configure the IPsec proposal for Phase 2. When using AES-GCM, the inetgrity algorithm is handled internally by the cipher:

crypto ipsec ikev2 ipsec-proposal FGT-PROPOSAL
 protocol esp encryption aes-256-gcm
 protocol esp integrity null

Define the tunnel group with the peer's public IP and pre-shared key:

tunnel-group 198.51.100.25 type ipsec-l2l
tunnel-group 198.51.100.25 general-attributes
 default-group-policy GroupPolicy_L2L
tunnel-group 198.51.100.25 ipsec-attributes
 ikev2 remote-authentication pre-shared-key ComplexPresharedKey2024
 ikev2 local-authentication pre-shared-key ComplexPresharedKey2024

Create an access list identifying the encryption domain (mirror image of FortiGate's traffic selectors), then bind to a crypto map:

access-list VPN-ACL extended permit ip 192.168.100.0 255.255.255.0 172.16.10.0 255.255.255.0
access-list VPN-ACL extended permit ip 192.168.200.0 255.255.255.0 172.16.20.0 255.255.255.0

crypto map OUTSIDE-MAP 10 match address VPN-ACL
crypto map OUTSIDE-MAP 10 set peer 198.51.100.25
crypto map OUTSIDE-MAP 10 set ikev2 ipsec-proposal FGT-PROPOSAL
crypto map OUTSIDE-MAP 10 set pfs none
crypto map OUTSIDE-MAP 10 set reverse-route
crypto map OUTSIDE-MAP interface outside

Verification

On FortiGate, verify tunnel establishment and encapsulation counters:

get vpn ipsec tunnel summary
get vpn ipsec tunnel name Branch-VPN
diagnose vpn tunnel list

On FTD, check IKEv2 SAs and IPsec SAs:

show crypto ikev2 sa
show crypto ipsec sa peer 198.51.100.25
show vpn-sessiondb detail l2l filter name 198.51.100.25
Tags: FortiGate

Related Articles

Understanding Strong and Weak References in Java

Strong References Strong reference are the most prevalent type of object referencing in Java. When an object has a strong reference pointing to it, the garbage collector will not reclaim its memory. F...

Comprehensive Guide to SSTI Explained with Payload Bypass Techniques

Introduction Server-Side Template Injection (SSTI) is a vulnerability in web applications where user input is improper handled within the template engine and executed on the server. This exploit can r...

Implement Image Upload Functionality for Django Integrated TinyMCE Editor

Django’s Admin panel is highly user-friendly, and pairing it with TinyMCE, an effective rich text editor, simplifies content management significantly. Combining the two is particular useful for bloggi...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.