23 November 2010

Cara Mudah Install OpenVPN Server di Debian/Ubuntu VPS

Jika kita memiliki / menyewa VPS (Virtual Private Server) dan ingin meng-install OpenVPN server, ada cara mudah untuk melakukannya. Cara tersebut adalah dengan menjalankan / meng-eksekusi script instalasi instan yang dapat Anda download di sini.

Sebelum menjalankan script tersebut di atas, ada beberapa langkah yang harus dilakukan, yaitu :
1. TUN/TAP device harus sudah diaktifkan di VPS Anda. Hubungi provider VPS Anda jika belum aktif.
2. iptables NAT juga harus sudah aktif/terinstall di OS Debian/Ubuntu (biasanya sudah)


Langkah-langkah instalasi di bawah ini telah di-test di VPS dengan :
1. OS Ubuntu Server 10.04 dan harware node OS-nya OpenVZ.
2. OS PC untuk VPN Client adalah Windows XP


Pertama

Masuk ke console VPS sebagai root dan ketikkan perintah sebagai berikut :

wget http://vpsnoc.com/scripts/debian-openvpn.sh
chmod +x debian-openvpn.sh
./debian-openvpn.sh

Script akan meng-install OpenVPN server secara otomatis. 



Kedua

Untuk memeriksa apakah OpenVPN server yang kita install sudah jalan atau belum, ketikkan perintah sebagai berikut :

netstat -an | grep 1194

Jika hasilnya seperti di bawah ini :

udp        0      0 0.0.0.0:1194            0.0.0.0:*

Berarti OpenVPN server sudah berhasil di-install.



Ketiga

Dalam hal ini, sebagai contoh client, kita menggunakan komputer yang ber-OS Windows XP. Download dan install OpenVPN GUI yang bisa kita dapatkan di sini


Download file /root/keys.tgz dari VPS menggunakan winscp atau software sftp lain ke PC kita. Untar file keys.tgz tadi ke directory C:\Program Files\OpenVPN\config\


Jika client berhasil connect ke OpenVPN server, maka PC client akan mendapat IP 10.8.0.6 (contoh saja)


Keempat


Setelah PC client berhasil connect OpenVPN server, sesuai dengan script yang dijalankan di langkah pertama, default gateway dari setting network di PC client akan mengarah ke OpenVPN server. Jika PC client berhasil melakukan ping, misalnya ke www.yahoo.com, berarti instalasi OpenVPN server dan client sudah berhasil. Anda bisa melakukan browsing, chat dan aktifitas internet lainnya di PC client.

Jika PC client berhasil connect ke OpenVPN server tapi tidak dapat melakukan ping atau browsing, silakan buat file script di bawah ini dan upload ke VPS, misalnya file script ini kita namakan updnet.sh

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o XX-eth -j SNAT --to 99.99.99.99
#ganti 99.99.99.99 dengan IP Public VPS Anda
#ganti XX-eth dengan device network Anda, misalnya venet0
iptables-save > /etc/iptables.conf
echo "#!/bin/sh" > /etc/network/if-up.d/iptables
echo "iptables-restore < /etc/iptables.conf" >> /etc/network/if-up.d/iptables
chmod +x /etc/network/if-up.d/iptables
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf


Setelah file updnet.sh diupload ke VPS, sebelum file dieksekusi,  ketikkan perintah 

chmod +x updnet.sh

agar file tersebut dapat dieksekusi. 


Kelima


Anda dapat mengedit file konfigurasi OpenVPN server di /etc/openvpn/openvpn.conf
Jika ingin mengubah DNS yang client akan dapatkan, silakan ubah di baris  push "dhcp-option DNS 8.8.4.4",ganti 8.8.4.4 dengan alamat DNS lainnya sesuai kebutuhan Anda.

Update
Agar user dapat masuk ke VPN server dengan username dan password, tambahkan baris berikut di file /etc/openvpn/openvpn.conf

plugin /user/lib/openvpn/openvpn-auth-pam.so login

Dan baris berikut ke file konfigurasi client mis. client.ovpn

auth-user-pass



Untuk Ubuntu 14.04, silakan melihat tutorial di sini

Source :
1. http://vpsnoc.com/blog/how-to-install-openvpn-on-a-debianubuntu-vps-instantly/
2. http://vpsnoc.com/blog/how-to-setup-a-vpn-server-on-a-centos-vps-instantly/






Script lengkap, silakan klik
#!/bin/bash
# Quick and dirty OpenVPN install script
# Tested on debian 5.0 32bit, openvz minimal debian OS template
# and Ubuntu 9.04 32 bit minimal, should work on 64bit images as well
# Please submit feedback and questions at support@vpsnoc.com

# John Malkowski vpsnoc.com 01/18/2010

ip=`grep address /etc/network/interfaces | grep -v 127.0.0.1 | awk '{print $2}'`
apt-get update
apt-get install openvpn libssl-dev openssl
cd /etc/openvpn/
cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0/
chmod +rwx *
. ./vars
./clean-all
source ./vars

echo -e "\n\n\n\n\n\n\n" | ./build-ca
clear
echo "####################################"
echo "Feel free to accept default values"
echo "Wouldn't recommend setting a password here"
echo "Then you'd have to type in the password each time openVPN starts/restarts"
echo "####################################"
./build-key-server server
./build-dh
cp keys/{ca.crt,ca.key,server.crt,server.key,dh1024.pem} /etc/openvpn/

clear
echo "####################################"
echo "Feel free to accept default values"
echo "This is your client key, you may set a password here but it's not required"
echo "####################################"
./build-key client1
cd keys/

client="
client
remote $ip 1194
dev tun
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
route-delay 2
route-method exe
redirect-gateway def1
dhcp-option DNS 10.8.0.1
verb 3"

echo "$client" > $HOSTNAME.ovpn

tar czf keys.tgz ca.crt ca.key client1.crt client1.csr client1.key $HOSTNAME.ovpn
mv keys.tgz /root

opvpn='
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway"
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
group daemon
daemon'

echo "$opvpn" > /etc/openvpn/openvpn.conf

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables-save > /etc/iptables.conf
echo "#!/bin/sh" > /etc/network/if-up.d/iptables
echo "iptables-restore < /etc/iptables.conf" >> /etc/network/if-up.d/iptables
chmod +x /etc/network/if-up.d/iptables
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

/etc/init.d/openvpn start
clear

echo "OpenVPN has been installed
Download /root/keys.tgz using winscp or other sftp/scp client such as filezilla
Create a directory named vpn at C:\Program Files\OpenVPN\config\ and untar the content of keys.tgz there
Start openvpn-gui, right click the tray icon go to vpn and click connect
For support/bug reports email us at support@vpsnoc.com"

No comments: