Salam sejahtera pengunjung budiman,
Dalam Bahagian 1, saya telah membincangkan mengenai definisi dan penjelasan mengenai apa itu VPN secara ringkas. Kali ini saya akan membawa anda ke penyediaan pelayan OpenVPN anda sendiri.
Tutorial kali ini akan menumpukan kepada penyediaan pelayan OpenVPN sebagai terowong (tunnel) yang membolehkan anda melepasi sekatan dan juga menegelakkan transaksi Internet anda dihidu (sniff) oleh orang lain.
Panduan membeli pelayan (server)
Mungkin anda tertanya-tanya bagaimana untuk membeli Virtual Private Server(VPS) ataupun Dedicated Server. Saya akan beri sedikit tips sekadar yang saya tahu untuk kegunaan OpenVPN.
- Pastikan dalam terma dan syarat (ToS) pembekal VPS anda memberi kebenaran untuk memasang VPN.
- Pastikan TUN/TAP enabled pada VPS anda. Boleh hubungi Support Ticket pembekal anda untuk maklumat lanjut.
- Kalau VPS anda berasaskan OpenVZ, minta hosting anda untuk menghidupkan "iptables_nat" pada VPS/container anda.
- Pastikan harga mengikut bajet poket anda
- Mahukan cadangan saya? Kalau jenis bajet rendah macam saya, dahulu saya beli dari BudgetVM. Sekarang saya beli dedicated server dari Online.net.
- Tambahan info: Pastikan waktu pelayan anda dan waktu komputer anda diselaraskan dengan pelayan waktu(time server) seperti time.nasa.gov Anda boleh gunakan arahan
sudo ntpdate time.nasa.gov
di komputer anda dan meminta penyedia perkhidmatan pelayan anda untuk menyelaraskan waktu di server anda juga.
Pemasangan OpenVPN
Periksa dulu sama ada TUN/TAP sudah diupayakan (enabled) atau belum dengan arahan (command).
cat /dev/net/tunAnda sepatutnya akan mendapat keputusan seperti ini.
cat: /dev/net/tun: File descriptor in bad stateJikalau anda mendapat ralat (error) seperti ini.
cat: /dev/net/tun: No such deviceAnda perlu menghubungi pembekal VPS anda untuk mengupayakan (enable) TUN/TAP di VPS anda.
Sekarang bolehlah kita teruskan dengan memasang openvpn,openssl,dnsmasq, dan juga iptables-persistent
di pelayan.
sudo apt-get install openvpn openssl iptables-persistentSelepas melaksanakan arahan di atas.
UPDATE 2013-04-07: sample easy-rsa pada pakej asal Ubuntu sekarang mengalami masalah. Sila ikuti langkah berikut sebagai ganti.sudo mkdir /etc/openvpn/easy-rsa
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
sudo cp -R * /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
Laksanakan arahan berikut untuk gunakan sample easy-rsa dari github OpenVPN
sudo mkdir /etc/openvpn/easy-rsa
wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
sudo cp -R easy-rsa-master/easy-rsa/2.0/* /etc/openvpn/easy-rsa# UPDATE 2014-01-22 , versi baru sudah tiada perbezaan 2.0 dengan 3.0
sudo cp -R easy-rsa-master/easy-rsa/* /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
Sekarang kita akan edit fail vars menggunakan nano.
Contoh sample fail vars
sudo nano vars
Link: http://pastebin.com/CE7s1kn4
sudah edit? Bagus.
Sekarang kita copy config openssl dengan arahan berikut mengikut versi openssl distro yang kita gunakan. Untuk server saya, saya guna openssl 1.X
sudo cp openssl-1.0.0.cnf openssl.cnfSekarang, kita jalankan arahan berikut:
source ./vars
sudo ./clean-all
Seterusnya kita bina CA.
sudo ./build-ca
Link: http://pastebin.com/9sS7YzF9Kalau anda perasan, default value adalah yang anda set di fail vars.cuma perlu tekan enter je dan untuk yang default value 'changeme' setkan kepada '.' (tanpa pembuka/penutup kata). Tak naktukar pun tak jadi masalah besar.
Sekarang, kita bina sijil (certificate) untuk pelayan openvpn kita.
sudo ./build-key-server server Link: http://pastebin.com/Enc9rb1u
Sekarang kita bina Diffie-Helman
sudo ./build-dh
Link: http://pastebin.com/6PShAG8tOkay, sekarang kita akan sunting config untuk server
cd /usr/share/doc/openvpn/examples/sample-config-files/cp server.conf.gz /etc/openvpn/cd /etc/openvpn/gzip -d server.conf.gznano server.conf
Contoh server.conf: http://pastebin.com/0C018VcT
Saya akan menerangkan serba sedikit mengenai tetapan di dalam serv.conf ini.
Berikut adalah lokasi fail2 yang diperlukan iaitu CA, cert, key dan diffie-helman.
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
Berikut adalah port dan protokol yang akan digunakan oleh OpenVPN server. Dalam config contoh untuk tutorial ini saya gunakan UDP/53.
# open up this port on your firewall.port 53# TCP or UDP server?;proto tcpproto udp
Sekarang masa untuk kita menjalankan service openvpn dengan menaip arahan berikut:
Setkan port forwardingservice openvpn start server
sudo sysctl -w net.ipv4.ip_forward=1
Sudah selesai langkah di atas, kita kena config iptables pula.
UPDATE 2013-04-07: Skrip di atas bermasalah bila saya cuba untuk pasang openvpn di server sahabat saya. Kita buat konfigurasi iptables secara manual seperti berikut:sudo iptables-restore < iptables.ipt
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 999.888.777.666Sila tukarkan 999.888.777.666 kepada IP server anda.
Selesai sudah persiapan dan konfigurasi pelayan.
Konfigurasi untuk pelanggan (client) akan bersambung ke pos baru bertajuk "Pasang Sendiri OpenVPN: Persediaan Pelanggan"
Rujukan:
OpenVPN server ubuntu guide
IPTables HowTo - Community Ubuntu Documentation
OpenVPN on Ubuntu 10.04 LTS - Ubuntu Help
openvpn setup guide by dimenxion for Debian 6.x
2 ulasan:
as salam..
info yang menarik.boleh buat tutorial untuk membangunkan applikasi java untuk mobile?
p/s: saya perasan link blog saudara pada beg.perjalanan dalam ktm,bertarikh 29.11.10/3 Muharram.
waalaikumussalam,
kenapa tak tegur je saya tadi? :D
Saya sendiri tak biasa dengan Java Micro Edition. macam mana nak buat tutorial untuk java mobile :)
Insya-Allah kalau berkesempatan untuk explore java micro edition sdk nanti, akan dipos di blog ini.
Catat Ulasan