OpenVPN

icon

If an OpenVPN server isn't configured yet the page will look as follows:

step1

By clicking on Generate certificates OpenVPN server certificates will be generated and you will be able to use it.

generate

The following parameters need to be specified:

Country - there is the 2-character ISO format country code in this field. For example, GB is the valid country code for Great Britain, and US is the valid code for the United States. To locate a specific country code, visit Country Codes;

Province/state - U.S. and Canadian customers need to enter a State or Province name. Do not abbreviate. In the United States, if your organization is incorporated, for instance, in the state of Delaware, but is operating within California, use California;

City/Locality - Mandatory field, usually denotes the city in which the organization is located. Do not use abbreviations. For example, spell "Saint Louis", instead of "St. Louis". If the organization is registered only locally, for example, its business license is registered with the City Clerk; the Locality/City field must contain the name of the city where it is registered. International customers need to enter either a City/Locality or a State/Province field;

Organization - The Organization Name (corporation, limited partnership, university, or government agency) need to be registered with some authority at the national, state, or city level. Use the legal name under which your organization is registered. Do not abbreviate or use any of these symbols: ! @ # $ % ^ * ( ) ~ ? > < / ;

Email - email address of the organization;

Organization Unit (OU) - Mandatory field to differentiate between divisions within an organization, for example, "Electronic Commerce Pilot" or "Human Resources". If your organization is doing business as (DBA) a trade name, you may specify the trade or DBA name in this field.

Source: https://knowledge.digicert.com/solution/SO16317.html

After specifying the needed parameters, click on Generate and wait:

generate done

Now the OpenVPN server needs to be configured and enabled:

ready for config

configuration

The port, mode (TCP or UDP), network, cipher, auth (hash function SHA1 or MD5) and authentication method can be configured here.

Once the server is configured, let's add a client.

add client

Specify the connection name, IP and routes if needed. You can also write a comment. By clicking on the "i" (info) next to Routes, a list with the syntax of routes will appear:

routes guide

Once the client connection is created, let's download credentials (Download config):

download zip

After this, a "zip" archive will be downloaded with the following files:

downloaded files

We're going to create a VPN connection between Splynx (with OpenVPN server) and a desktop using Ubuntu.

VPN client configuration on Mikrotik router

Let's add a new client and configure a Mikrotik router as an OpenVPN client.

2

To be able to enter Username and Password for OpenVPN connections, click on Configuration button and choose Certificate & Key + Username & Password in Authentication method field:

auth


Once added and files are downloaded, we have to upload the certificates to the Mikrotik under Files:

files

Once the files are uploaded to the Mikrotik, we have to import these certificates under System - Certificates:

import_certs

More detailed information on how to import certificates can be found here: Mikrotik wiki

After all certificates are imported, let's create an OpenVPN client interface:

interface

Once the interface has been added, this should be sufficient to establish a link between Splynx and the Mikrotik router.

Pay Attention!

Sometime it is necessary to add default routers using the OpenVPN client interface, in that case, you can enable the option to "Add default route" under the interface but make sure that it is entirely needed before you enable this, as it can break/cause problems in your routing. If you do enable this option, new routes will be created under IP - Routes

A PPP profile on the Mikrotik should be used that's not already used by another service (in case it has an IP assigned, it will use this IP from the profile and will not receive the correct IP from the server)

routes

The next step is also necessary in only some cases. Therefore, please make sure that this is needed before creating the NAT rule, as this too can break/cause problem in your routing.

If you need this NAT rule, we can add it under IP - Firewall - NAT with a "srcnat" chain and "Out.Interface" = your OpenVPN client interface:

nat1

and "Action" = masquerade

nat2

Now you can ping the network that was unreachable before:

mikrotik_ping

After a connection has been established to Splynx, the status of the connection will change to "Connected". By clicking on "Status" you can see details about active connections:

connected

By clicking on "Log", the logs of the VPN server can be checked.

VPN client configuration on Ubuntu

Let's add the VPN connection in Ubuntu:

add vpn

Here we can specify the gateway (IP of server), type and certificates + keys which are required. User key password in this setup can be skipped. The next step is to click on "Advanced":

advanced1

Here we specify TCP connection (depending on the server configuration).

advanced2

And here we have to specify the Cipher (depending on the server configuration).

Once that's done, let's enable the VPN connection and test it:

ifconfig

The interface with given IP was created.

ping

And the network specified in routes (when we configured client) is accessible.