Debacher-Blog

Uwes Weblog für Texte die (noch) nicht ins Wiki passen
Dez 22
Webmailer
icon1 debacher | icon2 Software-Empfehlung | icon4 12 22nd, 2011| icon3No Comments »

Seit vielen Jahren benutze ich Horde/Imp und Squirrelmail als Webmailer. In der letzten Zeit nutze ich aber lieber die Programmpakete:

Bei Roundcube handelt es sich um ein freies Programm, welches sich im wesentlichen auf die Mail-Funktionalität beschränkt, aber eigentlich alles bietet, was man so braucht. Eine Anleitung finde man auf den Anbieter-Seiten in verschiedenen Sprachen, u.a. auf Deutsch. Ein sehr umfangreiches Benutzerhandbuch ist auch auf den Seiten der Fachhochschule Darmstadt zu finden.

Group-Office ist ein sehr viel umfangreicheres Tool, mit Kalender und weiteren Groupware-Funktionen. Daher ist der Administrationsaufwand auch etwas höher. Die Installation ist aber sehr einfach und und nicht besonders anspruchsvoll. Es gibt eine kostenfreie Community-Version und eine kostenpflichtige Professional-Version. Die englischsprachige Dokumentation ist im Group-Office Wiki zu finden. Eine deutsche Anleitung, für eine ältere Version, findet sich im Web.

Jul 9

Ruft man unter Linux mit dem Firefox eine Youtube-Seite auf, so wird das Video im Dateisystem temporär gespeichert. Lange Zeit konnte man die zugehörige Datei im Verzeichnis /tmp finden. Sie wurde erst beim Schließen des Browser-Fensters gelöscht. Seit einiger Zeit hat sich das Verhalten, zumindest bei Ubuntu, deutlich verändert.

Die Datei wird zwar im /tmp -Verzeichnis angelegt, aber gleich wieder glöscht. Dafür kann man sie im Cache-Verzeichnis des Firefox finden.

