#!/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
END

cat >/etc/ppp/options.pptpd <<END
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
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
###############################################################################################
vpn_ip=`ifconfig $ens | grep "inet " | awk '{ print $2}'`
clear
echo "##########################################################################"
echo "You can now connect to your ××× via your external IP: $vpn_ip"
echo "Username: $NAME"
echo "Password: $PASS"
echo "##########################################################################"