233 lines
5.1 KiB
Bash
Executable File
233 lines
5.1 KiB
Bash
Executable File
#!/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
|