Install
Dan Konfigurasi OpenVPN Di Linux
Ini ialah terjemahan panduan manual untuk Install dan Konfigurasi OpenVPN
darihttps://help.ubuntu.com/12.04/serverguide/vpn.html,
walau pada prakteknya penulis lebih berhasil denganOpenVPN Access
Server yang dokumentasinya sendiri sudah lebih dulu saya
publish namun dari sinilah sebenarnya awal permulaan keberhasilan tersebut.
Sekilas kalian pasti melihatnya adalah jumlah lembar pada Howto ini dan
beranggapan terlalu banyak basa-basi, namun percayalah dengan membaca dari awal
hingga akhir dari manual openvpn ini, juga sedikit daya imajinasi maka kita
yang masih belajar tidak akan menemukan kesulitan berarti kedepannya. Jika
pernah memanage jaringan dan router di Linux sebelumnya maka kalian kemungkinan
besar sukses mengimplementasikannya.
Tulisan selanjutnya dibawah ini ialah urutan dari panduan install dan konfigurasi OpenVPN beserta masksud dan tujuannya dari suatu perintah dan parameter yang kita jalankan, jika kalian yang masih belajar dan melangkah dalam hal membaca howto ini kemungkinan akan terasa sulit memahaminya.
Tabel konten
Tulisan selanjutnya dibawah ini ialah urutan dari panduan install dan konfigurasi OpenVPN beserta masksud dan tujuannya dari suatu perintah dan parameter yang kita jalankan, jika kalian yang masih belajar dan melangkah dalam hal membaca howto ini kemungkinan akan terasa sulit memahaminya.
Tabel konten
Pendahuluan
Jika kalian ingin lebih dari sekedar berbagi kunci/keys OpenVPN menjadi lebih mudah setup-nya dan menggunakan Public Key Infrastructure (PKI) untuk menggunakan SSL/TLS sertifikat untuk otentikasi dan pertukaran kunci/key antara server VPN dan klien. OpenVPN juga dapat digunakan dalam mode VPN routed atau bridge dan dapat dikonfigurasi untuk menggunakan UDP atau TCP. Port dapat dikonfigurasi juga, tapi port 1194 adalah defaultnya. Dan hanya menggunakan port tunggal untuk semua komunikasi. Implementasi VPN client yang tersedia untuk hampir semua hal termasuk semua distribusi Linux, OS X, Windows dan berbasis OpenWRT WLAN router.
Jika kalian ingin lebih dari sekedar berbagi kunci/keys OpenVPN menjadi lebih mudah setup-nya dan menggunakan Public Key Infrastructure (PKI) untuk menggunakan SSL/TLS sertifikat untuk otentikasi dan pertukaran kunci/key antara server VPN dan klien. OpenVPN juga dapat digunakan dalam mode VPN routed atau bridge dan dapat dikonfigurasi untuk menggunakan UDP atau TCP. Port dapat dikonfigurasi juga, tapi port 1194 adalah defaultnya. Dan hanya menggunakan port tunggal untuk semua komunikasi. Implementasi VPN client yang tersedia untuk hampir semua hal termasuk semua distribusi Linux, OS X, Windows dan berbasis OpenWRT WLAN router.
Seting Public Key
Infrastructure (PKI)
Langkah awal dalam membangun konfigurasi OpenVPN adalah bahwa menstabilkan PKI (Public Key Infrastructure). PKI sendiri mencakup seperti berikut :
Langkah awal dalam membangun konfigurasi OpenVPN adalah bahwa menstabilkan PKI (Public Key Infrastructure). PKI sendiri mencakup seperti berikut :
1. Sertifikat terpisah
(biasa dikenal sebagai public key) dan kunci pribadi untuk server dan setiap
klien, dan.
2. Sertifikat
utama/master sertifikat Authority (CA) dan kunci/key yang digunakan untuk
menandatangani setiap server dan sertifikat klien.
OpenVPN mendukung otentikasi dua arah berbasis sertifikat, yang berarti
bahwa klien harus mengotentikasi sertifikat server dan server harus
mengotentikasi sertifikat klien sebelum koneksi saling percaya
didirikan/dibangun.
Kedua server dan klien akan mengotentikasi hal lainnya dengan terlebih
dahulu memverifikasi bahwa sertifikat yang diberikan dan ditandatangani oleh
master sertifikat otoritas (CA), dan kemudian dengan menguji informasi yang
sekarang ini – authenticated certificate header, seperti nama sertifikat umum
atau sertifikat tipe (klien atau server).
Pengaturan Sertifikat Otoritas
(Certificate Authority Setup)
Untuk setup Certificate Authority (CA) itu sendiri dan nantinya menghasilkan sertifikat dan kunci untuk server OpenVPN dan beberapa openvpn klien, pertama copy direktori easy-rsa ke /etc/openvpn. Ini untuk memastikan bahwa setiap perubahan pada script tidak akan hilang ketika paket diperbarui.
Untuk setup Certificate Authority (CA) itu sendiri dan nantinya menghasilkan sertifikat dan kunci untuk server OpenVPN dan beberapa openvpn klien, pertama copy direktori easy-rsa ke /etc/openvpn. Ini untuk memastikan bahwa setiap perubahan pada script tidak akan hilang ketika paket diperbarui.
Dari terminal/konsol :
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
Selanjutnya, edit /etc/openvpn/easy-rsa/vars dan sesuaikan contoh berikut ini untuk situasi di kalian:
export KEY_COUNTRY=”ID”
export KEY_PROVINCE=”JawaBarat”
export KEY_CITY=”Bogor”
export KEY_ORG=”Citeureup Foundation”
export KEY_EMAIL=”ncuptea@telkom.net.id”
Masukan masing-masing perintah di bawah ini secara ber-urut untuk menghasilkan sertifikat master yaituCertificate Authority (CA) dan key-nya :
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
Selanjutnya, edit /etc/openvpn/easy-rsa/vars dan sesuaikan contoh berikut ini untuk situasi di kalian:
export KEY_COUNTRY=”ID”
export KEY_PROVINCE=”JawaBarat”
export KEY_CITY=”Bogor”
export KEY_ORG=”Citeureup Foundation”
export KEY_EMAIL=”ncuptea@telkom.net.id”
Masukan masing-masing perintah di bawah ini secara ber-urut untuk menghasilkan sertifikat master yaituCertificate Authority (CA) dan key-nya :
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca
Sertifikat untuk server (Certificate
Server)
Berikut dibawah ini kita masukan perintah untuk menghasilkan sertifikat dan private key untuk Server VPN kita:
./build-key-server myservername
Berikut dibawah ini kita masukan perintah untuk menghasilkan sertifikat dan private key untuk Server VPN kita:
./build-key-server myservername
Seperti pada langkah sebelumnya, kebanyakan parameter/opsi bisa dibiarkan
default. Dua pertanyaan lainnya mungkin memerlukan tanggapan, seperti “Sign the
certificate [y / n]?” Dan satu persatu permintaan pertanyaan sertifikat
bersertifikat, pilih untuk berkomitmen? [Y/n]“.
Parameter Diffie Hellman harus di hasilkan (di generate) untuk server
OpenVPN, perintahnya :
./build-dh
./build-dh
Semua sertifikat dan key yang telah di hasilkan (di generate) akan berada
di subdirektori keys di /etc/openvpn. Umum dan praktisnya copy sertifikat dan
keys di /etc/openvpn/keys ke /etc/openvpn :
cd /etc/openvpn/keys/
cp myservername.crt myservername.key ca.crt dh1024.pem /etc/openvpn/
cd /etc/openvpn/keys/
cp myservername.crt myservername.key ca.crt dh1024.pem /etc/openvpn/
Membuat sertifikat klien OpenVPN (Client
Certificates)
Klien VPN akan sangat memerlukan sertifikat untuk melakukan otentikasi dirinya sendiri ke vpn server. Biasanya kita harus membuat sertifikat yang berbeda untuk setiap klien vpn. Dan untuk membuat sertifikat masukan perintah di bawah ini secara ber-urut dan satu persatu di terminal/konsol mesin vpn servernya.:
cd /etc/openvpn/easy-rsa/
source vars
./build-key client1
Klien VPN akan sangat memerlukan sertifikat untuk melakukan otentikasi dirinya sendiri ke vpn server. Biasanya kita harus membuat sertifikat yang berbeda untuk setiap klien vpn. Dan untuk membuat sertifikat masukan perintah di bawah ini secara ber-urut dan satu persatu di terminal/konsol mesin vpn servernya.:
cd /etc/openvpn/easy-rsa/
source vars
./build-key client1
Nb. Jika ingin menambahkan sertifikat klien lainnya tinggalkan tambahkan
perintah ./build-key client2
Copy file-file di mesin vpn server di bawah ini ke mesin vpn klien,
terserah mau pakai cara apa kalian memindahkannya ke mesin klien :
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
Sebagaimana diketahui, beberapa file di atas adalah sertifikat dan keys
untuk kliennya vpn maka dari itu harap di hapus yang di server jika sudah di
copykan ke klien vpn-nya.
Konfigurasi sederhana
server vpn
Seiring kalian menginstall OpenVPN otomatis kalian mempunyai contoh-contoh file konfigurasi dan banyak lagi jika kalian memeriksa direktori seperti di bawah ini :
root@server:/# ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r–r– 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r–r– 1 root root 4141 2011-07-04 15:09 server.conf.gz
Seiring kalian menginstall OpenVPN otomatis kalian mempunyai contoh-contoh file konfigurasi dan banyak lagi jika kalian memeriksa direktori seperti di bawah ini :
root@server:/# ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r–r– 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r–r– 1 root root 4141 2011-07-04 15:09 server.conf.gz
Mulai dengan meng-copy dan meng-extract server.conf.gz ke
/etc/openvpn/server.conf dari contoh konfigurasi openvpn yang sedang kita bahas
ini :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
Edit /etc/openvpn/server.conf untuk memastikan baris di bawah ini menunjuk
ke sertifikat dan kunci yang kalian buat di bagian atas.
ca ca.crt
cert myservername.crt
key myservername.key
dh dh1024.pem
ca ca.crt
cert myservername.crt
key myservername.key
dh dh1024.pem
Berikut ini ialah output status openvpn server yang sudah berjalan oke
dengan konfigurasi yang minimum.
root@server:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)…
* Autostarting VPN ‘server’ [ OK ]
Sekarang kita cek apakah openvpn telah membuat interface tun0 :
root@server:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
[...]
root@server:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)…
* Autostarting VPN ‘server’ [ OK ]
Sekarang kita cek apakah openvpn telah membuat interface tun0 :
root@server:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
[...]
Konfigurasi klien cara
mudah
Ada berbagai implementasi OpenVPN klien yang berbeda dengan atau tanpa GUI. Kalian dapat membaca lebih lanjut tentang klien vpn dalam bagian selanjutnya. Namun untuk saat ini kita menggunakan klien OpenVPN untuk Ubuntu yang merupakan eksekusi paket yang sama seperti di server. Jadi, kita harus menginstal paket openvpn lagi pada mesin klien:
sudo apt-get install openvpn
Ada berbagai implementasi OpenVPN klien yang berbeda dengan atau tanpa GUI. Kalian dapat membaca lebih lanjut tentang klien vpn dalam bagian selanjutnya. Namun untuk saat ini kita menggunakan klien OpenVPN untuk Ubuntu yang merupakan eksekusi paket yang sama seperti di server. Jadi, kita harus menginstal paket openvpn lagi pada mesin klien:
sudo apt-get install openvpn
Sekarang waktunya mengcopy client.conf dari contoh/sample konfigurasi
openvpn ke /etc/openvpn/ :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
Salin key serta sertifikat klien dari CA yang telah kita buat seperti di
bagian atas, misalnya di copy ke direktori /etc/openvpn/ dan edit
/etc/openvpn/client.conf untuk memastikan baris berikut seperti dibawah yang menunjuk
ke file-file tersebut. Jika kalian memiliki file di /etc/openvpn/ kalian dapat
menghilangkan path-nya (simbol “#” nya).
ca ca.crt
cert client1.crt
key client1.key
ca ca.crt
cert client1.crt
key client1.key
Dan sekarang kita harus setidaknya menentukan nama server OpenVPN atau
alamatnya. Pastikan kata kunci klien ada didalam konfigurasi. Dan Itulah yang
memungkinkan modus klien.
client
remote vpnserver.example.com 1194
client
remote vpnserver.example.com 1194
Sekarang start OpenVPN kliennya :
root@client:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)…
* Autostarting VPN ‘client’ [ OK ]
root@client:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)…
* Autostarting VPN ‘client’ [ OK ]
Sekarang kita cek apakah openvpn telah membuat interface tun0 :
root@client:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
root@client:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
Cek apakah klien vpn bisa ping ke server vpn :
root@client:/etc/openvpn# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms
root@client:/etc/openvpn# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms
Catatan : Server OpenVPN selalu menggunakan alamat IP paling pertama yang
digunakan dalam jaringan klien dan hanya IP yang pingable. Misalnya jika kita
mengkonfigurasi /24 untuk network mask klien, alamat no.1-nya akan digunakan.
Alamat PTP yang kita lihat dalam output ifconfig di atas biasanya tidak
menjawab permintaan ping.
Cek perutean paket yang keluar di mesin klien :
root@client:/etc/openvpn# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.42.1 0.0.0.0 UG 0 0 0 eth0
Cek perutean paket yang keluar di mesin klien :
root@client:/etc/openvpn# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.42.1 0.0.0.0 UG 0 0 0 eth0
Langkah awal dalam troubleshooting
Jika bahasan dan langkah-langkah di atas tidak bekerja di kalian, periksa di bawah ini :
Jika bahasan dan langkah-langkah di atas tidak bekerja di kalian, periksa di bawah ini :
1. Cek syslog kalian,
contoh grep -i vpn /var/log/syslog.
2. Dapatkah klien konek
ke mesin server? Mungkinkah firewall kalian mem-block akses? Cek kembali syslog
di mesin server.
3. Klien dan server harus
menggunakan protokol dan port yang sama, misal UDP port 1194, lihat opsi
konfigurasi protokol dan port.
4. Klien dan server harus
menggunakan konfigurasi yang sama tentang “kompresi”. Lihat comp-lzo pada opsi
di dalam file konfigurasinya.
5. Klien dan server harus
menggunakan konfigurasi yang sama tentang mode bridge & routed. Lihat opsi
konfigurasi server routed vs server-bridge.
Konfigurasi server vpn
mode Route
Dibagian atas VPN bekerja secara sangat sederhana. Klien dapat mengakses layanan pada mesin server VPN melalui terowongan (tunnel) yang dienkripsi. Jika kita ingin mencapai ke lebih banyak server atau apapun di jaringan lain, menekankan beberapa rute ke klien. Misalnya jika jaringan perusahaan kita dapat diringkas ke network 192.168.0.0/16. Tapi kita juga harus mengubah routing/rute untuk jalan kembali lagi (way back) – untuk itu server kita perlu tahu rute ke jaringan klien VPN.
Dibagian atas VPN bekerja secara sangat sederhana. Klien dapat mengakses layanan pada mesin server VPN melalui terowongan (tunnel) yang dienkripsi. Jika kita ingin mencapai ke lebih banyak server atau apapun di jaringan lain, menekankan beberapa rute ke klien. Misalnya jika jaringan perusahaan kita dapat diringkas ke network 192.168.0.0/16. Tapi kita juga harus mengubah routing/rute untuk jalan kembali lagi (way back) – untuk itu server kita perlu tahu rute ke jaringan klien VPN.
Atau kita mungkin ingin menekankan default gateway untuk semua klien untuk
mengirim semua lalu lintas internet mereka ke gateway VPN pertamanya dan dari
sana juga melalui firewall perusahaan ke internet. Bagian ini menunjukkan
beberapa pilihan yang memungkinkan.
Pastikan rute ke klien bisa memungkinkan untuk mencapai subnet lokal
lainnya di belakang server. Ingatlah bahwa subnet lokal juga perlu tahu rute
pool alamat klien OpenVPN (10.8.0.0/24) kembali ke server OpenVPN.
push “route 10.0.0.0 255.0.0.0″
push “route 10.0.0.0 255.0.0.0″
Jika opsi dibawah ini diaktifkan, direktif ini akan mengkonfigurasi semua
klien untuk mengarahkan default gateway jaringan mereka melalui VPN,
menyebabkan semua lalu lintas IP seperti web browsing dan pencarian DNS yang
pergi melalui VPN (server OpenVPN mesin atau firewall pusat, kita mungkin perlu
NAT TUN/TAP interface ke internet untuk bisa bekerja secara benar).
push “redirect-gateway def1 bypass-dhcp”
push “redirect-gateway def1 bypass-dhcp”
Konfigurasi mode server dan menyediakan subnet VPN untuk OpenVPN untuk
menarik klien dari alamat. Server vpn akan mengambil IP 10.8.0.1 untuk dirinya
sendiri, sisanya akan dibuat tersedia bagi semua klien vpn yang valid. Setiap
klien akan dapat mencapai server pada 10.8.0.1. Hilangkan simbol “#” pada baris
dibawah ini jika ethernet kita dibridging.
server 10.8.0.0 255.255.255.0
server 10.8.0.0 255.255.255.0
Mempertahankan catatan/rekaman klien ke asosiasi virtual alamat IP dalam
file ini. Jika OpenVPN dimatikan atau di-restart, reconnecting klien dapat
diberikan alamat IP yang sama dari pool virtual yang sebelumnya ditugaskan.
ifconfig-pool-persist ipp.txt
ifconfig-pool-persist ipp.txt
Menekankan DNS server ke klien :
push “dhcp-option DNS 10.0.0.2″
push “dhcp-option DNS 10.1.0.2″
push “dhcp-option DNS 10.0.0.2″
push “dhcp-option DNS 10.1.0.2″
Menginjinkan antara klien dan klien lainnya dapat berkomunikasi :
client-to-client
client-to-client
Mengenablekan kompresi pada link VPN :
comp-lzo
comp-lzo
Direktif keepalive menyebabkan pesan ping yang akan dikirim bolak-balik
atas link sehingga masing-masing pihak tahu ketika pihak lain berstatus
shutdown, reboot, dsb. Ping setiap 1 detik, menganggap bahwa status remote peer
adalah down jika ping tidak diterima selama periode waktu 3 detik.
keepalive 1 3
keepalive 1 3
Ini adalah ide yang baik untuk mengurangi hak istimewa daemon OpenVPN
setelah inisialisasi.
user nobody
group nogroup
user nobody
group nogroup
OpenVPN 2.0 meyertakan fitur yang memungkinkan server OpenVPN secara aman
mendapatkan username dan password dari klien yang terhubung, dan menggunakan
informasi tersebut sebagai dasar untuk otentikasi klien. Untuk menggunakan
metode otentikasi, pertama tambahkan direktif auth-user-pass untuk konfigurasi
klien. Ini akan mengarahkan klien OpenVPN pada permintaan penggunaan untuk
username/password, lalu melewatkan itu ke server melalui saluran TLS yang aman.
# client config!
auth-user-pass
# client config!
auth-user-pass
Bagian baris dibawah ini akan memberitahu server openvpn untuk memvalidasi
username dan password yang di masukan oleh klien menggunakan modul login PAM.
Biasanya jika kita menyentralkan otentifikasi dengan, misal Kerberos.
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
Catatan : Harap baca panduan tentang OpenVPN
Hardening Security Guide untuk lebih lanjut
Konfigurasi server vpn
mode Bridge
OpenVPN dapat di setup baik dengat mode Routed atau VPN Bridge. Kadang-kadang ini juga disebut sebagai OSI layer-2 dibandingkan layer-3 VPN. Dalam VPN Bridge semua frame layer-2 misalnya semua frame ethernet dikirim ke mitra VPN dan dalam mode Routed VPN maka hanya layer-3 paket dikirim ke mitra VPN. Dalam mode bridge semua lalu lintas termasuk lalu lintas yang secara tradisional seperti LAN lokal seperti siaran (broadcast) jaringan lokal, permintaan DHCP, permintaan ARP dll dikirim ke mitra VPN, sedangkan dalam mode Routed ini akan disaring (di filter).
OpenVPN dapat di setup baik dengat mode Routed atau VPN Bridge. Kadang-kadang ini juga disebut sebagai OSI layer-2 dibandingkan layer-3 VPN. Dalam VPN Bridge semua frame layer-2 misalnya semua frame ethernet dikirim ke mitra VPN dan dalam mode Routed VPN maka hanya layer-3 paket dikirim ke mitra VPN. Dalam mode bridge semua lalu lintas termasuk lalu lintas yang secara tradisional seperti LAN lokal seperti siaran (broadcast) jaringan lokal, permintaan DHCP, permintaan ARP dll dikirim ke mitra VPN, sedangkan dalam mode Routed ini akan disaring (di filter).
Persiapan untuk mengkonfigurasi interfaces sebagai bridge di mesin server
Pastikan paket bridge-utils telah terinstall :
sudo apt-get install bridge-utils
Pastikan paket bridge-utils telah terinstall :
sudo apt-get install bridge-utils
Sebelum kita mengkonfigurasi vpn dalam mode bridge kita perlu menyesuaikan
beberapa konfigurasi interfaces. Mari kita asumsikan bahwa server telah
terkoneksi dengan eth0 ke Internet dan eth1 ke LAN yang kita ingin bridge. File
konfigurasi /etc/network/interfaces kita mungkin terlihat seperti berikut :
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto
eth1
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0
Konfigurasi interface lurus penerusan (straight forward) ini perlu diubah
ke dalam mode bridge seperti di mana konfigurasi interfaces eth1 bergerak ke
interfaces br0 baru. Plus kita mengkonfigurasi bahwa br0 harus menjembatani
(membridge) interfaces eth1. Kita juga harus memastikan bahwa interface eth1
selalu dalam modus promiscuous – ini memberitahu interfaces untuk memforward
semua frame ethernet ke IP stack.
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto
eth1
iface eth1 inet manual
up ip link set $IFACE up promisc on
iface eth1 inet manual
up ip link set $IFACE up promisc on
auto
br0
iface br0 inet static
address 10.0.0.4
netmask 255.255.255.0
bridge_ports eth1
iface br0 inet static
address 10.0.0.4
netmask 255.255.255.0
bridge_ports eth1
Sampai titik ini kita harus merestart networking. Bersiaplah bahwa ini
mungkin akan membuat tidak bekerja seperti yang kita harapkan dan mungkin kita
akan kehilangan konektivitas secara remote akses. Pastikan kita dapat
memecahkan permasalahan ini dengan memiliki akses lokal.
sudo /etc/init.d/network restart
sudo /etc/init.d/network restart
Mempersiapkan server untuk di konfigurasi bridge
Edit /etc/openvpn/server.conf dan ganti beberapa opsi hingga seperti berikut :
;dev tun
dev tap
up “/etc/openvpn/up.sh br0 eth1″
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254
Edit /etc/openvpn/server.conf dan ganti beberapa opsi hingga seperti berikut :
;dev tun
dev tap
up “/etc/openvpn/up.sh br0 eth1″
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254
Berikutnya buat suatu script helper untuk menambahkan ke interfaces tap ke
bridge dan untuk memastikan interfaces eth1 dalam modus promiscuous.
Buat /etc/openvpn/up.sh dan isi seperti dibawah ini:
#!/bin/sh
Buat /etc/openvpn/up.sh dan isi seperti dibawah ini:
#!/bin/sh
BR=$1
ETHDEV=$2
TAPDEV=$3
ETHDEV=$2
TAPDEV=$3
/sbin/ip
link set “$TAPDEV” up
/sbin/ip link set “$ETHDEV” promisc on
/sbin/brctl addif $BR $TAPDEV
/sbin/ip link set “$ETHDEV” promisc on
/sbin/brctl addif $BR $TAPDEV
Lalu buat supaya script helper ini bisa di exekusi :
sudo chmod 755 /etc/openvpn/up.sh
sudo chmod 755 /etc/openvpn/up.sh
Setelah mengkonfigurasi server, saatnya merestart openvpn :
sudo /etc/init.d/openvpn restart
sudo /etc/init.d/openvpn restart
Konfigurasi di klien
Pertama, install openvpn di klien :
sudo apt-get install openvpn
Pertama, install openvpn di klien :
sudo apt-get install openvpn
Kemudian bermodal dari server yang sebelumnya sudah dikonfigurasi dan
dihasilkan sertifikat serta key klien yang telah disalin ke direktori
/etc/openvpn/ pada mesin klien, kini membuat file konfigurasi klien dengan
menyalin dari sample konfigurasi. Dalam terminal pada komputer klien masukkan :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn
Kini edit /etc/openvpn/client.conf dan rubah hingga seperti di bawah ini :
dev tap
;dev tun
dev tap
;dev tun
Restart openvpn-nya :
sudo /etc/init.d/openvpn restart
Mulai sekarang seharusnya kita sudah bisa terkoneksi ke remote LAN melalui VPN.
sudo /etc/init.d/openvpn restart
Mulai sekarang seharusnya kita sudah bisa terkoneksi ke remote LAN melalui VPN.
Linux Network Manager
GUI untuk openvpn
Banyak distribusi linux dekstop menyertakan ini dan bahkan varian Ubuntu desktop datang dengan Network Manager, cara menakjubkan sebuah GUI untuk mengkonfigurasi network seting kita. Ini juga dapat digunakan untuk mengatur koneksi openvpn. Pastikan bahwa kita sudah mempunyai paket network-manager-openvpn terinstall. Dibawah ini kita dapat melihat installasi yang menginstall paket lainnya yang dibutuhkan juga :
root@client:~# apt-get install network-manager-openvpn
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpn
Suggested packages:
resolvconf
The following NEW packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn
network-manager-openvpn-gnome openvpn
0 upgraded, 5 newly installed, 0 to remove and 631 not upgraded.
Need to get 700 kB of archives.
After this operation, 3,031 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Banyak distribusi linux dekstop menyertakan ini dan bahkan varian Ubuntu desktop datang dengan Network Manager, cara menakjubkan sebuah GUI untuk mengkonfigurasi network seting kita. Ini juga dapat digunakan untuk mengatur koneksi openvpn. Pastikan bahwa kita sudah mempunyai paket network-manager-openvpn terinstall. Dibawah ini kita dapat melihat installasi yang menginstall paket lainnya yang dibutuhkan juga :
root@client:~# apt-get install network-manager-openvpn
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpn
Suggested packages:
resolvconf
The following NEW packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn
network-manager-openvpn-gnome openvpn
0 upgraded, 5 newly installed, 0 to remove and 631 not upgraded.
Need to get 700 kB of archives.
After this operation, 3,031 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Untuk menginformasikan ke network-manager mengenai paket-paket yang baru
diinstal kita harus restart:
root@client:~# restart network-manager
network-manager start/running, process 3078
root@client:~# restart network-manager
network-manager start/running, process 3078
Buka Network Manager GUI, pilih tab VPN dan kemudian klik tombol ‘Add‘.
Pilih OpenVPN sebagai jenis VPN di kotak dialog pembuka dan tekan ‘Create‘.
Pada kotak dialog berikutnya menambahkan nama server OpenVPN itu sebagai ‘Gateway‘,
set ‘Type‘ ke ‘Sertifikat (TLS)‘, ‘User Sertifikat’ titik ke
sertifikat pengguna kita, ‘CA Certificate‘ untuk sertifikat CA dan ‘Private
Key‘ ke file kunci pribadi kita. Gunakan tombol advanced untuk mengaktifkan
kompresi atau pengaturan khusus lainnya yang kita atur sebelumnya di server.
Sekarang cobalah untuk membangun (estabilized) VPN kita.
Software openvpn
dengan GUI untuk Windows
Pertama-tama download dan install versi paling baru dari OpenVPN Windows Installer. Openvpn 2.2.1 menjadi versi terakhir saat manual openvpn ini ditulis.
Pertama-tama download dan install versi paling baru dari OpenVPN Windows Installer. Openvpn 2.2.1 menjadi versi terakhir saat manual openvpn ini ditulis.
Sesudah terinstall kita perlu menjalankan servis openvpn ini. Buka Start
Menu>Computer>Manage>Services and Applications>Services. Cari OpenVPN servis
dan jalankan itu sebagai administrator. Kita juga bisa mengklik kanan untuk
melihat pilihannya.
Kita juga harus membuat dan menuliskan beberapa option konfig dalam teks
file dan diletakan di C:\Program Files\OpenVPN\config\client.ovpn bersama
dengan certificate CA. Kita juga bisa memasukan sertifikat pengguna ke dalam
direktori home user seperti dalam contoh di bawah ini :
# C:\Program Files\OpenVPN\config\client.ovpn
client
remote server.example.com
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
auth-user-pass
auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert “C:\\Users\\username\\My Documents\\openvpn\\client.crt”
key “C:\\Users\\username\\My Documents\\openvpn\\client.key”
management 127.0.0.1 1194
management-hold
management-query-passwords
auth-retry interact
# C:\Program Files\OpenVPN\config\client.ovpn
client
remote server.example.com
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
auth-user-pass
auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert “C:\\Users\\username\\My Documents\\openvpn\\client.crt”
key “C:\\Users\\username\\My Documents\\openvpn\\client.key”
management 127.0.0.1 1194
management-hold
management-query-passwords
auth-retry interact
Sumber:
http://ncupisme.blogspot.com







0 komentar:
Posting Komentar