Membuat VPN Server SSL di Centos 5

September 15, 2008

Hehehehhe kali ini tutorial aku tentang VPN Server. Sebelumnya aku minta maaf karena tutorial ini aku ambil dari blog orang juga :D hehhehehe… di sini aku hanya nyalurin inspirasi yang aku dapat dari internet :)

Sedikit tentang VPN:


Apa itu VPN …?

VPN adalah singkatan dari virtual private network, yaitu jaringan pribadi (bukan untuk akses umum) yang menggunakan medium nonpribadi (misalnya internet) untuk menghubungkan antar remote-site secara aman. Perlu penerapan teknologi tertentu agar walaupun menggunakan medium yang umum, tetapi traffic (lalu lintas) antar remote-site tidak dapat disadap dengan mudah, juga tidak memungkinkan pihak lain untuk menyusupkan traffic yang tidak semestinya ke dalam remote-site.
Menurut IETF, Internet Engineering Task Force, VPN is an emulation of [a] private Wide Area Network(WAN) using shared or public IP facilities, such as the Internet or private IP backbones.VPN merupakan suatu bentuk private internet yang melalui public network (internet), dengan menekankan pada keamanan data dan akses global melalui internet. Hubungan ini dibangun melalui suatu tunnel (terowongan) virtual antara 2 node. Gambar berikut ini menjelaskan implementasi VPN pada suatu network.

vpn server

vpn server

Penjelasan gambar diatas:
Pada gambar diatas VPN Client merequest ke server, kemudian oleh server di cek apakah sertifikat pada client benar atau tidak, jika benar maka VPN Server akan meneruskan ke client. Dan client akan mendapatkan ip tunneling dari server.
Di tutorial ini aku akan menjelaskan tentang pembuatan VPN Server di Centos 5 dengan menggunakan software openvpn. Aku sengaja menggunakan openvpn, karena proses pembuatannya tidak sulit dan kekuatan untuk enkripsi data nya juga bagus.

Langkah-langkah membuat openvpn :
1. Download source nya dari http://openvpn.org (download dari source saja, karena dilengkapi dengan script-script untuk generate certificate, agar lebih mudah).

  • @server #mkdir /home/chuli/download
  • @server #cd /home/chuli/download
  • @server #wget http://openvpn.net/release/openvpn-2.0.9.tar.gz

2. Pastikan juga paket OpenVPN dari binary RPM package dengan dependenci dibawah ini sudah terinstall, jika belum Anda install terlebih dahulu.

  • openssl
  • lzo
  • pam
  • openssl-devel
  • lzo-devel
  • pam-devel

Untuk Mengecek anda dapat menggunakan command

  • @server #rpm –qa

Untuk Menginstall anda dapat menggunakan command

  • @server #yum install <nama package>

3. Install OpenVPN dengan source, VPN server openvpn-version.tar.gz. Untuk versi VPN aku menggunakan OpenVPN 2.0.5 i686-pc-linux [SSL] [LZO] [EPOLL] built on Feb 9 2008 Developed by James Yonan Copyright (C) 2002-2005 OpenVPN Solutions LLC info@openvpn.net
Extract file openvpn dengan

  • @server #tar -xzvf openvpn-[version].tar.gz

Kemudian masuk ke directory openvpn-version, kemudian jalankan perintah:

  • @server #./configure
  • @server #make
  • @server #make install

4. Anda buat directory openvpn di /usr/share/ setelah itu anda copykan source easy-rsa ke /usr/share/openvpn/ agar lebih mudah untuk maintenance. Setelah selesai make dan make install, masuk ke direktori source easy-rsa, jalankan perintah ini.

  • @server #cp –R /home/chuli/download/openvpn-2.0.9/easy-rsa /usr/share/openvpn
  • @server #cd /usr/share/openvpn/easy-rsa
  • @server #export D=/usr/share/openvpn/easy-rsa
  • @server #export KEY_CONFIG=$D/openssl.cnf
  • @server #export KEY_DIR=$D/keys
  • @server #export KEY_SIZE=1024
  • @server #export KEY_COUNTRY=ID
  • @server #export KEY_PROVINCE=”DKI Jakarta”
  • @server #export KEY_CITY=”Jakarta Selatan”
  • @server #export KEY_ORG=”[nama_pt]“
  • @server #export KEY_EMAIL=”catnuxer@gmail.com”
  • @server #export KEY_COMMON=”[namalengkap/FQDN_host_server_vpn]“

5. Setelah itu copy openssl.cnf dari directory easy-rsa ke /etc/openvpn.
6. Jalankan script ”./clean-all” dari directory “easy-rsa” yang ada di /usr/share/openvpn/easy-rsa/
7. Jalankan “./build-ca” dari directory “easy-rsa” yang ada di /usr/share/openvpn/easy-rsa/
8. Jalankan “./build-key-server” untuk membuat key pada VPN Server.
9. Jalankan “./build-key chuli” chuli adalah nama sertifikat client yang akan di generate. Anda bisa membuat setifikat untuk client sesuai dengan kebutuhan Anda.
10. Jalankan “./build-dh” waktu menjalankan perintah ini, bisa sangat lama sekali, tergantung komputer dan panjang byte dari key.
11. Setelah itu Anda buat konfigurasi openvpn untuk server.
@server #vi /etc/openvpn/server.config

12. Contoh konfigurasi server.config
sample-config-files/server.config

# Port VPN server
port 1194

# TCP atau UDP server
;proto tcp
proto udp

# Device “dev tun” yang akan membuat route IP tunnel
;dev tap
dev tun

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key)
# This file should be kept secret
/usr/share/openvpn/easy-rsa/keys/ca ca.crt
/usr/share/openvpn/easy-rsa/keys/cert server.crt
/usr/share/openvpn/easy-rsa/keys/key server.key

# Openssl yang digunakan dh1024.pem
dh dh1024.pem

# Konfigurasi server dan VPN subnet untuk VPN Client
server 10.8.0.0 255.255.255.0

# Virtual IP Address dengan nama ipp.txt
ifconfig-pool-persist ipp.txt

# Waktu yang dibutuhkan untuk sent back paket
keepalive 10 120

# Enable compression pada VPN link.
comp-lzo

#Option persit
persist-key
persist-tun

# Output status file koneksi VPN (log status)
status openvpn-status.log

# Set log file verbosity

verb 3
Untuk lebih detail anda bisa melihat di site
http://openvpn.net/index.php/documentation/howto.html#server

13. Kemudian Anda perlu mengcopy ca.crt, chuli.crt, chuli.key. Dari hasil yang telah anda generate tadi. Setelah itu untuk settingan VPN client sebagai berikut. Untuk client aku menggunakan windows XP.
14. Contoh konfigurasi client.ovpn di client Anda (pada konfigurasi ini client menggunakan Windows XP).

sample-config-files/client.ovpn

# Spesifik sebagai client sebagai petunjuk dari server
client

# Device “dev tun” yang akan membuat route IP tunnel
;dev tap
dev tun

# TCP atau UDP server
;proto tcp
proto udp

# Hostname/IP dan port pada server
# ”my-server-1” bisa diganti dengan IP Address
# contoh: remote 202.154.x.x 1194
remote my-server-1 1194
;remote my-server-2 1194

# Jangka waktu yang tak terbatas untuk resolve hostname pada VPN
resolv-retry infinite

# Beberapa Client tidak membutuhkan bind untuk
# specific lokal port number VPN
# jadi anda bisa set “nobind”
nobind

# Option persit
persist-key
persist-tun

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key
ca C:\\key\\ca.crt
cert C:\\key\\client.crt
key C:\\key\\client.key

# Enable compression pada VPN link
comp-lzo

# Set log file verbosity
verb 3
Untuk lebih detail anda bisa melihat di site
http://openvpn.net/index.php/documentation/howto.html#client

15. Untuk start openvpn, misalnya: file server.config anda ada di /etc/openvpn/.

  • @server #openvpn –-config /etc/openvpn/server.config

Jika berhasil maka di server anda akan ada ip tunnel nya. Cek dengan menggunakan ifconfig

  • @server #ifconfig
    tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    inet addr:10.9.0.1 P-t-P:10.9.0.2 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:357626 errors:0 dropped:0 overruns:0 frame:0
    TX packets:349093 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:100
    RX bytes:33126505 (31.5 MiB) TX bytes:146677718 (139.8 MiB)

Sekian dulu dari tutorial aku ini, mudah-mudahan Anda yang membacanya dapat mengerjakan dengan sukses. Selamat mencoba :)

Entry Filed under: Uncategorized. .

5 Comments Add your own

  • 1. apaajha  |  November 18, 2008 at 6:01 am

    tak bookmark om..!!

    Reply
  • 2. dheche  |  November 25, 2008 at 8:16 pm

    chul, kenapa gak “yum install openvpn” ajah ? (gak usah pusing dg dependencies pulak)

    trus kalo mau start ya tinggal seperti biasa (service openvpn start / /etc/init.d/openvpn start)

    *ada yg gampang kok nyari yg susah*

    Reply
  • 3. catnuxer  |  November 26, 2008 at 2:56 am

    to apaajha:

    Yo rap sak karepmu ^_^ huehehhee…… di save page as yo ora opo” kok, ehh piye kbr mu saiki??

    to om DC:

    wahhhh… di kunjungi ma sensei nih… hehehhe…
    makasih om atas kunjungan nya
    iyahh om, blon aku update lagi, klo skrng sich juga udah langsung pkek yum install aja

    hiihihhiii ^_^

    thank kyu om….

    Reply
  • 4. togum  |  June 30, 2009 at 7:02 am

    bos..
    klo di client itu ngk ada koneksi pake kabel ato wireless kan?
    hanya klo ada sertifikatnya terus jalankan openvpn client langsung bisa konek ya?

    Reply
    • 5. catnuxer  |  July 2, 2009 at 11:22 am

      @togum :

      Maksudnya ..? yah asal client konek ke internet aja, kalau ada sertifikat tapi gak ada koneksi internet yah sama aja gak bisa :D

      Reply

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


 

September 2008
M T W T F S S
« Jul   Oct »
1234567
891011121314
15161718192021
22232425262728
2930  

Blogroll

Pages

Archives

Cpanel

Blog Stats