[Share] Setup OpenVPN di DD-WRT
#1
[Image: selection_037.png]
Seperti janji saya di post sebelumnya untuk membahas bagaimana cara setup OpenVPN di DD-WRT.

Mungkin perlu sedikit dibahas apa itu VPN dan mengapa memilih untuk menggunakan OpenVPN.

VPN
Virtual Private Network (VPN) memungkinkan kita untuk mengakses jaringan internal melalui internet secara aman (terenkripsi/encrypted). biasanya digunakan oleh para admin untuk melakukan remote terhadap server atau perangkat jaringan internal karena secara logik berada di jaringan internal maka tidak dapat dilakukan remote seperti SSH secara langsung. tetapi dengan meluasnya penggunaan komputer untuk melakukan suatu pekerjaan maka saat ini VPN digunakan oleh para pekerja yang mobile atau sering disebut "road warrior". karena sifatnya yang terenkripsi, jika kita menggunakan VPN untuk akses internet maka koneksi kita akan tidak bisa dilihat isinya, hal ini menyebabkan koneksi kita akan bebas sensor dan biasanya dimanfaatkan untuk bebas billing #eh

OpenVPN
VPN saat ini terdiri dari beberapa jenis protokol, diantaranya IPSec (Internet Protocol Security), SSL/TLS VPN, Datagram TLS, Point-to-Point Tunnel Protocol (PPTP), SSH (OpenSSH) dsb.

OpenVPN menggunakan SSL/TLS VPN untuk sesi otentikasinya dan protokol IPSec ESP untuk mengamankan tunnel transportnya via UDP.

Sebelum kita lanjutkan membahas hal teknisnya sebaiknya mulai langsung praktek saja setting OpenVPN di DD-WRT,

Setting OpenVPN di DD-WRT (Router/Server Side)
Disini akan saya bahas beberapa macam setting OpenVPN di DD-WRT mulai dengan static key dan TLS, untuk lebih jelas mengenai perbedaannya dapat dilihat disini.

Selanjutnya download dulu OpenVPN disini. Gunakan OS yang paling nyaman digunakan.

Aktifkan OpenVPN di DD-WRT dengan mengakses services => VPN => OpenVPN Server/Daemon => enabled

Oke, kita mulai dari yang pertama dulu:
1. Static Key
Untuk mencoba OpenVPN dengan mudah bisa dengan menggunakan disini. untuk lebih detailnya, pertama, lakukan generate static-key dengan cara:

Code:
openvpn --genkey --secret static.key

lihat isi file static.key, isinya seperti ini:

Code:
ikons@pirasi ~ $ cat static.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
34c5f1dc5aafcbd9f14a90f32defbcd0
f518b40de4cc594ef71166370feebf09
6eb390a2e55bc401becc000c7004ee51
ca203267f54d448917ddd0465955ff2b
2091c3896d049a1b2bfb79927bcba4a8
8ef1f064097638aa140dc546526815fe
de5b2bcdb62790f6cb17415d6b9e4c98
e43e466258eb4687ef1c177c911aa65f
a4eacd6a07003b1a17985cbb4bcd2e0e
51f3569cfbb1aa7adc155f28ae1800ef
70ea1a39dac0e118f153a7b8e9069391
12781b1c63f3110a73d6f8dd8fa1ff87
8ddf5cb11a7045bca75c02f628fbb5cc
34aafc50abccdbc37be7daeb24a45f66
958df405971f11ea954d28c53c0d74aa
26e3ab575ec766527e990f35c874bc68
-----END OpenVPN Static key V1-----

Masukkan static key diatas ke kolom static key OpenVPN DD-WRT,
[Image: selection_043.png]

Perhatikan pada gambar diatas, masukkan Static Key mulai dari "-----BEGIN OpenVPN Static key V1-----" sampai dengan "-----END OpenVPN Static key V1-----"

Kemudian konfigurasi OpenVPN DD-WRT seperti berikut:
[Image: selection_044.png]

