<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Debacher-Blog &#187; linux</title>
	<atom:link href="http://www.debacher.de/ublog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.debacher.de/ublog</link>
	<description>Uwes Weblog für Texte die (noch) nicht ins Wiki passen</description>
	<lastBuildDate>Tue, 03 Jan 2012 17:32:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Youtube Videos bei Ubuntu</title>
		<link>http://www.debacher.de/ublog/2011/07/youtube-videos-bei-ubuntu/</link>
		<comments>http://www.debacher.de/ublog/2011/07/youtube-videos-bei-ubuntu/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 15:20:12 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=433</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Die Datei wird zwar im /tmp -Verzeichnis angelegt, aber gleich wieder glöscht. Dafür kann man sie im Cache-Verzeichnis des Firefox finden.</p>
<p>Es gibt jetzt also zwei Möglichkeiten an die Flash-Datei zu kommen (die entsprechenden Informationen habe ich unter <a href="http://sartoo.de/articles/update--flash-videos-werden-nicht-mehr-unter--tmp-gespeichert.html">http://sartoo.de/articles/update&#8211;flash-videos-werden-nicht-mehr-unter&#8211;tmp-gespeichert.html</a> gefunden):</p>
<h2>1. Cache-Verzeichnis</h2>
<p>Der Firefox legt die gecachten Dateien im Home-Verzeichnis des Benutzers ab und zwar unter:</p>
<pre>~/.mozilla/firexox/&lt;kryptische zeichenkette&gt;.default/Cache/</pre>
<p>Die kryptische Zeichenkette ist für jeden Benutzer verschieden. Für das Video <a href="http://www.youtube.com/watch?v=qFCj0FJ7Ia4">http://www.youtube.com/watch?v=qFCj0FJ7Ia4</a> finde ich hier folgenden Eintrag, wenn das Video vollständig geladen wurde:</p>
<pre>-rw-------  1 debacher debacher 11931147 2011-07-09 17:06 A2E8FC60d01</pre>
<p>als Dateiname dient hier eine wohl zufällige Zeichenkette. Im Nautilus-Browser wird beim Anzeigen des Verzeichnisses ein Vorschaubild angezeigt.</p>
<h2>2. /tmp/Verzeichnis</h2>
<p>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:</p>
<pre>lsof  +aL1 /</pre>
<p>zeigt alle Dateien an, die zwar geöffnet sind, aber weniger als einen Dateilink besitzen, genau so etwas suchen wir:</p>
<pre>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)</pre>
<p>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:</p>
<pre> cat /proc/7275/fd/16 &gt; /tmp/FlashXXwFVrmk</pre>
<p>Dabei entspricht die <em>7275</em> hier der PID aus der lsof-Anzeige und die <em>16</em> ist der numerische Teil der FD. Der Dateiname des Ziels ist eigentlich beliebig, muss nicht mit dem Originalnamen übereinstimmen.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2011/07/youtube-videos-bei-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mit OpenVPN durch Zwangsproxy</title>
		<link>http://www.debacher.de/ublog/2011/02/mit-openvpn-durch-zwangsproxy/</link>
		<comments>http://www.debacher.de/ublog/2011/02/mit-openvpn-durch-zwangsproxy/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 17:45:40 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=410</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>Ich bin im Prinzip lediglich der Anleitung unter <a href="http://wiki.ubuntuusers.de/openvpn">http://wiki.ubuntuusers.de/openvpn</a> gefolgt. Die Beschreibungen gehen davon aus, dass OpenVPN bereits installiert ist.</p>
