Choose Your Language

19 January 2012

Cara membuat OpenVPN dengan Windows Server 2003/2008

Menggunakan internet Astinet / Idola

Kali ini kita akan membuat OpenVPN dengan windows server 2003/2008. Untuk itu kita akan membutuhkan 2 buah NIC / kartu jaringan sebagai WAN dan LAN dan koneksi speedy 1MB (Paket Game). Saya akan mencoba menggunakan device TAP bukan TUN seperti yang diambil dari sumbernya. Kita akan membutuhkan router Cisco yang support routing BGP misal seri 2600, router yang support BGP diperlukan karena bandwitdh terpecah jadi 2 yaitu international dan IIX (local Indonesia)

Menggunakan internet Speedy

Sebenarnya lebih mudah dengan menggunakan internet dedicated seperti Telkom Astinet/ Lintasarta Idola. Karena kita tidak perlu melakukan fort forwarding dari modem untuk ip server openvpn (lihat ## client1.ovpn ##) pada bagian remote. Untuk fort forwarding dari modem speedy lihat artikel saya di OpenVPN Linux. Kalau kita menggunakan Speedy dan network LAN kita masih satu network dengan modem speedy, misal network 192.168.1.0/24. Maka kita cukup menggunakan 1 buah NIC (kartu jaringan) saja. Ilustrasi dapat dilihat pada gambar Topologi OpenVPN Speedy. Untuk koneksi OpenVPN yang menggunakan internet dengan IP Dynamic (berubah-rubah/tidak tetap) akan dibahas di bagian paling bawah artikel ini.

Persyaratan

Diasumsikan kita menggunakan sebagai berikut:

OpenVPN Server

Sebagai server kita gunakan Windows 2000/2003/2008.

OpenVPN Clients

Sebagai client kita dapat gunakan Windows 2000/XP Professional, Windows  2000/2003 juga bisa digunakan.

Networking

OpenVPN server memakai UDP port 1194 untuk koneksi (anda dapat menggunakan port lain, tapi ini adalah port standar OpenVPN). Jika server dibelakang sebuah NAT router (misal speedy), maka kita butuh  address/port forwarding. Lihat artikel saya mengenai Linux-VPN
Lebih baik menggunakan IP static karena lebih stabil. Jika anda menggunakan IP address dinamis maka anda menggunakan jasa DNS dynamic untuk menyediakan sebuah hostname yang tetap.
Semua sistem yang digunakan harus menggunakan koneksi Internet yang tidak ada filternya, atau setidaknya mengijinkan koneksi UDP port 1194. Kita bisa saja menjalankan OpenVPN dengan koneksi yang lebih ketat (misal proxy server), tetapi itu adalah di luar dari artikel ini.


Names and addresses

Nama dan IP address yang digunakan dibawah ini adalah sebagai contoh (fiktif), sebaiknya anda rubah lagi disesuaikan dengan konfigurasi Anda sendiri.
  • Company Name: Acme Corp. (optional/pilihan saja, tidak harus dipakai)
  • Public Domain Name: acme.com (optional/pilihan saja, tidak harus dipakai)
  • Private (Windows) Domain Name: acme.com.local (optional/pilihan saja, tidak harus dipakai)
  • Server Hostname: server-vpn
  • LAN address: 192.168.0.0/24
  • Server public address: 1.2.3.4
  • Server private address: 192.168.0.1
  • Device Tap-32 VPN address: 10.8.0.0/24

Memakai domain hanya optional/pilihan saja, tidak harus dipakai. Berikut topology network OpenVPN :

OpenVPN Astinet (2 NIC)
OpenVPN Speedy (1 NIC)


Software


OpenVPN

Untuk software kita menggunakan paket OpenVPN GUI di Windows, karena ada kemudahan berupa icon di sistem tray sebagai pengatur aplikasi OpenVPN.
http://openvpn.se/download.html

Konfigurasi Server


Instalasi OpenVPN

OpenVPN GUI dapat diinstal dengan pilihan default/standar (certificate wizard tidak perlu diinstall). Ketika mendekati akhir instalasi, akan ada pertanyaan perihal penambahan TAP-Win32 virtual adapter yang belum di-signed/disahkan, kita pilih untuk tetap menginstall.
Namai adapters TAP-Win32 menjadi "TAP" untuk memudahkan identifikasi.

Konfigurasi OpenVPN

Buat file konfigurasi server.ovpn di folder config OpenVPN (c:\program files\openvpn\config\)

## server.ovpn ##
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
max-clients 50
persist-key
persist-tun
status openvpn-status.log
verb 3

Tulisan yang ditulis miring/italics silahkan dirubah menurut konfigurasi anda.
Pada contoh diatas maximal-clients diset menjadi, sehingga memungkinkan 50 klien untuk koneksi ke server secara bersama-sama/sekaligus.

Set up Certificate Authority (CA)

Kita membutuhkan Certificate Authority (CA) untuk sign(mengesahkan) client anda dan sertifikat server.
Script easy-rsa membuatnya hal ini menjadi mudah.

Pertama-tama kita harus inisialisi easy-rsa. Lakukan hal ini sekali saja, karena proses ini akan menghapus sertifikat, keys and settings yang ada. Masuk ke DOS prompt (Start-Run-ketik cmd- OK)

C:\Program Files\OpenVPN\easy-rsa] init-config

Kemudian edit vars.bat (dengan program Wordpad) dan rubah  setting "KEY_" di bagian bawah file.

set KEY_COUNTRY=ID
set KEY_PROVINCE=DKI Jakarta
set KEY_CITY=Jakarta Selatan
set KEY_ORG=PT JUJUR AMANAH
set KEY_EMAIL=hostmaster@jujuramanah.com

Terakhir buat folder keys dan CA.

C:\Program Files\OpenVPN\easy-rsa] vars
C:\Program Files\OpenVPN\easy-rsa] clean-all
C:\Program Files\OpenVPN\easy-rsa] build-ca

Anda akan diminta untuk memasukkan beberapa keterangan untuk sertifikat CA. Kebanyakan sudah mempunyai nilai default yang sudah kita masukkan sebelumnya di vars.bat, tapi kita harus memasukkan nilai untuk bagian  "Common Name".

Common Name (eg, your name or your server's hostname) []:Administrator

Keys dan sertifikat yang telah dibuat berada di dalam subfolder keys. File ca.crt (root certificate) harus dicopy ke  folder config (C:\Program Files\OpenVPN\config)

C:\Program Files\OpenVPN\easy-rsa] copy keys\ca.crt ..\config\

Penting: File Key (.key) sangat sensitif dan harus disimpan secara baik dan jangan dikirim lewat koneksi yang tidak aman. Key Certificate Authority (ca.key) sangatlah penting - jika ia hilang atau dirubah orang maka kita harus mengganti semua keys and sertifikat.

Set up server key and certificate

Jika CA sudah selesai dibuat, selanjutnya kita buat key and sertifikat untuk server.
Masuk ke DOS prompt lagi (Start-Run-ketik cmd- OK)

C:\Program Files\OpenVPN\easy-rsa] vars
C:\Program Files\OpenVPN\easy-rsa] build-key-server server

Tidak perlu menjalankan kembali vars.bat jika kita langsung membuat key server setelah membuat CA karena masih ada di memory (jika menjalankan vars lagi juga tidak apa-apa).

Ketika membuat sertifikat server, kita cukup menekan enter saja karena sudah kita masukkan sebelumnya di vars.bat, tapi pada bagian "Common Name" kita masukkan nama key server (disamakan dengan diatas).

Common Name (eg, your name or your server's hostname) []:server

Kosongkan saja pada bagian challenge password and optional company name.

Server kita juga harus membuat parameter Diffie Hellman .

C:\Program Files\OpenVPN\easy-rsa] build-dh

Mungkin membuat dh ini akan membutuhkan waktu agak lama ...
Terakhir copy key, sertifikat dan file DH ke folder config.

C:\Program Files\OpenVPN\easy-rsa] copy keys\ca.crt ..\config\
C:\Program Files\OpenVPN\easy-rsa] copy keys\server.crt ..\config\
C:\Program Files\OpenVPN\easy-rsa] copy keys\server.key ..\config\
C:\Program Files\OpenVPN\easy-rsa] copy keys\dh1024.pem ..\config\

Setup routing VPN


Routing pada windows server seharusnya di-enable dengan cara enable LAN routing pada bagian Routing and Remote Access service, akan tetapi setelah dicoba hal ini menyebabkan masalah dengan service OpenVPN jadi saya tidak menganjurkannya. Sebaiknya kita gunakan regedit untuk men-set key registery IPEnableRouter menjadi bernilai 1.

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value: IPEnableRouter
Type: REG_DWORD
Data: 0x00000001 (1)

Sentuhan Akhir


Kita akan membuat sebuah batch file bernama restartvpn.cmd pada folder config (dan desktop shortcut) untuk me-restart service OpenVPN jika macet/error.

net stop openvpnservice
net start openvpnservice

Untuk membuat service OpenVPN menyala secara otomatis pada saat masuk windows, lakukan cara berikut:

Jika ada, matikan tanda centang openvpn-gui pada tab Startup (start-run-msconfig) untuk menghindari dobel startup. Kemudian buat shorcut openvpn-gui.exe (di C:\Program Files\OpenVPN\bin) dan pindahkan ke dalam folder "Start->All Program->StartUp". Kemudian klik kanan pada shortcut yang baru saja kita buat, pada bagian target tambahkan --connect server.ovpn. Sehingga menjadi seperti ini "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect server.ovpn.  

Konfigurasi pada Klien (pc yang mau meremote ke server)


Install OpenVPN


Install OpenVPN GUI dengan pilihan standar.
Saya biasanya me-rename TAP-Win32 adapter (di bagian Network connections) menjadi "TAP". Hal ini untuk memudahkan identifikasi.

Configure OpenVPN

Buat file untuk configuration client di folder config OpenVPN pada pc klien (c:\program files\openvpn\config\).

## client1.ovpn ##
client
proto udp
dev tap
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Sesuaikan tulisan yang memakai font italics/tulisan miring dengan konfigurasi openvpn anda. .
Sebagai contoh kita asumsikan client bernama "client1".

Set up client key and certificate

Kita akan membuat key client dan sertifikat di server, hati-hati pada saat mentransfer file key client ke user. Untuk berjaga-jaga anda dapat membuat key di client dengan Certificate Signing Request (CSR) yang kemudian dapat ditransfer ke server untuk kemudian disahkan untuk membuat sertifikat, akan tetapi hal tersebut tidak dibahas disini.

Buat key client dan sertifikat pada server OpenVPN.
C:\Program Files\OpenVPN\easy] vars
C:\Program Files\OpenVPN\easy] build-key client1
 
Tips : Jangan sampai anda membuat nama yang sama, pada saat anda mengisi pada bagian Common Name. 
 
Kemudian copy key client dan sertifikat dan juga CA ke folder config di komputer client. Cara termudah ialah dengan mengcopy file ke USB flashdisk.

C:\Program Files\OpenVPN\easy-rsa] copy keys\client1.crt a:\
C:\Program Files\OpenVPN\easy-rsa] copy keys\client1.key a:\
C:\Program Files\OpenVPN\easy-rsa] copy keys\ca.crt a:\

Test

Klik kanan tray icon OpenVPN dan pilih "Connect". Kemudian akan terbuka jendela status yang menunjukkan status koneksi, dan jika semua berjalan baik maka jendela status akan tertutup sendiri dan icon akan berubah menjadi warna hijau. Jika tulisan "Connect" tidak ada maka kemungkinan server.ovpn tidak ada di folder \program files\openvpn\config atau mungkin extension salah misal server.openvpn.txt.

Untuk mengetest koneksi , coba ping 10.8.0.1 (device TAP server VPN IP), 192.168.0.1 (LAN IP address server), IP address PC yang diremote (misal 172.16.0.1), dan kemudian coba ping hostname.
c:\] ping 10.8.0.1
c:\] ping 192.168.0.1
c:\] ping 172.16.0.1
c:\] ping server-vpn 
 
TIPS : Buka file ipp.txt di server (c:\program files\openvpn\config\)untuk 
mengetahui user yang sudah terkoneksi dan ip yang didapat oleh user/klien.  
 
Tambahan untuk koneksi OpenVPN dengan IP Dynamis (berubah-rubah), saya sudah mencobanya dengan menggunakan router D-Link DIR-655 dan koneksi Biznet 8 MB. Pada intinya IP address dirubah menjadi nama domain. Ketika kita koneksi, kita memanggil nama domain bukan ip adress public. 

1. Masuk ke menu modem-router D-Link 655 pilih Tools-Dynamic DNS

Pilih Enable Dynamic DNS
Pilih Server Address : dlinkddns.com (Free)  
# Atau provider ddns gratis lain yaitu dyndns.org dan no-ip.com
Hostname : isi dengan nama yang anda daftarkan di https://www.dlinkddns.com
Username or key : (masukkan dengan username dari https://www.dlinkddns.com)
Password : (masukkan dengan password dari https://www.dlinkddns.com)

2. Pada menu modem-router D-Link 655, pilih Advanced - Advanced Network

Kemudian beri centang Enable WAN Ping Respond
# Supaya IP Address Public kita dapat di ping dari luar

3. Pada menu modem-router D-Link 655, pilih Virtual Server

Isikan, Name : OpenVPN, Public Port 1194, Protocol Both, Schedule Always
IP Address : (masukkan ip address private server openvpn kita), misal 192.168.1.19

4. Pada komputer client (yang meremote) masuk C:/Program Files/OpenVPN/config

Buka file misal namanya client.opvn (yg berakhiran ovpn)
Pada bagian remote, ganti (ip address server) 1194 
Menjadi remote (nama domain yang kita daftar di https://www.dlinkddns.com)
misal: remote ptsenanggembira.dlinkddns.com 1194

Khusus untuk pengguna Windows 7 64 bit, kita dapat menggunakan http://openvpn.net/release/openvpn-2.1_rc20-install.exe Jika masih tidak bisa konek ke LAN kemungkinan karena routing nya gagal coba tambah routing manual di command prompt misal
route add 192.168.0.0 mask 255.255.255.0 10.8.0.1 -p

Berikut Daftar Error dan Solusi: (Klik kanan OpenVPN, pilih View Log)

TLS Error : TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error : TLS handshake failed  
  • Cek firewall di windows anda dan matikan (off)
  • Belum adanya port forwarding pada NAT Gateway (modem) untuk port tcp/udp 1194 ke alamat internal network kita.
  • Alamat ip address (ip public) yang dituju salah (pada file client.ovpn)
  • Jika anda menggunakan proto udp, coba rubah menjadi proto tcp
All TAP-Win32 adapters on this system are currently in use
  • Kemungkinan adapter TAP-Win32 disabled. Coba cek dengan cara masuk ke folder "Network Connections" , klik kanan pada  adapter  TAP-Win32  dan pilih "Enable". Kemudian coba OpenVPN sekali lagi. 
There are no TAP-Win32 adapters on this system.  You should be able to create a TAP-Win32 adapter by going to Start - All Programs - OpenVPN
 - Add a new TAP-Win32 virtual ethernet adapter.
  • Kemungkinan adapter TAP-Win32 tidak terpasang. Coba install ulang OpenVPN.
 
Incoming plaintext error openvpn, handshake failed
  • Kemungkinan anda salah menuliskan ip tujuan/server di client.ovpn 
  • Kemungkinan anda salah mengcopy sertifikat ca dan key.  
 
Unable to connect because your certificate is not yet valid. 
Check that your system time is correct 
  • Kemungkinan kesalahan pada jam di windows anda, coba cek tgl-bulan-tahun.  
 
The requested operation requires elevation. (klien Windows 7) 
ERROR: Windows route add command failed 
  • File openvpn-gui.exe yang berada di C:\Program Files\OpenVPN\bin harus 
    dijalankan sebagai administrator (Klik kanan - run as Administrator) 

Error: Warning: route gateway is not reachable on any active network adapters (Windows 7)
  • Klik kanan icon OpenVPN pilih Edit Config , tambahkan 2 tulisan berikut di baris paling bawah kemudian save:
  1. route-delay 5
  2. route-method exe
    Read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
    
    
    • Kemungkinan salah input tujuan ip di bagian client.ovpn
    • Kemungkinan firewall windows /antivirus masih aktif 

    Txt_db error number 2 (hal ini terjadi pada saat kita membuat cert client)
    • Hal ini mengindikansikan adanya duplikasi pada index.txt, ketika kita membuat key untuk client jangan sampai kita membuat nama yang sama pada bagian common name. Thanks Hasmudin for your tips.
      write UDPv4: No Route to Host (WSAEHOSTUNREACH) (code=10065)
      - Kesalahan pada saat penambahan routing untuk masuk ke LAN
      - gunakan perintah misal route add 192.168.0.0 mask 255.255.255.0 10.8.0.1 -p    
      
     
     Sumber : http://www.runpcrun.com/howtoopenvpn
              http://support.real-time.com/open-source/openvpn/index.html 
              https://forums.openvpn.net/topic7901.html    
              http://my.anuson.com/knowledgebase/61/OpenVPN-error-Warning-route-gateway-is-not-reachable-on-any-active-network-adapters.html
    https://forums.openvpn.net/topic1478.html

    Software
    Billigt Flyg London