Selasa, 02 Juni 2015

Mempercepat koneksi OpenVPN


Konfigurasi berikut adalah hasil percobaan saya pribadi dan sebagian hasil pencarian di google.
Dan sudah saya praktekan dengan menggunakan server FreeBSD dan client windows/linux.
Pastikan anda memiliki privilege ROOT di freebsd/linux dan account ADMINISTRATOR di windows.

Disini saya tidak akan menjelaskan bagaimana cara installasi server openvpn atau client openvpn
Saya asumsikan pembaca blog saya sudah mengerti caranya :).
Jika masih ada yang belum tahu bagaimana cara installasi openvpn server silahkan cari di google 
sudah banyak sekali tutorial install dan konfigurasi basic yang bisa dijadikan sebagai bahan rujukan.

Pertama pastikan client sudah bisa terkoneksi ke server openvpn dan bisa melakukan ping tanpa RTO.
Kemudian masuk ke server openvpn di freebsd dan edit file config yang biasanya ada di /usr/local/etc/openvpn/server.conf perhatikan baris yang di bold/ditebalkan.

SERVER SIDE
############################################################
# Server ip address
local  ip_server

# Transport protocol to use. Available protocols are udp and tcp-server
proto tcp

# TCP/UDP port to bind to
port 443

# Name of the tun(4) device to use
dev tap

# Uncomment to enable the management interface on port 1195. 
# The password file
# only contains the management password on a single line.
# management 127.0.0.1 1195 /etc/openvpn/private/mgmt.pwd
# Path to the CA certificate
ca /usr/local/etc/openvpn/ca.crt

# Path to the server's certificate file
cert /usr/local/etc/openvpn/server.crt

# Path to the private key file
key /usr/local/etc/openvpn/private/server.key

# Path to the file containing the Diffe-Hellman parameters
dh /usr/local/etc/openvpn/dh1024.pem

# Man in the middle protection
tls-auth /usr/local/etc/openvpn/private/ta.key 0

# Address range for the tun(4) interfaces
server 10.0.1.0 255.255.255.0

# Client can see each other
client-to-client

# Send periodic keepalive messages
keepalive 10 120

# Use lzo compression to reduce network utilization
comp-lzo

# User the OpenVPN daemon should run as
user _openvpn

# Group the OpenVPN daemon should run as
group _openvpn

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist /usr/local/etc/openvpn/ipp.txt

# Don't re-read key files upon receiving a SIGUSR1 signal
persist-key

# Don't close and reopen the tun(4) device upon receiving a SIGUSR1
persist-tun

# Directory for client-specific configuration files
client-config-dir ccd

# LOG
log /var/log/openvpn-server.log
status /var/log/openvpn-status.log

# Define jailroot
chroot /usr/local/etc/openvpn/chroot

# Cipher selection
cipher BF-CBC
keysize 128
link-mtu 1576

# Tweak speed
sndbuf 0
rcvbuf 0
push "sndbuf 393216"
push "rcvbuf 393216" 
##############################################  


CLIENT SIDE
##############################################
client
dev tap
proto tcp
remote  ip_server  443
resolv-retry infinite
nobind
user nobody
persist-key
persist-tun
mute-replay-warnings
ca /etc/openvpn/ca.crt
cert /etc/openvpn/aghe.crt
key /etc/openvpn/aghe.key
ns-cert-type server
tls-auth /etc/openvpn/ta.key 1
comp-lzo
verb 4
mute 20
chroot /etc/openvpn/chroot
log /var/log/openvpn.log

# Tune openvpn
mssfix 1300

# Cipher selection
cipher BF-CBC
keysize 128
link-mtu 1576

# Tweak speed
sndbuf 393216
rcvbuf 393216
################################################


KHUSUS OPENVPN DI FREEBSD/OPENBSD
Lakukan sedikit modifikasi di file /etc/sysctl.conf
Dan masukan baris dibawah ini:

# OpenVPN TuneUp and Network
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
net.inet.ip.redirect=0

Selamat mencoba dan semoga berguna.