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
7 comments:
trima kasih kembali bro... :D
artikelnya sangat baik.. saya pemula di vpn, pernah mencoba membuat vpn (dgn mikrotik) untuk mengakses data pembukuan di toko yg mysqlnya ditaruh di ubuntu server.
Kalau tidak keberatan, bisa memberi pencerahan gak ya mas.? Saat ini saya masih bekerja di bank. Ingin membuat VPN, agar saya bisa menggunakan AKSES INTRANET bank tempat saya bekerja, misalkan akses web BI.
Permasalahannya adalah IP intranet yang digunakan (termasuk IP gatewaynya) juga merupakan IP Publik (setelah saya trace route).
Jika modem lsg dial dari mikrotik (agar ip address bisa sy dial dari luar).. ip intranet tabrakan dengan ip dari internet (akibatnya routing dikantor kacau.. Jaringan sistem banknya dan ATM tidak bisa bekerja. (dugaan saya mungkin akibat gateway intranetnya merupakan ip publik juga).
Mohon sekali dapat memberikan pencerahan.. terima kasih sebelumnya... untuk artikel yang detail di atas, dan sangat-sangat banyak terima kasih atas pencerahannnya :-)
Mas Roi, kalau saya boleh tahu topologinya seperti apa ya ? Saya belum kebayang network di tempat mas seperti apa. Kirim lewat japri aja, Insya Allah kalau saya bisa saya nanti saya bantu. Lewat YM saja juga boleh.
Mantep nih ttutorial nya om,,
Klo boleh kasih saran,,
pada settingan file auth.cfg itu di sesuaikan dengan kode area (Cabang)masing2,,
mestinya di setting di mikrotik aja gan, jadi user gak perlu login ulang pada saat openvpn itu running.
Thank You,
Irfan
ane belum pernah coba gan cara itu.
Sekarang ane di IT Operation ngurusin sistem jadi ngga pegang IT Infra lagi
hiks
selamat sore mas
saya staff it di bimbel ini mas
kami memakai vpn juga dikantor kami mas
tapi terkadang tidak bisa tersambung mas ke ip vpn server
biar pon dari server client kita sndiri
kami memakai isp speedy mas
dan kendala kami tidak bisa tersambung ke vpn server pusat maupun server client
topologi kami
VPN Server Pusat(linux ubuntu server>====> Server Client(LINUX UBUNTU SERVER>===>>> client (WINDOWS)
JIKA KITA PING DARI CLIENT(WINDOWS) KE ALAMAT VPN SERVER CLIEANT MAKA BALASANNYA UNCREABLE
SEPERTI ITU JUGA JIKA KE SERVER PUSAT
DAN SAMA JUGA BALASAN DARI SERVER PUSAT JIKA KITA PING DARI SERVER PUSAT...
saya mohon pencerahannya mas
kalau bisa pencerahannya lewat gmail aja ya mas
togarma29@gmail.com
makasih dluan mas
Post a Comment