OpenVPN Configuration Step by Step
From MikroTik Wiki
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 .
RouterOS or Routerboard ( In This Article I have RB493AH , Version 6 RC 13 )
Public or Private IP Address or Valid Domain Name ( My Router 184.108.40.206 , 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. )
ip address add address=220.127.116.11/28 comment="Public IP" interface="WLAN 1 - Home" \ network=18.104.22.168
Add a Default Route
ip route add distance=1 gateway=22.214.171.124
OpenVPN use Certificate to setup Connections , So Open a New Terminal window and create a certificate request with your Information :
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.
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.
passphrase: 123456 [IMPORTANT]
verify passphrase: 123456 [IMPORTANT]
enter number of bits for RSA key.
longer keys take more time to generate.
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.
enter two character country code.
country name: IR [NOT IMPORTANT]
enter full name of state or province.
state or province name: Khuzestan [NOT IMPORTANT]
enter locality (e.g. city) name
locality name: Ahvaz [NOT IMPORTANT]
enter name of the organization
organization name: IPExperts [NOT IMPORTANT]
enter organizational unit name
organization unit name: IT Department [NOT IMPORTANT]
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 : 126.96.36.199 [IMPORTANT]
enter email address
email address: R.Moghadam@Hotmail.Com [NOT IMPORTANT]
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]
you can enter unstructured address, if your CA accepts or requires it.
unstructured address: Reza Moghadam [NOT IMPORTANT]
After a few seconds you will receive notification that the Certificate Request file was created:
You can see Certificate-Request.pem and Private-key.pem is added in Files Menu
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 .
Paste your Certificate-Request.pem Strings to CSR Fields in Your Account ( New Server Certificate ) and Submit That .
Domain is Accepted .
Copy and Paste your Certificate Response from Cacert in a Wordpad and save that with .pem file ( In Here : certificate-response.pem )
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 )
make your Private-Key.key file via these command :
openssl rsa -in private-key.pem -text
copy and paste export String ( Include Begin and End ) to a New File ( Ex. Private-Key.Key )
Import Files ( Certificate-Response.pem , Private-Key.Key ) to Your MikroTik Files Menu .
First Import Certificate-Response.pem file with that Paraphrase
Second Import Private-Key.Key file with that Paraphrase
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.
OpenVPN Server Configuration :
we should make a IP Pool for Openvpn clients .
ip pool add name=PPP ranges=188.8.131.52-184.108.40.206,220.127.116.11-18.104.22.168
Make a Profile for OpenVPN Service .
ppp profile set 0 dns-server=22.214.171.124,126.96.36.199 add dns-server=188.8.131.52,184.108.40.206 local-address=220.127.116.11 name=\ "OpenVPN Profile" remote-address=PPP
Make a Username & Passowrd for OpenVPN Client
ppp secret add name=1 password=1 profile="OpenVPN Profile"
Enable OpenVPN Service and Select Valid Certificate .
interface ovpn-server server set certificate=cert1 enabled=yes
add a masquared firewall nat rule to share internet with OpenVPN Client .
ip firewall nat add action=masquerade chain=srcnat src-address=18.104.22.168/24
OpenVPN Client :
Make a OpenVPN Client and Set Address of OpenVPN Server and Username & Password .
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
you can see OpenVPN Client is Connected and you will able to Ping it .
--MikroTik Certified Trainer 12:02, 4 April 2013 (UTC)