Difference between revisions of "Connecting to the office network remotely from your home via VPN (OpenVPN)"

From Teltonika Networks Wiki
 
Line 1: Line 1:
 
<table class="nd-othertables_2">
 
<table class="nd-othertables_2">
 
     <tr>
 
     <tr>
         <th width=325; style="border-bottom: 1px solid white;></th>
+
         <th width="325;" style="border-bottom: 1px solid white;"></th>
         <th width=820; style="border-bottom: 1px solid white;" rowspan=2;>
+
         <th rowspan="2;" width="820;" style="border-bottom: 1px solid white;">[[File:Networking rutxxx configuration openvpn topology v1.png|alt=|border|class=tlt-border|right|750x750px]]</th>
[[File:Networking_RUTX_VPN_between_HQ_topology_v4.png|border|class=tlt-border|750px|right]]</th>
 
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td style="border-bottom: 1px solid white>
+
         <td style="border-bottom: 1px solid white">
{|align=center
+
{| align="center"
 
   |__TOC__
 
   |__TOC__
 
   |}
 
   |}
Line 17: Line 16:
  
 
'''Prerequisites''':
 
'''Prerequisites''':
* One Teltonika Networks router (In this article RUTX11 will be used)
+
*One RUTX router of any type
* A Public Static or Public Dynamic IP addresses
+
*A Public Static or Public Dynamic IP addresses
* At least one end device with Windows 10
+
*At least one end device with Windows 10
<br>
+
<br>The topology above depicts the OpenVPN scheme. - The router with the Public IP address ('''''RUTX11''''') acts as the '''OpenVPN server''' and the '''Windows 10 device''' acts as a '''client'''. OpenVPN connects the networks of '''RUTX11''' and '''Windows 10 clients'''.
The topology above depicts the L2TP/IPsec scheme. - The router with the Public IP address ('''''RUTX11''''') acts as the '''L2TP/IPsec server''' and the '''Windows 10 device''' acts as '''client'''. L2TP connects the networks of '''RUTX11''' and '''Windows 10 client''', IPsec provides the encryption for the L2TP tunnel. Only LAN traffic is going to go through that tunnel, any other WAN traffic won't go through it. This way the VPN tunnel will not be under a huge load and will provide greater speeds.
+
 
 +
When the scheme is realized, home workers will be able to reach the corporation’s internal network with all internal systems, allowing working from home to be possible.
 +
 
 +
==Configuring OpenVPN from the client-side ==
 +
===TLS Certificates===
 +
*Firstly generate TLS certificates on your Windows Computer, you can find instructions on how to do it [[How to generate TLS certificates (Windows)?|here]].
 +
*After you've successfully generated TLS certificates you will need to create a '''.ovpn''' file for storing client configurations. Simply open any text editor and follow [[OpenVPN client on Windows|this]] tutorial.
 +
*'''Important: in your .ovpn file certificates you will need to copy are:'''
 +
*In '''<ca> </ca>''' paste whole certificate from '''/easy-rsa/pki/ca.crt'''
 +
*IN '''<cert></cert>''' paste whole certificate from '''/easy-rsa/pki/issued/"your_client_name".crt'''
 +
* And in the last section '''<key></key>''' paste whole private key from '''/easy-rsa/pki/private/"your_client_name".key'''
 +
*One more thing to change in your .ovpn file is to change the IP address to your router's '''public IP address'''
 +
[[File:Networking rutxxx configuration openvpn certification file.jpg|alt=|border|class=tlt-border]]
  
When the scheme is realized, home workers will be able to reach corporation’s internal network with all internal systems, allowing working from home to be possible.
+
*Now you can '''Save''' and '''Import''' your '''.ovpn''' file to the OpenVPN client by right-clicking on OpenVPN GUI in the hidden icons tray and navigating to '''Import → Import File'''.
 +
[[File:Networking rutxxx configuration certificate import.jpg|alt=|border|class=tlt-border]]
  
==Configuring HQ corporation router==
+
Do not connect yet to your VPN client, we still have to configure the server.
===L2TP===
 
----
 
  
 +
==Configuring OpenVPN from the server-side==
 
<table class="nd-othertables_2">
 
<table class="nd-othertables_2">
 
     <tr>
 
     <tr>
         <th width=355; style="border-bottom: 1px solid white;></th>
+
         <th width="355;" style="border-bottom: 1px solid white;"></th>
         <th width=790; style="border-bottom: 1px solid white;" rowspan=2> [[File:Networking_rutx_configuration_examples_l2tp_over_ipsec_windows_10_1_v1.png|770px|right]]</th>
+
         <th rowspan="2" width="790;" style="border-bottom: 1px solid white;">[[File:Rutos_OpenVPN_7,8_Add_server.png|alt=|right|770x770px]]</th>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td style="border-bottom: 1px solid white;>
+
         <td style="border-bottom: 1px solid white;">
Login to the router's WebUI and navigate to the '''Services → VPN → L2TP''' page and do the following:
+
Login to the router's WebUI and navigate to the '''Services → VPN → OpenVPN''' page and do the following:
 
<ol>
 
<ol>
     <li>Select '''Role: Server'''.</li>
+
     <li>Enter a '''custom configuration name'''</li>
     <li>Enter a '''custom configuration name'''.</li>
+
     <li>Select '''Role: Server'''.
 +
</li>
 
     <li>Click the '''Add''' button.</li>
 
     <li>Click the '''Add''' button.</li>
    <li>Click the '''Edit''' button next to the newly created L2TP instance.</li>
 
 
</ol>
 
</ol>
 
         </td>
 
         </td>
Line 47: Line 58:
 
</table>
 
</table>
  
----
+
<br>
 
+
----<table class="nd-othertables_2">
<table class="nd-othertables_2">
 
 
     <tr>
 
     <tr>
         <th width=355; style="border-bottom: 1px solid white;></th>
+
         <th width="355;" style="border-bottom: 1px solid white;"></th>
         <th width=790; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutx_configuration_examples_l2tp_over_ipsec_windows_10_2_v1.png|770px|right]]</th>
+
         <th rowspan="2" width="790;" style="border-bottom: 1px solid white;">[[File:Rutos_OpenVPN_7,8_Add_server_config.png|alt=|border|right|770x770px]]</th>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td style="border-bottom: 1px solid white>
+
         <td style="border-bottom: 1px solid white">
 
<ol>
 
<ol>
    <li>'''Enable''' the L2TP instance.</li>
+
* '''Enable''' OpenVPN instance.
    <li>Enter a '''User name''' and '''Password''' for authentication for the client.</li>
+
* In '''Virtual network IP address''' type: '''192.168.15.0'''
    <li>Optionaly, set a fixed IP for this client (if left empty, client will receive first free IP from the IP range).</li>
+
* '''Virtual network netmask''' select: '''255.255.255.0'''
    <li>Don't forget to '''Save''' the changes.</li>
 
 
</ol>
 
</ol>
 
         </td>
 
         </td>
 
     </tr>
 
     </tr>
</table>
 
 
===IPsec===
 
----
 
  
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=355; style="border-bottom: 1px solid white;></th>
 
        <th width=790; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutx_configuration_examples_l2tp_over_ipsec_windows_10_3_v1.png|770px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Go to the '''Services → VPN → IPsec''' page and do the following:
 
<ol>   
 
      <li>Enter a custom name for the IPsec instance.</li>
 
      <li>Click the '''Add''' button.</li>
 
      <li>Click the '''Edit''' button next to the newly created instance.</li>
 
</ol>
 
        </td>
 
    </tr>
 
 
</table>
 
</table>
 
 
----
 
----
 
+
<br>
 
<table class="nd-othertables_2">
 
<table class="nd-othertables_2">
 
     <tr>
 
     <tr>
         <th width=355; style="border-bottom: 1px solid white;></th>
+
         <th width="355;" style="border-bottom: 1px solid white;"></th>
         <th width=790; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutx_configuration_examples_l2tp_over_ipsec_windows_10_4_v1.png|770px|right]]</th>
+
         <th rowspan="2" width="790;" style="border-bottom: 1px solid white;">[[File:Rutos_OpenVPN_7,8_Add_server_config_2.png|alt=|border|right|770x770px]]</th>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td style="border-bottom: 1px solid white>
+
         <td style="border-bottom: 1px solid white">
In the '''IPsec Configuration''' page, do the following (and leave the rest as defaults, unless your specific configuration requires otherwise):
+
<ol>
<ol>   
+
* The last thing left to do is to upload '''Certificates''', firstly upload '''Certificate authority''' ('''ca.crt''' file)
      <li>'''Enable''' the instance.</li>
+
* Upload '''Server certificate''' ('''server.crt''' file)
      <li>Enter your '''Pre-shared key'''.</li>
+
* Upload '''Server key''' ('''server.key''' file)
      <li>Select '''Type: Transport'''.</li>
+
* Press '''SAVE & APPLY''' button
      <li>'''Save''' changes.</li>
+
* Leave everything else as default
 
</ol>
 
</ol>
 
         </td>
 
         </td>
 
     </tr>
 
     </tr>
 
</table>
 
</table>
 
==Home worker’s computer==
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_6_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Type '''VPN settings''' in the Windows search bar:
 
        </td>
 
    </tr>
 
</table>
 
 
----
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_7_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Click the '''Add a VPN connection''' button:
 
        </td>
 
    </tr>
 
</table>
 
 
----
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_8_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Configure the following parameters:
 
        <ol>
 
            <li>Select '''VPN provider: Windows (built-in)'''.</li>
 
            <li>Enter a custom '''Connection name'''.</li>
 
            <li>Enter the router's WAN IP address into the '''Server name or address''' field.</li>
 
            <li>Select '''VPN type: L2TP/IPsec with pre-shared key'''.</li>
 
            <li>Enter the '''Pre-shared key''' exactly as it was specified on the router.</li>
 
            <li>Select '''Type of sign-in info: User name and password'''.</li>
 
            <li>Enter the '''User name''' and '''Password''' exactly as they were specified on the router.</li>
 
            <li>Click '''Save'''</li>
 
        </ol>
 
        </td>
 
    </tr>
 
</table>
 
 
----
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_11_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Type '''Network Connections''' in the Windows search bar:
 
        </td>
 
    </tr>
 
</table>
 
 
----
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_12_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Press right mouse click on your newly created VPN instance and select '''Properties''':
 
        </td>
 
    </tr>
 
</table>
 
 
----
 
 
<table class="nd-othertables_2">
 
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_13_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Navigate to '''Networking''' section and double click '''Internet Protocol Version 4 (TCP/IPv4)''':
 
        </td>
 
    </tr>
 
</table>
 
 
 
----
 
----
 +
==Connecting to the OpenVPN server ==
  
<table class="nd-othertables_2">
+
If everything was configurated correctly your OpenVPN server should be '''Active''':
    <tr>
+
[[File:Rutos_OpenVPN_7,8_status_server.png|alt=|border|1008x1008px|class=tlt-border]]
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_14_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Go to '''Advanced''' settings:
 
        </td>
 
    </tr>
 
</table>
 
  
----
+
Now let's try to connect from a '''client''' to the '''server'''.
  
<table class="nd-othertables_2">
+
On your Windows machine right-click on '''OpenVPN GUI''' '''→''' Select your client → Press Connect
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_15_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Now disable '''Use default gateway on remote network''' and save settings:
 
        </td>
 
    </tr>
 
</table>
 
  
----
+
[[File:Networking rutxxx configuration openvpn connect to the client.jpg|alt=|border|class=tlt-border]]
  
<table class="nd-othertables_2">
+
If the connection was successful then you will get the following notification:
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;"></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_9_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Go back to the VPN settings page, locate your new connection and click the '''Connect''' button. If the connection was successful, you should see the word '''"Connected"''' appear under the connection name:
 
        </td>
 
    </tr>
 
</table>
 
  
==Results==
+
[[File:Networking rutxxx configuration successful connection.jpg|alt=|border|class=tlt-border]]
  
<table class="nd-othertables_2">
+
To test if the connection is working properly on your Windows machine open '''CMD''' and type ping '''192.168.15.1''' (server's VPN IP) you should get a similar response:
    <tr>
 
        <th width=525; style="border-bottom: 1px solid white;></th>
 
        <th width=620; style="border-bottom: 1px solid white;" rowspan=2>[[File:Networking_rutxxx_configuration_examples_l2tp_over_ipsec_windows_10_10_v2.png|border|class=tlt-border|550px|right]]</th>
 
    </tr>
 
    <tr>
 
        <td style="border-bottom: 1px solid white>
 
Home worker should now be able to access HQ network resources.
 
To verify the connection you can ping some internal HQ server and if you get a reply, you have successfully connected to HQ‘s internal network.
 
  
        </td>
+
[[File:Networking rutxxx configuration cmd ping to the server.jpg|alt=|border|class=tlt-border]]
    </tr>
 
</table>
 
[[Category:Use cases]]
 

Latest revision as of 13:48, 5 August 2024

Configuration overview and prerequisites

Prerequisites:

  • One RUTX router of any type
  • A Public Static or Public Dynamic IP addresses
  • At least one end device with Windows 10


The topology above depicts the OpenVPN scheme. - The router with the Public IP address (RUTX11) acts as the OpenVPN server and the Windows 10 device acts as a client. OpenVPN connects the networks of RUTX11 and Windows 10 clients.

When the scheme is realized, home workers will be able to reach the corporation’s internal network with all internal systems, allowing working from home to be possible.

Configuring OpenVPN from the client-side

TLS Certificates

  • Firstly generate TLS certificates on your Windows Computer, you can find instructions on how to do it here.
  • After you've successfully generated TLS certificates you will need to create a .ovpn file for storing client configurations. Simply open any text editor and follow this tutorial.
  • Important: in your .ovpn file certificates you will need to copy are:
  • In <ca> </ca> paste whole certificate from /easy-rsa/pki/ca.crt
  • IN <cert></cert> paste whole certificate from /easy-rsa/pki/issued/"your_client_name".crt
  • And in the last section <key></key> paste whole private key from /easy-rsa/pki/private/"your_client_name".key
  • One more thing to change in your .ovpn file is to change the IP address to your router's public IP address

  • Now you can Save and Import your .ovpn file to the OpenVPN client by right-clicking on OpenVPN GUI in the hidden icons tray and navigating to Import → Import File.

Do not connect yet to your VPN client, we still have to configure the server.

Configuring OpenVPN from the server-side

Login to the router's WebUI and navigate to the Services → VPN → OpenVPN page and do the following:

  1. Enter a custom configuration name
  2. Select Role: Server.
  3. Click the Add button.



    • Enable OpenVPN instance.
    • In Virtual network IP address type: 192.168.15.0
    • Virtual network netmask select: 255.255.255.0


    • The last thing left to do is to upload Certificates, firstly upload Certificate authority (ca.crt file)
    • Upload Server certificate (server.crt file)
    • Upload Server key (server.key file)
    • Press SAVE & APPLY button
    • Leave everything else as default

Connecting to the OpenVPN server

If everything was configurated correctly your OpenVPN server should be Active:

Now let's try to connect from a client to the server.

On your Windows machine right-click on OpenVPN GUI Select your client → Press Connect

If the connection was successful then you will get the following notification:

To test if the connection is working properly on your Windows machine open CMD and type ping 192.168.15.1 (server's VPN IP) you should get a similar response: