Koneksi internet melalui VPN di OpenVZ VPS

Beberapa waktu lalu, saya pernah membuat tutorial untuk membuat sebuah VPN server dengan sebuah VPS yang berlokasi di Chicago, Amerika. Namun dikarenakan script otomatisasi yang dulu sudah tidak bisa dipakai lagi, maka kali ini saya membuat sebuah tutorial baru, dengan otentifikasi mempergunakan Certificate dan Key untuk masing-masing user.

Tutorial ini saya terapkan di VPS saya dengan spesifikasi berikut :

Konfigurasi Server

Sebelum membuat VPN server ini, saya rebuild VPS saya dengan OS Template yang baru, agar tidak terjadi konflik.

Mengupdate dan mengupgrade Operating System yang berjalan di VPS :

 

Download OPENVPN repo :

for 32 bit

for 64bit

Build the rpm packages

Install OPENVPN

Copy OPENVPN easy-rsa folder to /etc/openvpn/

Creating the Certificate :

Build CA :

Build key server :

Build Diffie Hellman (wait a moment until the process finish)

Membuat Certificate untuk Client,  dalam contoh ini saya membuat sesuai nama saya, erawanarifn :

Membuat konfigurasi port forwarding ke IP VPS :

Selanjutnya kita membuat file konfigurasi untuk server , disimpan di /etc/openvpn/openvpn.conf

Mengcopy file certificate ke directory openvpn :

Menambahkan OpenVPN saat startup VPS :

Menjalankan OpenVPN sebagai service :

Jika konfigurasi berhasil, maka OpenVPN akan berjalan.

Konfigurasi Client
Mengcopy file di direktory /etc/openvpn/easy-rsa/2.0/keys ke komputer, dan menyimpannya di C:/Program Files/OpenVPN/config

Membuat file konfigurasi untuk Client :

Setelah semua selesai, kita jalankan OpenVPN Gui.
Jika sukses, maka semua koneksi internet akan dilewatkan melalui VPS

 

