• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

OpenVPN on pfSense - Installation guide for (Windows) Dummies :-) (road-warrior)

Scheduled Pinned Locked Moved OpenVPN
72 Posts 49 Posters 237.1k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F
    Frewald
    last edited by Jan 6, 2010, 1:29 PM Feb 11, 2008, 2:22 PM


    January 6, 2010: UPDATE: Below process confirmed working on pfSense1.2.2 Relase with OpenVPN Client 2.1.1 on Windows7 Ultimate 64Bit


    Having spend most of my day to get OpenVPN running from a Windows Vista machine to a network on a pfSense box, i feel that a guide is needed for my kind; Windows-users not familiar with OpenVPN and alike :)

    A guide of how to connect a PC on the internet, to LAN behind a pfSense firewall using OpenVPN also known as a Road-Warrior setup

    This guide is NOT detailed regarding different configurations, and may not be the best security practices - so use it at your own risk…


    First of all you need to have keys and certificates generated in order to configure the pfSense OpenVPN service;

    1. Download and install the most recent software from http://openvpn.net/download.html
      If you plan to connect from a PC with Windows Vista you should get version 2.1 or newer.

    Use the default options

    1. Start a command prompt with administrator-rights!
      This is done in Vista by clicking on START and then type CMD -> CMD.EXE should appear, and you RIGHT-Click on it and select 'Run as Administrator'

    2. Change directory to c:\programfiles\openvpn\easy-rsa

    3. run the "init-config.bat" file

    4. Edit 'vars.bat' file.
      I suggest using 'Wordpad' and to be able to save the file again, you need to start Wordpad in the same manner as the command-prompt (see #2)
      The following things need to be edited:

    "set KEY_COUNTRY=DK"
    2 Letters country ID - I use DK for Denmark

    "set KEY_PROVINCE=na"
    2 Letters Province ID - I use na as in 'Not Applicable'

    "set KEY_CITY=Copenhagen"
    Name of city

    set KEY_ORG=Frewald
    Name of your company

    set KEY_EMAIL=youremail@address.com
    Put an email-address here. Dont use you private address, since this is the common address for the Certificate Authority (or something...)

    Save the file

    1. Run "vars.bat"

    2. Run "clean-all.bat"

    3. Run "build-ca.bat"
      Then you are prompted for some different things; Leave them at default, except "Common Name" - put something like "pfSense-CA"

    4. Run "build-key-server.bat server"
      Again you are prompted; leave them on default except "Common Name" - use "server"

    5. Run build-dh.bat


    Now its time to generate keys and certificates for the client(s)

    1. Run "build-key.bat ovpn_client1"
      Again you are prompted; leave them on default except "Common Name" - here you should put in "ovpn_client1" (or whatever you have called it)
      The ovpn_client1 will be the name of the keys, certificate and the name you identify the connection on later. You can use whatever name you like, and generate as many as you want (with different names).

    2. The following files should now be copied from c:\programfiles\openvpn
      easy-rsa\keys to c:\programfiles\openvpn\config
      ca.crt
      ovpn_client1.key
      ovpn_client1.crt (if you dont see a .crt file but only a .csr file, chances are that you dont have admin priviligies. Worst case generate the keys and certificates on a NON-Vista machine)

    3. Make a file in the c:\programfiles\openvpn\config
      called "ovpn_client1.ovpn" and the file should contain (leave out the hashes):

    client
    dev tun
    proto udp
    remote 64.233.167.99 1194
    ping 10
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    cert ovpn_client1.crt
    key ovpn_client1.key
    ns-cert-type server
    comp-lzo
    pull
    verb 3

    Please put in your own public IP address of you pfSense-box in the 'remote' line
    If you have chosen another name than 'ovpn_client1' then change it in the lines beginning with 'cert' and 'key'
    If you have more than one VPN client, you make one .ovpn-file per client (with the corresponding .key and .crt name)


    Now its time to configure pfSense

    1. Log into the web-gui of pfSense

    2. Select VPN/OpenVPN and ad an entry in the 'server' page
      Use the following settings:
      Protocol: UDP
      Local port: 1194
      Address pool: 192.168.200.0/24 (it should be a network that you DONT currently use)
      Local Network: 192.168.1.0/24 or whatever the network is that you want the VPN client to connect to !!UPDATE: Note to add this value you need to first add the server setting and the EDIT the settings again!!
      Remote Network: blank
      Cryptography: BF-CBC (128 bit) - or use what you want
      Authentication Method: PKI

    Now you need to have access to some of the files created in c:\programfiles\openvpn
    easy-rsa\keys (mentioned in #12)
    23) Copy the WHOLE content of ca.crt into the "CA certificate" window
    24) Copy the WHOLE content of server.crt into the "Server Certificate" window
    25) Copy the WHOLE content of server.key into the "Server Key" window
    26) Copy the WHOLE content of dh1024.pem into the "DH parameters" window

    1. Tick DHCP-Opt: Disable NetBIOS (I dont use it anyway)

    2. Tick LZO Compression


    Now we need a few simple rules in the firewall

    1. On the WAN interface you should make a rule that;
      PASS
      WAN
      Protocol: UDP
      source: any
      OS type: any
      Destination: any
      Destination port range from: OpenVPN
      Destination port range to: OpenVPN
      Tick in the LOG
      Leave the rest at default.

    2. and another rule on the interface called LAN (or whatever the name of the net defined in #22 'address pool' is);

    PASS
    Any protocol
    Source: LAN (or whatever the name of the net defined in #22 'address pool' is)
    Any destination

    Remember to apply the new rules.

    Now you should be able to connect from OpenVPN (rightlick on the icon in the try and select Connect).
    But remember to start OpenVPN with ADMIN RIGHTS!

    A small trick; If you want a specific client to be able to access more than one subnet, you can add a 'Client Specific Configuration' in pfSense;
    Find it in the "WebGui/VPN/OpenVPN/Client-Specific configuration", use the Common Name given in #11 (ovpn_client1) and in custom options add the following line
    push "route 192.168.2.0 255.255.255.0"
    if thats the subnet that you want to have connection to.

    Hope this small guide provides some help to those of us who isn't much into *nix and OpenVPN.

    There is problably a bunch of typ'O's - please write a comment when you see one that needs to be corrected…

    This setup is working on my current setup:
    pfSense 1.2 RC4 now running on 1.2 RELASE
    OpenVPN 2.1 RC7

    Please visit http://openvpn.net/howto.htm for much more indepth info :)

    Best regards,
    Frewald
    –--

    Small update:
    If you later would like to add new clients, run point 2,3,6, and continue from point 11! - dont run point 7-8-9-10!!!!
    Also note you need to do this on the machine that was orignally used to issue the certificates.

    1 Reply Last reply Reply Quote 0
    • T
      tacfit
      last edited by Feb 11, 2008, 2:39 PM

      Thanks a lot for this! I'll be trying it out this week. I totally gave up on OpenVPN, solely because I couldn't figure it out in the first 10 minutes.

      1 Reply Last reply Reply Quote 0
      • G
        Garf
        last edited by Mar 3, 2008, 10:41 AM

        This make the thing a hole lote easier. This thread should be Sticky.

        1 Reply Last reply Reply Quote 0
        • H
          hoba
          last edited by Mar 3, 2008, 2:26 PM

          Thanks a lot for posting this!  :)

          1 Reply Last reply Reply Quote 0
          • B
            BerSerK
            last edited by Mar 4, 2008, 5:59 PM

            thanks, great tutorial!

            1 Reply Last reply Reply Quote 0
            • jahonixJ
              jahonix
              last edited by Mar 11, 2008, 2:21 PM

              Thanks alot for this tutorial, Frewald!

              Didn't have time to look into OpenVPN at all.
              Just followed your tutorial the evening before leaving for holidays and now I'm relaxed, enjoying the kids in the pool and keeping an eye on the mails in the office. Again, thanks for my very relaxed week!

              1 Reply Last reply Reply Quote 0
              • M
                mantissa
                last edited by Mar 13, 2008, 11:02 AM

                Hi Frewald,

                These instructions were beautifully easy! Got me up and running in no time!

                Kudos,
                Mantissa

                1 Reply Last reply Reply Quote 0
                • P
                  PredatoryFern
                  last edited by Mar 22, 2008, 4:20 PM

                  Hey Frewald,

                  Excellent tutorial. Any objections to me taking (some or all of) this and adding it to the wiki?

                  1 Reply Last reply Reply Quote 0
                  • M
                    mlabenda
                    last edited by Apr 16, 2008, 10:16 PM

                    Frewald, you are the champ !

                    Thanks a lot for this "HowTo"

                    I love pfsense.

                    Microsoft gives you "Windows"
                    Opensource gives you the whole house

                    1 Reply Last reply Reply Quote 0
                    • T
                      tacfit
                      last edited by Apr 17, 2008, 12:08 PM

                      Yeah, this is great.

                      1 Reply Last reply Reply Quote 0
                      • F
                        Frewald
                        last edited by Apr 22, 2008, 3:02 AM

                        @PredatoryFern:

                        Hey Frewald,

                        Excellent tutorial. Any objections to me taking (some or all of) this and adding it to the wiki?

                        Great to hear that people like it - and feel free to post all or parts of it to the Wiki - as long as it helps ppl :)

                        1 Reply Last reply Reply Quote 0
                        • W
                          Wasca
                          last edited by Apr 22, 2008, 9:57 AM

                          Could you please add to this sticky that if your using an OPT interface as your WAN2 that you should use TCP and not UDP for the protocol, this got me stummped until I dug deep on a thread that just mentioned it.

                          1 Reply Last reply Reply Quote 0
                          • GruensFroeschliG
                            GruensFroeschli
                            last edited by Apr 22, 2008, 10:23 AM

                            What exactly does not work with UDP?
                            The problem with TCP is: TCP over TCP should generally not be used where it can be avoided.
                            –> http://sites.inka.de/~W1011/devel/tcp-tcp.html

                            We do what we must, because we can.

                            Asking questions the smart way: http://www.catb.org/esr/faqs/smart-questions.html

                            1 Reply Last reply Reply Quote 0
                            • W
                              Wasca
                              last edited by Apr 22, 2008, 12:15 PM

                              I found this information on this forum page http://forum.pfsense.org/index.php/topic,8297.msg46717.html#msg46717

                              as soon as I swapped over to using TCP and updated my WAN2 rules to use TCP I could connect to the OpenVPN service on WAN2 (OPT1)

                              1 Reply Last reply Reply Quote 0
                              • R
                                rpryor
                                last edited by Apr 23, 2008, 12:32 AM

                                followed this tutorial but can only ping and connect to the pfsense box

                                protocol: udp
                                locol port: 1194
                                address pool: 192.168.20.0/27
                                local network: 192.168.6.0/25

                                attached two pics are firewall rules

                                results of ipconfig:

                                
                                C:\Documents and Settings\Administrator>ipconfig
                                
                                Windows IP Configuration
                                
                                Ethernet adapter Wireless Network Connection:
                                
                                        Connection-specific DNS Suffix  . :
                                        IP Address. . . . . . . . . . . . : 192.168.1.104
                                        Subnet Mask . . . . . . . . . . . : 255.255.255.0
                                        Default Gateway . . . . . . . . . : 192.168.1.1
                                
                                Ethernet adapter TAP-Win32 Adapter V9:
                                
                                        Connection-specific DNS Suffix  . :
                                        IP Address. . . . . . . . . . . . : 192.168.20.6
                                        Subnet Mask . . . . . . . . . . . : 255.255.255.252
                                        Default Gateway . . . . . . . . . :
                                
                                

                                Results of Route Print:

                                
                                Network Destination        Netmask          Gateway       Interface  Metric
                                          0.0.0.0          0.0.0.0      192.168.1.1   192.168.1.104       25
                                        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
                                      192.168.0.0    255.255.255.0      192.168.0.1     192.168.0.1       20
                                      192.168.0.1  255.255.255.255        127.0.0.1       127.0.0.1       20
                                    192.168.0.255  255.255.255.255      192.168.0.1     192.168.0.1       20
                                      192.168.1.0    255.255.255.0    192.168.1.104   192.168.1.104       25
                                    192.168.1.104  255.255.255.255        127.0.0.1       127.0.0.1       25
                                    192.168.1.255  255.255.255.255    192.168.1.104   192.168.1.104       25
                                      192.168.6.0  255.255.255.128     192.168.20.5    192.168.20.6       1
                                     192.168.14.0    255.255.255.0     192.168.20.5    192.168.20.6       1
                                     192.168.20.1  255.255.255.255     192.168.20.5    192.168.20.6       1
                                     192.168.20.4  255.255.255.252     192.168.20.6    192.168.20.6       30
                                     192.168.20.6  255.255.255.255        127.0.0.1       127.0.0.1       30
                                   192.168.20.255  255.255.255.255     192.168.20.6    192.168.20.6       30
                                    192.168.122.0    255.255.255.0    192.168.122.1   192.168.122.1       20
                                    192.168.122.1  255.255.255.255        127.0.0.1       127.0.0.1       20
                                  192.168.122.255  255.255.255.255    192.168.122.1   192.168.122.1       20
                                        224.0.0.0        240.0.0.0      192.168.0.1     192.168.0.1       20
                                        224.0.0.0        240.0.0.0    192.168.1.104   192.168.1.104       25
                                        224.0.0.0        240.0.0.0     192.168.20.6    192.168.20.6       30
                                        224.0.0.0        240.0.0.0    192.168.122.1   192.168.122.1       20
                                  255.255.255.255  255.255.255.255      192.168.0.1     192.168.0.1       1
                                  255.255.255.255  255.255.255.255    192.168.1.104   192.168.1.104       1
                                  255.255.255.255  255.255.255.255    192.168.1.104           f0008       1
                                  255.255.255.255  255.255.255.255    192.168.1.104           10007       1
                                  255.255.255.255  255.255.255.255     192.168.20.6    192.168.20.6       1
                                  255.255.255.255  255.255.255.255    192.168.122.1   192.168.122.1       1
                                Default Gateway:       192.168.1.1
                                

                                wan_firewall.JPG
                                wan_firewall.JPG_thumb
                                lan_firewall.JPG
                                lan_firewall.JPG_thumb

                                1 Reply Last reply Reply Quote 0
                                • W
                                  Wasca
                                  last edited by Apr 23, 2008, 12:57 AM

                                  followed this tutorial but can only ping and connect to the pfsense box

                                  protocol: udp
                                  locol port: 1194
                                  address pool: 192.168.20.0/27
                                  local network: 192.168.6.0/25

                                  attached two pics are firewall rules

                                  Are your clients using Vista?

                                  I had to add the following to my Vista clients config

                                  route-method exe
                                  mssfix 1200
                                  route-delay 2

                                  And then in the client specifc section in the OpenVPN setup I added the following to the custom options (not the server custom options, the client)

                                  route-delay 2; ns-cert-type server; msssfix 1200; route-method exe;

                                  Give that a try

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    rpryor
                                    last edited by Apr 24, 2008, 1:32 AM Apr 23, 2008, 1:08 AM

                                    right now just using xp clients and those settings did not help :o(

                                    i can connect to both the vpn interface of the pfsense box and its LAN ipaddress (192.168.6.45) from the laptop on the opposite end of the vpn

                                    i just cant ping/browse/http/telnet into any other system in the 192.168.6.0/25 and to top it off there is no log in the firewall that would suspect it of any misconfiguration

                                    its boggling the mind and body!

                                    –--------------------------------------
                                    got it to work, i had to change all of the gateways on the servers that i wanted to access from the vpn...that will change when i place the proxy server before the pfsense box and should just work as they are all pointing to the proxy right now

                                    im soooooooo flipping excited that i got all of these features for the school that i work for without paying thousands on router equipment and licensing fees!

                                    next step is to create batch files for the staff to auto create all of the client files so i do not get phone calls after hours trying to get them to vpn to the district applications....THANK YOU PFSENSE!

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      lifethetech
                                      last edited by Jun 14, 2008, 3:50 AM

                                      So I've followed the instructions in this discussion, by the way great job on the howto  When I get a little more familiar I'll share too.

                                      Anyway this one got me stumped completely.  I'm setting up a Vista (Ultimate) roadwarrior config to a pfsense box with dual wan, opt1 wan is static, wan is dynamic
                                      I had issues at first with UDP, switching to TCP was helpful (proto tcp), thanks for the comments on the article guys :)

                                      Anyway I've done the vista workaround in the client config:

                                      route-method exe
                                      route-delay 20

                                      In the server client-specific configuration I specify

                                      route-delay 10; ns-cert-type server; route-method exe

                                      That being said I'm still getting this error:

                                      Thats even after attempting the same command myself using administrator mode of course.

                                      Fri Jun 13 23:34:54 2008 Notified TAP-Win32 driver to set a DHCP IP/netmask of 192.168.200.6/255.255.255.252 on interface {C22CAE94-9A35-48E5-B606-DEF049045B02} [DHCP-serv: 192.168.200.5, lease-time: 31536000]
                                      Fri Jun 13 23:34:54 2008 Successful ARP Flush on interface [22] {C22CAE94-9A35-48E5-B606-DEF049045B02}
                                      Fri Jun 13 23:35:05 2008 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up
                                      Fri Jun 13 23:35:05 2008 route ADD 192.168.0.1 MASK 255.255.255.0 192.168.200.5
                                      The route addition failed: The parameter is incorrect.
                                      Fri Jun 13 23:35:05 2008 route ADD 192.168.200.1 MASK 255.255.255.255 192.168.200.5
                                      OK!
                                      Fri Jun 13 23:35:05 2008 Initialization Sequence Completed

                                      The thing that sticks in my mind is why just the one route ADD command that fails?

                                      Oh an before anyone asks I'm running the latest RC build (2.1 rc7) and running OpenVPN GUI in administrator mode

                                      And thats the saga, now if one of you fine gents could spare a couple minutes I'd REALLY appreciate it :)
                                      I'm sure its gotta be something reasonably simple that I'm just not getting.

                                      Thanks in advance,
                                      lifethetech

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        Wasca
                                        last edited by Jun 14, 2008, 12:25 PM

                                        Does the Vista PC have UAC enabled on it?

                                        I enabled UAC the other day and then tried to connect to work using OpenVPN and the routes were not added. If you have UAC on try disabling it.

                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          lifethetech
                                          last edited by Jun 16, 2008, 11:20 AM Jun 14, 2008, 3:29 PM

                                          I did have UAC on, but I've turned it off and tested again, no joy yet :(

                                          I'm still getting the same error.  Just a little more info I am on the latest release of pfsense.

                                          And I guess it would be pertinent to tell everyone that I'm using Vista with all the latest patches and SP1

                                          Thanks in advance,
                                          lifethetech

                                          EDIT: I've noticed in the openvpn pfsense logs errors related to the client specific openvpn settings:

                                          laptopxxxx/n.n.n.n:49393 Options error: option 'route-delay' cannot be used in this context
                                          laptopxxxx/n.n.n.n:49393 Options error: option 'ns-cert-type' cannot be used in this context
                                          laptopxxxx/n.n.n.n:49393 Options error: option 'route-method' cannot be used in this context

                                          with the n's being the client's IP address

                                          Not sure if that helps or not :)

                                          edit:

                                          A little more info, I've tried tearing down the whole setup and redoing it all then installing the client on XP here is the error from the XP box (still the same error on vista):

                                          The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            [[user:consent.lead]]
                                            [[user:consent.not_received]]