Changes

no edit summary
Line 1: Line 1:  
==Introduction==
 
==Introduction==
   −
'''OpenVPN''' is an open-source software application that implements virtual private network (VPN) techniques for creating secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities.
+
{{Template:openvpn introduction}}
    
This article contains step-by-step instructions on how to create and run an OpenVPN server on a PC that runs on Windows OS. The information provided here is geared towards users of almost any knowledge level. The instructions apply to Windows 7 and newer systems.
 
This article contains step-by-step instructions on how to create and run an OpenVPN server on a PC that runs on Windows OS. The information provided here is geared towards users of almost any knowledge level. The instructions apply to Windows 7 and newer systems.
Line 10: Line 10:     
'''Prerequisites''':
 
'''Prerequisites''':
* A PC or Laptop running on Windows 7 or a later version
+
 
* The PC in question must have a '''[[Private_and_Public_IP_Addresses#Public_IP_address|Public IP address]]'''
+
*A PC or Laptop running on Windows 7 or a later version
* An active Internet connection
+
*The computer in question must have a '''[[Private_and_Public_IP_Addresses#Public_IP_address|Public IP address]]'''
 +
*And an active Internet connection
 +
 
 +
----
 +
'''Objective''':
 +
 
 +
The purpose of this article is to provide the know-how needed to configure a working OpenVPN server on a Windows PC.
 +
 
 +
{{Template:installing openvpn software}}
 +
{{Template:preparing easyrsa}}
 +
{{Template:generating certificates and keys}}
 +
 
 +
==Step 4: OpenVPN server configuration==
 +
 
 +
In this section we'll be discussing how to configure an OpenVPN Tunnel (TUN) server that uses:
 +
 
 +
*The UDP protocol
 +
*TLS authentication
 +
 
 +
As a template, we'll be using the sample configuration file that comes along with the OpenVPN installation, but we'll be adding with some minor changes to it. You can find it in the ''OpenVPN'' installation directory, ''sample-config'' folder (default: ''C:\Program Files\OpenVPN\sample-config'') under the name '''''server.ovpn'''''.
 +
----
 +
<ul>
 +
  <li>When you locate the file, make a copy, rename it and place it in the '''''config''''' directory of the OpenVPN folder (default path: ''C:\Program Files\OpenVPN\config''). You should also copy the certificates and keys to this directory (required files: ''ca.crt'', ''server.crt'', ''server.key'', ''dh2048.pem'').
 +
  </li>
 +
  <li>Open the config file with a text editor. You can use the Notepad, but for editing configuration files we recommend using '''Notepad++''' for a better experience (you can download it from '''[https://notepad-plus-plus.org/download/v7.5.8.html here]''').
 +
  </li>
 +
  <li>Locate the following lines:
 +
    <ul>
 +
      <pre>ca ca.crt
 +
cert server.crt
 +
key server.key
 +
dh dh1024.pem</pre>
 +
    </ul>
 +
  </li>
 +
  <li>Edit the lines in a way that corresponds with the actual file paths. The defaults used in this example are:
 +
    <ul>
 +
      <pre>ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
 +
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
 +
key "C:\\Program Files\\OpenVPN\\config\\server.key"
 +
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"</pre>
 +
    </ul>
 +
'''NOTE''': Diffie Hellman parameters file name will depend on the key size that you specified in the ''vars.bat'' file. Don't forget to change it accordingly.
 +
  </li>
 +
  <li>Next comes the preferential configurations, i.e., whether you want UDP or TCP, Tunnel or Bridge, server's network, keep alive, cipher values, etc. You should configure these options in accordance with your needs. Bellow is an image of what the final configuration from this example looks like (with the comments present in the sample deleted file for more clarity):
 +
    <ul>[[File:Openvpn windows server setup step 4 server config.png]]
 +
    </ul>
 +
The following changes were made to the sample file:
 +
    <ul>
 +
      <li>Changed ''udp'' to ''udp4'' to indicate that the connection should use only IPv4</li>
 +
      <li>Added ''client-config-dir'' option for possible TLS client configuration</li>
 +
      <li>Changed the ''ifconfig-pool-persist'' file path</li>
 +
      <li>Changes to the certificate and key file paths</li><li>Note: cipher AES-256-CBC is deprecated in v.2.5. Change CBC to GCM
 +
</li><li>You can harden (add security) to the VPN by creating a ta.key (''openvpn--genkey --secret keys/ta.key'') file on the server, placing it in the config folder and copying it to the config folder of all client machines.
 +
</li><li>Edit the server.ovpn file found in the OpenVPN/sample-config folder. Lines that begin with # or ; will be ignored.) Feel free to change it however you want.</li></ul>
 +
  </li></ul>
 +
 
 +
==Step 5: configuring clients==
 +
 
 +
Install OpenVPN on all client machines, but omit Steps 2, 3 and 4 above. Just copy the ca.crt , client.crt and client.key files already created on the server machine in Step 4 above to the config folder of the relevant client machine.
 +
 
 +
The next step is to create a configuration file for the clients. Edit the client.ovpn file found in the sample-config folder and save it.  Now open the separate article: '''[[OpenVPN client on Windows]],''' but note that only the latter part is relevant to this page. Begin at the line "• Save the file with an '''.ovpn''' extension."
 +
 
 +
Note: The edited client.ovpn file can be copied to all the client machines unless specific changes need to be made.
 +
 
 +
==Step 6: launching the server==
 +
 
 +
If you've followed all the steps until now, your OpenVPN server configuration is complete! The next thing to do is to simply launch the server.
 +
 
 +
<ul>
 +
  <li>Run the '''OpenVPN GUI''' application  '''as administrator''' in order for the application to be able to fill log files.</li>
 +
  <li>Locate OpenVPN GUI in the Windows system tray. Right click it and click '''Connect''':
 +
    <ul>
 +
[[File:Openvpn windows server setup step 6 launching the server.png]]
 +
    </ul>
 +
  </li>
 +
</ul>
 +
 
 +
==See also==
 +
 
 +
*[[OpenVPN client on Windows]]
 +
*[[OpenVPN configuration examples]]
 +
*[[OpenVPN traffic split]]
 +
 
 +
==External links==
 +
 
 +
*OpenVPN downloads: https://openvpn.net/index.php/open-source/downloads.html
 +
*OpenVPN manual: https://openvpn.net/index.php/open-source/documentation/manuals.html
 +
*Notepad++ downloads: https://notepad-plus-plus.org/download/v7.5.8.html
 +
[[Category:Windows]]