Home > LiNuX (based on debian), Networking, VPN > Koneksi VPN dengan openvpn

Koneksi VPN dengan openvpn

VPN adalah singkatan dari Virtual Private Network, yaitu network-private yg dibuat secara virtual, maksutnya adalah network private yg melalui internet. Loooh koq? internet khan public, koq bisa dikatakan network private?

Dikatakan private adalah karena paket data yg dilewatkan pada internet dibungkus (encapsulate) lagi dengan IP Private yang hanya diketahui network-private tersebut. OK, cukup sesi teorinya, berikut ini adalah langkah implementasi pada SERVER dan CLIENT.

Pada sisi SERVER (Linux)

  1. Install openvpn
  2. root@gw-blueoffice:~# apt-get install openvpn

  3. Copy konfig openvpn dari template contoh (/usr/share/doc) ke /etc/openvpn
  4. root@gw-blueoffice:/etc/openvpn# cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/

  5. Sesuaikan variabel dengan kondisi yang akan anda terapkan
  6. root@gw-blueoffice:~# cd /etc/openvpn/easy-rsa/2.0/
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# vim vars

    export EASY_RSA=”`pwd`”
    export OPENSSL=”openssl”
    export PKCS11TOOL=”pkcs11-tool”
    export GREP=”grep”
    export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
    export KEY_DIR=”$EASY_RSA/keys”
    echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
    export PKCS11_MODULE_PATH=”dummy”
    export PKCS11_PIN=”dummy”
    export KEY_SIZE=1024
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    export KEY_COUNTRY=”ID
    export KEY_PROVINCE=”JATIM
    export KEY_CITY=”Surabaya
    export KEY_ORG=”Blue-Office
    export KEY_EMAIL=”lqman.debianist@gmail.com

    saya menyarankan anda menggunakan konfigurasi default kecuali pada huruf2 yg di bold

  7. Menggunakan file vars sebagai default variabel untuk proses selanjutnya
  8. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# source vars

    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

  9. Clean seluruh konfigurasi & key yang ada.
  10. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ./clean-all

  11. Membuat dh-key
  12. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ./build-dh
    cek apakah file dh tsb berhasil dibuat
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ls -a keys/

    .  ..  dh1024.pem index.txt  serial

  13. Membuat Certificate
  14. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ./pkitool --initca

    Using CA Common Name: Blue-Office CA
    Generating a 1024 bit RSA private key
    ……++++++
    ……………………….++++++
    writing new private key to ‘ca.key’
    —–

    Cek apakah file tsb berhasil dibuat
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ls -a keys/

    .  ..  ca.crt  ca.key dh1024.pem  index.txt  serial

  15. Membuat key untuk sisi server
  16. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ./pkitool --server bo-server

    Generating a 1024 bit RSA private key
    ………………….++++++
    ……………..++++++
    writing new private key to ‘bo-server.key’
    —–
    Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName           : PRINTABLE:’ID’
    stateOrProvinceName   : PRINTABLE:’JATIM’
    localityName          : PRINTABLE:’Surabaya’
    organizationName      : PRINTABLE:’Blue-Office’
    commonName            : PRINTABLE:’bo-server’
    emailAddress          : IA5STRING:’lqman.debianist@gmail.com’
    Certificate is to be certified until May 22 16:38:49 2020 GMT (3650 days)

    Write out database with 1 new entries
    Data Base Updated

    Cek apakah file tsb berhasil dibuat
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ls -a keys/

    .   01.pem         bo-server.csr ca.crt  dh1024.pem  index.txt.attr  serial
    ..  bo-server.crt bo-server.key ca.key  index.txt   index.txt.old   serial.old

  17. Membuat key untuk sisi client
  18. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ./pkitool bo-client

    Generating a 1024 bit RSA private key
    ………….++++++
    …………………………….++++++
    writing new private key to ‘bo-client.key’
    —–
    Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName           : PRINTABLE:’ID’
    stateOrProvinceName   : PRINTABLE:’JATIM’
    localityName          : PRINTABLE:’Surabaya’
    organizationName      : PRINTABLE:’Blue-Office’
    commonName            : PRINTABLE:’bo-client’
    emailAddress          : IA5STRING:’lqman.debianist@gmail.com’
    Certificate is to be certified until May 22 16:40:06 2020 GMT (3650 days)

    Write out database with 1 new entries
    Data Base Updated

    Cek apakah file tsb berhasil dibuat
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# ls -a keys/

    .   01.pem  bo-client.crt bo-client.key bo-server.csr  ca.crt  dh1024.pem  index.txt.attr      index.txt.old  serial.old
    ..  02.pem  bo-client.csr bo-server.crt  bo-server.key  ca.key  index.txt   index.txt.attr.old  serial

  19. Copykan hasil generate key pada folder yg anda tentukan
  20. root@gw-blueoffice:/etc/openvpn# mkdir bo
    root@gw-blueoffice:/etc/openvpn# cp easy-rsa/2.0/keys/dh1024.pem bo/
    root@gw-blueoffice:/etc/openvpn# cp easy-rsa/2.0/keys/bo-server.crt bo/
    root@gw-blueoffice:/etc/openvpn# cp easy-rsa/2.0/keys/bo-server.key bo/
    root@gw-blueoffice:/etc/openvpn# cp easy-rsa/2.0/keys/ca.crt bo/

  21. Buat konfigurasi pada server
  22. root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    root@gw-blueoffice:/etc/openvpn/easy-rsa/2.0# cd /etc/openvpn/
    root@gw-blueoffice:/etc/openvpn# gunzip server.conf.gz
    root@gw-blueoffice:/etc/openvpn# vim server.conf

    port 1194
    proto udp
    dev tun
    ca /etc/openvpn/bo/ca.crt
    cert /etc/openvpn/bo/bo-server.crt
    key /etc/openvpn/bo/bo-server.key # This file should be kept secret
    dh /etc/openvpn/bo/dh1024.pem
    server 10.11.12.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push “route 128.1.1.0 255.255.255.0
    push “route 192.168.1.0 255.255.255.0
    client-to-client
    duplicate-cn
    keepalive 30 120
    comp-lzo
    max-clients 10
    user nobody
    group nogroup
    persist-key
    persist-tun
    status /var/log/openvpn-status.log
    verb 3

Pada sisi CLIENT (windows)

  1. Download dan Install openvpn dari sini
  2. Buat konfigurasi pada client pada C:\Program Files\OpenVPN\config\bo.ovpn dengan notepad atau editor lain yg anda suka, dg isi seperti dibawah ini :
  3. client
    dev tun
    proto udp
    remote 110.139.64.141 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca bo/ca.crt
    cert bo/bo-client.crt
    key bo/bo-client.key
    tls-auth bo/ta.key 1
    ns-cert-type server
    comp-lzo
    verb 3

  4. Copy-kan file2 (bo-client.key, bo-client.crt, ca.crt) dari direktori /etc/openvpn/easy-rsa/2.0/ pada server (linux) menuju client (windows) pada direktori C:\Program Files\OpenVPN\config\bo\
  5. Testing dengan mencoba konek dari client dengan memperhatikan file log pada server (berguna utk debugging).

root@gw-blueoffice:~/script# tail -f /var/log/syslog

referensi :
http://openvpn.net/index.php/open-source/faq.html

Advertisements
  1. Internet Unlimited
    3 June 2010 at 2:50 am

    Thanks buat sharingnya, sangat bermanfaat untuk inspirasi coretanku selanjutnya

    *ADS removed*

    Jawab :
    OK, semoga bisa membantu meng-inspirasi anda.

  2. 20 September 2010 at 4:39 am

    Thanks ya brother 😀

    jawab :
    trima kasih kembali bro… Senang bisa membantu anda. 😀

  3. alwi hafidz
    17 October 2010 at 12:46 pm

    bro bisa kasih tau gk langkah2’a kalo pake debian 5 !
    truz haruz konfigurasi apa aja sebelum konfigurasi openVPN ?

    Jawab :
    sepertinya sama saja, coba dulu implementasi tutorial ini di sistem anda.
    Nanti kalo ada error saya bantu koq.

  4. alwi hafidz
    28 October 2010 at 1:09 pm

    maf saya lupa wat cara keluar dari konfigurasi “vim vars” cara’a gymana ya ? hehehe

    jawab :
    kluar dari editor vim caranya adalh sbb :
    tekan tombol Esc => kembali dari edit mode ke command mode
    ketik “:wq” tanpa quote => memerintahkan vim untuk write lalu quit

    semoga berhasil

  5. alwi hafidz
    28 October 2010 at 3:28 pm

    owhya saya bleh tau FB’a gk ?
    supaya gampang saya tanya2 klo da yang saya gk bisa or ngerti coz saya lgy bikin laporan PKL….

    jawab :
    http://www.facebook.com/lqman

  6. umek1
    8 November 2010 at 6:10 pm

    Aku gak bisa install openvpn di windows xp.. mesti nyangkut di TAP-blablabla

    terus
    server 10.11.12.0 255.255.255.0

    ip server yg mana…??

    ##push “route 128.1.1.0 255.255.255.0“
    push “route 192.168.1.0 255.255.255.0“

    ini buat apa…
    thx mas. 4 solusinya… 😀

    Jawab :
    Iku loh mek, kudu digawe server-e sik, nek wis mari, di client (seperti pertanyaanmu) dimasukkan IP Server yg telah dibuat sebelumnya.
    Btw, untu konfigurasi push “route bla bla bla”, bisa kamu baca di manualnya openvpn.
    Ingat, RTFM = Read The Friendly Manual… 😀

  7. umek1
    9 November 2010 at 1:25 am

    gagal kucoba T_T

    Tue Nov 09 08:32:58 2010 OpenVPN 2.1.1 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Dec 11 2009
    Tue Nov 09 08:32:58 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
    Tue Nov 09 08:32:58 2010 Cannot load certificate file bo/bo-client.crt: error:02001002:system library:fopen:No such file or directory: error:20074002:BIO routines:FILE_CTRL:system lib: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
    Tue Nov 09 08:32:58 2010 Exiting

    Jawab :
    yo jelas jeh, iku loooh gak ketemu file-e “bo-client.crt” yg berada pada direktory “bo”, cobaen maneh jeh, aq selalu berhasil koq dengan tutorial iki.

  8. umek1
    13 November 2010 at 12:29 pm

    Cannot open file key file ‘bo/ta.key cannot find.
    ini kenapa mas?
    aku cari file ta.key emang gak ada.

    terus langkah ke 3 di sisi client. copy file2, file2nya itu ada di /etc/openvpn/easy-rsa/2.0/keys
    baru ada file2 tsb beserta file lainnya..

    vpn ini, client pke proxy its.. server di luar its.

  9. alwi hafidz
    1 December 2010 at 2:39 pm

    push “route 128.1.1.0 255.255.255.0“
    push “route 192.168.1.0 255.255.255.0“

    ni ip yg mana nd wat pa mas ?

    truzz,,,
    keepalive 30 120
    max-clients 10

    ni maksud’a apa nd wat pa mas ?

    jawab :
    push “route 128.1.1.0 255.255.255.0“
    push “route 192.168.1.0 255.255.255.0“

    ini ip d sisi server, maksutnya adalah client yg konek ke vpn server kita akan diberi informasi routing ke network tsb.

    keepalive & max-client masih ditanyakan? Plis deh fid, baca dulu manualnya, klo g paham baru tanya dsini, jangan tanya hal2 yg bisa dilihat dimanual, oke?
    RTFM : Read The Friendly Manual 😛

  10. 11 December 2010 at 1:16 am

    halo bos klo server pake wimdows xp bisa gak

    jawab :
    Insya Allah bisa, tinggal sesuaikan saja langkah2nya. 😀

  11. 22 March 2011 at 2:07 pm

    mas numpang tanya nih ??
    aku setting vpn, sertifikat dah siap semua configurasi server.conf juga sudah tapi pas di start atau restart selalu failed, udah ku ganti dan ku ulang hasilnya juga sama ..

    kira2 maslahnya apa ya mas trus apa perlu device tambahan seperi tun padahal saat di cek sudah ada???

    jawab :
    Untuk analisa error yg terjadi, sebaiknya perhatikan file /var/log/syslog anda saat me-restart openvpn, baru kita bisa pecahkan masalahnya.
    Paste kesini hasil dari perintah dibawah ini.
    root@constantine:~# tail -f /var/log/syslog

  12. indra
    24 June 2011 at 3:36 pm

    mau tanyak ni mas…
    gini mas aku punyak vpn server mengunakan 2buah NIC dgn ip eth0 192.168.5.9 dan eth1 192.168.2.99.
    ip 192.168.2.xxx merupakan ip local dan ip 192.168.5.xxx dari ip public.
    saya menggunakan AP untuk komunikasi vpn client dengan local (ip AP 192.168.33.121).
    skema jaringannya
    vpn client => AP => vpn server => local.

    bagi mana cara route IPnya.?
    dari client untuk komunikasi ke jaringan local

  13. 26 June 2011 at 3:30 pm

    @indra : sorry bro, pertanyaanmu kurang jelas, selengkapnya lewat YM aja yaaa.
    ini YM saya : lqman.debianist

  14. 17 November 2011 at 5:28 am

    suwun mas.. tutornya sudah membantu… :bd

  15. 30 November 2011 at 10:49 pm

    Terima Kasih Banyak ya, semoga Ilmu yang saya peroleh melalui membaca tulisan anda ini Barokah , ..

  16. 20 December 2011 at 9:03 am

    @Bchnalz :
    amin3x, semoga menjadi amal jariyah saya walaupun isi blog ini masih ecek2. 🙂

  17. Fauzan
    11 March 2012 at 12:30 pm

    untuk mas lqman,
    salam kenal mas, maaf sbelumnya, saya mau nanya nih, untuk konfigurasi pada file server.conf,
    pada baris:

    server 10.11.12.0 255.255.255.0

    apakah kita bebas menentukan ip-nya, ataukah boleh pake ip yang sama persis dengan di atas?
    atau kota harus dapat dari mana?
    Maaf mas klo pertanyaan saya cupu, soalnyanya saya sangat awam masalah networking.
    makasih mas atas pencerahannya.

  18. 14 March 2012 at 7:17 am

    Kita bebas menentukan pool IP address / subnet yg akan digunakan utk VPN, yg hrs diperhatikan hanyalah agar tdk ada konflik dg pool IP address / subnet yg ada.
    10.11.12.0 255.255.255.0 diatas hanya contoh dari settingan saya.

  19. 19 December 2012 at 3:08 am

    Mas lqman, gimana caranya kalo saya mau pasang/install openvpn server itu di PC Ubuntu 10.04 dan PC ubuntu itu terhubung lewat Modem ADSL Speedy dan juga WifiRouter 6port (D-Link)?? Dan yg sebagai Client bisa dari Ubuntu/Unix ataupun Windows. Untuk Wifi Router hanya untuk menjalankan DHCP (untuk beberapa client). Mohon pencerahannya mas lqman.
    Terima kasih.

  1. 17 March 2011 at 7:44 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: