I wrote a openvpn auto install scripts for CentOS6,And It can only get a "ifconfig [192.168.194.6] [192.168.194.5]"(Client log).
And It's speed is extreme low(less than 100kbps),My PPTP server can provide UP to 30Mbps.
Client get a gateway 192.168.194.5(Windows)
ping 192.168.194.1 fail
ping 192.168.194.5 fail
ping 8.8.8.8 fail
...
iptables already set POSTFORWARD and NAT.
not working.
I think problem might in the server.conf.
server.conf and client.ovpn are combine to this scripts in the end.
Is there anyone can help me ?
# !/bin/bash
echo "**********************************************#"
echo "* CentOS6 OpenVPN Installer #"
echo "* Author: RucLinux #"
echo "* Fixed by: iMoc #"
echo "* Author's Web: http://www.myzhenai.com.cn #"
echo "* Fixer has no WEB page. XD #"
echo "**********************************************#"
#OpenVPN-----------------------------------------------------------------------------
yum install redhat-lsb curl -y
el=`rpm -qa |grep epel` && yum -q remove $el -y
rp=`rpm -qa |grep rpmforge` && yum -q remove $rp -y
version=`lsb_release -a|grep -e Release|awk -F ":" '{ print $2 }'|awk -F "." '{ print $1 }'`
if [ $version == "6" ];then
if [ $(getconf WORD_BIT) = '32' ];then
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
else
wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
fi
fi
if [ $version == "5" ];then
if [ $(getconf WORD_BIT) = '32' ];then
wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.3-1.el5.rf.i386.rpm
else
wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
fi
fi
if [ $version == "7" ];then
wget http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
fi
yum remove openvpn -y
rm -rf /etc/openvpn/*
rm -rf /home/vpn
rm -rf /home/vpn.tar.gz
yum update -y
yum install gcc gcc-c++ lrzsz lzo openssl openssl-devel iptables pkcs11-helper pkcs11-helper-devel openssh-clients openvpn -y
easy=`find / -name easy-rsa` && cp -R $easy /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0/
chmod +rwx *
./vars
sed -i 's/export KEY_COUNTRY="US"/export KEY_COUNTRY="CN"/g' vars
sed -i 's/export KEY_PROVINCE="CA"/export KEY_PROVINCE="HN"/g' vars
sed -i 's/export KEY_CITY="SanFrancisco"/export KEY_CITY="HAIKOU"/g' vars
sed -i 's/export KEY_ORG="Fort-Funston"/export KEY_ORG="OpenVPN"/g' vars
sed -i 's/export KEY_EMAIL="me@myhost.mydomain"/export KEY_EMAIL="root@foxmail.com"/g' vars
sed -i 's/export KEY_EMAIL=mail@host.domain/export KEY_EMAIL=root@foxmail.com/g' vars
server=`find / -name sample-config-files` && cp $server/server.conf /etc/openvpn/
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p
. ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client-name
./build-dh
openssl rsa -in keys/client-name.key -out keys/client-name.pem
chmod +x keys/*
mkdir /home/vpn
size=`grep 'export KEY_SIZE=1024' $easy/2.0/vars`
if [[ $size == "export KEY_SIZE=1024" ]];then
cp keys/{ca.crt,ca.key,client-name.crt,client-name.csr,client-name.key,server.crt,server.key,dh1024.pem,client-name.pem} /etc/openvpn/
cp keys/{ca.crt,ca.key,client-name.crt,client-name.csr,client-name.key,server.crt,server.key,dh1024.pem,client-name.pem} /home/vpn/
else
cp keys/{ca.crt,ca.key,client-name.crt,client-name.csr,client-name.key,server.crt,server.key,dh2048.pem,client-name.pem} /etc/openvpn/
cp keys/{ca.crt,ca.key,client-name.crt,client-name.csr,client-name.key,server.crt,server.key,dh2048.pem,client-name.pem} /home/vpn/
fi
cd /home/
tar -zcvf vpn.tar.gz vpn/*
cd /
#------------------------------------------------------------------------
rm -f /etc/openvpn/server.conf
echo "port 1194">/etc/openvpn/server.conf
echo "proto udp">>/etc/openvpn/server.conf
echo "dev tun">>/etc/openvpn/server.conf
echo "ca ca.crt">>/etc/openvpn/server.conf
echo "cert server.crt">>/etc/openvpn/server.conf
echo "key server.key">>/etc/openvpn/server.conf
if [[ $size == "export KEY_SIZE=1024" ]];then
echo "dh dh1024.pem">>/etc/openvpn/server.conf
else
echo "dh dh2048.pem">>/etc/openvpn/server.conf
fi
echo "push \"redirect-gateway 192.168.194.1\"">>/etc/openvpn/server.conf
echo "server 192.168.194.0 255.255.255.0">>/etc/openvpn/server.conf
echo "push \"dhcp-option DNS 8.8.8.8\"">>/etc/openvpn/server.conf
echo "push \"dhcp-option DNS 208.67.222.222\"">>/etc/openvpn/server.conf
echo "client-to-client">>/etc/openvpn/server.conf
echo "duplicate-cn">>/etc/openvpn/server.conf
echo "keepalive 15 60">>/etc/openvpn/server.conf
echo "persist-key">>/etc/openvpn/server.conf
echo "persist-tun">>/etc/openvpn/server.conf
echo "status openvpn-status.log">>/etc/openvpn/server.conf
echo "log-append openvpn.log">>/etc/openvpn/server.conf
echo "verb 5">>/etc/openvpn/server.conf
#-----------------------------------------------------------------------------
#
iptables -F
service iptables save
ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|tail -n 1`
rm -f /etc/sysconfig/iptables
service iptables restart
#
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p tcp --dport 2009 -j ACCEPT
iptables -A INPUT -p udp --dport 2009 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.194.0/24 -j SNAT --to-source $ip
#May not need due to using a udp protocol
#iptables -A FORWARD -p tcp --syn -s 192.168.194.0/24 -j TCPMSS --set-mss 1356
service iptables save
service iptables restart
echo "/usr/sbin/openvpn –config /etc/openvpn/server.conf" >> /etc/rc.local
chkconfig openvpn on
chkconfig iptables on
service openvpn start
el=`rpm -qa |grep epel` && yum -q remove $el -y
rp=`rpm -qa |grep rpmforge` && yum -q remove $rp -y
rm -rf *.rpm
yum clean all
#-----------------------------------------------------------------------------
echo "client">/home/client0.ovpn
echo "dev tun">>/home/client0.ovpn
echo "proto udp">>/home/client0.ovpn
echo "#If next configuration is \"remote 1194\",then you should reinstall OpenVPN Server before edit WAN ip manually in \"OpenVPNinstaller\".sh file">>/home/client0.ovpn
echo "remote $ip 1194">>/home/client0.ovpn
echo "resolv-retry infinite">>/home/client0.ovpn
echo "nobind">>/home/client0.ovpn
echo "persist-key">>/home/client0.ovpn
echo "persist-tun">>/home/client0.ovpn
echo "remote-cert-tls server">>/home/client0.ovpn
echo "comp-lzo">>/home/client0.ovpn
echo "verb 5">>/home/client0.ovpn
echo "<ca>">>/home/client0.ovpn
echo "#ca.crt file content">>/home/client0.ovpn
echo "</ca>">>/home/client0.ovpn
echo "<cert>">>/home/client0.ovpn
echo "#client-name.crt file content">>/home/client0.ovpn
echo "</cert>">>/home/client0.ovpn
echo "<key>">>/home/client0.ovpn
echo "#client-name.key file content">>/home/client0.ovpn
echo "</key>">>/home/client0.ovpn
echo "#----------------------------Example-----------------------------------">>/home/client0.ovpn
echo "#Example:">>/home/client0.ovpn
echo "#<ca>">>/home/client0.ovpn
echo "#-----BEGIN CERTIFICATE-----">>/home/client0.ovpn
echo "#MIIDrjCCAxegAwIBAgIJAOKECKt+MwA2MA0GCSqGSIb3DQEBBQUAMIGXMQswCQYD">>/home/client0.ovpn
echo "#VQQGEwJDTjELMAkGA1UECBMCSE4xDzANBgNVBAcTBkhBSUtPVTEQMA4GA1UEChMH">>/home/client0.ovpn
echo "#-----END CERTIFICATE-----">>/home/client0.ovpn
echo "#</ca>">>/home/client0.ovpn
echo "#<cert>">>/home/client0.ovpn
echo "#-----BEGIN CERTIFICATE-----">>/home/client0.ovpn
echo "#MIID+TCCA2KgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMCQ04x">>/home/client0.ovpn
echo "#CzAJBgNVBAgTAkhOMQ8wDQYDVQQHEwZIQUlLT1UxEDAOBgNVBAoTB09wZW5WUE4x">>/home/client0.ovpn
echo "#-----END CERTIFICATE-----">>/home/client0.ovpn
echo "#</cert>">>/home/client0.ovpn
echo "#<key>">>/home/client0.ovpn
echo "#-----BEGIN PRIVATE KEY-----">>/home/client0.ovpn
echo "#W+snyy2Yc6vMQK8A+DWb0SVe6rsLs6eH9L6ZLCMTYaNc41I/vRkKWQJBANbjQsil">>/home/client0.ovpn
echo "#-----END PRIVATE KEY-----">>/home/client0.ovpn
echo "#</key>">>/home/client0.ovpn
echo '*********************************************************';
echo '**** Installation complete ****';
echo '**** .ovpn file:/home/client0.ovpn ****';
echo '**** .ca .crt .key file path:/home/vpn ****';