Build scrambled openvpn linux rpm package for Virtual Server

# Tested using CentOS 6 32-bit openvz
# default user root

# Build a scrambled openvpn server
# Loads patch to scramble openvpn, to bypass blocking

# When you first access your OpenVZ
# Turn on TUN, in management console, by default its usually turned off.
# When you reinstall OS system, I found I needed to turn TUN off and on again

##########################################################################
# Quick install already patched openvpn rpm package CentOS 6 32-bit
wget http://pkgs.repoforge.org/pkcs11-helper/pkcs11-helper-1.08-1.el6.rf.i686.rpm
wget http://pkgs.repoforge.org/pkcs11-helper/pkcs11-helper-devel-1.08-1.el6.rf.i686.rpm
yum install pkcs11-helper-1.08-1.el6.rf.i686.rpm -y
yum install pkcs11-helper-devel-1.08-1.el6.rf.i686.rpm -y
wget --no-check-cert https://www.dropbox.com/s/4gpbq0ulv33ni2d/openvpn-2.3.2-scramble.i386.rpm -O openvpn-2.3.2-scramble.i386.rpm
yum install openvpn-2.3.2-scramble.i386.rpm -y
##########################################################################

# Now we show how to build patched openvpn rpm package from beginning
# Install a few components we need
yum install gcc make automake autoconf rpm-build wget libtool pkgconfig -y
yum install lzo-devel openssl-devel pam-devel pkcs11-helper-devel gnutls-devel -y
yum install git nano -y
wget http://pkgs.repoforge.org/pkcs11-helper/pkcs11-helper-1.08-1.el6.rf.i686.rpm
wget http://pkgs.repoforge.org/pkcs11-helper/pkcs11-helper-devel-1.08-1.el6.rf.i686.rpm
yum install pkcs11-helper-1.08-1.el6.rf.i686.rpm -y
yum install pkcs11-helper-devel-1.08-1.el6.rf.i686.rpm -y

git clone https://github.com/mattock/openvpn-build
cd /root/openvpn-build/rpm/openvpn/rpmbuild/SPECS
cp openvpn-2.3.2-CentOS6.spec openvpn.init

# Edit openvpn.init, so we name our package
# change to 'Release: scramble'
nano openvpn.init

Name: openvpn
Version: 2.3.2
Release: scramble

# get source and patch, apply patch
cd $HOME
wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.2.tar.gz
tar xvf openvpn-2.3.2.tar.gz
rm -f openvpn-2.3.2.tar.gz
wget https://github.com/clayface/openvpn_xorpatch/archive/master.zip
unzip master.zip
cp openvpn_xorpatch-master/openvpn_xor.patch openvpn-2.3.2/
cd openvpn-2.3.2/
git apply --check openvpn_xor.patch
git apply openvpn_xor.patch
cd ..
tar -pczf openvpn-2.3.2.tar.gz openvpn-2.3.2/
cp openvpn-2.3.2.tar.gz /root/openvpn-build/rpm/openvpn/rpmbuild/SOURCES

# Build
cd /root/openvpn-build/rpm/openvpn/rpmbuild/
rpmbuild -v -bb --clean SPECS/openvpn.init

# Package saved at
# /root/openvpn-build/rpm/openvpn/rpmbuild/RPMS/i386/openvpn-2.3.2-scramble.i386.rpm

# Test install
cd /root/openvpn-build/rpm/openvpn/rpmbuild/RPMS/i386/
yum install openvpn-2.3.2-scramble.i386.rpm -y

# test remove
yum remove openvpn -y

# Finally, save a copy of this rpm package on your home network
# incase you need to reinstall later

# If your using a different CentOS revision, you might need
# a different pkcs11 check
http://pkgs.repoforge.org/pkcs11-helper/

Leave a comment