This article describes how to set up an IPsec VPN between a FortiGate and a Cisco router.
FortiGate.
Prerequisites:
Network Topology Overview:
Diagram showing the topology: FortiGate and Cisco router on different ends, connected via the internet with specific internal subnets behind them.
Configuration on the HO side (FortiGate):
VPN Configuration:
config vpn ipsec phase1-interface
edit "HO_Side"
set type static
set remote-gw 192.168.4.1
set authmethod psk
set psksecret "salon123"
set dhgrp 5
set peertype any
set proposal aes256-sha1
set interface wan
set nattraversal disable
set keylife 86400
next
end
config vpn ipsec phase2-interface
edit "HO_Phase2"
set phase1name "HO_Side"
set pfs enable
set dhgrp 5
set keylife-type seconds
set keylifeseconds 86400
set proposal aes256-sha1
set src-subnet 192.168.1.0/24
set dst-subnet 192.168.2.0/24
next
Static Route Configuration:
config router static
edit 1
set dst 192.168.4.1/32
set gateway 192.168.3.2
set device "wan"
next
end
Firewall Policy Configuration:
config firewall policy
edit 1
set name "Outbound to HO_Side"
set srcintf "LAN" <-------- LAN refers to 192.168.1.0/24 Network.
set dstintf "HO_Side" <-------- HO_Side is the IPSec tunnel interface.
set action accept
set srcaddr "LAN Address" <-------- Address Object for LAN 192.168.1.0/24.
set dstaddr "Remote LAN Address" <-------- Address Object for Remote AN 192.168.2.0/24.
set schedule "always"
set service "ALL"
next
end
config firewall policy
edit 2
set name "Inbound to HO_Side"
set srcintf "HO_Side" <-------- HO_Side is the IPsec tunnel interface.
set dstintf "LAN" <-------- LAN refers to 192.168.1.0/24 Network.
set action accept
set srcaddr "Remote LAN Address" <-------- Address Object for Remote AN 192.168.2.0/24.
set dstaddr "LAN Address" <-------- Address Object for LAN 192.168.1.0/24.
set schedule "always"
set service "ALL"
next
end
Note:
BranchOffice Router (Cisco):
conf t
ip route 192.168.1.0 255.255.255.0 192.168.4.2
ip route 192.168.3.0 255.255.255.0 192.168.4.2
access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
crypto isakmp policy 1
encr aes
authentication pre-share
group 5
exit
conf t
crypto isakmp key salon123 address 192.168.3.1
exit
conf t
crypto ipsec transform-set VPN-TS esp-aes 256 esp-sha-hmac
crypto map VPN-MAP 10 ipsec-isakmp
set peer 192.168.3.1
set pfs group5
set security-association lifetime seconds 86400
set transform-set VPN-TS
match address 100
interface GigabitEthernet0/0/0
ip address 192.168.2.1 255.255.255.0
no shutdown
interface GigabitEthernet0/0/1(outgoing interface)
ip address 192.168.4.1 255.255.255.0
no shutdown
crypto map VPN-MAP
As a note:
The following are the two possibilities to configure a Cisco VPN when IKEv1 and IKEv2.
For IKEv1:
Show run crypto to see if the following are present:
crypto ikev1 policy 100
authentication pre-share
encryption aes-256
hash sha
group 5
lifetime 86400
crypto ikev1 policy 110
authentication pre-share
encryption aes-256
hash sha
group 2
lifetime 86400
crypto ikev1 policy 120
authentication pre-share
encryption aes-192
hash sha
group 5
lifetime 86400
crypto ikev1 policy 130
authentication pre-share
encryption aes-192
hash sha
group 2
lifetime 86400
crypto ikev1 policy 140
authentication pre-share
encryption aes
hash sha
group 5
lifetime 86400
crypto ikev1 policy 150
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
crypto isakmp nat-traversal 20
crypto ipsec ikev1 transform-set AES256-SHA esp-aes-256 esp-sha-hmac
crypto ipsec ikev1 transform-set AES192-SHA esp-aes-192 esp-sha-hmac
crypto ipsec ikev1 transform-set AES-SHA esp-aes esp-sha-hmac
crypto map VPNMAP interface OUTSIDE
crypto isakmp identity address
crypto ikev1 enable OUTSIDE
Section 2 Syntax required for all new site-to-site VPN deployments:
object-group network VPN-LOCAL-2<xx>
network-object <LOCAL NETWORK>
network-object <LOCAL NETWORK>
object-group network VPN-REMOTE-2<xx>
network-object <REMOTE NETWORK>
network-object <REMOTE NETWORK>
Access list
access-list 2<xx> permit ip object-group VPN-LOCAL-2<xx> object-group VPN-REMOTE-2<xx>
The following NAT statement is not used if the local encryption domain (VPN-LOCAL-2<xx>) is using public addresses
nat (any,outside) source static VPN-LOCAL-2<xx> VPN-LOCAL-2<xx> destination static VPN-REMOTE-2<xx> VPN-REMOTE-2<xx> no-proxy-arp route-lookup
Create a Crypto map and a Tunnel.
crypto map VPNMAP 2<xx> match address 2<xx>
crypto map VPNMAP 2<xx> set peer <PEER IP>
crypto map VPNMAP 2<xx> set ikev1 transform-set <TRANSFORM-SET>
tunnel-group <PEER IP> type ipsec-l2l
tunnel-group <PEER IP> ipsec-attributes
ikev1 pre-shared-key <RANDOM 13 ALPHANUMERIC CHARACTERS OR CUSTOMER SPECIFIED>
Optional:
crypto map VPNMAP 2<xx> set security-association lifetime seconds 3600
crypto map VPNMAP 2<xx> set security-association lifetime kilobytes unlimited
crypto map VPNMAP 2<xx> set pfs group##
For IKEv2:
object-group network VPN-LOCAL-2<xx>
network-object <LOCAL NETWORK>
network-object <LOCAL NETWORK>
object-group network VPN-REMOTE-2<xx>
network-object <REMOTE NETWORK>
network-object <REMOTE NETWORK>
access-list 2<xx> permit ip object-group VPN-LOCAL-2<xx> object-group VPN-REMOTE-2<xx>
The following NAT statement is not used if the local encryption domain (VPN-LOCAL-2<xx>) is using public addresses.
nat (any,outside) source static VPN-LOCAL-2<xx> VPN-LOCAL-2<xx> destination static VPN-REMOTE-2<xx> VPN-REMOTE-2<xx> no-proxy-arp route-lookup
Only secure policies have been provided below. If insecure settings such as MD5 hash or 3DES encryption are required, create a custom policy with a policy number higher than all those below.
Only secure transform-sets have been provided below. If insecure settings such as MD5 hash or 3DES encryption are required, create and use a custom IPsec proposal.
crypto ikev2 policy 100
encryption aes-256 aes-192 aes
integrity sha512 sha384 sha256 sha
group 20 19 14 5 2
prf sha512 sha384 sha256 sha
lifetime seconds 86400
crypto ipsec ikev2 ipsec-proposal IKEV2-IPSEC-PROPOSAL
protocol esp encryption aes-256 aes-192 aes
protocol esp integrity sha-1
crypto ikev2 policy <#>
encryption aes-256 aes-gcm-192 aes-gcm
group 21 20 19
prf sha512 sha384 sha256
lifetime seconds 86400
crypto ikev2 policy <#>
encryption aes-256 aes-192 aes
integrity sha512 sha384 sha256
group 21 20 19
prf sha512 sha384 sha256
lifetime seconds 86400
crypto ipsec ikev2 ipsec-proposal IKEV2-IPSEC-SECURE
protocol esp encryption aes-256 aes-192 aes-aes-256 aes-192 aes
protocol esp integrity sha-512 sha-384 sha-256
crypto map VPNMAP 2<xx> match address 2<xx>
crypto map VPNMAP 2<xx> set peer <PEER IP>
crypto map VPNMAP 2<xx> set ikev2 ipsec-proposal <IPSEC-PROPOSAL>
Optional:
crypto map VPNMAP 2<xx> set security-association lifetime seconds 3600
crypto map VPNMAP 2<xx> set security-association lifetime kilobytes unlimited
crypto map VPNMAP 2<xx> set pfs group##
crypto map VPNMAP interface OUTSIDE
crypto isakmp identity address
crypto ikev2 enable OUTSIDE
tunnel-group <PEER IP> type ipsec-l2l
tunnel-group <PEER IP> ipsec-attributes
ikev2 local-authentication pre-shared-key <RANDOM 13 ALPHANUMERIC CHARACTERS OR CUSTOMER SPECIFIED>
ikev2 remote-authentication pre-shared-key <RANDOM 13 ALPHANUMERIC CHARACTERS OR CUSTOMER SPECIFIED>
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.