<h3>Auf dem Server</h3>
<pre>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</pre>
<p>Damit werden die Beispieldateien in den Konfigurationsordner von OpenVPN kopiert.</p>
<p>Nun wechselt man in den neuen Ordner easy-rsa2:</p>
<p>cd /etc/openvpn/easy-rsa2</p>
<p>und editiert dort die Datei vars</p>
<pre>export KEY_COUNTRY=DE
export KEY_PROVINCE=NRW
export KEY_CITY=Düsseldorf
export KEY_ORG=”Vpntest”
export KEY_EMAIL=”onlyspam@myhomepage.net”</pre>
<p>Diese Werte passt man an die eigenen Gegebenheiten an.</p>
<p>Dann kann man aus dem Verzeichnis easy-rsa2 heraus mit folgenden Schritten die Schlüssel erzeugen:</p>
<pre>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
</pre>
<p>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:</p>
<ul>
<li>ca.crt</li>
<li>meinclient.crt</li>
<li>meinclient.key</li>
</ul>
<p>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:</p>
<pre># 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
...</pre>
<p>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.</p>
<p>Mit einem Neustart werden die Einstellungen aktiv:</p>
<pre>sudo /etc/init.d/openvpn restart</pre>
<h3>Client</h3>
<p>Wenn der Server läuft, dann geht es an die Client-Konfiguration.Zuerst wird wieder eine Besipieldatei kopiert, jetzt die client.conf.</p>
<pre>sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/</pre>
<p>Im nächsten Schritt werden jetzt die drei Schlüsseldateien (s.o.) vom Server kopiert, einfach in das Verzeichnis /etc/openvpn.</p>
<p>Nun muss noch die Datei client.conf angepasst werden:</p>
<pre># 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
</pre>
<p>Nunkann man die Verbindung testweise aufbauen mittels:</p>
<pre>openvpn /etc/openvpn/client.conf</pre>
<p>Wenn in der Datei /etc/default/openvpn die Zeile</p>
<pre>AUTOSTART="none"</pre>
<p>steht, dann muss die Verbindung per Hand aufgebaut werden, bei</p>
<pre>AUTOSTART="all"</pre>
<p>wird sie beim Systemstart automatisch aufgebaut. Nach der Konfiguration kann man per</p>
<pre>sudo /etc/init.d/openvpn restart</pre>
<p>einen Neustsart auslösen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2011/02/mit-openvpn-durch-zwangsproxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Masquerading mit einer Schnittstelle</title>
		<link>http://www.debacher.de/ublog/2011/02/masquerading-mit-einer-schnittstelle/</link>
		<comments>http://www.debacher.de/ublog/2011/02/masquerading-mit-einer-schnittstelle/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 20:28:18 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=406</guid>
		<description><![CDATA[Heute tauchte das Problem auf, dass ich einen fertig konfigurierten Server bei mir im Hause testen wollte, unter Nutzung seiner eigenen IP. Mein häuslicher Server hat aber nur noch eine Netzwerkkarte (eth0) und ist auf die IP-Adresse 192.168.1.1 konfiguriert. Der andere Rechner hat eine IP-Adresse von z.B. 143.100.122.200 und ein Gateway von 143.100.122.254. Also habe [...]]]></description>
			<content:encoded><![CDATA[<p>Heute tauchte das Problem auf, dass ich einen fertig konfigurierten Server bei mir im Hause testen wollte, unter Nutzung seiner eigenen IP. Mein häuslicher Server hat aber nur noch eine Netzwerkkarte (eth0) und ist auf die IP-Adresse 192.168.1.1 konfiguriert. Der andere Rechner hat eine IP-Adresse von z.B. 143.100.122.200 und ein Gateway von 143.100.122.254.</p>
<p>Also habe ich meinem Rechner virtuell die Gateway-IP gegeben:</p>
<pre>ifconfig eth0:1 143.100.122.254</pre>
<p>damit ist dann mein Rechner von dem fremden Rechner aus erreichbar, aber nicht das Intenet. Dazu muss man das Forwarding überhaupt aktivieren mittels:</p>
<pre>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</pre>
<p>Jetzt fehlt nur noch die iptables Regel:</p>
<pre>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</pre>
<p>eventuell vorhandene Regeln muss man vorher löschen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2011/02/masquerading-mit-einer-schnittstelle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell in a box</title>
		<link>http://www.debacher.de/ublog/2010/12/shell-in-a-box/</link>
		<comments>http://www.debacher.de/ublog/2010/12/shell-in-a-box/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 20:02:01 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=397</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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 <a href="http://code.google.com/p/shellinabox/" target="_blank">shellinabox</a> leistet alles was man braucht.</p>
<p>Auf der Seite <a href="http://code.google.com/p/shellinabox/downloads/list" target="_blank">http://code.google.com/p/shellinabox/downloads/list</a> 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.</p>
<p>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 <a href="https://help.ubuntu.com/community/shellinabox" target="_blank">https://help.ubuntu.com/community/shellinabox</a>.</p>
<p>Letztendlich muss man nur in der Konfigurationsdatei</p>
<pre>/etc/default/shellinabox
</pre>
<p>die Portangabe ändern und das Programm dann mittels</p>
<pre>invoke-rc.d shellinabox restart
</pre>
<p>neu starten.</p>
<p>Von außen ist shellinabox dann mittels:</p>
<pre>https://mein-rechner.meine-domain</pre>
<p>erreichbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/12/shell-in-a-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Errorcode 24</title>
		<link>http://www.debacher.de/ublog/2010/10/mysql-errorcode-24/</link>
		<comments>http://www.debacher.de/ublog/2010/10/mysql-errorcode-24/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 09:38:21 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=392</guid>
		<description><![CDATA[Beim Sichern einer Datenbank mittels mysqldump hatte ich das Problem, dass immer irgendeine Fehlermeldung auftauchte, die auf das Fehlern irgendeiner Datei hinwies. Bei genauerer Recherche stellte ich fest, dass es sich um ein Problem mit der Zahl der offenen Dateien handelt. Mysqldump versucht anscheinen alle Tabellen parallel zu öffnen und diese Datenbank besitzt sehr viele [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Sichern einer Datenbank mittels <em>mysqldump</em> hatte ich das Problem, dass immer irgendeine Fehlermeldung auftauchte, die auf das Fehlern irgendeiner Datei hinwies. Bei genauerer Recherche stellte ich fest, dass es sich um ein Problem mit der Zahl der offenen Dateien handelt. Mysqldump versucht anscheinen alle Tabellen parallel zu öffnen und diese Datenbank besitzt sehr viele Tabellen.</p>
<p>Eine Einfache Lösung besteht darin statt (hier als root):</p>
<pre>mysqldump datenbank -p &gt; /tmp/datenbank.sql</pre>
<p>zu schreiben:</p>
<pre>mysqldump datenbank --single-transaction -p &gt; /tmp/datenbank.sql</pre>
<p>Damit funktioniert der Dump dann auch. Siehe dazu auch <a href="http://rackerhacker.com/2007/08/19/mysql-errcode-24-when-using-lock-tables/">http://rackerhacker.com/2007/08/19/mysql-errcode-24-when-using-lock-tables/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/10/mysql-errorcode-24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piwik</title>
		<link>http://www.debacher.de/ublog/2010/09/piwik/</link>
		<comments>http://www.debacher.de/ublog/2010/09/piwik/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 15:16:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Software-Empfehlung]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=383</guid>
		<description><![CDATA[Nachdem Ghostery nun in meinem Firefox alle kommerziellen Webwanzen blockt habe ich begonnen selber mit Webwanzen zu experimentieren. Dafür gibt es das Programm Piwik, das man auf einem eigenen Server installieren und dann in die eigenen Seiten einbinden kann. Damit bekommt man ausführliche Hinweise über die Nutzung der Seiten, ohne Daten aus der Hand zu [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem <a href="http://www.ghostery.com/">Ghostery</a> nun in meinem Firefox alle kommerziellen Webwanzen blockt habe ich begonnen selber mit Webwanzen zu experimentieren. Dafür gibt es das Programm <a href="http://piwik.org/">Piwik</a>, das man auf einem eigenen Server installieren und dann in die eigenen Seiten einbinden kann. Damit bekommt man ausführliche Hinweise über die Nutzung der Seiten, ohne Daten aus der Hand zu geben. Alles läuft auf eigenen Rechnern.</p>
<p>In die Webseiten, die ausgewertet werden sollen, muss man nur folgenden Code integrieren (und natürlich anpassen):</p>
<pre><code>&lt;!-- Piwik --&gt;
 &lt;script type="text/javascript"&gt;
 var pkBaseURL = (("https:" == document.location.protocol) ? "https://mein-server.de/piwik/" : "http://mein-server.de/piwik/");
 document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
 &lt;/script&gt;&lt;script type="text/javascript"&gt;
 try {
 var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
 piwikTracker.trackPageView();
 piwikTracker.enableLinkTracking();
 } catch( err ) {}
 &lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;img  src="http://mein-server.de/piwik/piwik.php?idsite=2" style="border:0"  alt="" /&gt;&lt;/p&gt;&lt;/noscript&gt;
 &lt;!-- End Piwik Tag --&gt;

</code></pre>
<p>Für die Integration in Content Management Systeme findet sich unter <a href="http://piwik.org/faq/plugins/">http://piwik.org/faq/plugins/</a> eine Reihe von Plugins. Leider ist deren Nutzung nicht immer unproblematisch.</p>
<p>Für die Mediawiki-Integration findet sich unter <a href="http://www.mediawiki.org/wiki/Extension:Piwik_Integration">http://www.mediawiki.org/wiki/Extension:Piwik_Integration</a> eine passende Software. Man muss nur beim Download aufpassen. Hier wird man nach der benutzten Mediawiki-Version gefragt. Wählt man hier z.B. wahrheitsgemäß 1.15.x so bekommt man eine alte, bei mir nicht funktionsfähige Version. Man sollte hier als Mediawiki-Version unbedingt <em>Development version (trunk)</em> auswählen. Dann lädt man momentan die funktionsfähige Version <a href="http://upload.wikimedia.org/ext-dist/Piwik-trunk-r72455.tar.gz">Piwik-trunk-r72455.tar.gz</a> .</p>
<p>Auch bei WordPress ist die Integration nicht unbedingt problemlos. Das Plugin <em>Piwik Analytics</em> ist über die Plugin-Verwaltung zu installieren und vermutlich auch funktionsfähig. Ich benutze aber momentan ein Template, bei dem in der Footer-Datei der Aufruf von <em>wp_footer()</em> fehlt. In diese Funktion klingt sich das Plugin wohl ein. Da in der <em>footer.php</em> zu meinem Template nur HTML-Code steht habe ich den Piwik-Code hier direkt eingebunden, damit funktioniert Piwik auch hier, zumindest solange ich das Template nicht wechsle.</p>
<p>Für Typo3 gibt es unter <a href="http://typo3.org/extensions/repository/view/piwik/current/">http://typo3.org/extensions/repository/view/piwik/current/</a> ebenfalls eine passend Extension. Diese muss ich noch ausprobieren. Bisher habe ich den Piwik-Code einfach mit in das Root-Template aufgenommen:</p>
<pre>page.headerData.199 = TEXT
page.headerData.199.value (
 &lt;!-- Piwik --&gt;
 &lt;script type="text/javascript"&gt;
 var pkBaseURL = (("https:" == document.location.protocol) ? "https://mein-server.de/piwik/" : "http://mein-server.de/piwik/");
 document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
 &lt;/script&gt;&lt;script type="text/javascript"&gt;
 try {
 var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
 piwikTracker.trackPageView();
 piwikTracker.enableLinkTracking();
 } catch( err ) {}
 &lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;img src="http://mein-server.de/piwik/piwik.php?idsite=1" style="border:0" alt="" /&gt;&lt;/p&gt;&lt;/noscript&gt;
 &lt;!-- End Piwik Tag --&gt;
)</pre>
<p>Damit erscheint der Code im Header-Bereich der Seite und nicht wie in der Anleitung beschrieben am Ende des Body-Bereiches, aber auch das funktioniert bisher.</p>
<p>Inzwischen habe ich auch die Extension piwiki aus dem Typo3-Repository ausprobiert und zwar in der Version 2.0.0. Die Extension muss nur installiert und aktiviert werden, dann folgen noch vier Zeilen im Root-Template:</p>
<pre>config.tx_piwik {
  piwik_idsite = 1
  piwik_host   = http://mein-server.de/piwik/
}
</pre>
<p>Entgegen der Beschreibung muss hier wirklich http:// mit angegeben werden, sonst entstehen relative Verweise. Bevor man die Installation testen kann, muss man sich unbedingt vom Backend abmelden. Solange man im Backend angemeldet ist erfolgt nämlich keine Integration des Piwik-Codes.</p>
<p>Weitere Informationen zur Integration von Piwik in Typo3 finden sich bei <a href="http://blog.mittwald.de/cms/wie-integriere-ich-piwik-in-typo3/">Mittwald</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/09/piwik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/dev/disk/by-uuid does not exist</title>
		<link>http://www.debacher.de/ublog/2010/06/devdiskby-uuid-does-not-exist/</link>
		<comments>http://www.debacher.de/ublog/2010/06/devdiskby-uuid-does-not-exist/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 17:36:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=374</guid>
		<description><![CDATA[Heute hatte ich etwas Stress mit meinem Ubuntu-9.10 System.  Der Rechner wollte nicht booten und lieferte nach dem Boot-Menü die Fehlermeldung Gave up waiting for root device. Common problems - Boot args (cat /proc/cmd/line) - Check rootdelay= (did the system wait long enough?) - Check root= (did the system wait the right device?) - Missing [...]]]></description>
			<content:encoded><![CDATA[<p>Heute hatte ich etwas Stress mit meinem Ubuntu-9.10 System.  Der Rechner wollte nicht booten und lieferte nach dem Boot-Menü die Fehlermeldung</p>
<pre>Gave up waiting for root device. Common problems
- Boot args (cat /proc/cmd/line)
  - Check rootdelay= (did the system wait long enough?)
  - Check root= (did the system wait the right device?)
- Missing modules (cat /proc/modules;ls /dev)
Alert! /dev/disk/by-uuid/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx does not exist</pre>
<p>Da sowohl bei <em>Grub2</em>, als auch in der <em>fstab</em> alle Partitionen per <em>UUID</em> angesprochen wurden ein ernsthaftes Problem. Als ich ein Testsystem von Ubuntu 10.04 gestartet habe war die Partition auch per UUID erreichbar und keine Fehler auf der Festplatte erkennbar.</p>
<p>Ich habe den Rechner dann mit einer Grub-Shell erfolgreich starten können mittels:</p>
<pre>set root=(hd0,6)
linux  /vmlinuz  root=/dev/sda6
initrd  /initrd.img
boot</pre>
<p>Das System startete auf diese Art. Es war dann aber wirklich die Partition sda6 nicht per UUID erreichbar.  In /dev/disk/by-uuid fehlte der Link auf die Partition und</p>
<pre>blkid</pre>
<p>lieferte Informationen über alle Partitionen außer sda6. Mittels</p>
<pre>blkid -p /dev/sda6</pre>
<p>kann man Informationen erzwingen, aber hier kam nur ein Hinweis auf verschiedene Partitionstypen.</p>
<pre>ambivalent result (probably more filesystems on the device)
</pre>
<p>Es scheint sich hierbei um ein unglückliches Zusammenspiel mehrerer normalerweise unauffälliger Fehler zu handeln, zumindest unter 10.04 tritt das Problem so nicht auf. Eine Beschreibung habe ich dann unter <a href="http://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg2057379.html">http://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg2057379.html</a> gefunden.</p>
<pre>Minix uses the "magic number" 137f, 138f, 2468,2478,  at  the location 0x410   to mark a Minix file system.
- 0x410 is also the location any ext filesystem uses to record the number of free inodes.
- (The number of free inodes is essentially the number of files you are still able to create on the file system)
+ 0x410 is also the location any ext filesystem uses to record the number
+ of free inodes.

  In  decimals  those four umbers are  4991,5007,9320,9336

  If the number of free inodes happens to  be one of those four numbers plus a multiple of 65536,
  then  the  ext filesystem will write  one of the four  Minix magic numbers  to the 0x410 location.
</pre>
<p>Bei einer unglücklichen Zahl von freien Inodes in der Partition lässt sich <em>blkid</em> irritieren und die Informationen z.B. über die ID werden nicht richtig gelesen.</p>
<p>Die Lösung ist im Prinzip einfach. Man muss nur einen einzigen zusätzlichen Inode belegen oder freigeben. Mein System hätte ich also nur rebooten müssen, ich hatte es ja zum Laufen gebracht und damit die Zahl der Inodes verändert.</p>
<p>Da unklar ist, wann dieses Problem mal wieder auftritt habe ich lieber von UUID auf Devices umgestellt. Dazu muss man einerseits die /etc/fstab umstellen, die notwendigen Informationen finden sich dort aber als Kommentare. Dann muss man die Grub2-Konfiguration umstellen.</p>
<p>Am Ende der Datei <em>/etc/default/grub</em> muss man ein Kommentarzeichen entfernen, damit GRUB_DISABLE_LINUX_UUID=true aktiv wird</p>
<pre># Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"</pre>
<p>Nun noch die Konfiguration neu erzeugen lassen mittels:</p>
<pre>update-grub</pre>
<p>und dann steht einem Reboot nichts mehr im Wege. Das Ändern der /etc/default/grub ist nicht mal unbedingt notwendig, da update-grub die Partition perr UUID nicht findet und dann von sich aus mit den Device-Bezeichnungen arbeitet.</p>
<p>Bei der Recherche zu diesem Problem habe ich zusätzlich gelernt, dass die UUID per tune2fs und per mkfs gesetzt werden kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/06/devdiskby-uuid-does-not-exist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exakte Fenstergröße</title>
		<link>http://www.debacher.de/ublog/2010/04/exakte-fenstergrose/</link>
		<comments>http://www.debacher.de/ublog/2010/04/exakte-fenstergrose/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 20:13:01 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=366</guid>
		<description><![CDATA[Bei der Entwicklung von Webseiten muss man gelegentlich das Browserfenster exakt auf eine bestimmte Größe einstellen. Dabei hilft das Programm xdotool (ggf. Nachinstallieren). Die Nutzung erfolgt von der Textkonsole aus. Will man das Firefox-Fenster auf exakt 1024&#215;768 Punkte einstellen so muss man zuerst an seine Nummer herankommen. Dies geschieht mittel: xdotool search --onlyvisible --title "Mozilla [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Entwicklung von Webseiten muss man gelegentlich das Browserfenster exakt auf eine bestimmte Größe einstellen. Dabei hilft das Programm <em>xdotool</em> (ggf. Nachinstallieren). Die Nutzung erfolgt von der Textkonsole aus. Will man das Firefox-Fenster auf exakt 1024&#215;768 Punkte einstellen so muss man zuerst an seine Nummer herankommen. Dies geschieht mittel:</p>
<pre>xdotool search --onlyvisible --title "Mozilla Firefox"</pre>
<p>Als Rückgabe erhält man eine oder ggf. mehrer Nummern von passenden Fenstern, z.B. <em>71802061 </em>Mit dieser Nummer kann man das Fenster dann manipulieren:</p>
<pre>xdotool windowsize 71802061 1023 768</pre>
<p>nimmt die entsprechende Einstellung vor.  Das Fenster darf aber nicht im Vollbild sein, sondern muss schon etwas verkleinert sein.</p>
<p>Mit dem Programm xdotool kann man auch Eingaben in Fenster machen.</p>
<p>Sollte es mühsam sein die Fensternummer über den Titel zu ermitteln, so kann man auch das Programm <em>xwinfo</em> benutzen. Das fordert einen auf das gewünschte Fenster anzuklicken und gibt dann eine Reihen von Informationen aus, unter Window-Id die Nummer. Die Nummer ist hier hier hexadezimal angegeben, aber auch damit kann xdotool umgehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/04/exakte-fenstergrose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Karmic und majordomo</title>
		<link>http://www.debacher.de/ublog/2010/03/karmic-und-majordomo/</link>
		<comments>http://www.debacher.de/ublog/2010/03/karmic-und-majordomo/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 17:27:02 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=360</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Auf meinem aktuellen Karmic-System wollte ich gern <em>majordomo</em> installieren. Primär eigentlich nur, um das Kommando <em>approve</em> 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.</p>
<p>Beim aktuellen <em>OpenSuSe</em> wird <em>majordomo</em> immer noch mit ausgeliefert. Daher war die Idee naheliegend das RPM-Paket mittels <em>alien</em> 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:</p>
<pre>Unpacking of 'majordomo-1.94.5-457.1.i586.rpm' failed at /usr/share/perl5/Alien/Package/Rpm.pm line 155.</pre>
<p>In dem Artikel <a href="http://forum.ubuntuusers.de/topic/kivio-2-0-installieren/#post-2054853">http://forum.ubuntuusers.de/topic/kivio-2-0-installieren/#post-2054853</a> habe ich dann eine Lösung gefunden. Dort ist ein kleiner Patch zu finden, der das Problem in der Zeile 155 angeht.</p>
<pre>sub unpack {
	my $this=shift;
	$this-&gt;SUPER::unpack(@_);
	my $workdir=$this-&gt;unpacked_tree;
	my $rpmunpack="rpm2cpio ".$this-&gt;filename." | lzma -d | ";

	$this-&gt;do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2&gt;&amp;1")
	      or (($rpmunpack="rpm2cpio ".$this-&gt;filename." | ")
	      and $this-&gt;do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2&gt;&amp;1"))
	      or die "Unpacking of '".$this-&gt;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-&gt;filename."' failed";</pre>
<p>Ich habe einfach die entsprechenden vorhandenen Zeilen auskommentiert und diese Zeilen hineinkopiert. Nach der Änderung konnte ich mein Majordomo-Paket erfolgreich konvertieren mittels:</p>
<pre>sudo alien --scripts majordomo-1.94.5-457.1.i586.rpm</pre>
<p>Herzlichen Dank an den Autor <a href="http://ubuntuusers.de/user/hakunamatata/">hakunamatata</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/03/karmic-und-majordomo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser-Konfiguration mittel wpad.dat</title>
		<link>http://www.debacher.de/ublog/2010/03/browser-konfiguration-mittel-wpad-dat/</link>
		<comments>http://www.debacher.de/ublog/2010/03/browser-konfiguration-mittel-wpad-dat/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 17:02:07 +0000</pubDate>
		<dc:creator>debacher</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.debacher.de/ublog/?p=355</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Da in meinen Webserver-Log-Dateien häufiger Anfragen nach Dateien namens <em>wpad.dat</em> auftauchten habe ich mich mal mit dem Thema <em>Web Proxy Autodiscovery Protocol</em> (WPAD) beschäftigt. Positiv daran ist, dass es als Webstandard gilt und von allen aktuellen Browsern unterstützt wird. WPAD benutzt <em>Proxy Auto-Configuration</em> (PAC) Dateien um die Einstellungen zu übermitteln.</p>
<p>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 <em>wpad.dat</em>, die im einfachsten Fall folgenden Inhalt besitzt:</p>
<pre>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";
  }
}
</pre>
<p>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.</p>
<p>Detaillierte Informationen findet man unter <a href="http://findproxyforurl.com">http://findproxyforurl.com</a> und natürlich <a href="http://de.wikipedia.org/wiki/WPAD">http://de.wikipedia.org/wiki/WPAD</a>.</p>
<p>Diese Datei muss nun nur noch zum Browser kommen. Dazu muss der Browser passend eingestellt sein: <em>Bearbeiten -&gt; Einstellungen -&gt; Erweitert -&gt; Netzwerk -&gt; Verbindung -&gt; Einstellungen -&gt; Die Proxy-Einstellungen für dieses Netzwerk automatisch erkennen</em></p>
<p>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.&lt;rechnername.lokale-domain&gt;/wpad.dat In den meisten Installationen langte es sicherlich im Nameserver einen <em>cname</em> für <em>wpad</em> einzurichten:</p>
<pre>wpad       CNAME   boss</pre>
<p>Zusätzlich wird noch empfohlen die zugehörigen Mime-Types zu registrieren. Dazu kommen folgende Zeilen in die bisher leere Datei <em>/etc/apache2/httpd.conf</em>:</p>
<pre>AddType application/x-ns-proxy-autoconfig .dat
AddType application/x-ns-proxy-autoconfig .pac
Redirect permanent  /proxy.pac /wpad.dat</pre>
<p>Hier sind zwei Dateien eingetragen, die <em>wpad.dat </em>und die <em>proxy.pac</em>, 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.</p>
<p>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.</p>
<pre># /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;
<strong>option wpad code 252 = text;</strong>
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";
<strong>    option wpad "http://www.debacher.net/wpad.dat ";</strong>
}
</pre>
<p>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.</p>
<h3>Weitere Informationen:</h3>
<ul>
<li><a href="http://www.mynakedgirlfriend.de/wpad-web-proxy-autodiscovery-protocol/">http://www.mynakedgirlfriend.de/wpad-web-proxy-autodiscovery-protocol/</a></li>
<li><a href="http://www.kai-hildebrandt.de/tutorials/wpad.html">http://www.kai-hildebrandt.de/tutorials/wpad.html</a></li>
<li><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/web-browser-auto-proxy-configuration.html">http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/web-browser-auto-proxy-configuration.html</a></li>
<li><a href="http://rolfrost.de/proxypac.html">http://rolfrost.de/proxypac.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.debacher.de/ublog/2010/03/browser-konfiguration-mittel-wpad-dat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.debacher.net/wpad.dat" length="0" type="video/mpeg" />
		</item>
	</channel>
</rss>

