OpenVPN Configuration Step by Step

OpenVPN Configuration Step by Step

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 .

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

Abi Paudel

Comments

Popular Posts