modified on 26 February 2014 at 11:23 ••• 154,060 views

OpenVPN Configuration Step by Step

From MikroTik Wiki

Jump to: navigation, search

In this article i will talk about Open VPN , And How to Setup that as completly , such Basic Configuration , Certificate , OpenVPN Configurations .

in many topics and Forums Users talk about OpenVPN and proximate 90% of their have problem to run and correct installations of OpenVPN .

so , i decide to show you how you can do it correctly , Let's go !

What is OpenVPN ?

OpenVPN has been ported to various platforms, including Linux and Windows, and it's configuration is throughout likewise on each of these systems, so it makes it easier to support and maintain.

Also, OpenVPN is one of the few VPN protocols that can make use of a proxy, which might be handy sometimes.

and You are able to use Various Port ( TCP Port ) for Your VPN Connections .

For More Information Click Here


Requirements :

RouterOS or Routerboard ( In This Article I have RB493AH , Version 6 RC 13 )

Public or Private IP Address or Valid Domain Name ( My Router 91.108.151.193 , Domain Name : Reza.IPExperts.Ir )

If you have a Domain Name same as this Article , you can Point all request for Certificate to your Domain , Unless you should use your IP Address !

Public or Private Certificate for OpenVPN ( i will use CaCert Free Certificate )

PPP Package ( To Install Openvpn Service )

OpenVPN GUI for Windows ( if you OpenVPN Client is Windows User OpenVPN GUI , in this Article Client is another Routerboard )

Linux Operation System with Openssl Service


Basic Configuration :

Please Set IP Address and Default Route and other Basic Configurations in Your MikroTik ( DNS , NTP , etc. )

O1.jpg

ip address
add address=91.108.151.193/28 comment="Public IP" interface="WLAN 1 - Home" \
    network=91.108.151.192


Add a Default Route

O2.jpg

ip route
add distance=1 gateway=91.108.151.194




Certificate :

OpenVPN use Certificate to setup Connections , So Open a New Terminal window and create a certificate request with your Information :


O3.jpg

certificate create-certificate-request



You will be asked a number of questions , Some of them are important , some of them is not .

select name for certificate request file.

it will be created after you finish entering all required information.

certificate request file name: certificate-request.pem

select name of private key file.

if such file does not exist, it will be created later.

O4.jpg



file name: private-key.pem

private key file already exists and will be overwritten if you continue.

please enter passphrase that will be used to encrypt generated private key file.

you must enter it twice to be sure you have not made any typing errors.

O5.jpg



passphrase: 123456 [IMPORTANT]

verify passphrase: 123456 [IMPORTANT]

enter number of bits for RSA key.

longer keys take more time to generate.

O6.jpg



rsa key bits: 2048 [Default]

now you will be asked to enter values that make up distinguished name of your certificate.

you can leave some of them empty.

CA may reject your certificate request if some of these values are incorrect or missing, so please check what are the requirements of your CA.

O7.jpg



enter two character country code.

country name: IR [NOT IMPORTANT]

O8.jpg



enter full name of state or province.

state or province name: Khuzestan [NOT IMPORTANT]

O9.jpg



enter locality (e.g. city) name

locality name: Ahvaz [NOT IMPORTANT]

O10.jpg



enter name of the organization

organization name: IPExperts [NOT IMPORTANT]

O11.jpg



enter organizational unit name

organization unit name: IT Department [NOT IMPORTANT]

O12.jpg



enter common name.

for ssl web servers this must be the fully qualified domain name (FQDN) of the server that will use this certificate (like www.someverysecuresitename.com) .

this is checked by browsers.

common name: reza.ipexperts.ir [IMPORTANT] or common name : 91.108.151.193 [IMPORTANT]

O13.jpg



enter email address

email address: R.Moghadam@Hotmail.Com [NOT IMPORTANT]

O14.jpg



now you can enter challenge password.

it's use depends on your CA.

it may be used to revoke this certificate.

challenge password: 123456 [NOT IMPORTANT]

O15.jpg



you can enter unstructured address, if your CA accepts or requires it.

unstructured address: Reza Moghadam [NOT IMPORTANT]

O16.jpg



After a few seconds you will receive notification that the Certificate Request file was created:

O17.jpg



You can see Certificate-Request.pem and Private-key.pem is added in Files Menu

O18.jpg




CaCerts :

Please Drag and Drop Request Files Include ( Certificate-Request.pem and Private-Key.pem ) to your Desktop .

first open Certificate-Request.pem file with Wordpad , Copy All String Include Begin and Ends of Certificate Request , Then Login to your Account in Cacert and Make a New Server Certificate .

O19.jpg



Paste your Certificate-Request.pem Strings to CSR Fields in Your Account ( New Server Certificate ) and Submit That .

O20.jpg


Domain is Accepted .

O21.jpg



Copy and Paste your Certificate Response from Cacert in a Wordpad and save that with .pem file ( In Here : certificate-response.pem )

O22.jpg


Private Key :

We need a Private-Key as Key file , But Generated private keys will be in pkcs8 format, which is not supported in RouterOS.

To import such keys we should use Openssl Tool in Linux Distributes and make a Privat-Key File .

We can setup Openssl via these command :

apt-get install openssl
or
yum install openssl


Upload or Move Private-Key.pem file to That Linux OS with Openssl Service ( Bitvise SSH Client )

O23.jpg


make your Private-Key.key file via these command :

O24.jpg

openssl rsa -in private-key.pem -text


copy and paste export String ( Include Begin and End ) to a New File ( Ex. Private-Key.Key )

O25.jpg



Import Certificate


Import Files ( Certificate-Response.pem , Private-Key.Key ) to Your MikroTik Files Menu .

O26.jpg


First Import Certificate-Response.pem file with that Paraphrase

O27.jpg


Second Import Private-Key.Key file with that Paraphrase

O28.jpg



Once you have imported the private key, your certificate should get a "KR" written next to it K: Decrypted-Private-Key R: RSA

Now you will be able to use this key for OVPN.

O29.jpg




OpenVPN Server Configuration :

we should make a IP Pool for Openvpn clients .

O30.jpg

ip pool
add name=PPP ranges=1.1.1.1-1.1.1.100,1.1.1.150-1.1.1.200


Make a Profile for OpenVPN Service .

O31.jpg

Icon-warn.png

Warning: screenshot shows incorrect local address, it should be 1.1.1.254 as per command below


ppp profile
set 0 dns-server=4.2.2.4,8.8.8.8
add dns-server=4.2.2.4,8.8.8.8 local-address=1.1.1.254 name=\
    "OpenVPN Profile" remote-address=PPP


Make a Username & Passowrd for OpenVPN Client

O32.jpg

ppp secret
add name=1 password=1 profile="OpenVPN Profile"


Enable OpenVPN Service and Select Valid Certificate .

O33.jpg

interface ovpn-server server
set certificate=cert1 enabled=yes


NAT :

add a masquared firewall nat rule to share internet with OpenVPN Client .

O36.jpg

O37.jpg

ip firewall nat
add action=masquerade chain=srcnat src-address=1.1.1.0/24


OpenVPN Client :

Make a OpenVPN Client and Set Address of OpenVPN Server and Username & Password .

O34.jpg

interface ovpn-client
add auth=none cipher=none connect-to=reza.ipexperts.ir mac-address=\
    02:FB:D1:D8:20:B7 name=ovpn-out1 password=1 user=1



Finally :

you can see OpenVPN Client is Connected and you will able to Ping it .

O35.jpg


Reza Moghadam

--MikroTik Certified Trainer 12:02, 4 April 2013 (UTC)