#!/bin/sh # # Script to add/update an VPN user for both IPsec/L2TP and Cisco IPsec # # Copyright (C) 2018-2020 Lin Song # # This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 # Unported License: http://creativecommons.org/licenses/by-sa/3.0/ # # Attribution required: please include my name in any derivative and let me # know how you have improved it! export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" SYS_DT=$(date +%F-%T | tr ':' '_') exiterr() { echo "Error: $1" >&2; exit 1; } conf_bk() { /bin/cp -f "$1" "$1.old-$SYS_DT" 2>/dev/null; } add_vpn_user() { if [ "$(id -u)" != 0 ]; then exiterr "Script must be run as root. Try 'sudo sh $0'" fi if [ ! -f "/etc/ppp/chap-secrets" ] || [ ! -f "/etc/ipsec.d/passwd" ]; then cat 1>&2 <<'EOF' Error: File /etc/ppp/chap-secrets and/or /etc/ipsec.d/passwd do not exist! Your must first set up the VPN server before adding VPN users. See: https://github.com/hwdsl2/setup-ipsec-vpn EOF exit 1 fi if ! grep -qs "hwdsl2 VPN script" /etc/sysctl.conf; then cat 1>&2 <<'EOF' Error: This script can only be used with VPN servers created using: https://github.com/hwdsl2/setup-ipsec-vpn EOF exit 1 fi VPN_USER=$1 VPN_PASSWORD=$2 if [ -z "$VPN_USER" ] || [ -z "$VPN_PASSWORD" ]; then cat 1>&2 <> /etc/ppp/chap-secrets <> /etc/ipsec.d/passwd <