Last active
August 29, 2015 14:17
-
-
Save Wind4/4a9e99f8a0c0c4de323e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Author: yeho <lj2007331 AT gmail.com> | |
# Blog: http://blog.linuxeye.com | |
# | |
# Installs a PPTP VPN-only system for CentOS | |
# Check if user is root | |
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 | |
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | |
clear | |
printf " | |
####################################################################### | |
# LNMP/LAMP/LANMP for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+ # | |
# For more information please visit http://blog.linuxeye.com/31.html # | |
####################################################################### | |
" | |
[ ! -e '/usr/bin/curl' ] && yum -y install curl | |
VPN_IP=`curl ipv4.icanhazip.com` | |
VPN_USER="username" | |
VPN_PASS="password" | |
VPN_LOCAL="10.8.0.1" | |
VPN_REMOTE="10.8.0.2-99" | |
while : | |
do | |
echo | |
read -p "Please input username: " VPN_USER | |
[ -n "$VPN_USER" ] && break | |
done | |
while : | |
do | |
echo | |
read -p "Please input password: " VPN_PASS | |
[ -n "$VPN_PASS" ] && break | |
done | |
clear | |
if [ -n "`grep 'CentOS Linux release 7' /etc/redhat-release`" ];then | |
#CentOS_REL=7 | |
if [ ! -e /etc/yum.repos.d/epel.repo ];then | |
cat > /etc/yum.repos.d/epel.repo << EOF | |
[epel] | |
name=Extra Packages for Enterprise Linux 7 - \$basearch | |
#baseurl=http://download.fedoraproject.org/pub/epel/7/\$basearch | |
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=\$basearch | |
failovermethod=priority | |
enabled=1 | |
gpgcheck=0 | |
EOF | |
fi | |
for Package in wget make openssl gcc-c++ ppp pptpd iptables iptables-services | |
do | |
yum -y install $Package | |
done | |
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf | |
elif [ -n "`grep 'CentOS release 6' /etc/redhat-release`" ];then | |
#CentOS_REL=6 | |
for Package in wget make openssl gcc-c++ iptables ppp | |
do | |
yum -y install $Package | |
done | |
sed -i 's@net.ipv4.ip_forward.*@net.ipv4.ip_forward = 1@g' /etc/sysctl.conf | |
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm | |
yum -y install pptpd | |
else | |
echo -e "\033[31mDoes not support this OS, Please contact the author! \033[0m" | |
exit 1 | |
fi | |
echo "1" > /proc/sys/net/ipv4/ip_forward | |
sysctl -p /etc/sysctl.conf | |
[ -z "`grep '^localip' /etc/pptpd.conf`" ] && echo "localip $VPN_LOCAL" >> /etc/pptpd.conf # Local IP address of your VPN server | |
[ -z "`grep '^remoteip' /etc/pptpd.conf`" ] && echo "remoteip $VPN_REMOTE" >> /etc/pptpd.conf # Scope for your home network | |
if [ -z "`grep '^ms-dns' /etc/ppp/options.pptpd`" ];then | |
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd # Google DNS Primary | |
echo "ms-dns 209.244.0.3" >> /etc/ppp/options.pptpd # Level3 Primary | |
echo "ms-dns 208.67.222.222" >> /etc/ppp/options.pptpd # OpenDNS Primary | |
fi | |
echo "$VPN_USER pptpd $VPN_PASS *" >> /etc/ppp/chap-secrets | |
ETH=`route | grep default | awk '{print $NF}'` | |
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT | |
iptables -t nat -A POSTROUTING -o $ETH -j MASQUERADE | |
service iptables save | |
service iptables restart | |
service pptpd restart | |
chkconfig pptpd on | |
clear | |
echo -e "You can now connect to your VPN via your external IP \033[32m${VPN_IP}\033[0m" | |
echo -e "Username: \033[32m${VPN_USER}\033[0m" | |
echo -e "Password: \033[32m${VPN_PASS}\033[0m" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment