Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Latar Belakang.
Yang kemudian muncul ide bagaimana membuat VPN yang bisa diakses dari mana saja untuk
bisa mendapatkan routing sehingga bisa menjalankan aplikasi semacam Breezeconfig tersebut.
OpenVPN.
Setelah membaca-baca sekian setting VPN yang pas buat saya, akhirnya saya memutuskan untuk
mengimplementasi VPN dengan OpenVPN. Alasannya, karena OpenVPN mendukung
penggunaan VPN di belakang NAT. Mungkin di luar sana masih banyak implementasi VPN
yang lainnya yang bisa berjalan di belakang NAT, hanya saja saya memang memilih yang satu
ini.
Asumsi.
• Server VPN menggunakan Linux CentOS 5.x. Dan tentu saja OpenVPN bisa berjalan di
distro lain. Hanya saja setupnya mungkin agak sedikit berbeda. Sedangkan client VPN
adalah laptop dengan OS Windows XP.
• Per instalasi di tulisan ini, versi OpenVPN yang saya gunakan adalah versi 2.0.9.
Sedangkan untuk client saya menggunakan OpenVPN209 GUI 1.0.3.
• Untuk kompresi data yang dibutuhkan OpenVPN, diperlukan software algoritma LZO
(Lempel-Ziv-Oberhumer). Per instalasi ini saya menggunakan versi 2.0.0. Cara
instalasinya cukup mudah seperti yang akan dipaparkan di bawah.
• Interface network yang digunakan oleh OpenVPN adalah TUN/TAP. Pada dasarnya, di
setiap distro terbaru, driver untuk dua interface ini sudah diikutsertakan dalam distro
secara default. Tetapi jika ingin mencoba menginstall sendiri dalam distro-distro yang
"tidak umum", maka source bisa didownload di http://vtun.sourceforge.net/tun/.
Instalasi.
INSTALASI SERVER
root# cd /usr/local/src
root# cd /usr/local/src/lzo-2.0.0
root# cd /usr/local/src/openvpn-2.0.9
Sampai pada tahap ini, seharusnya semua berjalan lancar. Pada awal instalasi saya mengalami
gagal kompilasi dikarenakan ternyata belum ada package gcc-c++. Periksa kembali keberadaan
compiler pada mesin server. Jika tidak ada masalah, yang berikutnya adalah membuat
konfigurasi OpenVPN untuk bisa menggunakan X509 certificate untuk membuat Certificate
Authority yang kemudian nanti akan digunakan untuk membuat server dan client certificate.
Terlebih dahulu kita buat direktori keys di dalam direktori /usr/local/src/openvpn-2.0.9/easy-rsa.
Dan di dalam direktori keys buat dua file lagi dengan nama index.txt dan serial.
root# cd /usr/local/src/openvpn-2.0.9/easy-rsa/
export KEY_COUNTRY=
export KEY_PROVINCE=
export KEY_CITY=
export KEY_ORG=
export KEY_EMAIL=
export KEY_PROVINCE=Jateng
export KEY_CITY=Semarang
export KEY_ORG="VPN-Test" --> bebas diisi, tapi dalam contoh ini kita gunakan parameter
seperti di samping.
Selanjutnya kita akan membuat diffie-hellman key yang akan digunakan untuk enkripsi,
autentikasi dan key exchange. Proses ini akan memakan waktu beberapa saat tergantung berapa
bit enkripsi yang digunakan. Standardnya kita akan menggunakan 1024 bit enkripsi. Jika ingin
menggunakan enkripsi yang lebih aman lagi bisa menggunakan enkripsi 2048. Bahkan jika kita
cukup bersabar dalam proses ini, kita bisa menggunakan enkripsi 4098 bit.
root# cd /usr/local/src/openvpn-2.0.9/easy-rsa
root# ./build-dh
root# ./build-ca
Proses di atas akan menghasilkan file ca.crt, ca.key , dan file df1024.pem.
Pada saat proses perintah ./buil-ca kita akan diminta untuk mengisikan beberapa parameter
seperti di bawah ini:
.++++++
...............................++++++
-----
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
-----
Jika kita lihat, parameter defaultnya sama persis dengan yang sudah kita edit di dalam file
/usr/local/src/openvpn/easy-rsa/vars. Setelah langkah-langkah di atas, sekarang kia bisa
membuat certificate/key pair. Yang pertama akan kita buat adalah certificate untuk server yang
kita beri nama VPN-Server: Oh, ya, sampai titik ini kita belum meninggalkan direktori
/usr/local/src/openvpn-2.0.9/easy-rsa/. Jadi pastikan bahwa kita masih berada di direktori
tersebut dengan perintah pwd. Jika belum, ganti segera ke direktori tersebut.
...........++++++
..................++++++
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
-----
Signature ok
stateOrProvinceName :PRINTABLE:'Jateng'
localityName :PRINTABLE:'Semarang'
organizationName :PRINTABLE:'VPN-TEST'
commonName :PRINTABLE:'VPN-Server'
emailAddress :IA5STRING:'user@domain.com'
Sedangkan untuk membuat certificate/key pair untuk client, menggunakan tool berbeda, misal
kita beri nama dengan VPN-Client:
...........++++++
..................++++++
-----
There are quite a few fields but you can leave some blank
-----
Signature ok
countryName :PRINTABLE:'ID'
stateOrProvinceName :PRINTABLE:'Jateng'
localityName :PRINTABLE:'Semarang'
organizationName :PRINTABLE:'VPN-Test'
commonName :PRINTABLE:'VPN-Client'
emailAddress :IA5STRING:'user@domain.com'
Pada pembuatan dua key di atas, kita perhatikan pada bagian commonName, di sini kita bisa
berikan dua nama yang berbeda agar server bisa mengenali client yang mengautentikasi diri ke
server. Jadi di sini kita menggunakan dua nama berbeda untuk server dan client. Sampai di sini
kita sudah membuat semua key yang kita butuhkan untuk keperluan instalasi VPN. Lalu pindah
semua key yang dibutuhkan ke direktori baru yang akan kita buat untuk mempermudah
manajemen file.
dev tap
tls-server
mode server
max-clients 20
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/VPN-Server.crt
key /etc/openvpn/keys/VPN-Server.key
dh /etc/openvpn/keys/dh1024.pem
Pada konfigurasi di atas, ip address untuk tunnel VPN di sisi server adalah 10.4.0.1, sedangkan
untuk client akan dialokasikan sebanyak 20 ip address mulai range 10.4.0.100 sampai dengan
10.4.0.120. Lalu client mengambil setting routing ke network 10.0.0.40/24 (network wireless -
lihat gambar bagan di awal) sehingga clientbisa mengakses semua device di range ip address
10.0.40.0/24 melalui VPN server 11.22.33.44. Setelah itu jalankan daemon server OpenVPN
agar berjalan di background process.
Seperti yang disebutkan di awal, untuk client saya menggunakan laptop dengan OS Windows
XP. Untuk instalasi OpenVPN209 GUI 1.0.3 cukup mudah. Cukup dengan mendownload file
http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe.
Setelah selesai instal program OpenVPN tersebut, download beberapa file yang dibutuhkan yang
berada di server ke dalam direktori C:\Program Files\OpenVPN\config. File-file tersebut
adalah:
• /usr/local/src/openvpn-2.0.9/easy-rsa/keys/VPN-Client.crt
• /usr/local/src/openvpn-2.0.9/easy-rsa/keys/VPN-Client.key
• /usr/local/src/openvpn-2.0.9/easy-rsa/keys/ca.crt
• /usr/local/src/openvpn-2.0.9/easy-rsa/keys/dh1024.pem
tls-client
pull
float
dev tap
resolv-retry infinite
nobind
dh "C:\\Program Files\\OpenVPN\\dh1024.pem"
ca "C:\\Program Files\\OpenVPN\\ca.crt"
11.22.33.44 pada konfigurasi di atas adalah ip address server VPN (lihat kembali bagan pada
gambar di awal).
tls-client mendeklrasikan bahwa client ini akan mengautentikasi dengan menggunakan TLS.
pull konfigurasi ini akan mengambil semua konfigurasi yang dideklarasikan di server untuk
client dengan opsi push.
dev tap di sini mendeklarasikan interface tunneling yang akan digunakan yaitu TAP.
resolv-retry parameter ini digunakan jika OpenVPN tidak berhasil meresolve nama domain,
maka akan melakukan request ulang dalam sekian detik sesuai konfigurasinya. Pada konfigurasi
ini kita setting untuk tidak terbatas dengan parameter infinite.
nobind memungkinkan client untuk menggunakan sembarang port (hanya untuk client).
Sebenarnya masih banyak parameter untuk konfigurasi client, tetapi nanti akan saya bahas
kapan-kapan jika ada waktu luang.
Jalankan OpenVPN GUI dengan klick Start -> All Programs -> OpenVPN -> OpenVPN GUI :
Pada icon tray akan muncul icon OpenVPN seperti ini:
Lalu klik kanan pada icon tersebut dan pilih menu Connect, Jika berhasil, icon akan berubah
berwarna hijau:
Sampai di sini jika tidak ada masalah, berarti instalasi server/client OpenVPN berhasil. Dan dari
laptop saya bisa mengakses semua device yang ada di belakang server VPN seperti pada gambar
bagan di awal. Untuk melihat hasilnya, kita bisa mengetikkan perintah ipconfig di console
Windows XP untuk melihat interface TAP:
di sini nampak interface TAP mendapatkan ip address 10.4.0.100 yang diperoleh dari server.
Lalu kita coba ping ip address server untuk koneksi VPN:
Dan jika kita jalankan perintah route print pada console Windows XP, kita akan memperoleh
routing table baru ke network 10.0.40.0/24 melalui gateway 10.4.0.1.
SELAMAT MENCOBA!
Reff: