Kita download terlebih dahulu source file dan paket rpm lzo yang disediakan oleh OpenVPN, melalui situs Magnet Hosting apabila anda melakukan instalasi di Server IIX di Data Center Indonesia.
view sourceprint?
1.cd /usr/src/
2.wget http://www.magnet-id.com/download/etc/openvpn/openvpn-2.0.9.tar.gz
3.wget http://www.magnet-id.com/download/etc/openvpn/lzo-1.08-4.rf.src.rpm

Instal paket yang dibutuhkan dengan menggunakan Yum Package Management;
view sourceprint?
1.yum install rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel

Buat Paket RPM dan Konfigurasi Default

Dalam contoh ini kita akan membuat sendiri paket RPM yang akan kita install dari source file yang disediakan;
view sourceprint?
1.rpmbuild –rebuild lzo-1.08-4.rf.src.rpm
2.rpm -Uvh /usr/src/redhat/RPMS/x86_64/lzo-*.rpm
3.rpmbuild -tb openvpn-2.0.9.tar.gz

Install OpenVPN menggunakan RPM yang sudah kita buat sebelumnya;
view sourceprint?
1.rpm -Uvh /usr/src/redhat/RPMS/x86_64/openvpn-2.0.9-1.x86_64.rpm

Kopi file configurasi dan script easy-rsa yang dibutuhkan untuk membuat SSL certificate dan key baik untuk server maupun untuk klien nantinya;
view sourceprint?
1.cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
2.cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/

Membuat Certificate dan Key untuk Server
view sourceprint?
1.cd /etc/openvpn/easy-rsa/

Edit variabel di dalam vars untuk memudahkan kita dalam proses pembuatan SSL certificate;
view sourceprint?
1.vi vars

Sesuaikan entry berikut (dibagian paling bawah);

export KEY_COUNTRY=ID
export KEY_PROVINCE="DKI Jakarta"
export KEY_CITY="Jakarta Timur"
export KEY_ORG=”Magnet Hosting”
export KEY_EMAIL=”hostmaster@magnet-id.com”

Jalankan perintah berikut;
view sourceprint?
1.. ./vars #Perhatikan, .(spasi).vars
2../clean-all #Akan mengosongkan direktori keys/

Generate SSL Certificate, semua certificate dan key akan berada di dalam direktori /etc/openvpn/easy-rsa/keys;
view sourceprint?
1../build-ca

Kemudian input data sesuai dengan konfigurasi kita, tekan enter untuk variabel yang sebelumnya sudah kita tentukan di file vars, dan sesuaikan Common Name dengan hostname server kita;

Generating a 1024 bit RSA private key
………………………++++++
…………………….++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [ID]:

State or Province Name (full name) [DKI Jakarta]:
Locality Name (eg, city) [Jakarta Timur]:
Organization Name (eg, company) [Magnet Hosting]:
Organizational Unit Name (eg, section) []:Technical
Common Name (eg, your name or your server’s hostname) []:vpn.magnet-id.com
Email Address [hostmaster@magnet-id.com]:

Kemudian kita akan membuat server key, sesuaikan ovpnserver dengan keinginan kita, juga cukup tekan enter untuk variabel yang sudah kita tentukan sebelumnya;
view sourceprint?
1../build-key-server ovpnserver

Generating a 1024 bit RSA private key
........................................++++++
.........................++++++
writing new private key to ‘ovpnserver.key'
--
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.', the field will be left blank.
--
State or Province Name (full name) [DKI Jakarta]:
Locality Name (eg, city) [Jakarta Timur]:
Organization Name (eg, company) [Magnet Hosting]:
Organizational Unit Name (eg, section) []:Technical
Common Name (eg, your name or your server’s hostname) []:vpn.magnet-id.com
Email Address [hostmaster@magnet-id.com]:

Please enter the following ‘extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName:PRINTABLE:'ID'
stateOrProvinceName:PRINTABLE:'Jakarta Timur'
localityName:PRINTABLE:'DKI Jakarta'
organizationName:PRINTABLE:'Magnet Hosting'
organizationalUnitName:PRINTABLE:'Technical'
commonName:PRINTABLE:'vpn.magnet-id.com'
emailAddress:IA5STRING:'hostmaster@magnet-id.com'
Certificate is to be certified until Apr 09 15:15:27 2019 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Generate Diffie Hellman;
view sourceprint?
1../build-dh

Tunggu sampai proses selesai, file certificate dan key kemudian kita kopi ke /etc/openvpn dimana file server.conf akan ditempatkan, path untuk key dan certificate tersebut nantinya harus disesuaikan dengan informasi yang kita masukkan di file konfigurasi;
view sourceprint?
1.cp keys/ca.crt ../
2.keys/dh1024.pem ../
3.keys/ovpnserver.key ../
4.keys/ovpnserver.crt ../

Konfigurasi OpenVPN Server

