Zertifikate für OPEN-VPN z.B. Yealink

Hallo Zusammen,
wir haben aus diversen Foren und Eigenarbeit folgendes Script erstellt, um für die Mobydick gültige Zertifikate herzustellen die es ermöglichen eine VPN Verbindung mit z.B Usern oder Telefonen aufzubauen. Wir sind jetzt nicht wirklich die Zertifikatprofis, daher besteht unsererseits die Frage ob dies schon einmal jemand in ähnlicher oder besserer Form gemacht hat. Und uns sagt ob dies so korrekt ist oder wir hier einen groben Fehler drin haben.

   #!/bin/bash
   # OpenVPN für Pascom TK-Anlagen angepasst durch Computer-Rausch M-CR

   # Vor der Ausführung des Skriptes empfehlen wir noch die Anpassungen an der MobyDick
   # vorzunehmen.

   #Es kann via SSH admin login und erhöhen der Rechte mittels sudo -i der folgende Part ausgeführt werden.

   # cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /root/easy-rsa/

   #In diesem Ordner befindet sich eine vars Datei, in dem folgende Inhalte für Ihr Unternehmen angepasst werden sollten:
   # (nano /root/easy-rsa/vars)
   # --
   # export KEY_SIZE=2048
   # export KEY_COUNTRY="DE"
   # export KEY_PROVINCE="RLP"
   # export KEY_CITY="Guellesheim"
   # export KEY_ORG="Computer-Rausch M-CR"
   # export KEY_EMAIL="support@m-cr.de (http://m-cr.de)"

   # Wechseln in das Verzichnis der PKI:

   # cd /root/easy-rsa/. ./vars
   # ./clean-all

   #Das Skript kopieren Sie am Basten mittels SFTP in das home Verzeichnis des Administrators, 
   # /etc/admin
     
   #Dieses Skript muss mit folgendem Befehl ausgeführt werden,
   #die Anlage sollte bereits im Netzwerk konfiguriert sein und eine Internetverbindung haben.

   #+++++++++++++++  bash MobyDick_Zert_install.sh  ++++++++++++++++

   # Nach dem Ausführen des Skriptes und der Zertifikatanlage für die Benutzer(Endgeräte) können diese,
   # via SFTP in dem Orner /etc/USER-PKI mit der entsprechenden angelegten Bezeichner heruntergeladen werden.
   # In der XXX.tar Datei sind alle erforderlichen Dateien für den Client z.B. Yealink enthalten.


   # Detect Debian users running the script with "sh" instead of bash
   if readlink /proc/$$/exe | grep -qs "dash"; then
   	echo "Dieses Skript muss als bash ausgeführt werden und nicht mit sh"
   	exit 1
   fi

   if [[ "$EUID" -ne 0 ]]; then
   	echo "Sie müssen dieses Skript erneut als ROOT ausführen"
   	exit 2
   fi

   if [[ ! -e /dev/net/tun ]]; then
   	echo "The TUN device is not available
   You need to enable TUN before running this script"
   	exit 3
   fi

   if grep -qs "CentOS release 5" "/etc/redhat-release"; then
   	echo "CentOS 5 is too old and not supported"
   	exit 4
   fi
   if [[ -e /etc/debian_version ]]; then
   	OS=debian
   	GROUPNAME=nogroup
   	RCLOCAL='/etc/rc.local'
   elif [[ -e /etc/centos-release || -e /etc/redhat-release ]]; then
   	OS=centos
   	GROUPNAME=nobody
   	RCLOCAL='/etc/rc.d/rc.local'
   else
   	echo "Dieses Skript ist für diese Pascom Version nicht geeignet"
   	exit 5
   fi

   newclient () {
   	# Generates the custom client.ovpn
   	cp /etc/openvpn/client-common.txt ~/$1.ovpn
   	echo "<ca>" >> ~/$1.ovpn
   	cat /etc/openvpn/easy-rsa/pki/ca.crt >> ~/$1.ovpn
   	echo "</ca>" >> ~/$1.ovpn
   	echo "<cert>" >> ~/$1.ovpn
   	cat /etc/openvpn/easy-rsa/pki/issued/$1.crt >> ~/$1.ovpn
   	echo "</cert>" >> ~/$1.ovpn
   	echo "<key>" >> ~/$1.ovpn
   	cat /etc/openvpn/easy-rsa/pki/private/$1.key >> ~/$1.ovpn
   	echo "</key>" >> ~/$1.ovpn
   	echo "<tls-auth>" >> ~/$1.ovpn
   	cat /etc/openvpn/ta.key >> ~/$1.ovpn
   	echo "</tls-auth>" >> ~/$1.ovpn
   	# Kopieren der Dateien Nach  USER-PKI und TAR erzeugen
   	mkdir -p /etc/USER-PKI
   	cp /etc/root/$1.ovpn /etc/USER-PKI/
   	cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/USER-PKI/
   	cp /etc/openvpn/easy-rsa/pki/issued/$1.crt /etc/USER-PKI/
   	cp /etc/openvpn/easy-rsa/pki/private/$1.key /etc/USER-PKI/
   	cp /etc/openvpn/ta.key /etc/USER-PKI/
   	cd /etc/USER-PKI
   	tar czf $1.tar $1.ovpn $1.crt $1.key ca.crt
   	echo "Die TAR Datei wird im Verzeichnis /etc/USER-PKI/XXX.tar abgelegt dies kann 10 Sekunden dauern!"
   	sleep 10
   	chown admin:admin /etc/USER-PKI/$1.tar

   }

   # Try to get our IP from the system and fallback to the Internet.
   # I do this to make the script compatible with NATed servers (lowendspirit.com)
   # and to avoid getting an IPv6.
   IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
   if [[ "$IP" = "" ]]; then
   		IP=$(wget -4qO- "http://whatismyip.akamai.com/")
   fi

   if [[ -e /etc/openvpn/server.conf ]]; then
   	while :
   	do
   	clear
   		echo "OpenVPN für Pascom bereits installiert"
   		echo ""
   		echo "Was möchten Sie tun?"
   		echo "   1) Benutzer hinzufügen"
   		echo "   2) Benutzer löschen"
   		echo "   3) !!! Achtung !!! OpenVPN auf der Pascom TK-Anlage entfernen"
   		echo "   4) Skript Beenden"
   		read -p "Bitte wählen Sie die gewünschte Option [1-4]: " option
   		case $option in
   			1) 
   			echo ""
   			echo "Bitte geben Sie den Namen für das Client Zertifikat ein"
   			echo "Bitte nur Buchstaben und Zahlen und keine Sonderzeichen verwenden!"
   			#Beginn des Testes
   			echo "Folgende Zertifikate sind bereits vorhanden"
   			tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') '
   			echo "Bitte wählen Sie eine nicht vorhandene Bezeichnung"
   			read -p "Zertifikatname: " -e -i MCRTK"$CLIENTNUMBER" CLIENT
   			cd /etc/openvpn/easy-rsa/
   			./easyrsa build-client-full $CLIENT nopass
   			# Generates the custom client.ovpn
   			newclient "$CLIENT"
   			echo ""
   			echo "Der Benutzer mit dem Namen $CLIENT wurde hinzugefügt, die Konfiguration ist unter folgendem Namen zu finden" ~/"$CLIENT.ovpn"
   			exit
   			;;
   			2)
   			# This option could be documented a bit better and maybe even be simplimplified
   			# ...but what can I say, I want some sleep too
   			NUMBEROFCLIENTS=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep -c "^V")
   			if [[ "$NUMBEROFCLIENTS" = '0' ]]; then
   				echo ""
   				echo "Sie haben keine Zertifikate zum löschen angelegt!"
   				exit 6
   			fi
   			echo ""
   			echo "Bitte wählen Sie das zu löschende Zertifikat aus"
   			tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') '
   			if [[ "$NUMBEROFCLIENTS" = '1' ]]; then
   				read -p "Bitte wählen Sie ein Zertifikat [1]: " CLIENTNUMBER
   			else
   				read -p "Bitte wählen Sie ein Zertifikat [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER
   			fi
   			CLIENT=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p)
   			cd /etc/openvpn/easy-rsa/
   			./easyrsa --batch revoke $CLIENT
   			EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl
   			rm -rf pki/reqs/$CLIENT.req
   			rm -rf pki/private/$CLIENT.key
   			rm -rf pki/issued/$CLIENT.crt
   			rm -rf /etc/openvpn/crl.pem
   			cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem
   			# CRL is read with each client connection, when OpenVPN is dropped to nobody
   			chown nobody:$GROUPNAME /etc/openvpn/crl.pem
   			cd /etc/
   			rm -rf /etc/USER-PKI/$CLIENT.crt
   			rm -rf /etc/USER-PKI/$CLIENT.key
   			rm -rf /etc/USER-PKI/$CLIENT.tar
   			rm -rf /etc/USER-PKI/$CLIENT.ovpn
   			echo ""
   			echo "Das Zertifikat $CLIENT wurde gelöscht"
   			exit
   			;;
   			3) 
   			echo ""
   			read -p "Möchten Sie wirklich OpenVPN von dieser Pascom TK-Anlage entfernen? [y/n]: " -e -i n REMOVE
   			if [[ "$REMOVE" = 'y' ]]; then
   				PORT=$(grep '^port ' /etc/openvpn/server.conf | cut -d " " -f 2)
   				PROTOCOL=$(grep '^proto ' /etc/openvpn/server.conf | cut -d " " -f 2)
   				if pgrep firewalld; then
   					IP=$(firewall-cmd --direct --get-rules ipv4 nat POSTROUTING | grep '\-s 192.168.10.0/24 '"'"'!'"'"' -d 192.168.10.0/24 -j SNAT --to ' | cut -d " " -f 10)
   					# Using both permanent and not permanent rules to avoid a firewalld reload.
   					firewall-cmd --zone=public --remove-port=$PORT/$PROTOCOL
   					firewall-cmd --zone=trusted --remove-source=192.168.10.0/24
   					firewall-cmd --permanent --zone=public --remove-port=$PORT/$PROTOCOL
   					firewall-cmd --permanent --zone=trusted --remove-source=192.168.10.0/24
   					firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   					firewall-cmd --permanent --direct --remove-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   				else
   					IP=$(grep 'iptables -t nat -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to ' $RCLOCAL | cut -d " " -f 14)
   					iptables -t nat -D POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   					sed -i '/iptables -t nat -A POSTROUTING -s 192.168.10.0\/24 ! -d 192.168.10.0\/24 -j SNAT --to /d' $RCLOCAL
   					if iptables -L -n | grep -qE '^ACCEPT'; then
   						iptables -D INPUT -p $PROTOCOL --dport $PORT -j ACCEPT
   						iptables -D FORWARD -s 192.168.10.0/24 -j ACCEPT
   						iptables -D FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
   						sed -i "/iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT/d" $RCLOCAL
   						sed -i "/iptables -I FORWARD -s 192.168.10.0\/24 -j ACCEPT/d" $RCLOCAL
   						sed -i "/iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT/d" $RCLOCAL
   					fi
   				fi
   				if hash sestatus 2>/dev/null; then
   					if sestatus | grep "Current mode" | grep -qs "enforcing"; then
   						if [[ "$PORT" != '1194' || "$PROTOCOL" = 'tcp' ]]; then
   							semanage port -d -t openvpn_port_t -p $PROTOCOL $PORT
   						fi
   					fi
   				fi
   				if [[ "$OS" = 'debian' ]]; then
   					apt-get remove --purge -y openvpn
   				else
   					yum remove openvpn -y
   				fi
   				rm -rf /etc/openvpn
   				echo ""
   				echo "OpenVPN für Pascom wurde entfernt!"
   			else
   				echo ""
   				echo "Das entfernen von OpenVPN für Pascom wurde abgebrochen!"
   			fi
   			exit
   			;;
   			4) exit;;
   		esac
   	done
   else
   	clear
   	echo 'Willkomen zur Installation von OpenVPN für Pascom "road warrior" '
   	echo ""
   	# OpenVPN setup and first user creation
   	echo "Wir benötigen während der Installation einige Informationen"
   	echo "Sie können die Standardeinträge stehen lassen,"
   	echo "empfehlen jedoch diese individuell anzupassen"
   	echo ""
   	echo "Zuerst benötigen wir die IPv4 Adresse bei der OpenVPN für Pascom,"
   	echo "angesprochen werden soll"
   	echo "Wir haben die folgende bereits für Sie ermittelt"
   	read -p "IP-Addresse: " -e -i $IP IP
   	echo ""
   	echo "Bitte wählen Sie welches Protokoll bei OpenVPN für Pascom verwenden soll?"
   	echo "   1) UDP (standard)"
   	echo "   2) TCP"
   	read -p "Protokoll [1-2]: " -e -i 1 PROTOCOL
   	case $PROTOCOL in
   		1) 
   		PROTOCOL=udp
   		;;
   		2) 
   		PROTOCOL=tcp
   		;;
   	esac
   	echo ""
   	echo "Bitte wählen Sie den zu öffnenden Firewall-Port bei OpenVPN für Pascom," 
   	echo "auf dem die Kommunikation stattfinden wird?"
   	read -p "Port: " -e -i 1194 PORT
   	echo ""
   	echo "Welche DNS Server möchten Sie auf dem Ethernet Port einstellen?"
   	echo "Wir empfehlen Aktuelle Systemeinstellungen beizubehalten"
   	echo "   1) Aktuelle Systemeinstellungen"
   	echo "   2) Google"
   	echo "   3) OpenDNS"
   	echo "   4) NTT"
   	echo "   5) Hurricane Electric"
   	echo "   6) Verisign"
   	read -p "DNS [1-6]: " -e -i 1 DNS
   	echo ""
   	echo "Zum Schluss, erstellen wir nun das Zertifikat für den Client"
   	echo "Bitte nur Buchstaben und Zahlen verwenden, keine Sonderzeichen"
   	read -p "Zertifikatname: " -e -i MCRTK"$CLIENTNUMBER+1" CLIENT
   	echo ""
   	echo "Nun haben wir alle Informationen zusammen und die Installation kann beginnen"
   	read -n1 -r -p "Zum Fortsetzen beliebige Taste drücken"
   	if [[ "$OS" = 'debian' ]]; then
   		apt-get update
   		apt-get install openvpn iptables openssl ca-certificates -y
   	else
   		# Else, the distro is CentOS
   		yum install epel-release -y
   		yum install openvpn iptables openssl wget ca-certificates -y
   	fi
   	# An old version of easy-rsa was available by default in some openvpn packages
   	if [[ -d /etc/openvpn/easy-rsa/ ]]; then
   		rm -rf /etc/openvpn/easy-rsa/
   	fi
   	# Get easy-rsa
   	wget -O ~/EasyRSA-3.0.3.tgz "https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.3/EasyRSA-3.0.3.tgz"
   	tar xzf ~/EasyRSA-3.0.3.tgz -C ~/
   	# Temporal fix for issue #353, which is caused by OpenVPN/easy-rsa#135
   	# Will be removed as soon as a new release of easy-rsa is available
   	sed -i 's/\[\[/\[/g;s/\]\]/\]/g;s/==/=/g' ~/EasyRSA-3.0.3/easyrsa
   	mv ~/EasyRSA-3.0.3/ /etc/openvpn/
   	mv /etc/openvpn/EasyRSA-3.0.3/ /etc/openvpn/easy-rsa/
   	chown -R root:root /etc/openvpn/easy-rsa/
   	rm -rf ~/EasyRSA-3.0.3.tgz
   	cd /etc/openvpn/easy-rsa/
   	# Create the PKI, set up the CA, the DH params and the server + client certificates
   	./easyrsa init-pki
   	./easyrsa --batch build-ca nopass
   	./easyrsa gen-dh
   	./easyrsa build-server-full server nopass
   	./easyrsa build-client-full $CLIENT nopass
   	EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl
   	# Move the stuff we need
   	cp pki/ca.crt pki/private/ca.key pki/dh.pem pki/issued/server.crt pki/private/server.key pki/crl.pem /etc/openvpn
   	# CRL is read with each client connection, when OpenVPN is dropped to nobody
   	chown nobody:$GROUPNAME /etc/openvpn/crl.pem
   	# Generate key for tls-auth
   	openvpn --genkey --secret /etc/openvpn/ta.key
   	# Generate server.conf
   	echo "port $PORT
   proto $PROTOCOL
   dev tun
   sndbuf 0
   rcvbuf 0
   ca ca.crt
   cert server.crt
   key server.key
   dh dh.pem
   auth SHA512
   tls-auth ta.key 0
   topology subnet
   server 192.168.10.0 255.255.255.0
   ifconfig-pool-persist ipp.txt" > /etc/openvpn/server.conf
   	echo 'push "redirect-gateway def1 bypass-dhcp"' >> /etc/openvpn/server.conf
   	# DNS
   	case $DNS in
   		1) 
   		# Obtain the resolvers from resolv.conf and use them for OpenVPN
   		grep -v '#' /etc/resolv.conf | grep 'nameserver' | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read line; do
   			echo "push \"dhcp-option DNS $line\"" >> /etc/openvpn/server.conf
   		done
   		;;
   		2) 
   		echo 'push "dhcp-option DNS 8.8.8.8"' >> /etc/openvpn/server.conf
   		echo 'push "dhcp-option DNS 8.8.4.4"' >> /etc/openvpn/server.conf
   		;;
   		3)
   		echo 'push "dhcp-option DNS 208.67.222.222"' >> /etc/openvpn/server.conf
   		echo 'push "dhcp-option DNS 208.67.220.220"' >> /etc/openvpn/server.conf
   		;;
   		4) 
   		echo 'push "dhcp-option DNS 129.250.35.250"' >> /etc/openvpn/server.conf
   		echo 'push "dhcp-option DNS 129.250.35.251"' >> /etc/openvpn/server.conf
   		;;
   		5) 
   		echo 'push "dhcp-option DNS 74.82.42.42"' >> /etc/openvpn/server.conf
   		;;
   		6) 
   		echo 'push "dhcp-option DNS 64.6.64.6"' >> /etc/openvpn/server.conf
   		echo 'push "dhcp-option DNS 64.6.65.6"' >> /etc/openvpn/server.conf
   		;;
   	esac
   	echo "keepalive 10 120
   cipher AES-256-CBC
   comp-lzo
   user nobody
   group $GROUPNAME
   persist-key
   persist-tun
   status openvpn-status.log
   verb 3
   crl-verify crl.pem" >> /etc/openvpn/server.conf
   	# Enable net.ipv4.ip_forward for the system
   	sed -i '/\<net.ipv4.ip_forward\>/c\net.ipv4.ip_forward=1' /etc/sysctl.conf
   	if ! grep -q "\<net.ipv4.ip_forward\>" /etc/sysctl.conf; then
   		echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
   	fi
   	# Avoid an unneeded reboot
   	echo 1 > /proc/sys/net/ipv4/ip_forward
   	if pgrep firewalld; then
   		# Using both permanent and not permanent rules to avoid a firewalld
   		# reload.
   		# We don't use --add-service=openvpn because that would only work with
   		# the default port and protocol.
   		firewall-cmd --zone=public --add-port=$PORT/$PROTOCOL
   		firewall-cmd --zone=trusted --add-source=192.168.10.0/24
   		firewall-cmd --permanent --zone=public --add-port=$PORT/$PROTOCOL
   		firewall-cmd --permanent --zone=trusted --add-source=192.168.10.0/24
   		# Set NAT for the VPN subnet
   		firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   		firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   	else
   		# Needed to use rc.local with some systemd distros
   		if [[ "$OS" = 'debian' && ! -e $RCLOCAL ]]; then
   			echo '#!/bin/sh -e
   exit 0' > $RCLOCAL
   		fi
   		chmod +x $RCLOCAL
   		# Set NAT for the VPN subnet
   		iptables -t nat -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP
   		sed -i "1 a\iptables -t nat -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j SNAT --to $IP" $RCLOCAL
   		if iptables -L -n | grep -qE '^(REJECT|DROP)'; then
   			# If iptables has at least one REJECT rule, we asume this is needed.
   			# Not the best approach but I can't think of other and this shouldn't
   			# cause problems.
   			iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT
   			iptables -I FORWARD -s 192.168.10.0/24 -j ACCEPT
   			iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
   			sed -i "1 a\iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT" $RCLOCAL
   			sed -i "1 a\iptables -I FORWARD -s 192.168.10.0/24 -j ACCEPT" $RCLOCAL
   			sed -i "1 a\iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT" $RCLOCAL
   		fi
   	fi
   	# If SELinux is enabled and a custom port or TCP was selected, we need this
   	if hash sestatus 2>/dev/null; then
   		if sestatus | grep "Current mode" | grep -qs "enforcing"; then
   			if [[ "$PORT" != '1194' || "$PROTOCOL" = 'tcp' ]]; then
   				# semanage isn't available in CentOS 6 by default
   				if ! hash semanage 2>/dev/null; then
   					yum install policycoreutils-python -y
   				fi
   				semanage port -a -t openvpn_port_t -p $PROTOCOL $PORT
   			fi
   		fi
   	fi
   	# And finally, restart OpenVPN
   	if [[ "$OS" = 'debian' ]]; then
   		# Little hack to check for systemd
   		if pgrep systemd-journal; then
   			systemctl restart openvpn@server.service
   		else
   			/etc/init.d/openvpn restart
   		fi
   	else
   		if pgrep systemd-journal; then
   			systemctl restart openvpn@server.service
   			systemctl enable openvpn@server.service
   		else
   			service openvpn restart
   			chkconfig openvpn on
   		fi
   	fi
   	# Try to detect a NATed connection and ask about it to potential LowEndSpirit users
   	EXTERNALIP=$(wget -4qO- "http://whatismyip.akamai.com/")
   	if [[ "$IP" != "$EXTERNALIP" ]]; then
   		echo ""
   		echo "Es sieht so, dass Ihre Telefonanlage NAT benötigt!"
   		echo ""
   		echo "Falls Sie NAT benötigen," 
   		echo "müssen Sie Ihre externe Feste-IP oder den DYNDNS Namen eintragen"
   		echo "Falls Sie eine Fest zugewiesene IP Benutzen,"
   		echo "können Sie das Feld leer lassen oder die IP eintragen"
   		read -p "ext. IP oder DYNDNS: " -e USEREXTERNALIP
   		if [[ "$USEREXTERNALIP" != "" ]]; then
   			IP=$USEREXTERNALIP
   		fi
   	fi
   	# client-common.txt is created so we have a template to add further users later
   	echo "client
   dev tun
   proto $PROTOCOL
   sndbuf 0
   rcvbuf 0
   remote $IP $PORT
   resolv-retry infinite
   nobind
   persist-key
   persist-tun
   remote-cert-tls server
   auth SHA512
   cipher AES-256-CBC
   comp-lzo
   setenv opt block-outside-dns
   key-direction 1
   verb 3" > /etc/openvpn/client-common.txt
   	# Generates the custom client.ovpn
   	newclient "$CLIENT"
   	echo ""
   	echo "Abgeschlossen!"
   	echo ""
   	echo "Ihr Zertifikat ist unter folgendem Namen verfügbar" ~/"$CLIENT.ovpn"
   	echo "Falls Sie weitere Zertifikate erstellen möchten,"
   	echo "führen Sie das Skript einfach erneut aus!"
   fi
   ```
1 Like

Echt gut geworden :wink:

Ich kann keine Probleme erkennen. Und recht hat was funktioniert.

Danke fürs Teilen.

LG
Mathias