Topology Jaringan OpenVPN |
Kali ini kita akan membahas cara membuat koneksi VPN dari kantor pusat (Head Office) ke cabang (Branch) dan rumah dengan menggunakan OpenVPN Linux Ubuntu. Sebagai koneksi internetnya saya menggunakan speedy paket game 1 MB karena memiliki ip address static (tidak berubah-rubah). Untuk membuatnya kita memerlukan 2 buah pc sebagai server di kantor pusat dan klien di kantor cabang. PC di HO dan cabang tersebut memerlukan 2 buah NIC (kartu jaringan) karena fungsinya meneruskan paket dari network yang berbeda ke LAN kita/cabang atau dengan kata lain mirip dengan firewall yang mempunyai 2 buah NIC pula.
Pertama-tama kita harus enable IP Forwarding:
nano
/etc/sysctl.conf
hilangkan tanda # di
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
# Konfigurasi Server OpenVPN 1.Install OS Ubuntu pada PC di PC Kantor Pusat. Saya memakai Ubuntu 9.04 Jaunty sebagai servernya. (Pada saat saya implementasi menggunakan Ubuntu 9.04 Jaunty saya pernah 2x mengalami masalah, setelah diselidiki ternyata device TAP yang ada hilang. Untuk itu saya menggantinya dengan Ubuntu Server 10 non GUI, masalah selesai)
2.Tentukan IP address untuk NIC LAN misal 10.10.10.250 dan tentukan IP address untuk NIC WAN misal 192.168.1.2 dengan cara masuk ke menu System-Preferences-Network Connections atau dengan merubahnya dengan perintah nano /etc/network/interfaces. Sedangkan di modem speedy nya kita telah mengeset LAN IP Addressnya menjadi 192.168.1.1. Untuk IP Address modem speedy biarkan apa adanya karena yg kita perlukan hanya mengubah LAN IP Adress saja di modem tersebut.
3.Tambahkan ip address 192.168.1.2 dan mac addressnya sebagai IP client di modem speedy kita.
4.Install openvpn dengan perintah sudo apt-get install openvpn
5.Rubah konfigurasi file vars dengan perintah nano /usr/share/doc/openvpn/examples/easy-rsa/2.0/vars
yang dirubah di file tersebut cukup pada bagian ini saja, biarkan setting lainnya pada keadaan default:
export KEY_COUNTRY=”ID“
export KEY_PROVINCE=”JKT“
export KEY_CITY=”JAKSEL“
export KEY_ORG=”SCD“
export KEY_EMAIL=”indra_pd@yahoo.com“
6. Masih di folder /usr/share/doc/openvpn/examples/easy-rsa/2.0/ masukkan perintah source ./vars
(perintah ini maksudnya untuk menggunakan file vars sebagai default variabel untuk proses selanjutnya)
7. Hapus seluruh konfigurasi dan key yang ada dengan perintah: ./clean-all
Perintah ./clean-all ini sama dengan perintah rm -rf /etc/openvpn/easy-rsa/2.0/keys
Catatan : Hati-hati dengan perintah ./clean-all ini karena akan menghapus semua keys yg ada sebelumnya
8. Membuat Certificate Authority (CA) dengan perintah ./build-ca
Ada 4 file yang terbentuk setelah proses ini yaitu:
1. ca.crt
2. ca.key
3. index.txt
4. serial
Hilangnya salah satu file tersebut diatas dapat mengakibatkan error pada saat kita membuat key client
9. Membuat key untuk server openvpn dengan perintah :
./build-key-server server
10. Membuat key untuk client openvpn dengan perintah :
./build-key bandung (buat key untuk kantor cabang Bandung)
./build-key managerIT (buat key untuk manager IT yang ingin mengakses pc di kantor dari rumah/jalan)
11. Membuat Diffie-Hellman key (dh-key) dengan perintah : ./build-dh
12. Meng-copy seluruh key yang ada folder keys (didalam folder 2.0) yang telah dihasilkan ke folder etc/openvpn dengan perintah: cp -fR keys/* /etc/openvpn/keys/
13. Meng-copy file server.conf.gz didalam folder ke dalam folder /etc/openvpn dengan perintah :
cd /usr/share/doc/openvpn/examples/sample-config-files
cp server.conf.gz /etc/openvpn
14. Masuk ke folder /etc/openvpn dan extract file server.conf.gz dengan perintah:
cd /etc/openvpn
gunzip server.conf.gz
15. Edit konfigurasi file server.conf dengan perintah : nano server.conf
port 1194
proto udp
dev tap0
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
#untuk menanyakan username dan password ketika login
#username dan password dibuat dengan menggunakan perintah sudo adduser
plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/pam.d/login
#reneg-sec 720 berarti untuk 24 jam
reneg-sec 720
ifconfig-pool-persist ipp.txt
#push route agar client dapat mencapai network di belakang server openvpn
push "route 10.10.10.0 255.255.255.0"
client-to-client
keepalive 10120
comp-lzo
max-client 100
user nobody
grup nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
mute 20
# Konfigurasi Di Client (Windows XP, Vista, 7)
1. Download OpenVPN GUI (openvpn 2.1.4) dari http://openvpn.net/index.php/open-source/downloads.html dan kemudian install.
2. Copy file managerIT.key, managerIT.crt, dan ca.crt yang ada di server openvpn ke C:\Program Files\OpenVpn\Config\Keys (kalau belum ada folder keys buat dulu)
3. Edit file client.ovpn di dalam folder c:\Program Files\Openvpn\config\ dengan isi sebagai berikut:
client
dev tap
proto udp
remote (isi dengan ip address speedy server openvpn anda tanpa tanda kurung) 1194
resolv-retry infinite
nobind
persist-key
persist-tun
#Pada saat koneksi ke server, akan muncul tampilan username dan password yg terdaftar di server
auth-user-pass
ca keys/ca.crt
cert keys/managerIT.crt
key keys/managerIT.key
comp-lzo
verb 3
ns-cert-type server
auth-nocache
4. klik kanan di icon openvpn (di pojok kanan bawah) kemudian connect
jika sudah terkoneksi maka gambar network openvpn akan berwarna hijau
5. pada pc di rumah : masuk ke start - run - ketik cmd - enter. Ketik route add (masukkan network LAN kantor anda dan network masknya) 10.8.0.1. Misal route add 10.10.10.0 mask 255.255.255.0 10.8.0.1
Yang berarti tambahkan network 10.10.10.0 dengan netmask 255.255.255.0 melalui ip address 10.8.0.1
6. Buat TAP-Win32 adapter caranya Start - All Programs - OpenVPN - Add a new TAP-Win32 virtual ethernet adapter.
7. PC di kantor (PC IT Manager) juga harus dibuat routing ke server openvpn :
route add 10.8.0.0 mask 255.255.0.0 (isi dengan nic di openvpn server yang konek ke LAN kita)
misal: route add 10.8.0.0 mask 255.255.0.0 10.10.10.250.
Atau bisa juga menambahkan routingnya di router yang berfungsi sbg default gateway di kantor.
8 Gunakan perintah ping dan tracert untuk troubleshooting koneksi openvpn.
Tips: Jika anda menemukan error seperti ini pada saat klik kanan Connect "TLS key negotiation failed" maka kemungkinan hal ini dikarenakan oleh setting pada modem yang dipakai misal Aztech / TP-Link, dimana Port Forwarding (DNAT) pada modem Aztech / TP-Link untuk port 1194 (OpenVPN) tersebut belum dibuka untuk meneruskan packet data dari modem ke server OpenVPN yang berada di belakang modem. Baca disini untuk solusi modem Aztech dan TP-Link.
1. Install OS Ubuntu pada PC di PC Kantor Cabang. Saya memakai Ubuntu 9.04 Jaunty sebagai servernya.
2.Tentukan IP address untuk NIC LAN misal 10.20.20.250 dan tentukan IP address untuk NIC WAN misal 192.168.10.2 dengan cara masuk ke menu System-Preferences-Network Connections atau dengan merubahnya dengan perintah nano /etc/network/interfaces. Sedangkan di modem speedy nya kita telah mengeset LAN IP Addressnya menjadi 192.168.10.1. Untuk IP Address modem speedy biarkan apa adanya karena yg kita perlukan hanya mengubah LAN IP Adress saja di modem tersebut.
3.Tambahkan ip address 192.168.10.2 dan mac addressnya sebagai IP client di modem speedy kita.
4.Install openvpn dengan perintah sudo apt-get install openvpn
5. Copy bandung.key, bandung.crt dan ca.crt dari server openvpn di jakarta ke folder /etc/openvpn
6. Edit konfigurasi file client.conf dengan perintah : nano client.conf
client
dev tap
proto udp
remote (isi dengan ip address speedy server openvpn anda tanpa tanda kurung) 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca keys/ca.crt
cert keys/bandung.crt
key keys/bandung.key
auth-user-pass
comp-lzo
verb 3
ns-cert-type server
auth-nocache
7. Membuat koneksi ke LAN cabang Jakarta pada server openvpn cabang Bandung:
route add 10.10.10.250 mask 255.255.255.0 10.8.0.1
Atau kalau ingin membuat semua LAN Bandung konek ke LAN Jakarta buat routing di router Bandung yang mengarah ke LAN Jakarta.
8. Gunakan perintah ping dan tracert untuk troubleshooting koneksi openvpn.
NB: Untuk menambahkan autentikasi username dan password pada saat user ingin koneksi ke HO maka dapat ditambahkan sebagai berikut:
Pada file server.conf tambahkan tulisan berikut:
Pada file client.ovpn dapat ditambahkan tulisan berikut : auth-user-pass
Kemudian tambahkan user baru pada server openvpn:
adduser (misal budi)
OpenVPN User Authentication |
NB: Untuk menambahkan autentikasi username dan password pada saat user ingin koneksi ke HO maka dapat ditambahkan sebagai berikut:
Pada file server.conf tambahkan tulisan berikut:
plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/pam.d/login
client-cert-not-required
username-as-common-name
Pada file client.ovpn dapat ditambahkan tulisan berikut : auth-user-pass
Kemudian tambahkan user baru pada server openvpn:
adduser (misal budi)
Dan set password untuk budi dengan perintah : passwd budi
Silahkan login dengan username budi dan password yang benar untuk koneksi dari client openvpn
-----------------------------------------------------------------------------------------------
Silahkan login dengan username budi dan password yang benar untuk koneksi dari client openvpn
-----------------------------------------------------------------------------------------------
Terima kasih untuk http://lqman.wordpress.com/2010/06/02/koneksi-vpn-dengan-openvpn/ yang telah membantu saya untuk dokumentasi koneksi openvpn ini.
Referensi lain : http://opensource.telkomspeedy.com/wiki/index.php/Instalasi_OpenVPN