Tutorial Instalasi OpenVPN server di Centos 5 Atau 6

Saya akan berbagi pengetahuan mengenai cara install openvpn pada linux centos 5 atau 6. Tutorial ini sudah saya terapkan di server saya dan berjalan dengan lancar tidak ada kendala sama sekali. Untuk lebih mudahnya dalam instalasi dan setting kami sarankan anda paham dengan system operasi linux, minimal tau command-command dasar linux. Berikut step by step nya :

Langkah awal pastikan dev tun anda aktif.
cat /dev/net/tun
Jika terdapat pesan seperti dibawah ini maka dapat di pastikan dev tun anda aktif.
cat: /dev/net/tun: File descriptor in bad state

Install packet dasar dulu bro.
yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y
Download LZO RPM dan Configure RPMForge Repo:
wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
Paket 32bit :
CentOS 5:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
CentOS 6:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
Paket 64bit :
CentOS 5:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
CentOS 6:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Build paket RMP nya:
rpmbuild --rebuild lzo-1.08-4.rf.src.rpm rpm -Uvh lzo-*.rpm rpm -Uvh rpmforge-release*
Install OpenVPN:
yum install openvpn -y
Copy file easy-rsa ke folder /etc/openvpn/:
cp -R /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
**CATATAB** bila terjadi error seperti berikut
cannot stat `/usr/share/doc/openvpn-2.2.2/easy-rsa/’: No such file or directory
silahkan di cari sendiri folder easy-rsa nya, biasanya di directory /usr/share/doc/openvpn
atau anda bisa juga mendownload file tersebut di:
wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz
Extract the package:
tar -zxvf easy-rsa-2.2.0_master.tar.gz
Copy to OpenVPN directory:
cp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/
Untuk CentOS 6 ada sedikit modifikasi di file /etc/openvpn/easy-rsa/2.0/vars edit di bagian:
 export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
Menjadi :
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
Lalu save.
Sekarang saatnya membuat certifikasi :
cd /etc/openvpn/easy-rsa/2.0 chmod 755 * source ./vars ./vars ./clean-all
Build CA:
./build-ca
Country Name: silahkan di isi atau tekan enter saja State or Province Name: silahkan di isi atau tekan enter saja City: silahkan di isi atau tekan enter saja Org Name: silahkan di isi atau tekan enter saja Org Unit Name: silahkan di isi atau tekan enter saja Common Name: server hostname Email Address: silahkan di isi atau tekan enter saja
Build key server:
./build-key-server server
hampir sama dengan build ca cuman ada perbedaan sedikit Common Name: server A challenge password: abaikan saja (kosongin) Optional company name: silahkan di isi atau langsung tekan enter sign the certificate: y 1 out of 1 certificate requests: y
Build Diffie Hellman (tunggu sampe proses selesai):
./build-dh
Sekarang bikin config file :
touch /etc/openvpn/server.conf
Isi sebagai berikut di file server.conf:
port 1194 #- silahkan di ganti sesuai selera proto udp #- untuk gretonger pake port tcp dev tun #- bisa tun atau tab tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 reneg-sec 0 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login client-cert-not-required username-as-common-name server 10.10.10.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 5 30 comp-lzo persist-key persist-tun status 1194.log verb 3
Lalu save.
Sebelum menjalankan openvpn kita disable dulu  SELinux karena sering bermasalah dengan openvpn jika menggunakan multipe config:
echo 0 > /selinux/enforce
Cara di atas hanya temporary disable SELinux na, ketika reboot harus set ulang. Untuk membikin otomatis maka perlu kita edit di file /etc/selinux/config :
SELINUX=enforcing
Menjadi :
SELINUX=disabled
Ketika sistem reboot maka SELinux otomatis susah ke disable.
Now lets start OpenVPN:
service openvpn restart 
silahkan cek dulu di /var/log/messages jika terdapat error seperti ini:
PLUGIN_INIT: could not load plugin shared object /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so: /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so: cannot open shared object file: No such file or directory
Then this is because the latest OpenVPN package doesn’t include this file (which is reported to be fixed soon) silahkan donwload pam file berikut:
wget http://safesrv.net/public/openvpn-auth-pam.zip
lalu extrax :
unzip openvpn-auth-pam.zip
Pindahkan ke OpenVPN directory:
mv openvpn-auth-pam.so /etc/openvpn/openvpn-auth-pam.so
Sesuaikan setingan di server.conf menjadi seperti ini:
plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
Restart OpenVPN dan mudah-mudahan berjalan lancar :
killall -9 openvpn
service openvpn restart
Openvpn server sudah selesai instalasi tapi perlu kita tambahin iptables supaya dapat kita akses dari luar:
Enable IP forwarding. Edit file /etc/sysctl.conf and set ‘net.ipv4.ip_forward’ menjadi 1.
net.ipv4.ip_forward = 1 
Ketik berikut untuk update :

sysctl -p 
Route Iptables:
Rule berikut untuk vps baik itu xen dan KVM based VPS’s:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE 
OpenVZ iptable rules:
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source 123.123.123.123
And
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 123.123.123.123
dalam hal ini ip public saya misal 123.123.123.123 (silahkan di ganti menurut server anda).
Jika menggunakan CSF di server OpenVPN anda untuk membuka port (contoh port vpn saya 1194) lewat  firewall silahkan tambahin di file /etc/csf/csfpre.sh.
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT iptables -A FORWARD -j REJECT iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -j SNAT --to-source 123.123.123.123
Atau anda juga bisa mencoba menggunakan rule beritu :
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
IP 123.123.123.123 hanya sebagai contoh, silahkan ganti sesuai ip public server anda.

Big thanks to this blog author

Web Analytics