Menu Close

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

    • Erawan Arif Nugroho

      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. Koole

    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. Tigor Manurung

    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?

    • Erawan Arif Nugroho

      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.

    • Erawan Arif Nugroho

      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. Adam

    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)

  4. chandra35

    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 :
    root@server [/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 😀

    • Erawan Arif Nugroho

      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 :

    • Erawan Arif Nugroho

      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.

  5. Adam

    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??

    • Erawan Arif Nugroho

      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.

  6. andika

    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.,,
    🙂
     
     

    • Erawan Arif Nugroho

      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.

  7. sabana

    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… 🙂
    [root@vps 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]
    [root@vps easy-rsa]#

    • Erawan Arif Nugroho

      Coba begini mas :

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

      Apakah muncul seperti di atas?

        • Erawan Arif Nugroho

          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.

  8. Muhammad Munir

    sore mas,. saya mau tanya ada kendala ini kenpa ya?
    [root@server ~]# 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

    • Erawan Arif Nugroho

      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?

  9. hariyadi

    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 *