Kali ini 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.Jika terdapat pesan seperti dibawah ini maka dapat di pastikan dev tun anda aktif.cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state
Install packet dasar dulu bro.
Download LZO RPM dan Configure RPMForge Repo:yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y
Paket 32bit :wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
CentOS 5:
CentOS 6:wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
Paket 64bit :wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
CentOS 5:
CentOS 6:wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
Build paket RMP nya:wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Install OpenVPN:rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
rpm -Uvh lzo-*.rpm
rpm -Uvh rpmforge-release*
Copy file easy-rsa ke folder /etc/openvpn/:yum install openvpn -y
**CATATAB** bila terjadi error seperti berikutcp -R /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
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:
Extract the package:wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz
Copy to OpenVPN directory:tar -zxvf easy-rsa-2.2.0_master.tar.gz
Untuk CentOS 6 ada sedikit modifikasi di file /etc/openvpn/easy-rsa/2.0/vars edit di bagian:cp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/
Menjadi :export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
Lalu save.export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
Sekarang saatnya membuat certifikasi :
Build CA:cd /etc/openvpn/easy-rsa/2.0
chmod 755 *
source ./vars
./vars
./clean-all
Build key server:./build-caCountry 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 Diffie Hellman (tunggu sampe proses selesai):./build-key-server serverhampir 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
Sekarang bikin config file :./build-dh
Isi sebagai berikut di file server.conf:touch /etc/openvpn/server.conf
Lalu save.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
Sebelum menjalankan openvpn kita disable dulu SELinux karena sering bermasalah dengan openvpn jika menggunakan multipe config:
echo 0 > /selinux/enforceCara di atas hanya temporary disable SELinux na, ketika reboot harus set ulang. Untuk membikin otomatis maka perlu kita edit di file /etc/selinux/config :
Ketika sistem reboot maka SELinux otomatis susah ke disable.SELINUX=enforcingMenjadi :SELINUX=disabled
Now lets start OpenVPN:
silahkan cek dulu di /var/log/messages jika terdapat error seperti ini:service openvpn restart
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 directoryThen this is because the latest OpenVPN package doesn’t include this file (which is reported to be fixed soon) silahkan donwload pam file berikut:
lalu extrax :wget http://safesrv.net/public/openvpn-auth-pam.zip
Pindahkan ke OpenVPN directory:unzip openvpn-auth-pam.zip
Sesuaikan setingan di server.conf menjadi seperti ini:mv openvpn-auth-pam.so /etc/openvpn/openvpn-auth-pam.so
Restart OpenVPN dan mudah-mudahan berjalan lancar :plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
Openvpn server sudah selesai instalasi tapi perlu kita tambahin iptables supaya dapat kita akses dari luar:killall -9 openvpnservice openvpn restart
Enable IP forwarding. Edit file /etc/sysctl.conf and set ‘net.ipv4.ip_forward’ menjadi 1.
Ketik berikut untuk update :net.ipv4.ip_forward = 1
Route Iptables:sysctl -p
Rule berikut untuk vps baik itu xen dan KVM based VPS’s:
OpenVZ iptable rules:iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
dalam hal ini ip public saya misal 123.123.123.123 (silahkan di ganti menurut server anda).iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source 123.123.123.123Andiptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 123.123.123.123
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.
Atau anda juga bisa mencoba menggunakan rule beritu :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
IP 123.123.123.123 hanya sebagai contoh, silahkan ganti sesuai ip public server anda.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
Instalasi OpenVPN server di Centos 5 Atau 6