Edit file /etc/openvpn/server.conf sesuai dengan keinginan kita, sebagai permulaan silahkan lakukan perubahan pada baris-baris berikut; Sesuaikan konfigurasi push route, push route akan membuat table routing untuk klien yang terkoneksi dengan OpenVPN Server, dalam contoh ini kita ingin agar klien kita menambah routing untuk blok 10.10.10.0/24 ke IP Gateway OpenVPN Server.

local ip.address.listen.server # Tidak perlu dimasukkan kecuali hanya ingin listen di satu IP (Optional)
dev tap
;dev tun
ca ca.crt
cert ovpnserver.crt
key ovpnserver.key
server 10.10.11.0 255.255.255.0
push “route 10.10.10.0 255.255.255.0″

Konfigurasi blok IP Address pada direktif server akan menentukan blok IP Address di interface tap yang muncul kita OpenVPN Server dijalankan, dan muncul di sisi klien ketika terkoneksi.

Startup
view sourceprint?
1.service openvpn start
2.chkconfig openvpn on

Periksa interface tap;
view sourceprint?
1.ifconfig

Akan muncul entry seperti berikut;

tap0 Link encap:Ethernet HWaddr 8E:09:6A:2B:BE:04
inet addr:10.10.11.1 Bcast:10.15.16.255 Mask:255.255.255.0
inet6 addr: fe80::8c09:6aff:fe2b:be04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32130 errors:0 dropped:0 overruns:0 frame:0
TX packets:11338 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3256073 (3.1 MiB) TX bytes:2182701 (2.0 MiB)

view sourceprint?
1.netstat -al

Akan terlihat bahwa server kita sudah listen di port UDP 1194;

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
...
udp 0 0 vpn.magnet-id.com:openvpn *:*
...

Konfigurasi Klien (Windows)

Untuk linux dapat dilakukan secara langsung dengan melakukan instalasi OpenVPN seperti di atas, namun gunakan key dan certificate yang diinstall di server sebelumnya (dikopi). Dan gantikan file server.conf menjadi client.conf, sesuaikan direktif di dalamnya;

Download file installer OpenVPN untuk windows melalui http://www.magnet-id.com/download/etc/openvpn/openvpn-2.0.9-install.exe, setelah instalasi PC anda harus direstart terlebih dahulu agar driver interface tap dapat diimplementasikan.

Pada contoh ini kita tidak akan mengenerate key di sisi klien, melainkan di sisi server, untuk konfigurasi client akan menggunakan key dan certificate yang dikonfigurasi di server.

Buat direktori, misalnya di desktop dan beri nama openvpn-client, kopi file client.ovpn dari Program Files\OpenVPN\sample-config ke direktori tersebut dan buka dengan menggunakan text editor, atau buat sendiri file konfigurasi klien dengan ekstensi .ovpn dengan isi sebagai berikut;

client
dev tap
proto udp
remote ip.address.server.vpn 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpnhome.crt
key vpnhome.key
comp-lzo
verb 3

Perhatikan bahwa konfigurasi tersebut menggunakan ca.crt, vpnhome.crt dan vpnhome.key, ca.crt akan kita kopi dari server karena vpnhome crt dan key akan kita generate di server.

Gantikan vpnhome dengan keinginan anda, gunakan key dan cert yang berbeda untuk koneksi di server / user berbeda. Kembali ke server OpenVPN anda, lakukan perintah berikut;
view sourceprint?
1.cd /etc/openvpn/easy-rsa/
2.. ./vars
3../build-key vpnhome

Ikuti langkah yang dibutuhkan, vpnhome.crt dan vpnhome.key akan muncul di dalam direktori /etc/openvpn/easy-rsa/keys/. Kopi file ca.crt, vpnhome.crt dan vpnhome.key ke dalam direktori konfigurasi OpenVPN di klien menggunakan winscp, kemudian, untuk terkoneksi, silahkan klik kanan client.ovpn dan klik Start OpenVPN using this config file;

openvpnclient

Perhatikan bahwa akan terbuka window CMD yang memperlihatkan proses koneksi antara klien dan server;

openvpncon

Pastikan routing table dan ip address interface tap dengan menggunakan iconfig dan route print;

C:\>ipconfig
...
Ethernet adapter Local Area Connection 2:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.10.11.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :

C:\>route PRINT
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 1f d0 89 e4 df ...... Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
- Teefer2 Miniport
0x3 ...00 ff bb e4 30 68 ...... TAP-Win32 Adapter V8 - Teefer2 Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
...
10.10.11.0 255.255.255.0 10.10.11.1 10.10.11.1 30
10.10.11.3 255.255.255.255 127.0.0.1 127.0.0.1 30
10.255.255.255 255.255.255.255 10.10.11.3 10.10.11.3 30
...
===========================================================================
Persistent Routes:
None

Referensi

* Situs resmi OpenVPN http://www.openvpn.net
* http://www.throx.net/2008/04/13/openvpn-and-centos-5-installation-and-configuration-guide/

* « Instalasi Mod Security2 Pada Ubuntu
* Instalasi HyperVM untuk Xen VPS di Server Anda
Diposting oleh Hadi Yudhitia

0 komentar: