#!/bin/bash echo "Config-Installationsprogramm für SchulVPN" if [ $USER != "root" ]; then echo Root-Rechte benoetigt! read exit 0 fi echo "Geben Sie das Standard-Wireless Interface ein: " read WLAN echo "Geben Sie die ESSID an, bei dem OpenVPN nicht verbinden soll: " read NOVPNESSID echo "Geben Sie das Interface an, bei dem OpvenVPN nicht verbinden soll: " read NOVPNINT echo "Geben Sie Ihren Benutzernamen ein: " read BENUTZER mkdir $HOME/.vpn mkdir $HOME/.vpn/keys ##------------------------------------------------------------------------------ #/etc/NetworkManager/dispatcher.d/02vpn ##------------------------------------------------------------------------------ echo "#!/bin/bash INTERFACE=\$1 ACTION=\$2 ESSID=\$(iwconfig "$WLAN" | grep ESSID | cut -d':' -f2 | sed -e 's/Nickname//g' | sed -e 's/\"//g'| sed -e 's/ //g') echo '\$ESSID + \$INTERFACE + \$ACTION' >> /var/log/vpnscript.log case \$ACTION in up) if [ \$ESSID != \"$NOVPNESSID\" ]; then if [ \$INTERFACE != \"$NOVPNINT\" ]; then echo 'starte script' >> /var/log/vpnscript.log "$HOME"/.vpn/scriptconn.sh fi fi ;; down) if [ '\$(pidof openvpn)' ]; then echo 'killall openvpn' >> /var/log/vpnscript.log killall openvpn fi ;; pre-up) ;; post-down) ;; *) echo 'Usage: \$0 {up|down|pre-up|post-down}' echo 'finish' >> /var/log/vpnscript.log exit 1 esac " > /etc/NetworkManager/dispatcher.d/02vpn chown root:root /etc/NetworkManager/dispatcher.d/02vpn chmod +x /etc/NetworkManager/dispatcher.d/02vpn ##------------------------------------------------------------------------------ #~/.vpn/scriptconn.sh ##------------------------------------------------------------------------------ echo "#!/bin/bash echo 'Starte Openvpn' >> /var/log/vpnscript.log openvpn --config "$HOME"/.vpn/schulvpn.ovpn & #sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung wird hergestellt!' 4 --display :0 #echo 'Dialog angezeit - fin' >> /var/log/vpnscript.log exit 0 " > $HOME/.vpn/scriptconn.sh ##------------------------------------------------------------------------------ #~/.vpn/scriptstate.sh ##------------------------------------------------------------------------------ echo "#!/bin/bash if [ \$1 = 'connected' ] then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbunden!' 4 --display :0 elif [ \$1 = 'disconnected' ] then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung getrennt!' 4 --display :0 else echo 'fail' echo 'scriptconn started' >> /var/log/vpnlog.log fi exit 0 " > $HOME/.vpn/scriptstate.sh ##------------------------------------------------------------------------------ #CertCopy ##------------------------------------------------------------------------------ cert=$(ls *.key |cut -d "." -f1 |cut -d "/" -f3) #cert=$(echo $cert | cut -d " " -f1) controll="0" if [ -z "$cert" ]; then echo "Es wurde kein Zertifikat gefunden" controll="1" else echo "Es wurde ein Zertifikat gefunden: "$cert".key" cp $cert.key $HOME/.vpn/keys/$cert.key cp $cert.crt $HOME/.vpn/keys/$cert.crt cp ca.crt $HOME/.vpn/keys/ca.crt fi if [ $controll == "0" ] then test -e "$HOME/.vpn/keys/$cert.crt" if [ 1 == $? ]; then echo $cert.crt nicht richtig kopiert controll="1" fi test -e "$HOME/.vpn/keys/$cert.key" if [ 1 == $? ]; then echo $cert.key nicht richtig kopiert controll="1" fi test -e "$HOME/.vpn/keys/ca.crt" if [ 1 == $? ]; then echo ca.crt nicht richtig kopiert controll="1" fi if [ 0 == $controll ]; then echo "#Konfiguriert by Christoph Haas #Copyleft CyberLabs 2008-09 #Veraendern auf EIGENE GEFAHR... #Start ########################################################## # AENDERUNGEN START ########################################################## #Zertifikate ca "$HOME"/.vpn/keys/ca.crt cert "$HOME"/.vpn/keys/"$cert".crt key "$HOME"/.vpn/keys/"$cert".key ########################################################## # AENDERUNGEN ENDE ######################################################### #Modus client #IP Modus float #Tunnel Modus/Device dev tap #MTU laenge tun-mtu 1500 #probleme mit windoof clients verhindern ;fragment 1500 #udp only mssfix #LAN Adapter Name (optional^^) ;dev-node my-tap #Protokoll fuern Tunnel (in da schule tcp) proto tcp-client #Pushs vom Server abarbeiten pull #Server IP / PORT remote 10.10.63.60 1194 #Server COMMON Name #tls-remote VPNServer #Authentifizierung/Encryption ;auth SHA1 cipher aes-256-cbc #Adress bind verhindern nobind #Komprimierung comp-lzo #LINUX/UNIX only ;persist-key ;persist-tun script-security 2 # eventuelle kde4 integration ;route-up '"$HOME"/.vpn/scriptstate.sh connected' ;down '"$HOME"/.vpn/scriptstate.sh disconnected' #Ende " > $HOME/.vpn/schulvpn.ovpn chmod +x $HOME/.vpn/* echo SchulVPN ist jetzt verwendbar! read exit 0 else echo "Überprüfen Sie, ob das zip paket richtig entpackt wurde!" echo "Führen Sie anschließend das Setup nocheinmal aus!" read exit 1 fi fi