Changes

no edit summary
Line 449: Line 449:  
</table>
 
</table>
   −
==IPsec==
+
<!--IPsec-->
 +
{{#ifeq:{{{series}}}|RUT9xx||{{Template:Networking_rut2xx_manual_vpn_ipsec
 +
| file_ipsec_config          = {{{file_ipsec_config}}}
 +
| file_ipsec_phase          = {{{file_ipsec_phase}}}
 +
| file_ipsec_main_mode      = {{{file_ipsec_main_mode}}}
 +
| file_ipsec_aggressive_mode = {{{file_ipsec_aggressive_mode}}}
 +
| file_ipsec_psk            = {{{file_ipsec_psk}}}
 +
}}}}
   −
To create a new IPsec instance, go to the <i>Services → VPN → IPsec</i> section, enter a custom name and click "Add". An IPsec instance with the given name will appear in the "IPsec Configuration" list.
+
{{#ifeq:{{{series}}}|RUT2xx||{{Template:Networking_rut9xx_manual_vpn_ipsec
 
+
| file_ipsec_config          = {{{file_ipsec_config}}}
To begin configuration, click the 'Edit' button located next to the instance.
+
| file_ipsec_phase          = {{{file_ipsec_phase}}}
 
+
| file_ipsec_main_mode      = {{{file_ipsec_main_mode}}}
===IPsec configuration===
+
| file_ipsec_aggressive_mode = {{{file_ipsec_aggressive_mode}}}
----
+
| file_ipsec_psk            = {{{file_ipsec_psk}}}
The <b>IPsec configuration</b> section is used to configure the main parameters of an IPsec connection. Refer to the figure and table below for information on the configuration fields located in the general settings section.
+
}}}}
 
  −
[[File:{{{file_ipsec_config}}}]]
  −
 
  −
<table class="nd-mantable">
  −
    <tr>
  −
        <th>Field</th>
  −
      <th>Value</th>
  −
      <th>Description</th>
  −
    </tr>
  −
    <tr>
  −
    <td>Enable</td>
  −
        <td>yes | no; default: <b>no</b></td>
  −
        <td>Turns the IPsec instance on or off.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>IKE version</td>
  −
        <td>IKEv1 | IKEv2; default: <b>IKEv1</b></td>
  −
        <td>Internet Key Exchange (IKE) version used for key exchange.
  −
            <ul>
  −
                <li><b>IKEv1</b> - more commonly used but contains known issues, for example, dealing with NAT.</li>
  −
                <li><b>IKEv2</b> - updated version with increased and improved capabilities, such as integrated NAT support, supported multihosting, deprecated exchange modes (does not use main or aggressive mode; only 4 messages required to establish a connection).</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr>
  −
      <td>Mode</td>
  −
      <td>Main | Aggressive; default: <b>Main</b></td>
  −
      <td>Internet Security and Key Management Protocol (ISAKMP) phase 1 exchange mode.
  −
            <ul>
  −
                <li><b>Main</b> - performs three two-way exchanges between the initiator and the receiver (a total of 9 messages).</li>
  −
                <li><b>Aggressive</b> - performs fewer exchanges than main mode (a total of 6 messages) by storing most data into the first exchange. In aggressive mode, the information is exchanged before there is a secure channel, making it less secure but faster than main mode.</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr>
  −
      <td>Type</td>
  −
      <td>Tunnel | Transport; default: <b>Tunnel</b></td>
  −
      <td>Type of connection.
  −
            <ul>
  −
                <li><b>Tunnel</b> - protects internal routing information by encapsulating the entire IP packet (IP header and payload); commonly used in site-to-site VPN connections; supports NAT traversal.</li>
  −
                <li><b>Transport</b> - only encapsulates IP payload data; used in client-to-site VPN connections; does not support NAT traversal; usually implemented with other tunneling protocols (for example, L2TP).</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr>
  −
    <td>My identifier type</td>
  −
        <td>FQDN | User FQDN | Address; default: <b>FQDN</b></td>
  −
        <td>Defines the type of identity used in user (IPsec instance) authentication.
  −
            <ul>
  −
                <li><b>FQDN</b> - identity defined by fully qualified domain name. It is the complete domain name for a host (for example, <i>something.somedomain.com</i>). Only supported with IKEv2.</li>
  −
                <li><b>User FQDN</b> - identity defined by fully qualified username string (for example, <i>[email protected]</i>). Only supported with IKEv2.</li>
  −
                <li><b>Address</b> - identity by IP address.</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr>
  −
    <td>On startup</td>
  −
        <td>Ignore | Add | Route | Start; default: <b>Start</b></td>
  −
        <td>Defines how the instance should act on router startup.
  −
            <ul>
  −
                <li><b>Ignore</b> - does not start the tunnel.</li>
  −
                <li><b>Add</b> - loads a connection without starting it.</li>
  −
                <li><b>Route</b> - starts the tunnel only if there is traffic.</li>
  −
                <li><b>Start</b> - starts the tunnel on router startup.</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr>
  −
    <td>My identifier</td>
  −
        <td>ip | string; default: <b>none</b></td>
  −
        <td>Defines how the user (IPsec instance) will be identified during authentication.</td>
  −
    </tr>
  −
    <tr>
  −
      <td><span style="color: red;">Tunnel:</span> Local IP address/Subnet mask</td>
  −
      <td>ip/netmask | default: <b>none</b></td>
  −
      <td>Local IP address and subnet mask used to determine which part of the network can be accessed in the VPN network. Netmask range [0..32]. If left empty, IP address will be selected automatically.</td>
  −
    </tr>
  −
    <tr>
  −
      <td>Left firewall</td>
  −
      <td>off | on; default: <b>on</b></td>
  −
      <td>Adds neccessary firewall rules to allow traffic of this IPsec instance on this router.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Force encapsulation</td>
  −
        <td>yes | no; default: <b>no</b></td>
  −
        <td>Forces UDP encapsulation for ESP packets even if a "no NAT" situation is detected.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Dead Peer Detection</td>
  −
        <td>yes | no; default: <b>no</b></td>
  −
        <td>A function used during Internet Key Exchange (IKE) to detect a "dead" peer. It used to reduce traffic by minimizing the number of messages when the opposite peer in unavailable and as failover mechanism.</td>
  −
    </tr>
  −
    <tr>
  −
    <td><span style="color: #0054a6;">Dead Peer Detection:</span> Delay (sec)</td>
  −
        <td>integer; default: <b>none</b></td>
  −
        <td>The frequency of checking whether a peer is still availaible or not.</td>
  −
    </tr>
  −
    <tr>
  −
    <td><span style="color: #0054a6;">Dead Peer Detection:</span> Timeout (sec)</td>
  −
        <td>integer; default: <b>none</b></td>
  −
        <td>Time limit after which the IPsec instance will stop checking the availability of a peer and determine it to be "dead" if no response is received.</td>
  −
    </tr>
  −
    <tr>
  −
      <td>Remote VPN endpoint</td>
  −
      <td>host | ip; default: <b>none</b></td>
  −
      <td>IP address or hostname of the remote IPsec instance.</td>
  −
    </tr>
  −
    <tr>
  −
    <td><span style="color: red;">Tunnel:</span> Remote IP address/subnet mask</td>
  −
        <td>ip/netmask; default: <b>none</b></td>
  −
        <td>Remote network IP address and subnet mask used to determine which part of the network can be accessed in the VPN network. Netmask range [0..32]. This value must differ from the device’s LAN IP.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Right firewall</td>
  −
        <td>yes | no; default: <b>yes</b></td>
  −
        <td>Adds neccessary firewall rules to allow traffic of from the opposite IPsec instance on this router.</td>
  −
    </tr>
  −
    <tr>
  −
    <td><span style="color: purple;">Transport:</span> Use with DMVPN</td>
  −
        <td>yes | no; default: <b>no</b></td>
  −
        <td>Adds several necessary options to make DMVPN work.</td>
  −
    </tr>
  −
    <tr>
  −
      <td>Enable keepalive</td>
  −
      <td>yes | no; default: <b>no</b></td>
  −
      <td>When enabled, the instance sends ICMP packets to the specified host at the specified frequency. If no response is received, the router will attempt to restart the connection.</td>
  −
    </tr>
  −
    <tr>
  −
      <td>Host</td>
  −
      <td>host | ip; default: <b>none</b></td>
  −
      <td>Hostname or IP address to which keepalive ICMP packets will be sent to.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Ping period (sec)</td>
  −
        <td>integer [0..9999999]; default: <b>none</b></td>
  −
        <td>The frequency at which keepalive ICMP packets will be sent to the specified host or IP address.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Allow WebUI access</td>
  −
        <td>yes | no; default: <b>no</b></td>
  −
        <td>Allows WebUI access for hosts in the VPN network.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Custom options</td>
  −
        <td>ipsec options; default: <b>none</b></td>
  −
        <td>Provides the possibility to further customize the connection by adding extra IPsec options.</td>
  −
    </tr>
  −
</table>
  −
 
  −
<b>Additional notes</b>:
  −
<ul>
  −
    <li>Some configuration fields become available only when certain other parameters are selected. The names of the parameters are followed by a prefix that specifies the authentication type under which they become visible. Different color codes are used for different prefixes:
  −
        <ul>
  −
            <li>Red for <span style="color: red;">Type: Tunnel</span></li>
  −
            <li>Purple for <span style="color: purple;">Type: Transport</span></li>
  −
            <li>Blue for <span style="color: #0054a6;">Dead Peer Detection: Enabled</span></li>
  −
        </ul>
  −
    </li>
  −
    <li>After changing any of the parameters, don't forget to click the <b>Save</b> button located at the bottom-right side of the page.</li>
  −
</ul>
  −
 
  −
===Phase settings===
  −
IKE (Internet Key Exchange) is a protocol used to set up security associations (SAs) for the IPsec connection. This process is required before the IPsec tunnel can be established. It is done in two phases:
  −
----
  −
