Auf unserer Mailingliste wurde von Problemen über die VPN-Verbindung zur Hochschule unter Linux berichtet. Benjamin Block hat darauf hin auf der Liste eine Anleitung zur Verbindung zu den FH-Laufwerken über SSH gemailt. Diese Anleitung möchten wir hier öffentlich zur Verfügung stellen:
Inhaltsverzeichnis |
Mail Auszug
... Falls du noch keine Lösung gefunden hast, hier mal ein Vorschlag von mir: Hab das Thema Heute selbst gehabt, weil normalerweise wohne ich im Wohnheim und kann die Sachen im FH-Netz direkt per samba/cifs einbinden. Das geht von außen nicht so einfach. Mit einem einfachen Kniff aber schon. Du sagst, du kannst per ssh auf big1. Das kannst du dazu "missbrauchen". Die samba-namen für die Fileserver der FH sind folgende: //whz-file-00.zw.fh-zwickau.de/Inflehre (da haben glaube nur Informatiker drauf Zugriff, ka ob du auch son Wahnsinniger bist) //whz-file-03.zw.fh-zwickau.de/xyz (xyz -> dein Kürzel. das is dein userhome) //whz-file-01.zw.fh-zwickau.de/information (das allg. Informations-Laufwerk) Wie gesagt, von innen kannst du die direkt anziehen (dazu musst du normalerweise root sein oder zumindest sudo nutzen): mount.cifs //whz-file-01.zw.fh-zwickau.de/information /media/samba -o username=zw\xyz,password=strenggeheim,uid=abc abc -> dein normaler useraccount auf deinem Rechner/Laptop/etc. xyz -> wieder dein Kürzel Extern kannst du das auch, allerdings musst du dir erstmal nen Tunnel in das FH-Netz schaffen. Dazu kannst du perfekter weise ssh nutzen: ssh -L 55100:whz-file-01.zw.fh-zwickau.de:445 [-L 55200:whz-file-03.zw.fh-zwickau.de:445] [-L 55300:whz-file-00.zw.fh-zwickau.de:445] xyz@ftphost.fh-zwickau.de Mit -L baust du (allg. gesprochen) einen Tunnel in das Netz der FH. Anfragen die du bei deinem Rechner auf das Port 55100 abgibst werden von ssh an den big1 geschickt und von da aus weiter an den Fileserver whz-file-01.zw.fh-zwickau.de, an das Port 445 (welches im allg. cifs-Anfragen annimmt). (Sachen in den [] sind optional, du kannst mehrere Tunnel gleichzeitig bauen, musst aber nicht) Jetzt musst du nur noch deinem cifs-Treiber sagen, dass er: (1) alles an deinen eigenen Rechner schicken soll (weil der Tunneleingang liegt ja bei dir am Port 55100); (2) nicht an das Port 445 schicken soll (wie sonst), sondern an das Port 55100 (oder eben das Port, was du beim ssh-Befehl angegeben hast). mount.cifs //127.0.0.1/information /media/samba -o username=zw\xyz,password=strenggeheim,uid=abc,port=55100 wenn deine Daten richtig sind, sollte anschließen unter /media/samba das Laufwerk eingebunden sein. Kannst da ganz normal mit deinem Dateibrowser (oder auch deiner konsole) hin navigieren. Ein Nachteil hat das Ganze. So wie ich ebene bei meinem Test erfahren habe, kann man immer nur ein Laufwerk gleichzeitig auf diese Art und Weise einbinden. Also eines der drei, die oben stehen. Andere samba/cifs-mounts gehen noch. Weiß noch nicht ganz warum das so ist. Ganz nebenbei dürfte die Verschlüsselung von SSH besser sein als das Microsoft MPPE-Zeug. grüße, - Benjamin
Mount Script
Hier mal ein Bash-Script zum Aufbau der Tunnel und Mounten der Laufwereke. Leider geht zur Zeit nur 1 Laufwerk (Das zuerste gemounted wird!). Wenn ich mal wieder ein wenig Zeit finde, beschäftige ich mich mal näher damit und passe das Script noch ein wenig an.
Alles was man tun muss ist den nachfolgenden Text in eine Textdatei zu kopieren, dann abspeichern zb unter /home/user/scripts/whzmount. Danach das Script ausführbar machen:
$cd ~/scripts $chmod 755 whzmount
und dann kann das script ausgeführt werden ( beötigt root / sudo ):
#./whzmount
Das Script
#!/bin/bash
#####################################################################
# This script connect/mount the smb drives of the #
# university of applied science zwickau over ssh #
# #
# AUTHOR: Tommy Hartmann, toha@zlug.org, http://zlug.org/~toha/ #
# VERSION: 0.3.5 ( date 26.05.2011 ) #
# For more details visit: http://www.zlug.org/wiki/Anleitungen #
#####################################################################
##
# Changelog:
#
# 0.4
# > add the new public_html folder
# > changed ssh host (sshhost.*)
# > added global server params
# > UUID Fix from Benjamin
# > Added SSH Opts
#
# 0.3
# > switched to the new server locations WHZ-FFak-*
##
##
# TODO:
# - no ToDos atm -
#
##
#------------------------------------------------------------
## PARAMS:
#------------------------------------------------------------
# if you don't want to type your username and/or password
# on every call, uncomment and change the following 3 lines
#------------------------------------------------------------
#FHUSER=foo_user #FH-ZWICKAU-USERNAME
#FHPW=bar_pw #FH-ZWICKAU-PW (Klartext)
#LUSER=local_user #LOCAL USER NAME:
#------------------------------------------------------------
# MOUNT PARAMS:
#------------------------------------------------------------
#FOLDER-NAME INSIDE /MEDIA DIRECTORY:
FHMOUNT=FH-Zwickau
#SERVER FOR Q-INFLEHERE:
SERVER1=WHZ-FFak-01.zw.fh-zwickau.de
#SERVER FOR Y-INFORMATIONEN
SERVER2=WHZ-FFak-00.zw.fh-zwickau.de
#SERVER FOR S-<USER>
SERVER3=WHZ-File-09.zw.fh-zwickau.de
#SERVER FOR R-<USER> (public_html)
SERVER4=WHZ-Cms-10.zw.fh-zwickau.de
#------------------------------------------------------------
# SSH-OPTIONS
#------------------------------------------------------------
SSHOPTS="-f -N -C"
#check root rights
if [ "$(id -u)" != 0 ]; then
echo "This script must be run as root"
exit 1
fi
#check smbfs dpendency
if [ -f "/sbin/mount.cifs" ]; then
echo -n ""
else
echo -n "Package 'sambafs' is not installed."
echo -n "On a debian-based system you can install the package with the command: "
echo "sudo aptitude install smbfs "
exit 1
fi
#@function: void check_mount_dir(directory_path);
#
# check if mount destination exist
#-----------------------------------------
function check_mount_dir()
{
dir=$1
if [ -d /media/$dir ]; then
echo "Directory /media/$dir exist."
else
mkdir /media/$dir
if [ -d /media/$dir ]; then
echo "Directory /media/$dir successfully created..."
else
echo "Error while creating directory: /media/$dir"
exit 1
fi
fi
}
#-----------------------------------------
#ask for username:
if [ -z "$FHUSER" ];then
echo -n "Please enter your remote username: "
read FHUSER
fi
if [ -z "$FHPW" ];then
echo -n "Please enter password for user $FHUSER: "
stty -echo
read FHPW
stty echo
echo ""
fi
if [ -z "$LUSER" ];then
echo -n "Please enter your local username:"
read LUSER
fi
echo ""
echo ""
#begin tunneling ssh:
echo "you need to enter your password if you don't have key files on client and host, see: http://wiki.freaks-unidos.net/ssh%20without%20password"
ssh $SSHOPTS -L 55000:$SERVER1:445 -L 55100:$SERVER2:445 -L 55300:$SERVER3:445 -L 55500:$SERVER4:445 $FHUSER@sshhost.fh-zwickau.de & #2>/dev/null
sleep 20
#check fh-zwickau dir
check_mount_dir $FHMOUNT
#!attention:
# only the first drive will be mount, all other will be ignored.
# i don't know why?!? i will check this asap!
# UPDATE: TH/26.03.11: This seems to be fixed scince the ZKI server change
# mount Y:Information
YMOUNT=$FHMOUNT/Y-INFORMATIONEN
check_mount_dir $YMOUNT
mount.cifs //127.0.0.1/information /media/$YMOUNT -o username=zw\\$FHUSER,password=$FHPW,uid=$LUSER,port=55100,ro
# mount S:HOME
SMOUNT=$FHMOUNT/S-$(echo $FHUSER | tr "[:lower:]" "[:upper:]")
check_mount_dir $SMOUNT
mount.cifs //127.0.0.1/$FHUSER /media/$SMOUNT -o username=zw\\$FHUSER,password=$FHPW,uid=$LUSER,port=55300
# mount Q:Infleher
QMOUNT=$FHMOUNT/Q-INFLEHRE
check_mount_dir $QMOUNT
mount.cifs //127.0.0.1/inflehre /media/$QMOUNT -o username=zw\\$FHUSER,password=$FHPW,uid=$LUSER,port=55000,ro
# mount R:Public_html
RMOUNT=$FHMOUNT/R-Webspace
check_mount_dir $RMOUNT
mount.cifs //127.0.0.1/web_space/$FHUSER /media/$RMOUNT -o username=zw\\$FHUSER,password=$FHPW,uid=$LUSER,port=55500,rw
# THE END
exit 0;
Sonstiges
Im übrigen gibt es hier noch eine veraltete Anleitung zur VPN Verbindung mit OpenSuse 8.2. Vielleicht nützt sie dem einen oder anderen ja noch was.

