X-Git-Url: https://iankelling.org/git/?p=vpn-setup;a=blobdiff_plain;f=vpn-server-setup;fp=vpn-server-setup;h=ded2a785f59250b265f2307a85ccdb3e04cfb98c;hp=bbfd41b8687c9ab31f9c1176b07f32610b7823f7;hb=50a29b33506900a8bc5d87e67ea0d3fd9bd69369;hpb=b6a5ea4d79dbed159eaa7ba9050fcfe1fcb6d274 diff --git a/vpn-server-setup b/vpn-server-setup index bbfd41b..ded2a78 100755 --- a/vpn-server-setup +++ b/vpn-server-setup @@ -20,7 +20,7 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR [[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" usage() { - cat <<'EOF' + cat <<'EOF' usage: ${0##*/} [-d|-h|--help] -r Do not push default route @@ -37,7 +37,7 @@ the script will not generate them if it sees they exist already. Note: Uses GNU getopt options parsing style EOF - exit $1 + exit $1 } dns=true @@ -46,47 +46,74 @@ start=true temp=$(getopt -l help drsh "$@") || usage 1 eval set -- "$temp" while true; do - case $1 in - -d) dns=false; shift ;; - -r) route=false; shift ;; - -s) start=false; shift ;; - -h|--help) usage ;; - --) shift; break ;; - *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;; - esac + case $1 in + -d) dns=false; shift ;; + -r) route=false; shift ;; + -s) start=false; shift ;; + -h|--help) usage ;; + --) shift; break ;; + *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;; + esac done apt-get update -# suggests get's us openssl +# suggests get's us openssl. policy-rc.d is to prevent install from starting services +f=/usr/sbin/policy-rc.d; +dd of=$f <>$server_dir/server.conf <<'EOF' @@ -153,27 +178,30 @@ mkdir -p /etc/openvpn/client-config if $dns; then - # Be the dns server for clients - cat >>$server_dir/server.conf <<'EOF' + # Be the dns server for clients + cat >>$server_dir/server.conf <<'EOF' push "dhcp-option DNS 10.8.0.1" EOF fi if $route; then - cat >>$server_dir/server.conf <<'EOF' + cat >>$server_dir/server.conf <<'EOF' # Be the default gateway for clients. push "redirect-gateway def1" EOF - echo "1" > /proc/sys/net/ipv4/ip_forward - sed -i --follow-symlinks '/^ *net\.ipv4\.ip_forward=.*/d' /etc/sysctl.conf - cat >>/etc/sysctl.conf <<'EOF' +fi + +sed -i --follow-symlinks '/^ *net\.ipv4\.ip_forward=.*/d' /etc/sysctl.conf +sed -i --follow-symlinks '/^ *net.ipv6.conf.all.forwarding=.*/d' /etc/sysctl.conf +cat >>/etc/sysctl.conf <<'EOF' net.ipv4.ip_forward=1 +net.ipv6.conf.all.forwarding=1 EOF +sysctl -p /etc/sysctl.conf +gw=$(ip route | sed -rn 's/^default via .* dev (\S+).*/\1/p') - gw=$(ip route | sed -rn 's/^default via .* dev (\S+).*/\1/p') - - cat >/etc/systemd/system/vpnnat.service </etc/systemd/system/vpnnat.service <