<table border=1; style="border-collapse: collapse;">
  −
    <tr>
  −
        <th width=400><span style="color: #0054A6;">Phase</span></th>
  −
        <th colspan="2"><span style="color: #0054A6;">Mode</span></th>
  −
    </tr>
  −
    <tr style="vertical-align: top;">
  −
        <td><b>Phase 1</b>
  −
            <ul>
  −
                <li>Establishes a secure channel between peers</li>
  −
                <li>Authenticates peers</li>
  −
                <li>Negotiates SA policy</li>
  −
                <li>Shares secret keys</li>
  −
                <li>Establishes secure tunnel for phase 2</li>
  −
            </ul>
  −
        </td>
  −
        <td width=350>Main mode (figure 1)
  −
            <ul>
  −
                <li>6 packets exchanged</li>
  −
                <li>Identity protected during exchange</li>
  −
            </ul>
  −
        </td>
  −
        <td width=350>Aggressive mode (figure 2)
  −
            <ul>
  −
                <li>3 packets exchanged</li>
  −
                <li>Identity information exchanged before a secure channel is established</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
    <tr style="vertical-align: top;">
  −
        <td><b>Phase 2</b>
  −
            <ul>
  −
                <li>Sets up matching IPsec SAs</li>
  −
                <li>Periodically renegotiates IPsec SAs</li>
  −
            </ul>
  −
        </td>
  −
        <td colspan="2">Quick mode
  −
            <ul>
  −
                <li>3 packets exchanged</li>
  −
                <li>IPsec SA parameters (ESP/AH, SHA/MD5) established</li>
  −
                <li>SA lifetime set</li>
  −
            </ul>
  −
        </td>
  −
    </tr>
  −
</table>
  −
<br>
  −
<table>
  −
    <tr>
  −
        <td><b>Figure 1</b></td>
  −
        <td><b>Figure 2</b></td>
  −
    </tr>
  −
    <tr>
  −
        <td width=500>[[File:{{{file_ipsec_main_mode}}}]]</td>
  −
        <td width=500>[[File:{{{file_ipsec_aggressive_mode}}}]]</td>
  −
    </tr>
  −
</table>
  −
----
  −
[[File:{{{file_ipsec_phase}}}]]
  −
 
  −
<table class="nd-mantable">
  −
    <tr>
  −
        <th>Field</th>
  −
      <th>Value</th>
  −
      <th>Description</th>
  −
    </tr>
  −
    <tr>
  −
    <td>Encryption algorithm</td>
  −
        <td>DES | 3DES | AES128 | AES192 | AES256; default: <b>3DES</b></td>
  −
        <td>Algorithm used for data encryption.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Authentication/Hash algorithm</td>
  −
        <td>MD5 | SHA1 | SHA256 | SHA384 | SHA512; default: <b>SHA1</b></td>
  −
        <td>Algorithm used for exchanging authentication and hash information.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>DH group/PFS group</td>
  −
        <td>MODP768 | MODP1024 | MODP1536 | MODP2048 | MODP3072 | MODP4096; default: <b>MODP1536</b></td>
  −
        <td>Diffie-Hellman (DH) group used in the key exchange process. Higher group numbers provide more security, but take longer and use more resources to compute the key.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Lifetime</td>
  −
        <td>integer; default: <b>8 hours</b></td>
  −
        <td>Defines a time period after which the phase will re-initiate its exchange of information.</td>
  −
    </tr>
  −
</table>
  −
 
  −
===Pre-shared keys===
  −
----
  −
A <b>pre-shared key</b> is a secret password used for authentication between IPsec peers before a secure tunnel is established. To create a new key, click the 'Add' button.
  −
 
  −
The figure below is an example of the Pre-shared keys section and the table below provides information on configuration fields contained in that section:
  −
 
  −
[[File:{{{file_ipsec_psk}}}]]
  −
 
  −
<table class="nd-mantable">
  −
    <tr>
  −
        <th>Field</th>
  −
      <th>Value</th>
  −
      <th>Description</th>
  −
    </tr>
  −
    <tr>
  −
    <td>Pre-shared key</td>
  −
        <td>string; default: <b>none</b></td>
  −
        <td>A shared password used for authentication between IPsec peers before a secure channel is established.</td>
  −
    </tr>
  −
    <tr>
  −
    <td>Secret's ID selector</td>
  −
        <td>string; default: <b>none</b></td>
  −
        <td>Each secret can be preceded by a list of optional ID selectors. A selector is an IP address, a Fully Qualified Domain Name, user@FQDN or %any.<br><b>NOTE</b>: IKEv1 only supports IP address ID selector.</td>
  −
    </tr>
  −
</table>
      
<!--GRE Tunnel-->
 
<!--GRE Tunnel-->
   
{{#ifeq:{{{series}}}|RUT9xx||{{Template:Networking_rutxxx_manual_vpn_gre
 
{{#ifeq:{{{series}}}|RUT9xx||{{Template:Networking_rutxxx_manual_vpn_gre
 
| file_gre_config_main      = {{{file_gre_config_main}}}
 
| file_gre_config_main      = {{{file_gre_config_main}}}

Navigation menu