+ Reply to Thread
Results 1 to 3 of 3

Thread: Install OpenVPN on CentOS

  1. #1

    Join Date
    18.05.11
    Location
    ca
    P2P Client
    utorrent
    Posts
    2
    Activity Longevity
    0/20 16/20
    Today Posts
    0/5 ssssssss2

    Install OpenVPN on CentOS

    I have searched this forum and i don't find any OPENVPN tutorial, so i'll write tutorial how to make OPENVPN running on CentOS, hope it will be useful.

    Here i'm using OpenVZ VPS with CentOS 5.5 32bit, and about the memory requirement? Don't worry, OPENVPN doesn't eat your memory too much, i have 50 user running in my 128MB vps and it only eats 25MB memory

    First thing you have to do is check whether tun/tap is active or not by typing
    #cat /dev/net/tun

    Code:
    cat: /dev/net/tun: File descriptor in bad state
    take a look at the status above, "File descriptor in bad state" means tun/tap is active, otherwise please ask your provider to activate it

    Install required modules
    #yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel

    Download OPENVPN repo
    #wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm

    for 32bit
    #wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

    for 64bit
    #wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

    Build the rpm packages
    #rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
    #rpm -Uvh /usr/src/redhat/RPMS/i386/lzo-*.rpm
    #rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm


    *remember to change i386 to x86_64 if you're using 64bit

    Install OPENVPN
    #yum install openvpn

    Copy OPENVPN easy-rsa folder to /etc/openvpn/
    #cp -R /usr/share/doc/openvpn-2.1.4/easy-rsa/ /etc/openvpn/

    Now let's create the certificate
    #cd /etc/openvpn/easy-rsa/2.0
    #chmod 755 *
    #source ./vars
    #./vars
    #./clean-all


    Build CA
    #./build-ca

    Code:
    Country Name: may be filled or press enter
    State or Province Name: may be filled or press enter
    City: may be filled or press enter
    Org Name: may be filled or press enter
    Org Unit Name: may be filled or press enter
    Common Name: your server hostname
    Email Address: may be filled or press enter
    Build key server
    #./build-key-server server


    Code:
    Almost the same with ./build.ca but check the changes and additional
    Common Name: server
    A challenge password: leave
    Optional company name: fill or enter
    sign the certificate: y
    1 out of 1 certificate requests: y

    Build Diffie Hellman (wait a moment until the process finish)
    #./build-dh

    Now i'm gonna create UDP port 1194 configuration for OPENVPN, use any text editor you like
    #nano /etc/openvpn/1194.conf

    Code:
    local 123.123.123.123 #- your_server_ip
    port 1194 #- port
    proto udp #- protocol
    dev tun
    tun-mtu 1500
    tun-mtu-extra 32
    mssfix 1450
    ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
    plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
    client-cert-not-required
    username-as-common-name
    server 1.2.3.0 255.255.255.0
    push "redirect-gateway def1"
    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 4.2.2.1"
    keepalive 5 30
    comp-lzo
    persist-key
    persist-tun
    status 1194.log
    verb 3
    before you save the configuration, make sure that the "plugin /usr/share/.. /pam.d/login" is one line

    Start the OPENVPN with 1194.conf
    #openvpn /etc/openvpn/1194.conf &

    here's the status if OPENVPN successfully started

    Code:
    Mon Feb 21 02:23:20 2011 UDPv4 link remote: [undef]
    Mon Feb 21 02:23:20 2011 MULTI: multi_init called, r=256 v=256
    Mon Feb 21 02:23:20 2011 IFCONFIG POOL: base=1.2.3.4 size=62
    Mon Feb 21 02:23:20 2011 Initialization Sequence Completed
    Make OPENVPN 1194.conf running in background
    #bg

    Enable ipv4 forward
    #echo 1 > /proc/sys/net/ipv4/ip_forward

    Route iptables
    #iptables -t nat -A POSTROUTING -s 1.2.3.0/24 -j SNAT --to 123.123.123.123

    *1.2.3.0 is allocated ip for OPENVPN client
    *123.123.123.123 is your server ip


    Now we create username and password for authorization
    #useradd username -s /bin/false
    #passwd username


    Download ca.crt file in /etc/openvpn/easy-rsa/2.0/keys/ directory, you can use sftp client

    Download and install OPENVPN client for windows, download the latest stable release OPENVPN version 2.1.4 from here

    After you finished installing OPENVPN, move ca.crt (file that you previously downloaded from /etc/openvpn/easy-rsa/2.0/keys/) to OPENVPN config folder in your program files (\Program Files\OpenVPN\config\)

    Also create client configuration file in OPENVPN config directory, here's the example:

    Code:
    client
    dev tun
    proto udp #- protocol
    remote 123.123.123.123 1194 #- SERVER IP and OPENVPN Port
    resolv-retry infinite
    nobind
    tun-mtu 1500
    tun-mtu-extra 32
    mssfix 1450
    persist-key
    persist-tun
    ca ca.crt
    auth-user-pass
    comp-lzo
    verb 3
    save with anyname.ovpn or 1194.ovpn



    Run OPENVPN Client on your Windows, connect with your username and password.




    Check your IP Address in browser and Voila!!! You're IP is now changed to your server IP

    note:
    - Never fails make OPENVPN on CentOS with this tutorial
    - Those configurations above are basic configuration, you can check OPENVPN website for another configuration
    - If you're using Win 7, before installing OPENVPN client, right click on the installer, properties, run as administrator and change compatibility to Windows XP SP3
    - If you wanna add another port, maybe TCP so you can run OPENVPN over proxy, just create new configuration for server, adjust the following lines:

    Code:
    port: your preferred port
    protocol: tcp or udp
    client's ip: 1.2.4.0 or 1.2.5.0 ; 1.2.6.0 ; and so on
    also new configuration for client

    Code:
    proto xxxx #- change xxxx to tcp or udp
    remote 123.123.123.123 yyyy #- change yyyy to OPENVPN port
    and then run the command
    #iptables -t nat -A POSTROUTING -s 1.2.4.0/24 -j SNAT --to 123.123.123.123

    Moderator Message
    Hotlinked to images
    //Staff
    Reply With QuoteReply With Quote
    Thanks

  2. Who Said Thanks:

    SBfreak (04.07.11) , hearthrob (04.07.11) , Gapo (25.05.11) , SealLion (24.05.11) , anon (23.05.11)

  3. #2
    Retired Seal
    SealLion's Avatar
    Join Date
    03.05.08
    Location
    The Arctic--Believe it!!
    Posts
    2,079
    Activity Longevity
    0/20 19/20
    Today Posts
    0/5 sssss2079
    Now that's a tutorial!!!
    Well made. Well posted. Well explained and very little left out ....( at least as far as I know).
    Are one's set-up and run expectations the same for this on other Unix OS??
    "God, from the mount Sinai
    whose grey top shall tremble,
    He descending, will Himself,
    in thunder, lightning, and loud trumpet’s sound,
    ordain them laws".


    John Milton (1608-1674) in Paradise Lost


    Ripley's SealLion's Believe it or Not! ~ NASCAR car crashes and Windows have just one thing in common.
    Oh, oh. Better use LINUX.
    Reply With QuoteReply With Quote
    Thanks

  4. #3

    Join Date
    19.07.09
    Location
    Middle Kingdom
    P2P Client
    NoComplete_NoReport-Seeder
    Posts
    265
    Activity Longevity
    0/20 18/20
    Today Posts
    0/5 ssssss265
    Quote Originally Posted by SealLion View Post
    Are one's set-up and run expectations the same for this on other Unix OS??
    I have the same question.

    freecbc3, would you be able to highlight which line to change and change to what for ubuntu.
    Reply With QuoteReply With Quote
    Thanks

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts
  •