Es gibt jetzt also zwei Möglichkeiten an die Flash-Datei zu kommen (die entsprechenden Informationen habe ich unter http://sartoo.de/articles/update–flash-videos-werden-nicht-mehr-unter–tmp-gespeichert.html gefunden):

1. Cache-Verzeichnis

Der Firefox legt die gecachten Dateien im Home-Verzeichnis des Benutzers ab und zwar unter:

~/.mozilla/firexox/<kryptische zeichenkette>.default/Cache/

Die kryptische Zeichenkette ist für jeden Benutzer verschieden. Für das Video http://www.youtube.com/watch?v=qFCj0FJ7Ia4 finde ich hier folgenden Eintrag, wenn das Video vollständig geladen wurde:

-rw-------  1 debacher debacher 11931147 2011-07-09 17:06 A2E8FC60d01

als Dateiname dient hier eine wohl zufällige Zeichenkette. Im Nautilus-Browser wird beim Anzeigen des Verzeichnisses ein Vorschaubild angezeigt.

2. /tmp/Verzeichnis

Im Verzeichnis /tmp ist die Datei zwar gelöscht, sie ist aber vom Flash-Player geöffnet und solange sie geöffnet ist kann man ihren Inhalt auch wieder aktivieren. Dazu muss man erst einmal mittels lsof den Dateinamen bestimmen:

lsof  +aL1 /

zeigt alle Dateien an, die zwar geöffnet sind, aber weniger als einen Dateilink besitzen, genau so etwas suchen wir:

COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NLINK NODE NAME
plugin-co 7275 debacher   16u   REG    8,6 11931147     0 8927 /tmp/FlashXXwFVrmk (deleted)

Man sieht hier die gleiche Dateigröße wie im Cache-Verzeichnis, aber einen etwas sprechenderen Namen. Diese Datei kann man nun aus dem /proc-Dateisystem restaurieren:

 cat /proc/7275/fd/16 > /tmp/FlashXXwFVrmk

Dabei entspricht die 7275 hier der PID aus der lsof-Anzeige und die 16 ist der numerische Teil der FD. Der Dateiname des Ziels ist eigentlich beliebig, muss nicht mit dem Originalnamen übereinstimmen.

 

Feb 28

In manchen Netzwerke sind alle Ports gesperrt. Aber die Ports 80 und meist auch 443 sind zumindest über einen Proxy erreichbar. Diese Situation kann man ausnutzen, um trotzdem über eine OpenVPN-Verbindung eine Zugriff auf alle Dienst zu ermöglichen.

Man benötigt hierfür aber einen Rechner, der außerhalb des gesicherten Netzwerkes steht und ständig erreichbar ist. Notfalls reicht aber auch ein heimischer Rechner mit einer DynDNS-Adresse. Auf diesem Rechner erfolgt die Serverkonfiguration von OpenVPN, auf dem Arbeitsplatzrechner im abgeschotteten Netz die Client-Konfiguration.

Ich bin im Prinzip lediglich der Anleitung unter http://wiki.ubuntuusers.de/openvpn gefolgt. Die Beschreibungen gehen davon aus, dass OpenVPN bereits installiert ist.

Auf dem Server

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2

Damit werden die Beispieldateien in den Konfigurationsordner von OpenVPN kopiert.

Nun wechselt man in den neuen Ordner easy-rsa2:

cd /etc/openvpn/easy-rsa2

und editiert dort die Datei vars

export KEY_COUNTRY=DE
export KEY_PROVINCE=NRW
export KEY_CITY=Düsseldorf
export KEY_ORG=”Vpntest”
export KEY_EMAIL=”onlyspam@myhomepage.net”

Diese Werte passt man an die eigenen Gegebenheiten an.

Dann kann man aus dem Verzeichnis easy-rsa2 heraus mit folgenden Schritten die Schlüssel erzeugen:

sudo mkdir keys
source ./vars
sudo -E ./clean-all
sudo -E ./build-ca
sudo -E ./build-key-server server
sudo -E ./build-key meinclient
sudo -E ./build-dh

Hierdurch werden im Verzeichnis keys die notwendigen Schlüssel erzeugt.Von den dort angelegten Dateien müssen drei später zum Client-Rechner kopiert werden:

  • ca.crt
  • meinclient.crt
  • meinclient.key

Jetz muss man noch die Server-Konfigurationsdatei anpassen, die wir nach /etc/openvpn kopiert haben. Da die Datei 300 Zeilen lang ist, hier nur die veränderten Zeilen:

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
;port 1194
port 443

# TCP or UDP server?
proto tcp
;proto udp

...

# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh ./easy-rsa2/keys/dh1024.pem
...

Wichtig ist hier vor allem die Wahl des Ports 443, damit man durch den Proxy kommt und auch das Protokoll TCP, sowie die Pfade zu den Schlüssel-Dateien.

Mit einem Neustart werden die Einstellungen aktiv:

sudo /etc/init.d/openvpn restart

Client

Wenn der Server läuft, dann geht es an die Client-Konfiguration.Zuerst wird wieder eine Besipieldatei kopiert, jetzt die client.conf.

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Im nächsten Schritt werden jetzt die drei Schlüsseldateien (s.o.) vom Server kopiert, einfach in das Verzeichnis /etc/openvpn.

Nun muss noch die Datei client.conf angepasst werden:

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
proto tcp
;proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote stern.lokales-netz.de 443
...
# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert meinclient.crt
key meinclient.key

Nunkann man die Verbindung testweise aufbauen mittels:

openvpn /etc/openvpn/client.conf

Wenn in der Datei /etc/default/openvpn die Zeile

AUTOSTART="none"

steht, dann muss die Verbindung per Hand aufgebaut werden, bei

AUTOSTART="all"

wird sie beim Systemstart automatisch aufgebaut. Nach der Konfiguration kann man per

sudo /etc/init.d/openvpn restart

einen Neustsart auslösen.

Dez 16
Shell in a box
icon1 debacher | icon2 linux, Tipps und Tricks | icon4 12 16th, 2010| icon3No Comments »

In manchen Netzwerke sind alle Ports gesperrt. Aber die Ports 80 und meist auch 443 sind zumindest über einen Proxy erreichbar. Diese Situation kann man ausnutzen, um trotzdem eine SSH-Verbindung auf den eigenen Rechner zu  ermöglichen. Das Programm shellinabox leistet alles was man braucht.

Auf der Seite http://code.google.com/p/shellinabox/downloads/list sind aktuelle Programmpakete verfügbar, auch ein Debian-Paket für Ubuntu. Dieses Paket kann man durch Anklicken des Links auf der Website mittels GDebi installieren.

Normalerweise lauscht shellinabox auf dem etwas ungewöhnlichen Port 4200, der nicht unbedingt über alles Proxy-Server erreichbar ist. Sofern der lokale Webserver den Port 443 nicht nutzt kann man shellinabox auch auf diesem Port lauschen lassen. Eine Anleitung dazu findet sich unter https://help.ubuntu.com/community/shellinabox.

Letztendlich muss man nur in der Konfigurationsdatei

/etc/default/shellinabox

die Portangabe ändern und das Programm dann mittels

invoke-rc.d shellinabox restart

neu starten.

Von außen ist shellinabox dann mittels:

https://mein-rechner.meine-domain

erreichbar.

Sep 17

Meine Schule hat 16 neue Rechner bekommen, leider nicht von einem lokalen Händler, sondern vo dem, der die Ausschreibung gewonnen hat. Auf diesen Rechnern soll am Ende WindXP parallel mit Ubuntu laufen. Zur Absicherung des Windows sind die Geräte mit einer Karte von Dr. Kaiser ausgerüstet.

Die Rechner sind mit WindXP SP3 vorinstalliert. Leider ist diese Installation ein Problem, weil die Festplatte ungewöhnlich partitioniert ist:

/dev/sda1  Erweitert
/dev/sda2  NTFS Boot
/dev/sda5  logisch NTFS

Beim Versuch die Kaiser-Karte nach einer Anleitung aus http://www.dr-kaiser.de/pc-waechter-linux.0.html zu installieren ergab sich ein Problem. Die Windows-Partition wird erkannt und man kann weitere Partitionen anlegen und nach Anleitung konfigurieren. So weit so gut, nur startet dann das Windows nicht mehr, weil es meint auf /dev/sda1 zu liegen.

Eigentlich macht es ja auch Sinn, dass das WindXP auf /dev/sda1 liegt. Bevor ich das Windows “repariere” wird daher die Partitionstabelle korrigiert, bevor die Kaiser-Karte aktiviert wird.

Dazu ein Linux-System booten, dort fdisk aufrufen:

fdisk /dev/sda
x   (extra functionality)
f   (fix partition order)
w   (write and exit)

Nun kann man noch versuchen das Windows zu reparieren, es würde jetzt ja so nicht mehr starten, da es wirklich auf /dev/sda1 liegt. Eine Reperatur-Möglichkeit ist eine Reperatur-Installation. Es mach aber Sinn eventuell erst einmal zu versuchen die boot.ini zu korrigieren.

Die Datei kann man gleich vom Linux aus korrigieren, muss dann aber darauf achten die Zeilenschaltungen nicht zu verändern.

Die boot.ini befindet sich direkt unterhalb von C:\ ist aber versteckt und als Systemdatei gekennzeichnet. Unter Windows muss man also die Ordneroptionen erst anpassen um sie direkt zu bearbeiten.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

Entscheidend ist hier die Partitionsnummer, die einfach von 2 auf 1 geändert wird.

Jun 6

Bei Typo3 benutze ich gern simulateStaticDocuments um nettere URLs zu bekommen. Bei den aktuellen 4.3.x-Versionen muss man dabei aufpassen, dass die Extension Simulate Static URLs (simulatestatic) aktiviert ist.

In dieser Typo3-Version wurden einige Funktionen in System-Extensions ausgelagert, so auch diese Funktion. Standardmäßig ist die Extension aber nicht aktiviert.

Mrz 14

Auf meinem aktuellen Karmic-System wollte ich gern majordomo installieren. Primär eigentlich nur, um das Kommando approve absetzen zu können, mit dem ich bouncende Mails aus den von mir betreuten Mailinglisten bestätigen kann. Leider habe ich bisher kein Debian-Paket für mein Ubuntu finden können, vermutlich hat das mit Sicherheitsproblemen dieser etwas älteren Software zu tun.

Beim aktuellen OpenSuSe wird majordomo immer noch mit ausgeliefert. Daher war die Idee naheliegend das RPM-Paket mittels alien in ein Debian-Paket zu verwandeln und dann zu installieren. Leider war das nicht ganz so einfach. Das Ubuntu-Alien kommt teilweise mit aktuellen RPM-Paketen nicht zurecht, da die Art der Komprimierung verändert wurde. Das Problem scheint aber schon älter zu sein, es hat sich anscheinend aber noch niemand ernsthaft darum gekümmert. Es gibt Fehlermeldungen der Art:

Unpacking of 'majordomo-1.94.5-457.1.i586.rpm' failed at /usr/share/perl5/Alien/Package/Rpm.pm line 155.

In dem Artikel http://forum.ubuntuusers.de/topic/kivio-2-0-installieren/#post-2054853 habe ich dann eine Lösung gefunden. Dort ist ein kleiner Patch zu finden, der das Problem in der Zeile 155 angeht.

sub unpack {
	my $this=shift;
	$this->SUPER::unpack(@_);
	my $workdir=$this->unpacked_tree;
	my $rpmunpack="rpm2cpio ".$this->filename." | lzma -d | ";

	$this->do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1")
	      or (($rpmunpack="rpm2cpio ".$this->filename." | ")
	      and $this->do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1"))
	      or die "Unpacking of '".$this->filename."' failed";

	# cpio does not necessarily store all parent directories in an
	# archive, and so some directories, if it has to make them and has
	# no permission info, will come out with some random permissions.
	# Find those directories and make them mode 755, which is more
	# reasonable.
	my %seenfiles;
	open (RPMLIST, $rpmunpack."cpio -it --quiet |")
		or die "File list of '".$this->filename."' failed";

Ich habe einfach die entsprechenden vorhandenen Zeilen auskommentiert und diese Zeilen hineinkopiert. Nach der Änderung konnte ich mein Majordomo-Paket erfolgreich konvertieren mittels:

sudo alien --scripts majordomo-1.94.5-457.1.i586.rpm

Herzlichen Dank an den Autor hakunamatata.

Mrz 14

Da in meinen Webserver-Log-Dateien häufiger Anfragen nach Dateien namens wpad.dat auftauchten habe ich mich mal mit dem Thema Web Proxy Autodiscovery Protocol (WPAD) beschäftigt. Positiv daran ist, dass es als Webstandard gilt und von allen aktuellen Browsern unterstützt wird. WPAD benutzt Proxy Auto-Configuration (PAC) Dateien um die Einstellungen zu übermitteln.

Diese Dateien dienen dazu Browser automatisch zu konfigurieren, so dass sie sich die Proxy-Einstellungen selbständig erfragen können. Grundlage dafür ist eine Konfigurationsdatei namens wpad.dat, die im einfachsten Fall folgenden Inhalt besitzt:

function FindProxyForURL(url, host)
{
  if(isPlainHostName(host) || localHostOrDomainIs(host, "localhost") ||  localHostOrDomainIs(host, "127.0.0.1") || isInNet(host, "192.168.1.1", "255.255.0.0")) {
     return "DIRECT";
  }else {
     return "PROXY 192.168.1.1:3128";
  }
}

Im Prinzip wird hier in der letzten Zeile die Adresse und der Port des Proxy-Server übergeben. Der Teil davor umgeht den Proxy-Server, wenn ein Rechnername ohne Domain aufgerufen wird, der Name oder die IP für localhost oder ein Rechner aus dem lokalen Netz.

Detaillierte Informationen findet man unter http://findproxyforurl.com und natürlich http://de.wikipedia.org/wiki/WPAD.

Diese Datei muss nun nur noch zum Browser kommen. Dazu muss der Browser passend eingestellt sein: Bearbeiten -> Einstellungen -> Erweitert -> Netzwerk -> Verbindung -> Einstellungen -> Die Proxy-Einstellungen für dieses Netzwerk automatisch erkennen

Nun muss auf dem Server noch der Webserver-Apache entsprechend konfiguriert werden. Er sollte im Idealfall auf folgende URL hin die Datei ausliefern: http://wpad.<rechnername.lokale-domain>/wpad.dat In den meisten Installationen langte es sicherlich im Nameserver einen cname für wpad einzurichten:

wpad       CNAME   boss

Zusätzlich wird noch empfohlen die zugehörigen Mime-Types zu registrieren. Dazu kommen folgende Zeilen in die bisher leere Datei /etc/apache2/httpd.conf:

AddType application/x-ns-proxy-autoconfig .dat
AddType application/x-ns-proxy-autoconfig .pac
Redirect permanent  /proxy.pac /wpad.dat

Hier sind zwei Dateien eingetragen, die wpad.dat und die proxy.pac, die beide identisch sind. Eine Version ist für WPAD-fähige Systeme zuständig, die andere für ältere Versionen. Durch den Redirect muss nur eine der beiden Dateien wirklich vorhanden sein. Anfragen an die andere Datei werden passend weitergeleitet.

Im Prinzip suchen die Browser nun nach einem festen System nach der Konfigurationsdatei. Man kann ihnen das Leben erleichtern und auch den cname wpad für den Webserver vermeiden, wenn man die DHCP-Server Konfiguration etwas anpasst.

# /etc/dhcpd.conf
#
# Configuration file for ISC dhcpd
#
# -- global options --
default-lease-time                 160000;
max-lease-time                     200000;
use-host-decl-names                on;
option dhcp-max-message-size       1024;
option wpad code 252 = text;
ddns-update-style                  none;
authorative;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.40 192.168.1.160;
    server-identifier 192.168.1.1;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.254;
    option domain-name-servers 192.168.1.1, 192.168.1.254;
    option domain-name "debacher.net";
    option wpad "http://www.debacher.net/wpad.dat ";
}

Die beiden hinzuzufügenden Zeilen sind fett unterlegt. Damit wird dem Client-Rechner schon beim Starten die Adresse der wpad.dat (Code 252) mit übermittelt. Hier ist eine beliebige URL möglich, die auch nicht unbedingt im eigenen Netz liegen muss. Die Adressübermittlung per DHCP hat übrigens Vorrang gegenüber der Übermittlung per DNS. Man muss also nicht unbedingt an den Nameserver heran.

Weitere Informationen:

Mrz 3

Ich wollte mich gern mit der erschreckenden Gesichtererkennung des neuen Picasa 3.6  beschäftigen. Leider bietet Google keine aktuellen Versionen für Linux an. Unter http://www.mail-archive.com/google-labs-picasa-for-linux@googlegroups.com/msg01748.html habe ich einen Beitrag gefunden mit dessen Hilfe ich 3.6 erfolgreich unter Ubuntu 9.10 installieren konnte.

Die Beschreibung geht davon aus, dass man Picasa 3.0 auf dem eigenen Rechner installiert hat. Ich hatte das schon vor einiger Zeit gemacht. Das Picasa 3.0 findet sich dann unter /opt/google auf dem Rechner.

Zuerst lädt man sich die Datei picasa36-setup.exe von der Google-Download-Seite.

cd /opt/google/picasa/3.0/wine/bin
./wine /home/debacher/Downloads/picasa36-setup.exe

Dabei wird Picasa in das Verzeichnis /home/debacher/.wine installiert. Soll es allgemein zur Verfügung stehen, so muss diese Installation nach /opt verschoben werden. Dazu benötigt man Root-Rechte:

sudo su -
cd /opt/google/picasa/3.0/wine/drive_c/Program\ Files/Google/
rm -Rf Picasa3
cp -R /home/debacher/.wine/drive_c/Programme/Google/Picasa3/  .
cd Picasa3
mv PicasaUpdater.exe PicasaUpdater.exe.old

Danach startet dann zukünftig Picasa 3.6 auch über alle Menüeinträge der alten Installation. Man kann dann sogar das gesamte .wine Verzeichnis im Homeverzeichnis löschen, zumindest wenn es nicht vorher schon vorhanden war.

Feb 19

Zum Fernsehen benutze ich gern Kaffeine, zumal es auf breiten Monitoren den Vorteil besitzt, dass die Senderliste seitlich sitzt und das Bild dadurch recht groß werden kann. Mit dem aktuellen Kaffeine hatte ich das Problem, dass manchmal kein Sound zu hören war, der Sound ging nicht auf meine analogen Boxen, sondern auf den digitalen Monitor.  Beim Start von Kaffeine tauchte dann immer eine Fehlermeldung von Phonon auf:

Phonon: Das Multimediasystem von KDE
Das Audio-Abspielgerät "HDA NVidia (ALC888 Analog)" funktioniert nicht. Es wird auf ... ausgewichen.

Ich habe lange verzweifelt nach einer Einstellmöglichkeit gesucht. Irgendwann habe ich dann das Programm pavucontrol installiert und damit versucht das digitale HDMI-Gerät zu deaktivieren. Aber auch das hat keinen nachhaltigen Effekt gebracht.

Nur hat sich dann irgendwann bei eine späteren Start von Kaffeine ein KDE-Programm gemeldet um mir mitzuteilen, dass ich ein Gerät deaktiviert habe. Dieses Programm bot eine Konfiguration des Soundsystems an.

/usr/bin/kcmshell4   kcm_phonon

Führt mich nun zu diesem Einstellprogramm, in dem man die Reihenfolge der Ausgabegeräte festlegen kann. Hier habe ich die HDMI-Ausgabe auf den letzten Platz gesetzt und nun wird auf PulseAudio ausgewichen, was dann auch funktioniert.

« Previous Entries