#!/bin/bash
### MODUL-NR. 005 ### 
# (c) August 2008 Stefan Schäfer / FSP Computer & Netzwerke
# (c) 2009-2018 Stefan Schäfer / invis-server.org / stefan@invis-server.org
# (c) 2013,2014 Dimitri Asarowski / invis-server.org / dimitri@invis-server.org
# (c) 2013-2017 Ingo Göppert / invis-server.org / ingo@invis-server.org

# License: GPLv3
# Questions: info@invis-server.org

# openVPN Einrichten

# openVPN setup

# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der 
# GNU General Public License, wie von der Free Software Foundation veröffentlicht,
# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
# (nach Ihrer Option) jeder späteren Version.

# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen
# von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite 
# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. 
# Details finden Sie in der GNU General Public License.

# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem 
# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>. 

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# include functions
source $SINEINCLUDEDIR/functions

modulename=`basename $0`

clear
windowtitle="openVPN"
pgsubtitle="Setup openVPN"

dialog --backtitle "$DIALOGTITLE - Modul: $modulename" --title "$windowtitle" --exit-label "Weiter" --textbox "$INFODIR/openvpn.txt" 38 92

pgsubtitle="openvpn wird installiert" 
zypper refresh 2>&1 | tee -a $LOGFILE  |pgbox
zypper -n install -n openvpn 2>&1 | tee -a $LOGFILE | pgbox
zyppercheck ${PIPESTATUS[0]}

# create client configuration
cp $TEMPLATEDIR/$modulename/invis-sub-server.conf /etc/openvpn
path="/etc/openvpn"
file="invis-sub-server.conf"

masterfqdn=`getconfdata "MasterFQDNext" "2"`
string="openvpn_server%$masterfqdn"
changevalues $path $file "$string"

# Client key
p12pw=`getpassword "P12PW" "3"`
keydir="/etc/openvpn/keys"
mkdir $keydir
echo $p12pw > $keydir/pw
chmod 0600 $keydir/pw

keyfile=`getconfdata "P12Path" "2"`
cp $keyfile $keydir

p12path=$keydir/`basename $keyfile`
string="p12path%$p12path"
changevalues $path $file "$string"

# openvpn ins Runlevel-Konzept integrieren und starten
# Seit openSUSE 13.1 bekommt jede openvpn-Konfiguration ein eigenes systemd Service-File
# Start und Stop koennen damit fuer jede Konfiguration einzeln erfolgen.
cp /usr/lib/systemd/system/openvpn@.service /usr/lib/systemd/system/openvpn@invis-sub-server.service
chkservice "openvpn@invis-sub-server"

