Konfigurasi OpenVPN pada Debian Jessie (Part III)


Pada tulisan ini, akan dibahas Konfigurasi OpenVPN pada Debian Jessie di sisi client. Konfigurasi ini merujuk pada tulisan sebelumnya (Part I dan Part II).

Ini merupakan tahapan terakhir dalam mengkonfigurasi OpenVPN. Tulisan selanjutnya yang berkaitan dengan OpenVPN merupakan pembahasan yang mungkin berkaitan dengan fitur, konfigurasi OpenVPN pada sistem operasi lain, atau konfigurasi tambahan.

Konfigurasi OpenVPN client tidaklah jauh berbeda dengan OpenVPN server. Namun, sering ditemui bahwa konfigurasi OpenVPN client mempunyai ekstensi *.ovpn dan di dalamnya terdapat isi dari file-file enkripsi dan autentikasi.

1. Membuat Client Directory
Directory (folder) ini merupakan sebuah environment yang digunakan untuk pembuatan *.ovpn. Rubah permission menjadi 700 karena folder ini memuat file autentikasi.

# mkdir -p ~/client_configs/files
# chmod 700 ~/client_configs/files

2. Buat Konfigurasi
File dasar konfigurasi sudah disediakan dan dapat digunakan dengan sedikit modifikasi.

# cd ~/client_configs
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

# nano base.conf

Silahkan copy-paste script dibawah ini. Perhatikan tulisan berwarna merah.

#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/open-rsa/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \ <(echo -e '') \
  ${KEY_DIR}/ca.crt \ <(echo -e '\n') \
  ${KEY_DIR}/${1}.crt \ <(echo -e '\n') \
  ${KEY_DIR}/${1}.key \ <(echo -e '\n') \
  ${KEY_DIR}/ta.key \ <(echo -e '') \ > ${OUTPUT_DIR}/${1}.ovpn

  • ~/open-rsa/ merupakan nama folder yang dibuat saat pembuatan CA directory. Folder ini dibuat pada artikel sebelumnya
  • ~/client-configs/ adalah folder yang memuat semua file konfigurasi. Dibuat pada poin nomor 1
Buat agar script nya dapat dieksekusi:

# chmod 700 ~/client-configs/make_config.sh

3. Generate!
Jalankan script diikuti dengan common name yang sebelumnya dibuat pada artikel sebelumnya. Misalkan, common name yang saya buat adalah client1 maka perintah yang harus dijalankan adalah:

# ~/client-configs/make_config.sh client1

perintah tersebut akan menghasilkan file baru yang letaknya ada di ~/client-configs/files dengan nama client1.

4. Rubah konfigurasi
Pada dasarnya, seluruh konfigurasi pada OpenVPN server dan OpenVPN client harus sepadan. Oleh karena itu, sebelum digunakan ada baris yang harus dirubah terlebih dahulu. Buka file tersebut dan rubah bagian berikut:

# nano ~/client-configs/files/client1.ovpn
remote blackhiden.ga

client1 adalah nama dari file yang di-generate sebelumnya. blackhiden.ga merupakan alamat OpenVPN server. Sesuaikan dengan alamat server masing-masing. Alamat server bisa berupa domain ataupun IP address. Pastikan bahwa protokol yang digunakan sama dengan OpenVPN server.

proto udp

Selanjutnya, uncomment baris berikut:

user nobody
group nogroup

Seluruh file autentikasi sudah dimasukkan pada file .ovpn sehingga tidak perlu memanggilnya secara terpisah. Maka, beri tanda comment pada baris berikut:

#ca ca.crt
#cert client.crt
#key client.key
#tls-auth ta.key 0

Sesuaikan algoritma autentikasi pada OpenVPN server dan arah enkripsi TLS.

cipher AES-128-CBC
auth SHA1
key-direction 1

Simpan seluruh perubahan yang telah dibuat.

5. Jalankan!
Pindahkan konfigurasi tersebut ke PC/Smartphone yang akan menjadi OpenVPN client. Jangan lupa memasang aplikasi OpenVPN client. Untuk PC, silahkan download pada offcial web atau mirror x64/x86. Sedangkan smartphone bisa download OpenVPN Connect.

Selamat mencoba dan semoga bermanfaat.



_______________
reference(s):
How To Set Up an OpenVPN Server on Ubuntu.16.04.https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04.Diakses pada tanggal 03 September 2017

Tidak ada komentar:

Posting Komentar

Terima kasih telah berkunjung.

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...