Archive for Sep. 2008

Debian: X11Forward mit Xming

Windows Systeme kann man über verschiedene Schnittstellen wie RDP remote verwalten. Linux Systeme biete hierfür X11Forwarding an. Daruber lassen sich fast alle Application auf einer entfernten Maschine anzeigen. Dafür muss zuerst X11Forwarding für SSH aktiviert werden (Neustart von ssh notwendig):

/etc/ssh/sshd_config
[...]
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
[...]

Auf einem Windows System muss nun ein X-Window Server gestartet werden, die die X11 Verbindungen der entfernen Maschine entgegen nimmt. Hierfür bietet sich zum Beispiel xming (v6-9-0-31) an. Da die xming Quellen momentan nicht verfügbar sind kann die Version 6-9-0-31 von meinem Server herunter geladen werden. Es gibt aber evtl. mittlerweile schon eine neue Version.

Des weiteren gibt es noch xming-fonts-7-3-0-18-setup.exe, xming-portable-putty-7-3-0-17-setup.exe.

Nach der Installation muss der X-Server gestartet werden.

Xming.exe :0 -clipboard -multiwindow

Wird der X-Server mit der Option rootless kann die GNome Oberfläche komplett auf einem Windows System geladen werden.

Xming.exe :0 -clipboard -rootless

Nun muss nur noch über Putty X11Forwarding aktiviert werden:

Sobald die SSH Verbindung aufgebaut wurde, können die entsprechenden Programmte gestartet werden.

 

Über den Aufruf von gnome-seesion lässt sich die Komplette Gnome Oberfläche laden. Hier macht die rootlesss Option Sinn.

Soll die Gnome Oberfläche eines Users gestartet werden, kann es zu folgender Fehlermeldung kommen:

Xlib: connection to "localhost:10.0" refused by server
Xlib: PuTTY X11 proxy: MIT-MAGIC-COOKIE-1 data did not match
(gnome-session:6782): Gtk-WARNING **: cannot open display:

In diesem Fall kann das magic-cookie des Root Users in des Home-Verzeichnis des entsprechenden Users kopiert werden:

cp /root/.Xauthority /home/cscholz/

Debian: ftp, ssh, share per fstab mounten

Ich habe gerade per Zufall gesehen, dass über die fstab sehr viel mehr als nur reine Laufwerkre gemappt werden kann; Eine Kollegin von mir würde jetzt sagen, so fängst Du immer an… klingt komisch, ist aber so ;-)

Zurück zum eigentlichen Thema. Per fstab lassen sich zusätzliche zu Windows Freigaben noch ganze System per ssh mounten oder nur ftp Verzeichnise.

Windows Freigabe

Um Windows Freigaben ohne Probleme mounten zu können, sollten die Pakete smbclient und smbfs installiert sein. Anschließend kann über eine Freigaben über folgenden Eintrag gemountet werden (eine Zeile):

//192.168.0.xx/musik   /mnt/musik   smbfs   auto,user,rw,username=cscholz,password=geheim,
workgroup=2nibbles4u.local,fmask=0777,dmask=0777,iocharset=utf8

Die Bedeutung der einzelnen Parameter kann man im Internet nachlesen, daher möchte ich nicht auf alle eingehen. Interessant ist eigentlich nur der Eintrag user. Denn dieser ermöglicht es auch “normalern Usern” diese Freigabe zu mounten

mount /mnt/musik

SSH

Um ganze Systeme per fstab zu mounten müssen die Pakete sshfs und fuse-utils installiert sein. Interessant ist hierbei die Angabe des SSH-Ports, falls dieser geändert wurde (eine Zeile):

sshfs#root@server.de:/   /mnt/ssh/server.de   fuse user,allow_other,uid=0,gid=0,
umask=0,port=443/server.de       fuse user,allow_other,disable_eprt,tlsv1

Die Rechten für den Mount-Punkt müssen so gesetzt sein, dass der User auch Schreibrechte besitzt

chmod 777 /mnt/ssh/ -R

FTP

Für FTP gibt es das ganze dann auch nochmal. Natürlich muss wieder ein Paket installiert sein, dass da heißt curlftpfs. Bei der Installation wird eine Gruppe namens fuse angelegt. Dieser müssen anschließend alle User hinzugefügt werden, die dieses FTP Verzeichnis mounten können sollen. Anschließend muss die Gruppe des mount-Verzeichnises sowie die Rechte noch geändert werden. Für den angemeldeten User wird die Gruppenänderung nach dem erneuten Anmelden aktiv!

chown root:fuse /mnt/ftp -R
chmod 777 /mnt/ftp/ -R

In der Datei /etc/fuse.conf muss user_allow_other auskommentiert werden damit in der fstab die Option allow_other erlaubt wird.

Der Rest ist denke ich selbst erklärend (wieder eine Zeile):

curlftpfs#cscholz:geheim@o-o-s.de    /mnt/ftp
fuse user,allow_other,disable_eprt,tlsv1

Links:

fstab – http://debiananwenderhandbuch.de/dateisysteme.html
ftpfs – http://www.quiptime.de/qt/de/node/2266
sshfs – http://stud-in.fh-swf.de/fbin/stud-in/stud-in_AE81F2EAFA5C4DE0891CED07ECD12B4C.htm

Debian: Truecrypt mount als nicht root

Unter Windows hab ich bis jetzt immer schön meine Daten auf USB-Sticks mit Truecrypt gesichert. Nun wollte ich unter Linux auf auf die Container zugreifen. Also erstmal Truecrypt für Linux herunter geladen.

Installation war kein Problem. Das tar.gz Arhiv einfach entpacke und die Datei aufrufen. Darauf erscheint ein Dialog in dem man anklicken kann, dass man TrueCrypt als .deb Paket extrahieren möchte. Dies kann dann über

dpkg -i *.deb

installiert werden. Truecrypt setzt unter Debian Etch 4.0 noch folgende Pakete vorraus:

apt-get install libfuse2 fuse-utils dmsetup

Ein Problem was ich ich jedoch hatte war, dass nur der User root Truecrpyt container mounten darf. Gelöst hab ich dann wiefolgt. Über visudo können Befehle frei geschaltet werden, die ein User per sudo mit Adminrechten ausführen darf ohne ein Kennwort eingeben zu müssen. Dort habe ich eine Zeile für Truecrypt ergänzt

cscholz ALL=NOPASSWD:/usr/bin/truecrypt

Anschließend kann der Container als User gemountet und dismountet werden:

sudo truecrypt /mnt/sdb1/vd01.tc /mnt/truecrypt
sudo truecrypt --dismount /mnt/sdb1/vd01.tc /mnt/truecrypt

Wenn jemand noch eine andere/bessere Möglichkeit kennt Truecrypt Container als User zu mounten einfach als Kommentar posten ;-)

Debian: memtest86 im grub Menü

memtest86 im Grub Menü stehen zu haben macht durchaus Sinn. Jedoch wird dieser Eintrag standard mäßig nicht hinzugefügt. Damit memtest86 zur Auswahl steht, muss es erstmal installiert werden:

apt-get install memtest86

Nun kann muss lediglich in der Datei /boot/grub/menu.lst die Zeile memtest=true aktiviert werden. Ein anschließendes

update-grub

bewirkt dann, dass memtest86 im Bootmenü aufgenommen wird.

Alternativ kann die Datei /boot/grub/menu.lst um die memtest Zeilen manuell erweitert werden – Festplatten Partition anpassen!!

# memtest86
title           Memory Test
root            (hd0,0)
kernel          (hd0,0)/boot/memtest86+.bin

Debian: swap Management

Nachdem ich es mich jetzt schon etwas länger gestört hat, dass auf einer Linux Maschine immer 150-200 MB ausgelagert wurden obwohl noch 50% des RAMs frei wahren, hab ich mich nun mal ein bisschen mit dem Swap Management unter Linux beschäftigt.

Da es im Internet genügend Artikel dazu gibt, hier der für mich interessante Teil. Ab Kernel 2.6 kann über /proc/sys/vm/swappiness angegeben werden, wann das System anfangen soll auszulagern. Der default Wert ist 60:

~ cat /proc/sys/vm/swappiness
~ 60

Die dieser Wert von 0-100 geht, liegt die Vermutung nahe, dass es sich hier um Prozentwerte handelt. 60 bedeutet also, dass bei weniger als 60% freiem RAM das System anfängt auszulagern. Diesen Wert kann man beliebig ändern.

echo -n "10" >/proc/sys/vm/swappiness

Ich habe jedoch festgestellt, dass einmal geswappte Daten nach der Änderung des Wertes nicht zurück in den RAM verschoben werden. Also sollte der Wert schon beim Systemstart festgelegt werden. Damit dieser dann auch einen Reboot übersteht kann in der /etc/sysctl.conf eine Zeile ergänzt werden.

echo "vm/swappiness=10" >> /etc/sysctl.conf

Für mich hat sich heraus gestellt, dass 10 (%) für meine Systeme ein guter Wert für die Swappinggrenze ist.

Weitere Informationen zum Thema “swap” sind hier zu finden.