Keterangan:

Karena menggunakan "Static Key" hanya dapat digunakan untuk satu klien saja maka pilihan "Allow Client to Client" dan "Allow duplicate cn" di setting disable.

Pilihan "Redirect default Gateway" di setting enable jika kita akan menggunakan OpenVPN untuk mengakses internet, jika hanya untuk mengakses jaringan lokal (LAN) maka setting menjadi disable (VPN untuk akses jaringan intranet).

Pilih server mode Router (TUN) agar lebih mudah diatur dengan Iptables dan kita tidak perlu melakukan konfigurasi atau instalasi driver untuk Bridges (TAP)

Encryption cipher dengan memilih Blowfish CBC maka koneksi akan lebih cepat daripada AES-256 CBC, tetapi dari sisi keamanan lebih kuat AES-256 CBC.

TLS Cipher untuk sementara pilih "none" karena kita ingin segera menggunakan OpenVPN tanpa konfigurasi yang cukup rumit. *akan kita gunakan pada saat mode TLS.

Catatan: untuk dapat mengakses internet pada mode enable maka kita harus menambah rule di Iptables seperti berikut,
Code:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vlan2 -j SNAT --to-source $(nvram get wan_ipaddr)

Sesuaikan ip pada -s dengan network yang telah disetting (pada contoh diatas ip 10.10.10.0/24)

Untuk setting pada klien silahkan lihat bagian <strong>Client Side </strong>dibawah.

2. TLS (menggunakan SSL/TLS + certificates untuk authentication dan key exchange)
Kelebihan mode ini adalah dari sisi keamanan dan jumlah klien yang dapat terhubung.

Mode ini juga dapat disebut dengan Public Key Infrastructure (PKI). Terminologi dari PKI dapat dipahami dengan cukup mudah disini. untuk membuat PKI, kita menggunakan easy-rsa dan saya lebih prefer membuatnya di OS Linux.

Lanjut saja, download easy-rsa disini atau gunakan Git Clone. ekstrak dan buka folder /easyrsa3/

Pertama kita lakukan inisialisasi PKI dengan cara:

Code:
./easyrsa init-pki

akan muncul tampilan seperti berikut:
[Image: selection_046.png]

selanjutnya kita akan membuat CA (ca.crt):

Code:
./easyrsa build-ca

pada saat membuat CA kita akan ditanya pass-phrase PEM, gunakan password yang bagus (panjang dan kompleks) agar aman. setelah itu kita akan ditanya "Common Name (eg: your user, host, or server name) [Easy-RSA CA]:", kosongi saja jika tidak ingin diberi nama, kalau saya sih tetap menggunakan nama ikonspirasi Big Grin

jika berhasil maka file ca.crt akan disimpan di folder pki (/home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/ca.crt).

Setelah membuat CA maka kita perlu membuat key pair untuk server:

Code:
./easyrsa build-server-full ikons
[Image: selection_048.png]

masukkan pass-phrase PEM sesuai keinginan. sedangkan pass-phrase untuk ca.key masukkan sesuai dengan yang di init-pki sebelumnya.

key pairnya disimpan di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/private/<strong>ikons.key</strong> dan /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/issued/<strong>ikons.crt</strong>

untuk merubah kekuatan kunci RSA menjadi 4096 bit atau merubah jangka waktu expiry keys maka kita perlu melakukan perubahan pada file openssl-1.0.cnf dengan cara membuat file vars, sudah ada contohnya pada file vars.example, tinggal diubah menjadi vars saja dan lakukan perubahan pada isinya sesuai keinginan.

kemudian kita harus membuat Diffie Helman (DH) key dengan cara:

Code:
./easyrsa gen-dh

hasilnya akan tampak seperti gambar berikut:
[Image: selection_049.png]

file dh.pem akan disimpan di folder /pki/

setelah semua selesai maka kita akan memiliki satu set file PKI untuk server mulai dari:
  • ca.crt di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/ca.crt
  • dh.pem di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/dh.pem
  • ca.key di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/private/ca.key
  • ikons.key di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/private/ikons.key
  • ikons.crt di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/issued/ikons.crt

Buka masing-masing dari file tersebut diatas dan masukkan ke dalam kolom seperti pada gambar berikut:
[Image: selection_050b.png]

Dari gambar diatas, urutannya adalah sebagai berikut:

masukkan ikons.crt ke dalam kolom "Public Server Cert"

masukkan ca.crt ke dalam kolom "CA Cert"

masukkan ikons.key ke dalam "Private Server Key"

dan masukkan dh.pem ke dalam "DH PEM"

Untuk meningkatkan keamanan dari OpenVPN maka perlu dibuat file TLS Auth dengan cara:

Code:
openvpn --genkey --secret ta.key

masukkan isi dari file ta.key ke dalam kolom "TLS Auth Key"
[Image: selection_051b.png]

Karena ini merupakan setting OpenVPN dengan menggunakan TLS maka ada perubahan pada setting OpenVPN DD-WRT-nya, perhatikan gambar dibawah dengan gambar pada Static Key diatas:
[Image: selection_052.png]

Encryption Cipher diubah menjadi AES-256 CBC

Hash Algorithm menjadi SHA512

TLS Cipher menjadi AES-256 SHA

"Allow Client to Client" dan "Allow duplicate cn" menjadi enable, hal ini karena pada mode TLS bisa digunakan untuk banyak klien.

Setelah selesai langkah-langkah diatas maka sekarang saatnya membuat key pair untuk klien:

Code:
./easyrsa build-client-full ikons1 nopass

nama ikons1 adalah klien 1, untuk membuat klien 2,3,4 dst tinggal dinamakan sesuai keinginan.
"nopass" agar key ini tidak membutuhkan password untuk koneksi, untuk lebih amannya memang perlu dibuat password tetapi kali ini saya ingin yang simpel saja.

file key pairnya disimpan di folder /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/private/ikons1.key dan /home/ikons/OpenVPN/easy-rsa/easyrsa3/pki/issued/ikons1.crt

Siapkan file ca.crt, ikons1.key, ikons1.crt dan ta.key dan lanjut ke langkah dibawah.

Setting OpenVPN di Komputer/Gadget Klien (Client Side)
Pada langkah ini akan dibahas cara untuk melakukan koneksi VPN dari klien ke server.

Caranya cukup mudah, buat file berekstensi .ovpn (misal: ikons.ovpn) dengan isi sesuai konfigurasi OpenVPN pada server. kemudian install aplikasi klien sesuai dengan platform yang akan digunakan, mulai dari:
  • pada OS Windows, download dan install OpenVPN klien disini. taruh file .ovpn dan file keys di folder CTonguerogram FilesOpenVPNconfig
  • pada OS Linux biasanya sudah terinstall OpenVPN sehingga tinggal jalankan file .ovpn dengan perintah:
    Code:
    openvpn --config ikons.ovpn
  • pada gadget (OS Android) silahkan download langsung di Google Play Store disini.
  • untuk gadget iOS harus di-jail-break terlebih dahulu dan install GuizmOVPN, lebih jelasnya dapat dilihat disini. sedangkan gadget lainnya (Blackberry, Windows, Symbian dsb) saya belum pernah mencoba mencarinya.

Static Key
Code:
remote ip-public-anda/domain-name port #contoh: 203.222.321.110 1194
dev tun #samakan dengan konfigurasi server
ifconfig 10.10.10.2 10.10.10.1 #ip 10.10.10.2 adalah klien dan 10.10.10.1 adalah server

secret C:Program FilesOpenVPNconfigstatic.key #sesuaikan dengan lokasi folder dimana file static.key disimpan

pada Android, "secret" harus ditulis langsung pada file .ovpn karena permasalahan pada setting permission folder sehingga file static.key tidak dapat dibaca oleh applikasi OpenVPN.
contohnya:

Code:
remote ikonspirasi.info 1194
dev tun
ifconfig 10.10.10.2 10.10.10.1

-----BEGIN OpenVPN Static key V1-----
34c5f1dc5aafcbd9f14a90f32defbcd0
f518b40de4cc594ef71166370feebf09
6eb390a2e55bc401becc000c7004ee51
ca203267f54d448917ddd0465955ff2b
2091c3896d049a1b2bfb79927bcba4a8
8ef1f064097638aa140dc546526815fe
de5b2bcdb62790f6cb17415d6b9e4c98
e43e466258eb4687ef1c177c911aa65f
a4eacd6a07003b1a17985cbb4bcd2e0e
51f3569cfbb1aa7adc155f28ae1800ef
70ea1a39dac0e118f153a7b8e9069391
12781b1c63f3110a73d6f8dd8fa1ff87
8ddf5cb11a7045bca75c02f628fbb5cc
34aafc50abccdbc37be7daeb24a45f66
958df405971f11ea954d28c53c0d74aa
26e3ab575ec766527e990f35c874bc68
-----END OpenVPN Static key V1-----

TLS (menggunakan SSL/TLS + certificates untuk authentication dan key exchange

Sudah siap file ca.crt, ikons1.key, ikons1.crt dan ta.key?

masukkan ke file ikons.ovpn seperti berikut:

Code:
client
dev tun
proto udp
remote ip-publik/domain port  #contoh: 111.222.333.444 1194
resolv-retry infinite
nobind
cipher AES-256-CBC
auth SHA512
auth-nocache
persist-key
persist-tun
tls-auth ta.key 1
comp-lzo

<ca>
isi dengan ca.crt
</ca>

<cert>
isi dengan ikons.crt
</cert>

<key>
isi dengan ikons.key
</key>

<tls-auth>
isi dengan ta.key
</tls-auth>

Untuk OS Windows, jalankan OpenVPN as Administrator, klik kanan pada icon OpenVPN di kanan bawah dan pilih file .ovpn yang telah dimasukkan ke folder config

Jika berhasil akan muncul seperti di gambar berikut:
[Image: capture-openvpn.png]

Sedangkan untuk Android setelah install aplikasi OpenVPN maka import file .ovpn yang telah disimpan di dalam memory card. setelah itu tinggal klik Connect.
[Image: screenshot_2013-12-29-03-34-12.png]

Setelah terkoneksi maka tinggal coba browsing internet dan cek alamat IP, seharusnya alamat IP nya adalah alamat IP Publik Router.
[Image: screenshot_2013-12-29-03-35-10.png]

Jika ada pertanyaan silahkan taruh di bawah, buat yg mau coba OpenVPN ini silahkan kirim kunci publik GPG anda ke email saya (lihat di halaman About Me).

Semoga bermanfaat.

Salam,

iKONs

#2
mantapp neh

bisa diterapin di vps ga ne om ?

#3
(01-10-2014, 08:40 AM)sarnobroken Wrote: mantapp neh

bisa diterapin di vps ga ne om ?

bisa, nanti gw buatin yg utk vps, tapi sama persis kok, bedanya cm di server bikin file server.conf klo di DD-WRT tinggal masukin ke kolom-kolomnya service OpenVPN aja.

#4
(01-10-2014, 08:49 AM)iKONspirasi Wrote:
(01-10-2014, 08:40 AM)sarnobroken Wrote: mantapp neh

bisa diterapin di vps ga ne om ?

bisa, nanti gw buatin yg utk vps, tapi sama persis kok, bedanya cm di server bikin file server.conf klo di DD-WRT tinggal masukin ke kolom-kolomnya service OpenVPN aja.

kemarin nyoba bikin tapi gagal terus om di vps,, terus coba pake softheter tapi gag run di linux ,, ane tunggu tutor nya






Users browsing this thread: 2 Guest(s)