Magnet Hosting

Instalasi OpenVPN Server di CentOS 5.2 64 bit

OpenVPN merupakan solusi SSL VPN yang bersifat open source dan memiliki fitur lengkap. Alternatif yang sangat patut untuk dicoba apabila anda ingin mengimplementasikan Virtual Private Networking dengan aman dan sederhana.

openvpnlogoPada tulisan berikut kita akan melakukan instalasi melalui pembuatan custom paket rpm dari source yang disediakan oleh OpenVPN serta membuat konfigurasi server VPN dengan moda bridge (TAP) dan melakukan koneksi VPN dari desktop Windows yang kita gunakan sebagai workstation.

Pastikan bahwa server yang anda ingin gunakan mendukung interface TAP, apabila VPS, pastikan hal ini ke penyedia jasa VPS yang anda gunakan.

Download File dan Install Paket yang dibutuhkan

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.

cd /usr/src/
wget http://www.magnet-id.com/download/etc/openvpn/openvpn-2.0.9.tar.gz
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;

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;

rpmbuild –rebuild lzo-1.08-4.rf.src.rpm
rpm -Uvh /usr/src/redhat/RPMS/x86_64/lzo-*.rpm
rpmbuild -tb openvpn-2.0.9.tar.gz

Install OpenVPN menggunakan RPM yang sudah kita buat sebelumnya;

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;

cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/

Membuat Certificate dan Key untuk Server

cd /etc/openvpn/easy-rsa/

Edit variabel di dalam vars untuk memudahkan kita dalam proses pembuatan SSL certificate;

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=”[email protected]

Jalankan perintah berikut;

. ./vars #Perhatikan, .(spasi).vars
./clean-all #Akan mengosongkan direktori keys/

Generate SSL Certificate, semua certificate dan key akan berada di dalam direktori /etc/openvpn/easy-rsa/keys;

./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 [[email protected]]:

Kemudian kita akan membuat server key, sesuaikan ovpnserver dengan keinginan kita, juga cukup tekan enter untuk variabel yang sudah kita tentukan sebelumnya;

./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 [[email protected]]:
Please enter the following ‘extra' attributes
to be sent with your certificate request
A challenge password []:<enter your password here>
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:'[email protected]'
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;

./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;

cp keys/ca.crt ../
keys/dh1024.pem ../
keys/ovpnserver.key ../
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

service openvpn start
chkconfig openvpn on

Periksa interface tap;

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)
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;

cd /etc/openvpn/easy-rsa/
. ./vars
./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

Pencarian

Knowledge Base

Tanya Jawab

Artikel Terbaru

Tag Cloud