OK Baiklah, Nih Tutorial Instal OpenVPN di VPS Debian

Hello,

Kali ini saya akan share alur ritual dalam instalasi OpenVPN di VPS Debian (Yang pake VPS CentOS minggat kesini). Saya sudah sering kali instal VPN jenis ini tetapi memang belum pernah saya dokumentasikan. Based on request akhirnya saya coba posting disini…. jadi moga2 bermanfaat. Tutorial ini saya ketik sambil saya ujicobakan, dengan kata lain ini adalah live report dari cara memasang OpenVPN di server.

OpenVPN ini akan mempunyai beberapa spesifikasi yaitu:

  • Menggunakan 2 jalur untuk konek; UDP port 1194 yg merupakan port default OpenVPN dan jalur TCP port 443 (sebagai alternatif untuk client saat konek. Jika port 443 udah terpakai misal untuk ssh tunnel maka anda harus pake port lain misal 465, dll)
  • User yg konek harus memiliki file2 untuk konek yaitu ca.crt dan file config .ovpn. Setelah ada file tsb user akan konek dg autentikasi username+password.

VPS yg saya gunakan untuk percobaan ini adalah VPS dg OS Debian 7 x86 (atau 32 bit), virtualisasinya adalah OpenVZ. Tentu saja anda bisa pake VPS lainnya misal dari DigitalOcean tetapi akan ada perbedaan kecil dalam proses nantinya.

Syarat OpenVPN bisa diinstal adalah bahwa interface tun/tap sudah ready. Hal ini bisa dicek dengan membaca mantra cat /dev/net/tun, dan jika aktif maka outputnya adalah: cat: /dev/net/tun: File descriptor in bad state. Jika tidak ada kalimat tsb artinya belum bisa diinstal OpenVPN, silahkan enable dulu via panel atau kalo bingung kontak host owner untuk meng-enable tun/tap device. Saya asumsikan anda udah login ke console sebagai root. Let’s start!

  1. Update dulu apt-get update, tunggu beberapa detik hingga rampung
  2. Instal paket OpenVPN apt-get install openvpn
  3. OpenVPN telah memudahkan proses instalasi dengan menyediakan banyak helper script, kita copy saja file tsb ke dir OpenVPN cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
  4. Buatlah certificate, pindah dulu ke dir berikut cd /etc/openvpn/easy-rsa/2.0
  5. Jalankan: source ./vars
  6. Jalankan: ./clean-all
  7. Jalankan: ./build-ca
  8. Nah akan muncul isian yg dimulai dengan nama negara atau Country Name. Pada tahap ini saya ga pernah isi/edit apapun. Enter saja sebanyak 7 kali untuk 7 pertanyaan yg muncul (terakhir adalah Email Address), ini tidak pengaruh apa2. Tapi kalo anda ingin tampak keren misal karena sedang ada teman yg duduk disebalah anda maka isilah pertanyaan2 tsb, jadi anda tampak sibuk ngetik diconsole dan itu akan membuat kagum teman anda 😛
  9. Sekarang buatlah Diffie Hellman parameter ./build-dh
  10. Generate certificate untuk servernya ./build-key-server server01
  11. Kali ini anda akan diinterogasi 10 pertanyaan, disini saya juga ga isi apa2 alias enter2 saja. Hati2 pencet enter jangan ngebut2 karena nanti ada dialog apakah anda ingin sign the certificate? anda harus pilih dengan pencet y
  12. 1 out of 1 certificate requests certified, commit? [y/n] Pilih y lagi pada dialog ini
  13. Untuk menghindari UDP flood dan serangan DDoS maka jalankan: openvpn --genkey --secret keys/ta.key
  14. Sekarang buatlah server config. Seperti tadi saya bilang bahwa nanti user bisa konek via UDP dan TCP maka disini kita akan buat 2 config. Pertama yg UDP dulu nih. cd /etc/openvpn
  15. Buat file vim server.conf
  16. Isikan dengan parameter berikut ini:
  17. Save+close file tsb
  18. Buat config untuk koneksi jalur TCP: vim server-tcp.conf
  19. Isikan parameter berikut ini:
  20. Copy certificates dan keys, buat dulu direktorinya mkdir /etc/openvpn/keys
  21. Copy semuanya



  22. Konfigurasi UDP dan TCP untuk server udah kelar, sekarang edit supaya config tsb terbaca ketika OpenVPN nanti dijalankan. vim /etc/default/openvpn
  23. Pada entri #AUTOSTART="all" hilangkan tanda pagar # didepannya sehingga menjadi AUTOSTART="all". Save dan close kembali file tsb
  24. Restart OpenVPN /etc/init.d/openvpn restart. Hasilnya harus ada 2 [OK] sebagai bukti bahwa restart OpenVPN sukses dan sudah running ScreenHunter_378-Aug.-29-11.12
  25. Pastikan ada 2 instances OpenVPN running di server, jalankan lsof -i |grep openvpn ScreenHunter_379-Aug.-29-11.15
  26. Ada UDP dan TCP kan? Artinya udah betul. Pada TCP terlihat ssmtp yg running, itu karena saya tadi pake port 465 di config TCP-nya. Jika anda pake 443 maka akan tertera disitu sebagai https
  27. Enable forwarding di VPS agar user bisa browsing, kan seru tuh user udah gembira konek tapi ga bisa browsing hehehe. Buatlah file vim /etc/sysctl.d/forwarding.conf dan isikan dengan mantra pendek net.ipv4.ip_forward=1
  28. Save+close kemudian jalankan sysctl -p /etc/sysctl.d/forwarding.conf dan outputnya adalah mantra yg ada di step 27 tsb
  29. Seting iptables untuk jalur UDP
  30. Seting iptables untuk jalur TCP
  31. Nah jeleknya tuh kadang Debian me-reset iptables setelah VPS restart, alias musnahlah settingan iptables yg kita jalankan tadi. Untuk menghindari hal tsb, maka jalankan tutorial ini agar iptables tersimpan dengan abadi di VPS
  32. Siapkan segelas air panas dan kopi favorit anda, silahkan ngopi2 dulu (kalo suka ngopi) kalo ga ya santai dan rileks2 dulu karena ngoprek server udah rampung. Selanjutnya nanti adalah menyiapkan setingan utk user/client
  33. Masih di dalam folder /etc/openvpn buatlah direktori mkdir clientconfig
  34. Copy-kan ca.crt dan ta.key yg tadi kita buat ke dir tsb. Ini akan dibutuhkan client sbg syarat konek cp /etc/openvpn/easy-rsa/2.0/keys/{ca.crt,ta.key} clientconfig/
  35. Buatlah file dengan ekstensi .ovpn. Karena OpenVPN ini menyediakan 2 jalur koneksi UDP dan TCP, maka untuk client kita akan beri 2 config. Pertama saya beri nama HANTU-UDP.ovpn. Pindah dulu ke cd clientconfig kemudian vim HANTU-UDP.ovpn
  36. Isikan mantra ini:
  37. Lihat ip yg saya ketik bold diatas, pada VPS anda ganti dengan ip VPS anda sendiri!
  38. Trus sekarang bikin config client yg TCP, vim HANTU-TCP.ovpn
  39. Isikan dengan mantra:
  40. Sekali lagi ganti ip yg bold tsb dg ip VPS anda sendiri, disampingnya adalah port TCP yg dipake. Kalo bukan pake 465 maka sesuaikan saja ya
  41. OPTIONAL: Anda juga bisa pake domain untuk menggantikan ip tsb, dengan catatan anda sudah membuat domain atau subdomain pointing ke ip server
  42. OPTIONAL: Jika ingin konek via proxy maka pada config ovpn tsb bisa anda tambahkan http-proxy x.x.x.x dan http-proxy-retry
  43. Jika sudah, cek dengan command ls -al di dalam dir clientconfig dan anda harus melihat 4 buah file yaitu: HANTU-UDP.ovpn, HANTU-TCP.ovpn, ca.crt, dan ta.key
  44. OPTIONAL: file config ovpn tsb bisa juga langsung digabung dengan ca.crt, biasanya config semacam ini digunakan oleh pengguna device mobile semacam Android atau iPhone. Bagaimana caranya? Simple saja kok, jalankan saja cat ca.crt dan setelah certificate tsb nongol di layar, copy saja kemudian edit kembali file ovpn, delete baris ca.crt dan tambahkan code certificate di bahwanya dengan contoh format seperti ini: config-ovpn
  45. Untuk memudahkan distribusi file tsb kepada para calon user maka archive-lah menjadi zip file. Jalankan zip dan jika malah command not found maka instal dahulu apt-get install zip
  46. Jalankan zip VPN.zip *
  47. Jika pada server anda ada webserver apache yg aktif maka file tsb bisa anda copy ke dir webserver misal /var/www. Sehingga nanti mudah anda ambil yaitu dengan download via browser http://ip-vps/VPN.zip. Saya ga akan kasih tau gimana cara cek apakah ada webserver atau tidak di VPS anda 😀 Bilamana pusink, download saja VPN.zip tsb dengan tool Bitvise
  48. Jalankan Bitvise SSH tunnelier
  49. Login harus sebagai root (wajib) ScreenHunter_380-Aug.-29-11.57
  50. Klik “New SFTP Window”
  51. Sebuah jendela explorer akan nongol. Sebelah kiri adalah PC anda (Local Files) dan sebelah kanan adalah isi dari VPS anda (Remote Files). Silahkan tuju ke Remote Files di sebelah kanan. Pada tombol navigasi klik up sekali untuk masuk ke dir / sehingga tampaklah direktori2 linux VPS anda
  52. Dobel klik pada direktori etc. Ingat kan, sebelumnya kita sudah membuat config untuk user yg sudah di-zip di dalam /etc/openvpn/clientconfig. Maka setelah masuk ke dir /etc dobel klik openvpn dan dobel klik dir clientconfig untuk membuka dir tsb ScreenHunter_383-Aug.-29-12.00
  53. Terlihat di dalamnya ada VPN.zip yg sudah kita buat pada tahap sebelumnya. Download file ini ke PC anda dengan cara klik kanan > Download atau cukup drag and drop saja ke jendela Local Files yg ada disebelah kiri.
  54. Setelah ter-download pastikan isi dari VPN.zip adalah 4 buah file yg sudah kita buat tadi ScreenHunter_384-Aug.-29-12.01
  55. Ekstrak VPN.zip ke lokasi sementara, misalnya di Desktop
  56. Download software OpenVPN GUI ke PC anda dan segera instal
  57. Setelah terinstal di PC, masuklah ke folder C:\Program Files\OpenVPN\config
  58. Hapus semua file dan folder yg ada disitu
  59. Buatlah 2 buah folder baru, masing2 bernama HANTU UDP dan HANTU TCP atau nama folder sesuka anda
  60. Kembali ke lokasi dimana anda ekstrak VPN.zip sebelumnya, copy semua file minus HANTU-TCP.ovpn ke dalam folder HANTU UDP
  61. Copy semua file minus HANTU-UDP.ovpn ke dalam folder HANTU TCP.
  62. Bagaimana dengan akun untuk konek? User membutuhkan autentikasi username dan password agar bisa konek. Disini user openvpn hanyalah user atau akun Linux biasa. Kalo VPS ini udah anda setting untuk ssh tunnel dan sudah mempunya beberapa user, maka user tsb juga bisa konek ke OpenVPN ini dengan password yg sama. Intinya, pembuatan user bisa pake command paling basic ini di dalam VPS anda: useradd -s /bin/false nama_user atau bisa juga pake script auto-create seperti ini
  63. Kembali ke console VPS dan mari kita buat 1 user untuk percobaan konek OpenVPN
  64. Catat username dan passwordnya untuk konek. Jalankan dulu OpenVPN GUI yg sudah terinstal di pc (run as administrator), tunggu hingga icon OpenVPN GUI nongol di system tray sudut kanan bawah. Iconnya adalah logo bola dunia dan 2 pc yg layarnya berwarna merah [UPDATE: GUI versi terbaru logonya udah beda]
  65. Klik kanan pada icon tsb dan jika langkah sebelumnya sudah tepat maka akan ada 2 pilihan koneksi yaitu masing2 HANTU-TCP dan HANTU-UDP. Arahkan dg mouse ke salah satu nama koneksi tsb dan pilihlah “Connect”
  66. OpenVPN GUI akan segera menyambungkan anda dengan server, tetapi anda harus mengisi username dan password dulu agar bisa konek ScreenHunter_387-Aug.-29-13.47
  67. Klik OK untuk memulai koneksi ke server OpenVPN yg sudah diinstal pada seluruh langkah diatas. Status log akan terlihat saat connecting, dan icon akan berubah menjadi warna kuning. Bilamana sudah berwarna hijau artinya koneksi sukses ScreenHunter_390-Aug.-29-14.52
  68. Test dengan browsing ke cmyip.com, pastikan browser anda tidak sedang menggunakan proxy atau socks apapun. Jika anda melihat ip VPS anda nongkrong di layar monitor, maka selamat! Anda sudah sukses menginstal OpenVPN di VPS Debian dan menjalankannya di PC/laptop anda
  69. Bukti adanya OpenVPN yg sudah konek secara sistematis terlihat pada screenshot dibawah ini, cocokin tuh dg ip vps saya tertera pada server.conf, sama kan? 😀 ScreenHunter_389-Aug.-29-14.02
  70. Happy browsing, downloading and gaming! Pada pc anda, setelah OpenVPN GUI sukses koneksinya maka TIDAK diperlukan setingan apapun pada aplikasi apapun. Semua aplikasi yg anda jalankan sudah otomatis akan bekerja dibawah jalur VPN tsb.
  71. [OPTIONAL STEP] Apabila VPN tsb sudah anda rasa stabil, minus kendala, lancar dan anda puas menggunakannya, silahkan sewa VPS baru dan lakukan instalasi OpenVPN didalamnya kemudian jual-lah akun VPN ke masyarakat luas. Seperti saya contohkan ini. Trust me bro, pangsa pasar VPN lebih exist dibanding ssh lho 😀 , I’m sure you know why. Heheheh, dari jualan akun tsb anda bisa dapat profit untuk bayar tagihan server dan sisanya bisa untuk beli tiket pesawat jika anda ingin vacation nantinya. 😉

Well done! Selamat menikmati koneksi OpenVPN yg sudah anda setting sendiri. Sebagai catatan, tutorial yg saya tulis disini sekali lagi adalah live report dari apa yg saya kerjakan. Tiap urutan nomor pada proses diatas saya ketik berbarengan dengan ujicoba yg saya jalankan tahap demi tahap. Jadi disini saya bukan sekedar ngetik atau cuma copas 😀 ahahah, tapi menjalankan apa yg jadi topik sekaligus mendokumentasikannya kedalam sebuah postingan blog. 😀

Kedua jalur koneksi UDP dan TCP sudah saya test dan semua sukses. Apakah saya menemui kendala dalam menjalankan langkah nomor 1 – 67 diatas? Jawabnya adalah TIDAK. Semua lancar dan sekarang bisa langsung saya pake. Oleh karenanya, jika anda mengikuti tutorial ini dengan cermat, maka anda sewajarnya juga akan sukses konek untuk kali pertama setelah proses instalasi selesai!

Note:

  • Jika VPS anda adalah CentOS maka klik saja di sini
  • Jika anda pake Squid proxy seperti contoh di atas maka yg support hanyalah jalur TCP
  • Jika anda pake DigitalOcean atau VPS dengan virtualisasi KVM atau XEN maka command iptables yg dijalankan pada step 29 & 30 menggunakan interface eth0 bukan venet0. Cek untuk memastikan dg command ifconfig
  • File VPN.zip yg berisi config agar client bisa konek bukanlah sesuatu yg harus anda rahasiakan, justru harus bisa didapat oleh publik dengan mudah (misal jika anda jualan akun VPN) karena setelah memiliki file tsb, user harus mempunyai username dan password yg valid
  • Bagi client yg pake Windows 8, silahkan googling cara instal OpenVPN GUI karena denger2 sih ada sedikit trouble disitu tapi masih bisa diatasi kok.

Butuh bantuan? Silahkan gunakan…

Jasa instal OpenVPN Klik di sini!

Saya akan instalkan dan settingkan VPS anda menjadi server Openvpn dengan 2 jalur koneksi TCP dan UDP, saya buatkan config .ovpn untuk client anda dan bonus saya instalkan script autocreate dan autodel user yg akan memudahkan anda dalam manage user. Cocok bagi yg mau jualan akun Openvpn.

Terima kasih.

Kata kunci pencarian:
  • cara mengatasi openvpn server certificate verification failed
  • cara install openvpn di debian 7
  • cara install OpenVPN di debian
  • cara mendapatkan sertifikat openvpn
  • cara install openvpn di vps

Latest Comments

  1. Joel Tumampi September 1, 2014
  2. sudrun September 6, 2014
  3. ari September 13, 2014
    • admin September 13, 2014
  4. ari September 13, 2014
  5. ari September 13, 2014
    • admin September 13, 2014
  6. ari September 14, 2014
  7. ari September 14, 2014
    • admin September 15, 2014
  8. ari September 16, 2014
    • admin September 16, 2014
  9. ari September 16, 2014
    • admin September 16, 2014
    • admin September 16, 2014
  10. ari September 16, 2014
  11. ari September 16, 2014
    • admin September 16, 2014
      • admin September 16, 2014
  12. Mulwanto September 26, 2014
    • admin September 26, 2014
      • Mulwanto September 29, 2014
  13. asyhar October 21, 2014
    • admin October 21, 2014
  14. semo November 30, 2014
    • admin November 30, 2014
  15. semo November 30, 2014
    • admin December 2, 2014
  16. Aurainka December 2, 2014
    • admin December 2, 2014
      • Aurainka December 2, 2014
        • admin December 3, 2014
  17. diehad December 16, 2014
    • admin December 17, 2014
  18. zsharkleaf January 7, 2015
  19. Akun SSH Premium January 19, 2015
  20. Khaerul Afif February 10, 2015
    • admin February 10, 2015
  21. gosenk February 10, 2015
    • admin February 10, 2015
  22. yos February 22, 2015
    • admin February 22, 2015
  23. ari March 5, 2015
    • admin March 7, 2015
  24. ari March 8, 2015
  25. adi purwadi March 8, 2015
    • admin March 9, 2015
  26. edoarmand March 13, 2015
    • admin March 13, 2015
  27. Rizki March 17, 2015
  28. Joel Tumampi March 17, 2015
    • Joel Tumampi March 17, 2015
      • admin March 17, 2015
        • Joel Tumampi March 18, 2015
  29. akba March 17, 2015
    • admin September 25, 2015
  30. ari March 20, 2015
    • admin March 24, 2015
  31. Somad March 21, 2015
    • prima March 21, 2015
      • admin March 23, 2015
    • Joel Tumampi March 22, 2015
      • admin September 25, 2015
  32. prima March 21, 2015
    • admin March 23, 2015
  33. Benz March 22, 2015
  34. Benz March 22, 2015
    • admin March 23, 2015
  35. budiman March 23, 2015
    • admin March 23, 2015
  36. dede March 27, 2015
    • admin March 30, 2015
  37. ari March 28, 2015
    • admin September 25, 2015
  38. kevinapril April 2, 2015
    • admin April 2, 2015
  39. aul April 2, 2015
  40. Satria Aji Putra April 6, 2015
  41. Tonny Candra April 9, 2015
    • admin April 9, 2015
  42. zakaria April 9, 2015
  43. bahri May 8, 2015
    • admin September 25, 2015
  44. dedy May 10, 2015
    • admin May 12, 2015
  45. Erix May 17, 2015
    • admin May 18, 2015
  46. Iksan June 30, 2015
    • admin June 30, 2015
  47. Iksan July 25, 2015
  48. dani July 25, 2015
    • admin July 25, 2015
  49. Iksan July 26, 2015
    • admin September 25, 2015
  50. fireworm August 2, 2015
    • admin September 25, 2015
  51. one August 31, 2015
    • admin September 25, 2015
  52. brian September 2, 2015
    • admin September 10, 2015
  53. Nedy September 10, 2015
  54. Prameswara September 16, 2015
    • admin October 6, 2015
  55. Mulky October 3, 2015
    • admin October 6, 2015
  56. alfian April 27, 2016
    • admin April 27, 2016
  57. Suganda December 6, 2016
  58. Rindaman February 28, 2017
  59. Andika Ramadhani March 25, 2017
  60. Andrean Dwi March 27, 2017
  61. MAHUSIN June 7, 2017

Leave a Reply