基於CentOS7的PPTP VPN一鍵部署指令碼
阿新 • • 發佈:2018-12-19
指令碼已親測可用,環境是centos7.4
#!/bin/bash
[ $(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
############################################################################
echo "##########################################################################"
read -p "pptp_user: " NAME
if [ -z $NAME ];then
NAME=user
fi
read -p "pptp_passwd: " PASS
if [ -z $PASS ];then
p1=`cat /dev/urandom | tr -cd abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789 | head -c 4`
p2=`cat /dev/urandom | tr -cd abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789 | head -c 4`
PASS="$p1$p2"
fi
echo "##########################################################################"
###########################################################################################
yum -y update
yum -y install epel-release
yum -y install firewalld ppp pptpd net-tools
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
cat >> /etc/ppp/chap-secrets <<END
$NAME pptpd $PASS *
END
cat >/etc/pptpd.conf <<END
option /etc/ppp/options.pptpd
#logwtmp
localip 192.168.2.1
remoteip 192.168.2.10-100 #此處配置分配給VPN內網使用者的IP,可自行修改,不與內部網段衝突即可
END
cat >/etc/ppp/options.pptpd <<END
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 223.5.5.5 #此處修改為阿里的DNS,撥通VPN後開啟國內網頁的速度會快一點
ms-dns 223.6.6.6
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
END
ens=`route | grep default | awk '{print $NF}'`
systemctl restart firewalld
systemctl enable firewalld
firewall-cmd --set-default-zone=public
firewall-cmd --add-interface=$ens
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --add-port=1723/tcp --permanent
firewall-cmd --add-masquerade --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i $ETH -p gre -j ACCEPT
firewall-cmd --reload
cat > /etc/ppp/ip-up.local << END
/sbin/ifconfig $1 mtu 1400
END
chmod +x /etc/ppp/ip-up.local
systemctl restart pptpd
systemctl enable pptpd
###############################################################################################
***_ip=`ifconfig $ens | grep "inet " | awk '{ print $2}'`
clear
echo "##########################################################################"
echo "You can now connect to your *** via your external IP: $***_ip"
echo "Username: $NAME"
echo "Password: $PASS"
echo "##########################################################################"
如需另外新增vpn使用者,請編輯/etc/ppp/chap-secrets檔案,按原來新增的使用者格式新增即可;