Install OpenVPN di Linux Debian Wheezy

4 Comments

Sesuai dengan salah satu janji saya sebelumnya ke seorang teman, kali ini saya akan membahas cara Install OpenVPN di Linux Debian Wheezy, bisa di server sendiri atau di vps sewaan, yang penting bukan punya orang tanpa ijin 😛

Pertama download OpenVPN di sini.

Ekstrak file openvpn-version.tar.gz kemudian jalankan ini di dalam foldernya:

./configure
make
sudo make install

Jika ada error seperti ini:
“configure: error: no acceptable C compiler found in $PATH”
Install compiler di Debian dengan cara:

sudo apt-get install build-essential

Sebelum mengulang perintah ./configure, biasanya ketika melakukan compile source selalu ada dependency yang dibutuhkan agar prosesnya bisa selesai. Untuk OpenVPN di Ubuntu diperlukan beberapa library yang harus diinstall, diantaranya:
1. sudo apt-get install libssl-dev
2. sudo apt-get install liblzo2-dev
3. sudo apt-get install libpam0g-dev

Setelah install library di atas lanjutkan ./configure kembali, kemudian make dan sudo make install.

Oke, OpenVPN telah terinstall di server.

Agar OpenVPN dapat berjalan ada beberapa hal yang kita perlukan, diantaranya:
  1. File konfigurasi server (server.conf)
  2. File konfigurasi klien (klien.conf)
  3. CA cert
  4. Private key dan Public key untuk server dan klien
Lanjut...

Di sisi server.

I. Pertama, bikin dulu file server.conf. contohnya dapat dilihat di sini. dibawah ini adalah file server.conf di server saya:
port 1194                            #listening port
proto udp                            #protokol yang digunakan
dev tun                              #ip tunneling
server 10.80.0.0 255.255.255.0       #ip subnet untuk server dan klien
ifconfig-pool-persist ipp.txt        #reconnect akan membuat ip klien tidak berubah
push "redirect-gateway"              #routing semua trafik data klien ke server
push "dhcp-option DNS 10.80.0.1"     #routing DNS klien ke server
client-to-client                     #antara klien satu dgn yang lain bisa berkomunikasi
duplicate-cn                         #satu public key bisa digunakan banyak klien
keepalive 10 120                     #ping tiap 10 detik sekali, maks 120 detik akan disconnect
cipher AES-128-CBC                   #enkripsi yang digunakan
comp-lzo                             #trafik data yang lewat akan dikompres
user nobody                          #drop privilege
group nogroup                        #drop privilege
persist-key                          #agar klien dapat reconnect setelah restart
persist-tun                          #agar klien dapat reconnect setelah restart
status openvpn-status.log            #log status openvpn server
log    openvpn.log                   #log openvpn server
verb 3                               #log level (verbose)
ca ca.crt                            #CA cert
cert ikons-server.crt                #Public key server
key ikons-server.key                 #Private key server
dh dh.pem                            #parameter Diffie-Helman
tls-auth ta.key 0                    #mengamankan koneksi openvpn dari dos dan flooding

simpan dengan nama file server.conf (atau terserah selera masing2)

II. Kedua, yang perlu dilakukan adalah membuat CA cert, Private dan Public key server.
Download dulu Easy RSA di sini. atau download langsung di terminal:

git clone https://github.com/OpenVPN/easy-rsa
buka saja folder /easy-rsa/easyrsa3/, di dalamnya ada file executable ./easyrsa
Setelah itu inisialisai PKI dengan CA cert-nya dengan cara:
./easyrsa init-pki
./easyrsa build-ca
masukkan password dan nama/domain server.
setelah selesai maka file ca.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/
buat parameter Diffie-Helman:
./easyrsa gen-dh
tunggu sampai selesai, file dh.pem dapat dilihat di folder /easy-rsa/easyrsa3/pki/
lalu buat Private key dan Public key server dengan cara:
./easyrsa build-server-full ikons-server nopass
perintah diatas menghilangkan password sehingga ketika server reboot maka openvpn dapat langsung berjalan.
masukkan password yang telah dimasukkan ketika membuat ca.crt diatas. 
file ikons-server.key dapat dilihat di folder /easy-rsa/easyrsa3/pki/private/
file ikons-server.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/issued/

buat file ta.key dengan cara:
openvpn --genkey --secret ta.key

Setelah itu setting ip forwarding  di server dengan cara:
nano /etc/sysctl.conf
dan ubah salah satu parameter didalamnya seperti berikut:
net.ipv4.ip_forward=1
kemudian lakukan:
sudo sysctl -p /etc/sysctl.conf
dan untuk koneksi di server yang sedang berjalan lakukan juga:
echo 1 > /proc/sys/net/ipv4/ip_forward

lakukan juga iptables terhadap koneksi yang sedang berjalan, lakukan satu persatu:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT   
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

masukkan iptables dan ip forwarding diatas ke dalam file rc.local agar ketika server reboot, iptables dapat langsung berjalan. caranya:
nano /etc/rc.local
 
#!/bin/sh -e
......

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT   
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

exit 0

kemudian agar DNS request para klien dapat dilakukan oleh server, maka harus diinstall DNSmasq di server.

apt-get install dnsmasq resolvconf
rubah file konfigurasinya dengan cara:
nano /etc/dnsmasq.conf
dan ubah parameter berikut:
listen-address=127.0.0.1,10.8.0.1
bind-interfaces
jangan lupa juga di server di setting DNS server yang digunakan di file /etc/network/interfaces.
nano /etc/network/interfaces
ubah menjadi seperti:
 
# The primary network interface
auto eth0
iface eth0 inet static
        address xxx.xxx.xxx.xxx
        netmask 255.255.255.0
        gateway xxx.xxx.xxx.xxx
        dns-nameservers 208.67.222.222 8.8.4.4 8.8.8.8

DNS yang saya gunakan adalah dari OpenDNS dan Google DNS.
oh iya masukkan juga DNSmasq di rc.local, caranya:

nano /etc/rc.local
masukkan ini persis diatas parameter exit 0:
/etc/init.d/dnsmasq restart

setting di sisi server telah selesai, reboot server.
copy semua file mulai dari server.conf, ca.crt, ikons-server.crt, ikons-server.key, dh.pem dan ta.key ke dalam satu folder, saran saya taruh saja di folder /etc/openvpn/.

jalankan openvpn di server dengan cara:
sudo openvpn /etc/openvpn/server.conf
setelah openvpn jalan, akan ada file openvpn.log, openvpn-status.log dan ipp.txt sesuai dengan file konfigurasi server.conf.

klo mau, masukkan juga ke file rc.local agar openvpn dapat berjalan setelah server reboot.

setelah ini lanjut ke sisi hatiku, eh maksud saya sisi klien.

Di sisi klien

I. Pertama, buat dulu file konfigurasinya, contohnya dapat dilihat di sini. berikut adalah file konfigurasi di pc saya sebagai klien:
client                   #bilang ke server, ini adalah klien       
dev tun                  #ip tunneling
proto udp                #protokol yang digunakan udp
remote ip-server 1194    #ganti ip-server dan port sesuai dengan ip/domain server
resolv-retry infinite    #agar klien selalu ping server
nobind                   #agar klien tidak binding ke port server
user nobody              #drop privilege klien
group nogroup            #drop privilege klien
persist-key              #agar koneksi tersambung kembali ketika reconnect
persist-tun              #agar koneksi tersambung kembali ketika reconnect 
tls-auth ta.key 1        #mengamankan koneksi openvpn dari dos dan flooding
cipher AES-128-CBC       #enkripsi yang digunakan koneksi openvpn
comp-lzo                 #kompresi data trafik 
ca ca.crt                #CA cert
cert ikons-klien01.crt   #public key klien
key ikons-klien01.key    #private key klien

simpan dengan nama klien.conf (atau terserah selera masing2).

II. Kedua,
buat Private key dan Public key untuk klien dengan cara:

./easyrsa build-client-full ikons-klien01 nopass
masukkan password sesuai dengan file ca.crt diatas.
setelah selesai file ikons-klien01.key dapat dilihat di folder /easy-rsa/easyrsa3/pki/private/
dan file ikons-klien01.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/issued/

setelah selesai copy file klien.conf, ca.crt, ikons-klien01.key, ikons-klien01.crt dan ta.key ke komputer/gadget klien.

biasanya saya menggunakan openvpn klien di OS Windows dan di hp android, sedangkan linux install dari source. semuanya bisa didapatkan di sini.

cara koneksi openvpn di linux:

sudo openvpn klien.conf

seperti ini hasilnya jika sudah terkoneksi:
OpenVPN koneksi klien

coba saja lihat ip publik anda, jika sudah berubah menjadi ip publik server OpenVPN berarti sudah berhasil.

semoga bermanfaat,

salam hangat.
iKONs

Categories: Uncategorized Tags: ,

Install DD-WRT ke Cisco LinkSys E4200 rev. 1.0

No Comments

Yup, sesuai judul kali ini saya akan berbagi pengalaman ganti firmware router wireless di rumah (Install DD-WRT ke Cisco LinkSys E4200). kebetulan saya memiliki Cisco Linksys E4200.

DD-WRT

Kenapa ganti? karena saya ingin mencoba fitur OpenVPN yang ada di DD-WRT (yang mau coba VPN bisa pm saya, siapkan GPG buat transfer key-nya)

Apa sih DD-WRT? menurut websitenya sih DD-WRT adalah firmware lisensi GPL untuk router wireless 802.11a/b/g/n yang menggunakan chipset Broadcom atau Atheros (pasti pada kenal buat yang pake Linux hehe). Silahkan dibaca bagi yang ingin tahu lebih lanjut mengenai DD-WRT disini.

Oke mari kita mulai…jangan lupa berdoa.

Pertamax

Sebelum kita mulai pastikan anda tahu segala resiko untuk melakukan hal ini, kalau saya sendiri memang ingin tahu bagaimana rasanya router wireless dipasang DD-WRT 😀

Periksa dulu apakah wireless router anda bisa di install DD-WRT, cek disini:
http://www.dd-wrt.com/site/support/router-database –> saya masukkan e4200 (tipe router)

Ternyata ada, dengan catatan harus hardware revision 1.0, liat router, dibolak-balik tidak ada tulisan rev. 1.0 atau versi 1.0. lakukan sedikit googling ternyata di forum tulisan Linksys E4200 adalah hardware rev. 1.0, yang versi 2.0 tulisannya Linksys E4200v2.

Keduax

Download firmware sesuai dengan yang dibutuhkan.

Aada beberapa pilihan mulai dari K26 NV60 big, mega, openvpn, usb_nas. perbedaan dari masing2 firmware dapat dilihat disini. walaupun untuk sementara hanya ingin mencoba OpenVPN tapi saya putuskan untuk download yang big karena fiturnya lengkap (untuk uji coba lainnya). filenya bernama dd-wrt.v24-21061_NEWD-2_K2.6_big-nv60k.bin dengan ukuran 7.51 MB.

Ketigax

Mulai flashing firmware.

PENTING! sebelum mulai flashing file K26 NV60 big, kita harus flashing initial file flash dengan nama dd-wrt.v24-21061_NEWD-2_K2.6_mini-e4200.bin, perhatikan ada tulisan mini pada file tersebut. Langkah2nya:

  1. cabut semua kabel dan disconnect semua koneksi wireless dari laptop dan gadgets.
  2. lakukan hard reset 30/30/30, caranya adalah pada saat router kondisi on tekan tombol reset (dengan pinset atau sesuatu yang agak runcing) selama 30 detik, jangan dilepas!, cabut kabel power dari router dan biarkan tombol reset ditekan selama 30 detik, jangan dilepas! pasang kembali kabel power dan tetap tahan tombol reset untuk 30 detik. Total selama 90 detik tombol reset tetap ditekan.
  3. pasang kabel LAN dari pc/laptop ke router, setting ip address dengan 192.168.1.8 atau berapa saja asal masih /24 dan bukan 192.168.1.1. jalankan browser dan buka alamat ip 192.168.1.1
  4. lakukan flash initial file (yang ada tulisan mini, dd-wrt.v24-21061_NEWD-2_K2.6_mini-e4200.bin) ke router, buka administration lalu pilih firmware upgrade dan upload file mini diatas, tunggu sampai selesai lalu tunggu lagi paling tidak selama 5 menit agar router dapat menulis data di nvramnya. ingat untuk menunggu!
  5. lakukan hard reset 30/30/30 lagi.
  6. tunggu paling tidak selama 3 menit. kemudian baru jalankan browser lagi dan buka ip 192.168.1.1, kalau tidak bisa coba refresh browser.
  7. lakukan flash firmware yang diinginkan, disini saya telah memilih firmware big atau dd-wrt.v24-21061_NEWD-2_K2.6_mega-nv60k.bin. lakukan persis seperti flash initial file di langkah diatas (no. 4 – 6)
  8. tada! sekarang router anda telah terinstall firmware DD-WRT, selamat menikmati…

Keempax

Mungkin kita ingin kembali ke firmware Cisco Linksys stock, naaah…i’m just kidding :p

Screenshots

Berikut adalah beberapa tampilan web interface router setelah diinstall firmware DD-WRT:

DD-WRT
Gambar 1
DD-WRT
Gambar 2
DD-WRT
Gambar 3

 

Gambar 4
Gambar 4

Catatan:

Saat ini 25 November 2013 firmware terakhir untuk router wireless Cisco Linksys E4200 adalah v24 PreSP2 Beta build 21061.

Selain DD-WRT ada beberapa firmware lain, seperti OpenWRT, Tomatoes, m0n0wall, pfSense dan Vyatta. Yang pernah saya coba adalah OpenWRT, DD-WRT dan Tomatoes, menurut saya paling mudah digunakan dan memiliki support banyak router wireless adalah DD-WRT.

NEXT, saya akan berbagi mengenai setting OpenVPN di DD-WRT, stay tuned…

Semoga bermanfaat,

iKONs

Sumber:

http://www.dd-wrt.com/wiki/index.php?title=Linksys_E4200

Categories: Uncategorized Tags: