From e2ac3e8ffe8a79e11a024ac446c69f0ec1a350bb Mon Sep 17 00:00:00 2001 From: bedefaced Date: Thu, 17 Aug 2017 00:36:34 +0300 Subject: [PATCH] PPTP client config generating --- pptp/adduser.sh | 25 ++++++++++++++++++---- pptp/setup.sh.dist | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 pptp/setup.sh.dist diff --git a/pptp/adduser.sh b/pptp/adduser.sh index 5eefe55..b60e280 100755 --- a/pptp/adduser.sh +++ b/pptp/adduser.sh @@ -25,6 +25,8 @@ do echo done +DELETED=0 + $DIR/checkuser.sh $LOGIN if [[ $? -eq 0 ]]; then @@ -36,12 +38,27 @@ if [[ $? -eq 0 ]]; then exit 1 else $DIR/deluser.sh $LOGIN - # to avoid dublicate message - echo -e "$LOGIN\t *\t $PASSWORD\t *" >> $CHAPSECRETS - exit 0 + DELETED=1 fi fi echo -e "$LOGIN\t *\t $PASSWORD\t *" >> $CHAPSECRETS -echo "$CHAPSECRETS updated!" +if [ $DELETED -eq 0 ]; then + echo "$CHAPSECRETS updated!" +fi + +STARTDIR=$(pwd) + +mkdir "$STARTDIR/$LOGIN" +DISTFILE=$STARTDIR/$LOGIN/setup.sh +cp -rf setup.sh.dist "$DISTFILE" +sed -i -e "s@_LOGIN_@$LOGIN@g" "$DISTFILE" +sed -i -e "s@_PASSWORD_@$PASSWORD@g" "$DISTFILE" +sed -i -e "s@_REMOTEIP_@$IP@g" "$DISTFILE" +sed -i -e "s@_LOCALPREFIX_@$LOCALPREFIX@g" "$DISTFILE" +chmod +x "$DISTFILE" +USERNAME=${SUDO_USER:-$USER} +chown -R $USERNAME:$USERNAME $STARTDIR/$LOGIN/ +echo +echo "Created directory $STARTDIR/$LOGIN with client-side installation file." diff --git a/pptp/setup.sh.dist b/pptp/setup.sh.dist new file mode 100644 index 0000000..e4dc242 --- /dev/null +++ b/pptp/setup.sh.dist @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +LOGIN=_LOGIN_ +PASSWORD=_PASSWORD_ +REMOTEIP=_REMOTEIP_ +REMOTEIPLOCAL=_LOCALPREFIX_.0.1 +REMOTENAME=PPTP + +CHAPSECRETS=/etc/ppp/chap-secrets +PEERFILE=/etc/ppp/peers/pptpserver +set -e + +if [[ "$EUID" -ne 0 ]]; then + echo "Sorry, you need to run this as root" + exit 1 +fi + +if [[ ! -e $CHAPSECRETS ]] || [[ ! -r $CHAPSECRETS ]]; then + echo "$CHAPSECRETS is not exist or not accessible." + exit 1 +fi + +echo +echo "Installing necessary packets..." + +apt-get install pptp-linux ppp +modprobe ppp_mppe + +chmod u+s `which pptp` + +echo +echo "Remote peer configuration..." + +cat <$PEERFILE +pty "pptp $REMOTEIP --nolaunchpppd" +name $LOGIN +noauth +nobsdcomp +nodeflate +usepeerdns +defaultroute +replacedefaultroute +refuse-pap +refuse-eap +refuse-chap +novj +remotename $REMOTENAME +require-mppe-128 +END + +echo +echo "Adding user to chap-secrets file..." +echo -e "$LOGIN\t $REMOTENAME\t $PASSWORD\t *" >> $CHAPSECRETS