33 comments

    1. Maksudnya semua traffic yang kita lakukan dalam mengakses akan dianggap dilakukan dari VPS mas.

      Akses yang kita lakukan akan dilihat dari IP Address dari VPS. Dan juga bandwidth yang kita pakai dalam mengakses internet, akan mengurangi alokasi bandwidth dari VPS kita juga.

      Intinya, koneksi VPN, bisa dipergunakan untuk menyembunyikan identitas/asal lokasi atau IP asli kita.

      Dalam beberapa kasus, ada beberapa website Luar Negeri yang hanya bisa diakses oleh warga di Luar Negeri. Misalnya Hulu.com, film-filmnya hanya bisa dinikmati oleh warga Amerika.

      Bila masih ada yang ingin ditanyakan, monggoo… 🙂

  1. kalo sekedar untuk tunneling supaya bisa akses internet melalui IP VPS saya lebih seneng pake debian dan pam plugin, jadi client ngga perlu pake certificate tapi username & password.

    trus KEY_SIZE di file vars saya rubah jadi 384, dan enkripsi cipher juga saya disable supaya koneksi jadi lebih ringan tanpa diberat2in oleh proses enkripsi.

    salam kenal mas erawan 😉

  2. nice article :), saya sudah mempraktekkan tapi ada kendala error seperti berikut ini :

    Thu Jan 26 03:46:12 2012 OpenVPN 2.2.0 i686-redhat-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] built on Jun 6 2011
    Thu Jan 26 03:46:12 2012 NOTE: OpenVPN 2.1 requires ‘–script-security 2’ or higher to call user-defined scripts or executables
    Thu Jan 26 03:46:12 2012 Diffie-Hellman initialized with 1024 bit key
    Thu Jan 26 03:46:12 2012 TLS-Auth MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
    Thu Jan 26 03:46:12 2012 Socket Buffers: R=[137216->131072] S=[137216->131072]
    Thu Jan 26 03:46:12 2012 ROUTE: default_gateway=UNDEF
    Thu Jan 26 03:46:12 2012 Note: Cannot open TUN/TAP dev /dev/net/tun: Permission denied (errno=13)
    Thu Jan 26 03:46:12 2012 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
    Thu Jan 26 03:46:12 2012 Cannot allocate TUN/TAP dev dynamically
    Thu Jan 26 03:46:12 2012 Exiting

    itu kenapa ya?

    1. Kalau dilihat dari sini, kemungkinan errornya karena TUN/TAP nya belum aktif Pak 🙂
      Ini pakai OpenVZ? Kalau iya, bisa minta di-enable dari Hostnya. Kalau misalnya pakai Xen, seharusnya langusng jalan.
      Coba dijalankan perintah ini :

      Kalau hasilnya ok, tanpa error, berarti module TUN/TAP jalan di VPS. Kalau ada keterangan not found/error, kemungkinan TUN/TAP nya didisable dari Host.

    1. O iya, maaf Pak. Sepertinya terlewat, belum saya masukkan.
      Tutorialnya sudah saya update. Bisa dengan menjalankan perintah berikut di tempat kita membuat key untuk server :

  3. mas saya juga rencana mau pakai 123system
    kira-kira kalau buat vpn /tunnelling cepat tidak ya??rencana mau pakai paket yg 192mb ($15)

  4. terimakasih mas
    sudah saya save kontaknya

    wah saya jadi gak enak dipanggil bapak,hihihi

    ps:
    apa gak apa-apa mas share kontak langsung di comment box?saya saja yang dulu gak sengaja share no.hp sekarang suka di spam sama orang ga jelas(info diskon apa lah,dsb)

  5. mas tanya dong,
    gimana cara nya agar semua config td di remove, termasuk binding port nya, masalahnya saya copas dari web , tanda petik pada dns nya itu ternyata berubah menjadi titik , dan saya tidak menelitinya,
    ketika saya teliti, ternyata kesalahannya disitu,
    dan ketika saya buat conf baru, pas di run hasil nya seperti ini :
    [email protected] [/etc/openvpn]# openvpn 443.conf
    Fri Feb 24 11:44:26 2012 OpenVPN 2.0.9 i386-redhat-linux [SSL] [LZO] [EPOLL] built on Feb 24 2012
    Fri Feb 24 11:44:26 2012 WARNING: This configuration may accept clients which do not present a certificate
    Fri Feb 24 11:44:26 2012 TCP/UDP: Socket bind failed on local address [undef]:443: Address already in use
    Fri Feb 24 11:44:26 2012 Exiting

    ==============
    mohon petunjuknya dong mas, makasih 😀

    1. Config yang mana yang dimaksud mas? Kurang begitu paham, hehe..
      Kalau yang dimaksud :

      Kemungkinan OpenVPN atau program yang lain sudah ada yang mempergunakan port 443.
      Coba direstart OpenVPNnya :

  6. sya udh brhasil buat koneksi vpnnya mas,, tpi kok malah gk bisa koneksi ke internet yaa?

    mhon petunjuk’a,, thanks..

    1. Kemungkinan besar karena port forwardingnya belum disetting 🙂
      Silakan dicoba dijalankan perintah berikut ini :

      Setelah OpenVPN di Server / VPS direstart, coba disconnect OpenVPN Client yang ada di Computer / Laptop kita. Lalu dicoba connect lagi / Reconnect.

  7. mas saya coba di lain server kok kena error pas routing

    iptablesnya iptables v1.3.5: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

    kenapa ya??

    1. Kalau muncul kayak gini, berarti module iptablesnya belum dienable sama hostnya.

      Saya pakai XEN maupun OpenVZ, semuanya bisa. Karena sudah dienable sama hostnya.

      Coba dikirimin Ticket, minta dienable TUN/TAP dan IPTABLESnya.

  8. wahhh,,, tutorialnya bgus bgt mas,,,

    saya mw ngulang cerita lama dikit ne mas,, heheheh

    seperti yang telah di tanyakan @chandra35,,,

    saya kemaren dh coba instal vpn, cuman gagal, trus saya coba lagi, tetap masih gagal, log nya kayak gini mas,,

    openvpn –config /etc/openvpn/service.conf
    Thu Feb 28 05:54:19 2013 OpenVPN 2.2.2 i686-redhat-linux-gnu [SSL] [LZO2] [EPOLL ] [PKCS11] [eurephia] built on Apr 5 2012
    Thu Feb 28 05:54:19 2013 NOTE: OpenVPN 2.1 requires ‘–script-security 2′ or hig her to call user-defined scripts or executables
    Thu Feb 28 05:54:19 2013 PLUGIN_INIT: POST /usr/share/openvpn/plugin/lib/openvpn -auth-pam.so ‘[/usr/share/openvpn/plugin/lib/openvpn-auth-pam.so] [/etc/pam.d/lo gin]‘ intercepted=PLUGIN_AUTH_USER_PASS_VERIFY
    Thu Feb 28 05:54:19 2013 Diffie-Hellman initialized with 1024 bit key
    Thu Feb 28 05:54:19 2013 WARNING: file ‘/etc/openvpn/keys/server.key’ is group o r others accessible
    Thu Feb 28 05:54:19 2013 WARNING: POTENTIALLY DANGEROUS OPTION –client-cert-not -required may accept clients which do not present a certificate
    Thu Feb 28 05:54:19 2013 TLS-Auth MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
    Thu Feb 28 05:54:19 2013 Socket Buffers: R=[87380->131072] S=[16384->131072]
    Thu Feb 28 05:54:19 2013 TCP/UDP: Socket bind failed on local address [undef]:44 3: Address already in use
    Thu Feb 28 05:54:19 2013 Exiting

    saya dh coba restart open vpn y,, tapi hasilnya masih sama,, trus bagaimana solusinya mas?

    mkasih sebelumnya.,,

    🙂

     

     

    1. Kasus yang sama ya mas?
      TCP/UDP: Socket bind failed on local address [undef]:44 3: Address already in use

      Ini ada proses yang jalan dan mempergunakan port 443 ga ya mas?
      Misalnya webserver (apache/nginx/lighthttpd,dll) atau mungkin ada konfigurasi openvpnnya? Apakah membuat sendiri atau mengambil dari tutorial lainnya?
      Kalau misalnya setelah direstart openvpnnya, openvpnnya masih error, coba distop lalu distart lagi.

  9. mas gan, tanya nih, ane ikutin tutorial ente dari awal mpe akhir mas gan, tapi pas nyampe start openvpn nya terjadi kyak gini ? errornya…mohon pencerahan gan… 🙂

    [[email protected] easy-rsa]# service openvpn start
    Starting openvpn: Usage: ip link set DEVICE { up | down |
                                 arp { on | off } |
                                 dynamic { on | off } |
                                 multicast { on | off } |
                                 allmulticast { on | off } |
                                 promisc { on | off } |
                                 trailers { on | off } |
                                 txqueuelen PACKETS |
                                 name NEWNAME |
                                 address LLADDR | broadcast LLADDR |
                                 mtu MTU }
           ip link show [ DEVICE ]
                                                               [FAILED]
    [[email protected] easy-rsa]#

    1. Coba begini mas :

      Muncul errornya apa ya? Apakah vpsnya support tun/tap? Coba diperiksa pakai perintah ini :

      Apakah muncul seperti di atas?

    2. Maksudnya tun/tap tidak ada mas?
      Coba dienable dulu tun/tap dari SolusVM, tunggu sebentar, vps akan reboot, setelah itu coba perintah ini :

      Ada muncul list tun nggak? Kadang tun/tap didisable sama providernya, jadi harus minta bantu ke provider juga.

  10. sore mas,. saya mau tanya ada kendala ini kenpa ya?

    [[email protected] ~]# cp -R /usr/share/doc/openvpn-2.2.0/easy-rsa/ /etc/openvpn/
    cp: cannot stat `/usr/share/doc/openvpn-2.2.0/easy-rsa/’: No such file or directory

    1. Sore mas, barangkali beda OS, beda lokasinya ya 🙂
      Coba buka /usr/share/doc, ada direktory openvpn ga? Kalau ada, coba dibuka satu persatu direktorynya 🙂
      OpenVPNnya sudah diinstal belum ya?

  11. ms gan, tutornya bagus bgt nih ….
    sy udah ikuti tutor diatas, selama setting dr awal sampe akhir smua normal ..
    tp begitu restart muncul tulisan :

    # service openvpn restart
    Shutting down openvpn: [ OK ]
    Starting openvpn: [FAILED]

    ini knpa ya ?? mohon bantuannya ya ms gan ….

Leave a Reply

Your email address will not be published. Required fields are marked *