Changes

no edit summary
Line 1: Line 1: −
Default IPsec route configuration between Teltonika Networks and Fortigate devices
   
  <p style="color:red">The information in this page is updated in accordance with [https://wiki.teltonika-networks.com/view/FW_%26_SDK_Downloads'''00.07.07.2'''] firmware version.</p>  
 
  <p style="color:red">The information in this page is updated in accordance with [https://wiki.teltonika-networks.com/view/FW_%26_SDK_Downloads'''00.07.07.2'''] firmware version.</p>  
 
==Introduction==
 
==Introduction==
 
Normally we configure IPsec for LAN-to-LAN communication, also known as split-tunnel VPN, when only specific hosts should be reachable via a VPN tunnel. However, we may also take a different approach and configure a VPN tunnel using the full tunnel method. This means that any non-directly connected network (i.e. lan interface) will be reachable only via IPsec tunnel and not via the typical default route.
 
Normally we configure IPsec for LAN-to-LAN communication, also known as split-tunnel VPN, when only specific hosts should be reachable via a VPN tunnel. However, we may also take a different approach and configure a VPN tunnel using the full tunnel method. This means that any non-directly connected network (i.e. lan interface) will be reachable only via IPsec tunnel and not via the typical default route.
 +
 
==Configuration overview and prerequisites==
 
==Configuration overview and prerequisites==
 
Before we begin, let's look at the configuration we are attempting to achieve and the prerequisites that make it possible.
 
Before we begin, let's look at the configuration we are attempting to achieve and the prerequisites that make it possible.
 +
 
'''Prerequisites:'''
 
'''Prerequisites:'''
'''• '''One RUT/RUTX series router with RUTOS firmware;
  −
  −
'''• '''One Fortigate series router;
     −
'''• '''An end device (PC, Laptop) for configuration;
+
* One RUT/RUTX series router with RUTOS firmware;
 +
* One Fortigate series router;
 +
* An end device (PC, Laptop) for configuration;
   −
If you're having trouble finding any page or some of the parameters described here on your device's WebUI, you should turn on '''"Advanced WebUI"''' mode. You can do that by '''clicking''' the '''"Basic"''' button '''under "Mode"''' which is located at the top-right corner of the WebUI.  
+
If you're having trouble finding this page or some of the parameters described here on your device's WebUI, you should turn on '''"Advanced WebUI" mode.''' You can do that by clicking the "Advanced" button, located at the top of the WebUI.
 +
[[File:Networking_rutos_manual_webui_basic_advanced_mode_75.gif|border|center|class=tlt-border|1102x93px]]
    
==Topology==
 
==Topology==
   −
'''Fortigate''' – The Fortigate will act as a '''hub'''. A hub is a server, to which our spoke will be connected (IPsec responder). It will be our "default gateway" for the spoke device. Fortigate has a LAN subnet of 192.168.5.0/24 configured on it, which should be reachable by the spoke.
+
'''Fortigate''' – The Fortigate will act as a '''hub'''. A hub is a server, to which our spoke will be connected (IPsec responder). It will be our "default gateway" for the spoke device. Fortigate has a LAN subnet of 192.168.5.0/24 and WAN subnet of 192.168.10.2/24 configured on it, which should be reachable by the spoke.
   −
'''RUT''' – '''RUTX11''' will act as a '''spoke'''. A spoke is a client, that will be connected to the spoke (IPsec initiator). It will be connected to a '''hub''' for basic internet access. RUTX11 has a LAN subnet of 192.168.1.0/24 configured on it.
+
'''RUT''' – '''RUTX11''' will act as a '''spoke'''. A spoke is a client, that will be connected to the spoke (IPsec initiator). It will be connected to a '''hub''' for basic internet access. RUTX11 has a LAN subnet of 192.168.1.0/24 and WAN subnet of 192.168.10.1/24 configured on it.
    
==Fortigate (Hub) configuration==
 
==Fortigate (Hub) configuration==
Line 25: Line 26:  
'''Note:''' ''Not specified fields can be left as is or changed according to your needs.''
 
'''Note:''' ''Not specified fields can be left as is or changed according to your needs.''
 
===Network configuration===
 
===Network configuration===
1. Remote Gateway – '''''Static IP Address;'''''
+
----
 
+
# Remote Gateway – '''''Static IP Address;'''''
2. IP Address – '''''192.168.10.1;'''''
+
# IP Address – '''''192.168.10.1;'''''
 
+
#Interface – '''''wan1;'''''
3. Interface – '''''wan1;'''''
+
[[File:Fortigate_IPsec_Network_Configuration.png|border|class=tlt-border|center]]
 
   
===Authentication configuration===
 
===Authentication configuration===
 
+
----
1. Method – '''''Pre-shared Key;'''''
+
# Method – '''''Pre-shared Key;'''''
 
+
# Pre-shared Key – '''''your desired password;'''''
2. Pre-shared Key – '''''your desired password;'''''
+
# Version – '''''2;'''''
 
+
[[File:Fortigate_IPsec_Authentication_Configuration.png|border|class=tlt-border|center]]
3. Version – '''''2;'''''
  −
 
   
===Phase 1 Proposal configuration===
 
===Phase 1 Proposal configuration===
 
+
----
1. Encryption – '''''AES256;'''''
+
# Encryption – '''''AES256;'''''
 
+
# Authentication -  '''''SHA512;'''''
2. Authentication -  '''''SHA512;'''''
+
# Diffie-Hellman Group – '''''16;'''''
 
+
# Key Lifetime (seconds) – '''''86400;'''''
3. Diffie-Hellman Group – '''''16;'''''
+
[[File:Fortigate_IPsec_Phase1_Proposal_Configuration.png|border|class=tlt-border|center]]
 
  −
4. Key Lifetime (seconds) – '''''86400;'''''
  −
 
   
===Phase 2 Selectors configuration===
 
===Phase 2 Selectors configuration===
 +
----
 
'''''Click on Advanced settings;'''''
 
'''''Click on Advanced settings;'''''
 
+
# Encryption – '''''AES256;'''''
1. Encryption – '''''AES256;'''''
+
# Authentication -  '''''SHA512;'''''
 
+
# Diffie-Hellman Group – '''''16;'''''
2. Authentication -  '''''SHA512;'''''
+
# Key Lifetime – '''''Seconds;'''''
 
+
# Seconds – '''''86400;'''''
3. Diffie-Hellman Group – '''''16;'''''
+
[[File:Fortigate_IPsec_Phase2_Proposal_Configuration.png|border|class=tlt-border|center]]
 
  −
4. Key Lifetime – '''''Seconds;'''''
  −
 
  −
5. Seconds – '''''86400;'''''
  −
 
      
==RUT (Spoke) configuration==
 
==RUT (Spoke) configuration==
Line 67: Line 58:  
'''Note:''' ''Not specified fields can be left as is or changed according to your needs.''  
 
'''Note:''' ''Not specified fields can be left as is or changed according to your needs.''  
 
===Instance configuration===
 
===Instance configuration===
1. '''''Enable''''' instance;
+
----
 
+
# '''''Enable''''' instance;
2. Remote endpoint - '''''Fortigate WAN IP;'''''
+
# Remote endpoint - '''''Fortigate WAN IP;'''''
 
+
# Authentication method - '''''Pre-shared key;'''''
3. Authentication method - '''''Pre-shared key;'''''
+
# Pre-shared key - the '''''same password''''' you have '''''set on Fortigate''''' when configuring the '''''Fortigate HUB instance;'''''
 
+
# Local identifier – '''''RUT WAN IP;'''''
4. Pre-shared key - the '''''same password''''' you have '''''set on Fortigate''''' when configuring the '''''Fortigate HUB instance;'''''
+
# Remote identifier – '''''Fortigate WAN IP;'''''
 
+
[[File:Networking_webui_manual_IPsec_Instance_Configuration.png|border|class=tlt-border|center]]
5. Local identifier – '''''RUT WAN IP;'''''
  −
 
  −
6. Remote identifier – '''''Fortigate WAN IP;'''''
  −
 
   
===Connection general section configuration===
 
===Connection general section configuration===
 +
----
 +
# Mode - '''''Start;'''''
 +
# Type - '''''Tunnel;'''''
 +
# Local subnet – '''''192.168.1.0/24;'''''
 +
# Remote subnet – '''''0.0.0.0/0;'''''
 +
# Key exchange - '''''IKEv2;'''''
   −
1. Mode - '''''Start;'''''
+
[[File:Networking_webui_manual_IPsec_configuration_connection_settings_v1.png|border|class=tlt-border|686x482px|center]]
 
  −
2. Type - '''''Tunnel;'''''
  −
 
  −
3. '''''Enable default route;'''''
  −
 
  −
4. Local subnet – '''''192.168.1.0/24;'''''
  −
 
  −
5. Remote subnet – '''''0.0.0.0/0;'''''
  −
 
  −
6. Key exchange - '''''IKEv2;'''''
      
===Connection advanced section configuration===
 
===Connection advanced section configuration===
 
+
----
1. '''''Enable local firewall'''''
+
# '''''Enable local firewall'''''
 
+
#Remote DNS – '''''8.8.8.8;'''''
2. Remote DNS – '''''8.8.8.8;'''''
+
# Passthrough subnets – '''''192.168.1.0/24;'''''
 
+
[[File:Networking_webui_manual_IPsec_Connection_advanced_Configuration.png|border|class=tlt-border|686x482px|center]]
3. Passthrough subnets – '''''192.168.1.0/24;'''''
  −
 
   
===Proposal configuration===
 
===Proposal configuration===
'''Phase 1'''
+
----
   −
1. Encryption - '''''AES256;'''''
+
<table class="nd-othertables_2">
 +
    <tr>
 +
        <th width=330; style="border-bottom: 1px solid white;></th>
 +
        <th width=800; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_webui_manual_IPsec_configuration_proposal_phase1_settings_v1.png|border|class=tlt-border|671x336px|center]]</th>
 +
    </tr>
 +
    <tr>
 +
        <td style="border-bottom: 4px solid white>
 +
# Encryption - '''''AES256;'''''
 +
# Authentication - '''''SHA512;'''''
 +
# DH group - '''''MODP4096;'''''
 +
# IKE lifetime - '''86400s'''.
 +
        </td>
 +
    </tr>
 +
</table>
   −
2. Authentication - '''''SHA512;'''''
+
----
 +
<table class="nd-othertables_2">
 +
    <tr>
 +
        <th width=330; style="border-bottom: 1px solid white;></th>
 +
        <th width=800; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_webui_manual_IPsec_configuration_proposal_phase2_settings_v1.png|border|class=tlt-border|644x331px|center]]</th>
 +
    </tr>
 +
    <tr>
 +
        <td style="border-bottom: 4px solid white>
 +
# Encryption - '''''AES256;'''''
 +
# Authentication - '''''SHA512;'''''
 +
# PFS group - '''''MODP4096;'''''
 +
# Lifetime – '''''86400s;'''''
 +
        </td>
 +
    </tr>
 +
</table>
   −
3. DH group – '''''MODP4096;'''''
     −
4. IKE lifetime – '''''86400s;'''''
+
==Testing the configuration==
   −
'''Phase 2'''
+
If you have followed all the above steps, your configuration should be finished. But as with any other configuration, it is always wise to test the setup in order to make sure that it works properly.
   −
1. Encryption - '''''AES256;'''''
+
Using the <code><span class="highlight">'''ipsec status'''</span></code> command we can see that IPsec tunnel is successfully established on RUT router. The command output on a '''spoke (RUT)''' device:
   −
2. Hash - '''''SHA512;'''''
+
[[File:Networking_ssh_manual_IPsec_configuration_IPsec_statusall_test_v1.png|border|class=tlt-border|971x135px|center]]
   −
3. PFS group – '''''MODP4096;'''''
+
Also, as the hub should be reachable by spoke, we can try pinging the hub using <code><span class="highlight" >'''ping 192.168.5.99'''</span></code>:
 +
[[File:Networking_ssh_manual_IPsec_configuration_test_ping_v1.png|border|class=tlt-border|506x133px|center]]
 +
==See also==
   −
4. lifetime – '''''86400s;'''''
+
[https://wiki.teltonika-networks.com/view/RUTX12_VPN#IPsec IPsec on Teltonika Networks devices]
   −
==Testing the configuration==
+
==External links==
 
  −
If you have followed all the above steps, your configuration should be finished. But as with any other configuration, it is always wise to test the setup in order to make sure that it works properly.
     −
Using the ipsec status command we can see that IPsec tunnel is successfully established on RUT router. The command output on a spoke (RUT) device:
+
[https://openwrt.org/docs/guide-user/services/vpn/strongswan/basics OpenWrt Ipsec basics]
 +
[https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/762500/general-ipsec-vpn-configuration Fortigate Ipsec configuration]