<?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>zer(o_0)ne</title>
	<atom:link href="http://www.zero0ne.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zero0ne.de</link>
	<description>Datenreisender, Cyberpunk, Sysadmin, Console Cowboy ... lebt in der Wired</description>
	<lastBuildDate>Thu, 26 Jan 2012 15:34:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>KVM LVM Festplatte vergrössern</title>
		<link>http://www.zero0ne.de/2012/01/kvm-lvm-festplatte-vergrossern/</link>
		<comments>http://www.zero0ne.de/2012/01/kvm-lvm-festplatte-vergrossern/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 15:29:21 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[lvextend]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[pvcreate]]></category>
		<category><![CDATA[resize2fs]]></category>
		<category><![CDATA[vgextend]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3285</guid>
		<description><![CDATA[Heute war&#8217;s mal wieder soweit: die Festplatte einer meiner KVM Instanzen war voll. Also musste ich ran und sie vergrössern. Aufräumen ging nicht, da die Nutzdaten einfach mit der Zeit angewachsen waren. Mit Hilfe eines Freundes hab ich die ganzen Kommandos dann auch wieder in der richtigen Reinfolge auf die Reihe bekommen. Hat auch alles [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Heute war&#8217;s mal wieder soweit: die Festplatte einer meiner KVM Instanzen war voll. Also musste ich ran und sie vergrössern. Aufräumen ging nicht, da die Nutzdaten einfach mit der Zeit angewachsen waren. Mit Hilfe eines Freundes hab ich die ganzen Kommandos dann auch wieder in der richtigen Reinfolge auf die Reihe bekommen. Hat auch alles problemlos geklappt und die VM hat nun 10GB mehr platz!</p>
<p style="text-align: justify;"><span id="more-3285"></span></p>
<p style="text-align: justify;"><strong>VM shutdown</strong><br />
im Wirt dann das img-File der VM Sicherheitskopieren und dann ein neues RAW-File anlegen. Dieses so dimensionieren, wie viel zusätzlichen Platz man haben möchte:<br />
<code><br />
cp nameVM.img nameVM.img.bck<br />
qemu-img create -f raw temp.img 10G<br />
mv nameVM.img<br />
cat nameVM.img.save temp.img &gt; nameVM.img<br />
</code></p>
<p style="text-align: justify;"><strong>VM starten</strong><br />
Dann die VM wieder starten, normal sollte das problemlos gehen und das installierte Linux sollte ohne Probleme starten. Für das System hat sich an sich ja nicht viel geändert. Im laufenden System dann mit fdisk eine neue Partition anlegen. Für fdisk sollte der neue Speicher schon sichtbar sein. Es sollte also erkannt werden, das noch unpartitionierter Platz auf der Festplatte vorhanden ist. Abschließend noch mal neu starten.</p>
<p style="text-align: justify;"><strong>Volume vergrössern</strong><br />
Nach dem reboot sollte dann das zusätzlich SDA-Device zur Verfügung stehen. Dieses können wir nun dazu nutzen, das Volume von LVM zu erweitern.</p>
<p>Ein zusätzliches Physical Volume anlegen:<br />
<code><br />
ll /dev/sda*<br />
pvcreate /dev/sdaX<br />
pvdisplay<br />
</code></p>
<p>Das neue PV der Volume Group hinzufügen:<br />
<code><br />
vgextend vg_name /dev/sdaX<br />
vgdisplay<br />
</code></p>
<p>Das Logische Volume auf die volle Größe der VG erweitern:<br />
<code><br />
lvextend /dev/mapper/vg_name-lv_root /dev/sdaX<br />
lvdisplay<br />
</code></p>
<p>Zum Schluss dann noch das Dateisystem von Linux auf die Größe des LV anpassen:<br />
<code><br />
resize2fs /dev/mapper/vg_name-lv_root<br />
</code></p>
<p>Abschließend noch mal nachsehen, ob der Platz nun wirklich zur Verfügung steht und fertig!<br />
<code>df -lh</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2012/01/kvm-lvm-festplatte-vergrossern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacBook Air Power</title>
		<link>http://www.zero0ne.de/2011/12/macbook-air-power/</link>
		<comments>http://www.zero0ne.de/2011/12/macbook-air-power/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 16:51:43 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[On the Road]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3281</guid>
		<description><![CDATA[Bin jetzt die Tag über Weihnachten bei meinen Eltern und habe nur mein MacBook Air dabei. Dachte könnte ein wenig &#8220;World of Warcraft&#8221; damit spielen. Hatte das vorher aber auch nicht grossartig getestet. Bin jetzt aber erstaunt wie gut es läuft, ich habe im Moment alles auf mittlere Details gestellt und das läuft super! Sieht echt gut [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bin jetzt die Tag über Weihnachten bei meinen Eltern und habe nur mein MacBook Air dabei. Dachte könnte ein wenig &#8220;World of Warcraft&#8221; damit spielen. Hatte das vorher aber auch nicht grossartig getestet. Bin jetzt aber erstaunt wie gut es läuft, ich habe im Moment alles auf mittlere Details gestellt und das läuft super! Sieht echt gut aus. Das Interface noch ein wenig runterskaliert und alles ist top!</p>
<p style="text-align: justify;">Die zweite Sache, die auch eher zufällig rausgefunden habe ist, das man eine iPhone Headset auch als Headset am Mac nehmen kann. Einfach einstecken und Mac OS Lion erkennt es als externes Mikrofon und Kopfhörer. Jetzt kann man es in allen anderen Programmen genutzt werden. Skype zum Beispiel funktioniert super damit.</p>
<p style="text-align: justify;">Was ich jetzt beinahe vergessen hätte: WoW läuft bei mir von einer externen Festplatte. Das Laden dauert auch nicht viel länger als sonst. Ab und an gibt es allerdings mal ein paar kleine Aussetzer. Das liegt wohl daran, das die Festplatte schon sehr schnell in den Standby-Modus fährt. Beim nächsten Zugriff dauert es dann wieder einige Sekunden bis sie anspringt. Lässt sich aber ganz gut damit Leben und spielen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/12/macbook-air-power/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes Match</title>
		<link>http://www.zero0ne.de/2011/12/itunes-match/</link>
		<comments>http://www.zero0ne.de/2011/12/itunes-match/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 16:30:46 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3271</guid>
		<description><![CDATA[So, nun gibt es iTunes Match also endlich auch in Europa, oder zu mindestens dem Großteil davon. Lange wurde ja diskutiert, ob die GEMA hier blocken würde. Auch sagte die GEMA, mit ihr hätte noch keiner gesprochen, sie wäre aber für Gespräche offen. Dann war es lange still. Und jetzt auf einmal war es soweit, ohne Ankündigung, einfach so. Der [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">So, nun gibt es iTunes Match also endlich auch in Europa, oder zu mindestens dem Großteil davon. Lange wurde ja diskutiert, ob die GEMA hier blocken würde. Auch sagte die GEMA, mit ihr hätte noch keiner gesprochen, sie wäre aber für Gespräche offen. Dann war es lange still. Und jetzt auf einmal war es soweit, ohne Ankündigung, einfach so.<span id="more-3271"></span></p>
<p style="text-align: justify;">Der ein oder andere wird sich jetzt fragen was iTunes Match ist? Es ist Apples lösung iTunes von der heimischen Festplatte in die Cloud zu transferieren. Wenn man dies so kommentarlos hört, wird man sich denken :&#8221;Der Upload wird aber lange dauern&#8230;&#8221;. Dafür hat sich Apple aber etwas einfallen lassen. Und zwar geht es erst daher und jagt die ganze Mediathek durch Genius und eine Songanalyse. Analysiert also einmal alle Songs, schickt dies dann ins Netz zu Apple und vergleicht das Ergebnis mit dem iTunes Store. Alle Lieder die so gefunden werden, werden in deinen iTunes Match Account vermerkt, brauchen also nicht mehr hochgeladen werden. Den Rest, den iTunes nicht erkennt, lädt es dann noch zusätzlich hoch. Das gute dabei ist, er vergleicht nicht mit dem lokalen iTunes Store sondern mit dem globalen Store. Die Anzahl der  Tracks ist auf 25.000 begrenzt. Die die er im Store findet, zählen nicht dazu. Im Moment erzielt iTunes eine Trefferrate von gut 75-85%. Hört man jedenfalls von den Menschen auf Twitter und Co.. Bei mir waren es 72% meiner Tracks, die er erkannte. Eine gute Rate wie ich finde, da ich doch sehr viel exotische Musik habe.</p>
<p style="text-align: justify;">Soweit so gut. Das einzige daran was oft ein wenig schief geht ist, das er nicht alle Tracks eines Albums erkennt. Jetzt könnte man sich denken &#8220;was soll&#8217;s, die Musik hast du doch so oder so&#8221;. Ja schon, aber einer der vielen Vorteile von iTunes Match ist, das die Songs die im Store gefunden werden einem als 256Kbit/s AACs bereitgestellt werden. Was klanglich doch bei vielen Songs einen sehr grossen Unterschied macht. Sehr deutlich hab ich es bei einem Album von X Japan gemerkt. Das wollt ich immer mal wieder neu rippen (bin aber nie dazu gekommen), weil beim erstmal ist da wohl was schiefgegangen. Der Rip war sehr leise und dumpf. Nach dem Import in iTunes Match klang das auf einmal sehr viel lauter und deutlicher.</p>
<p style="text-align: justify;">Und nein, durch iTunes Match werden die Songs auf der Festplatte nicht automatisch ausgetauscht. Aber man kann es machen und sollte es auch bei vielen tun. So werden auch zum Beispiel alte Dateien aus der Zeit wo iTunes noch DRM hatte bereinigt. Also man kann nun jegliche seiner Dateien aus der Cloud neu runterladen, immer und immer wieder. Jeden Kauf den man mal getätigt hatte und auch jede Datei die Hochgeladen wurde. Auch können neu gekaufte Tracks gleich auf alle Geräte verteilt werden. Dies muss aber auf den einzelnen Geräten erst explizit aktiviert werden. Auch sollte man in diesem Fall gleich darauf achten, das bei iOS Geräten deaktiviert ist, das diese auch über 3G versuchen Content zu laden.</p>
<p style="text-align: justify;">Aber man kann nicht nur runterladen und so mit seine Mediathek verlegen, man kann auch wunderbar Streamen. Man kann bei iTunes Match bis zu 10 Geräte hinzufügen die Streamen und Runterladen dürfen. So kann ich nun im Büro, bei Freunden oder bei meinen Eltern zuhause immer auf meine gesamte Mediathek zugreifen und all meine musik hören. Cover und Metadaten wie zB der Playcount werden immer mitgesynct. Man kann nicht nur über iTunes auf iTunes Match zugreifen, sondern auch über iOS. Allerdings wird dort nicht gestreamt sondern immer heruntergeladen. Macht auch Sinn, da UMTS erstens nicht flächendeckend ist und zweitens es keine wirklichen Flatrates gibt.</p>
<p style="text-align: justify;">So kann man nun auch über sein iPhone auf sämtliche Songs zugreifen. Schwierig ist allerdings die Verwaltung. Da die übliche Songverwaltung nach dem aktivieren von iTunes Match aus dem Sync-Menü von iTunes rausfällt. Will man nun mal viele Songs löschen oder viele neu aufs Gerät bringen wird es anstrengend. Neue Songs Aufs iOS-Device zu bringen ist noch relative gut gelöst. Man kann Tracks einzeln laden oder albumweise oder auch ganze Playlists. Kompliziert wird es, wenn man sie dann wieder runter haben will. Man kann wieder nur einzeln oder albumweise löschen, was nun passiert wenn man eine Playlist löscht, habe ich noch nicht rausgefunden (mich noch nicht getraut auszuprobieren). Hier könnte man bei der Verwaltung noch ausbauen und sich verbessern. Es ist benutzbar, aber verbesserungswürdig.</p>
<p style="text-align: justify;">Also was haben wir alles: Mediathek@Cloud , Neu laden jeglicher Songs, Streaming, iOS Support und das alles für 25€ im Jahr. Ja es kostet Geld, aber wenn man sich das mal ein wenig überlegt, ist das nicht viel. Also für die Leistung hätten andere bestimmt schon das Doppelte verlangt, im Monat! Wenn man allein nur mal überlegt was das an Speicher und Bandbreite bedeutet. Naja Speicher sparen sie ja schon dadurch, das sie mit den iTunes Store matchen und so nicht jeden song 5 Bazillionen mal speichern müssen. Aber Bandbreite kostet es sie enorm. Vor allen zur Anfangszeit, da viele wohl ihre gesamte Mediathek noch mal neu herunterladen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/12/itunes-match/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing Nginx vHost with Puppet</title>
		<link>http://www.zero0ne.de/2011/11/managing-nginx-vhost-with-puppet/</link>
		<comments>http://www.zero0ne.de/2011/11/managing-nginx-vhost-with-puppet/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 15:30:15 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[vHost]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3257</guid>
		<description><![CDATA[Ich beschäftige mich nun seit einiger Zeit mit puppet und bin auch fleissig am Module bauen. Als einer der nächsten Punkte nach allen Standard-System-Diensten war nun Nginx dran. Vorraussetzung für mich war hier, dass auch vHost relativ einfach abgebildet werden können. Nach etwas Bastelei, ein wenig Google und nachdenken war es mir dann gelungen. Hier also [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Ich beschäftige mich nun seit einiger Zeit mit puppet und bin auch fleissig am Module bauen. Als einer der nächsten Punkte nach allen Standard-System-Diensten war nun Nginx dran. Vorraussetzung für mich war hier, dass auch vHost relativ einfach abgebildet werden können. Nach etwas Bastelei, ein wenig Google und nachdenken war es mir dann gelungen. Hier also mein Ergebnis. Da ich größtenteils nur WordPress verwende ist meine Klasse und mein Template ein wenig daran angepasst, sollte sich aber leicht auch für andere Dinge adaptieren lassen ;)</p>
<p><span id="more-3257"></span></p>
<p style="text-align: justify;">Man definiert sich im seinem <strong>Modul</strong>, hier &#8220;nginx&#8221;, eine neue <strong>Klasse</strong>. In dieser legt man nun ein <strong>Define</strong> an. Also quasi eine abstrakte Kasse oder Funktion. Diese belegt man schon mit allen Werten vor, die später jede einzelne vHost-Datei haben soll. Ich benutze hier <strong>$title</strong> als Übergabe-Variable. <strong>siteName</strong> ist der vHostname innerhalb des Templates.</p>
<p><code><br />
class nginx::wordpress{<br />
define site {<br />
$siteName = $title</p>
<p>file { "/etc/nginx/sites/$title.conf":<br />
ensure => present,<br />
owner => "root",<br />
group => "root",<br />
mode => 0644,<br />
content => template("nginx/wordpress.erb"),<br />
}<br />
}<br />
</code></p>
<p style="text-align: justify;">Nun noch ein <strong>Template</strong> erstellen. In diesem wird der eigentliche vHost definiert. Mit Extras wie Umleitung auf WWW und Sprechenden-URLs. <strong>siteName</strong> wird hier jeweils durch den von <strong>$title</strong> übergebenen Wert ersetzt.</p>
<p><code><br />
server {<br />
        listen       80;</p>
<p>        server_name  <%= siteName %><br />
                     www.<%= siteName %>;</p>
<p>        access_log  /var/log/nginx/access.<%= siteName %>.log  main;<br />
        error_log  /var/log/nginx/error.<%= siteName %>.log warn;</p>
<p>        root   /usr/share/nginx/sites/<%= siteName %>;<br />
        index  index.html index.php;</p>
<p>        try_files $uri $uri/ /blog/index.php?q=$uri&$args;</p>
<p>        if ($host != 'www.<%= siteName %>' ) {<br />
            rewrite  ^/(.*)$  http://www.<%= siteName %>/$1  permanent;<br />
        }</p>
<p> location ~ \.php$ {<br />
            fastcgi_pass   127.0.0.1:9000;<br />
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/sites/<%= siteName %>$fastcgi_script_name;<br />
            include        fastcgi_params;<br />
        }<br />
}<br />
</code></p>
<p style="text-align: justify;">Und jetzt kann man z.B. in einer Konfigurationsklasse von Nginx einfach das Define aufrufen, ihm einen Hostnamen übergeben und da durch erhält man einen vHost. Hier muss dann vorab nur noch die oben erstellte klasse inkludiert werden.</p>
<p><code><br />
nginx::wordpress::site {"zero0ne.de":}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/11/managing-nginx-vhost-with-puppet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konzerte 2011</title>
		<link>http://www.zero0ne.de/2011/09/konzerte-2011/</link>
		<comments>http://www.zero0ne.de/2011/09/konzerte-2011/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 13:21:59 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[On the Road]]></category>
		<category><![CDATA[konzert]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3252</guid>
		<description><![CDATA[Been there, done that: 26.05.2011 &#8211; Cut My Skin 25.06.2011 &#8211; Maximum the Hormone 04.07.2011 &#8211; X Japan 29.08.2011 &#8211; The Offspring To do: 07.10.2011 &#8211; Abwärts 04.11.2011 &#8211; ASP 18.11.2011 &#8211; Hammerfall 04.12.2011 &#8211; Rammstein]]></description>
			<content:encoded><![CDATA[<h2><strong>Been there, done that:</strong></h2>
<p>26.05.2011 &#8211; <em>Cut My Skin</em><br />
25.06.2011 &#8211; <em>Maximum the Hormone</em><br />
04.07.2011 &#8211; <em>X Japan</em><br />
29.08.2011 &#8211; <em>The Offspring</em></p>
<h2><strong>To do:</strong></h2>
<p>07.10.2011 &#8211; <em>Abwärts</em><br />
04.11.2011 &#8211; <em>ASP</em><br />
18.11.2011 &#8211; <em>Hammerfall</em><br />
04.12.2011 &#8211; <em>Rammstein</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/09/konzerte-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Datenbanken kopieren</title>
		<link>http://www.zero0ne.de/2011/08/mysql-datenbanken-kopieren/</link>
		<comments>http://www.zero0ne.de/2011/08/mysql-datenbanken-kopieren/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 16:00:04 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqldump]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3240</guid>
		<description><![CDATA[Um eine Datenbank zu kopieren kann man einfacher weise den Befehl „mysqldump“ auf dem lokalen oder remote Datenbankserver verwenden. Dazu loggt man sich z.B. auf dem lokalen Replikat ein. Nun gibt man den Befehl mit folgenden Parametern an. Einige davon sind Optional, wie zum Beispiel „&#8211;ignore-table“. mysqldump -p -q &#8211;skip-extended-insert &#8211;ignore-table=DB.TB -B DB -r DB.sql [...]]]></description>
			<content:encoded><![CDATA[<p align="JUSTIFY">Um eine Datenbank zu kopieren kann man einfacher weise den Befehl „<strong>mysqldump</strong>“ auf dem lokalen oder remote Datenbankserver verwenden. Dazu loggt man sich z.B. auf dem lokalen Replikat ein. Nun gibt man den Befehl mit folgenden Parametern an. Einige davon sind Optional, wie zum Beispiel „<strong>&#8211;ignore-table</strong>“.<span id="more-3240"></span></p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td valign="TOP"><em>mysqldump -p -q &#8211;skip-extended-insert &#8211;ignore-table=DB.TB -B DB -r DB.sql</em></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr valign="TOP">
<td bgcolor="#e6e6e6" height="27"><strong>Parameter</strong></td>
<td bgcolor="#e6e6e6"><strong>Erklärung</strong></td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">-p</p>
</td>
<td width="4823">
<p align="JUSTIFY">Damit wird nach absetzten des Befehls das MySQL-Passwort abgefragt. Man kann das Passwort auch direkt daran schreiben. Zum Beispiel „<strong>-peinPass0wrd</strong>“</p>
</td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">-q</p>
</td>
<td width="4823">
<p align="JUSTIFY">Dieser Parameter dient dem Schnellen Zeilenweisen schreiben der SQL-Datei. Normalerweise werden Zeilen erst immer gepuffert, so jedoch direkt geschrieben. Dies erhöht vor allen bei großen Tabellen die Geschwindigkeit.</p>
</td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">&#8211;skip-extended-insert</p>
</td>
<td width="4823">
<p align="JUSTIFY">Hier mit erzielt man pro Insert eine Zeile. Normalerweise werden Multiple-Insert gemacht, was zu einer Verkleinerung der Datei führt.</p>
</td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">&#8211;ignore-table</p>
</td>
<td width="4823">
<p align="JUSTIFY">Es können auch Tabellen vom Export ausgeschlossen werden. Diese müssen jedoch immer mit Datenbankname davor angegeben werden. Also z.B.: „<strong>&#8211;ignore-table=dbOnline.tbLog</strong>“</p>
</td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">-B</p>
</td>
<td width="4823">
<p align="JUSTIFY">Hiermit wird die Datenbank angegeben welche exportiert werden soll.</p>
</td>
</tr>
<tr valign="TOP">
<td width="1344">
<p align="JUSTIFY">-r</p>
</td>
<td width="4823">
<p align="JUSTIFY">Mit „-r“ lässt sich eine Ausgabedatei definieren, in welche der gesamte Output geschrieben werden soll. Beispielweise „<strong>-r TestDB.sql</strong>“</p>
</td>
</tr>
</tbody>
</table>
<p align="JUSTIFY">Die Ausführung des Befehls kann je nach Größe der Datenbank von einigen Sekunden bei zu mehreren Minuten Dauern. Bei sehr großen Datenbanken auch Stunden. Ist der Vorgang jedoch abgeschlossen, findet man im aktuellen Verzeichnis den Dump. Diesen kann man nun auf den Server kopieren, wo die Datenbank läuft, in welche man den Export importieren möchte. Dies kann man per SCP oder per SFTP machen, wie einem beliebt.</p>
<p align="JUSTIFY">Hat man nun also die Datei kopiert, wechselt man auf die Konsole des Zielservers. Dort geht man dann in das Verzeichnis, in welchem die Datei liegt. Hier nun folgendes Kommando absetzen:</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td><em>mysql -p &lt; DB.sql</em></td>
</tr>
</tbody>
</table>
<p align="JUSTIFY">Hiermit wird die Datenbank aus der Datei in den MySQL-Server importiert. Zu beachten sei, das Datenbanken gleichen Namens so überschrieben werden. Ist dies erfolgreich abgeschlossen kann man die SQL-Datei löschen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/08/mysql-datenbanken-kopieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datenbankreplikation mit MySQL</title>
		<link>http://www.zero0ne.de/2011/08/datenbankreplikation-mit-mysql/</link>
		<comments>http://www.zero0ne.de/2011/08/datenbankreplikation-mit-mysql/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:30:36 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqld]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[replikation]]></category>
		<category><![CDATA[slave]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3226</guid>
		<description><![CDATA[Bei einer Replikation, werden alle Queries eines sogn. „Master“ an weitere MySQL-Server übertragen. Dabei müssen aber die gleichen Datenbestände zu Grunde liegen. Es gibt verschiedene Strukturen. Hier werden nur die 2 wichtigsten besprochen. Das wären „Master – Slave“ und „Master – Master“. Einfache Replikation: Master – Slave Für eine asynchrone Replikation werden mindestens 2 MySQL-Server [...]]]></description>
			<content:encoded><![CDATA[<p align="JUSTIFY">Bei einer Replikation, werden alle Queries eines sogn. „<strong>Master</strong>“ an weitere MySQL-Server übertragen. Dabei müssen aber die gleichen Datenbestände zu Grunde liegen. Es gibt verschiedene Strukturen. Hier werden nur die 2 wichtigsten besprochen. Das wären „<strong>Master – Slave</strong>“ und „<strong>Master – Master</strong>“.<span id="more-3226"></span></p>
<h3 align="JUSTIFY">Einfache Replikation: Master – Slave</h3>
<p align="JUSTIFY">Für eine asynchrone Replikation werden mindestens 2 MySQL-Server benötigt, von denen einer als Master und mindestens einer als Slave agiert. Bei dieser Art von Replikation schreibt der Master die Updates (alle Statements, die Datensätze verändern) in eine Binärlog-Datei. Diese dient als Datenspeicher, von welchem aus die Informationen über Datenänderungen an die Slave-Server gesendet werden.</p>
<p align="JUSTIFY">Sobald sich ein Slave mit dem Master verbindet, übermittelt dieser die Position der letzten, erfolgreich empfangenen Änderungen, und empfängt daraufhin vom Master alle Updates seit der übermittelten Position. Nachdem der Slave die Änderungen übernommen hat, schaltet er so zu sagen in den Leerlauf und wartet auf die Übermittlung weiterer Änderungen vom Master.</p>
<h3>Konfiguration eines Master</h3>
<p align="JUSTIFY">Für den später einzurichtenden Slave muss man auf dem Master einen Account anlegen. Dies erledigt man mit einen GRANT-Befehl, welcher allgemein dazu da ist Benutzer anzulegen. „<strong>GRANT SUPER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO ReplikationsUser@slavehost IDENTIFIED BY &#8216;PWD&#8217; ; Flush Privileges;</strong>“. Wobei hier dann „<strong>@slavehost</strong>“ die IP oder der Hostname des Slave ist. Man sollte dann noch in der „<strong>my.cnf</strong>“ nachsehen ob eine „<strong>server-id</strong>“ vergeben ist. Ohne diese geht es nicht. Jeder Server, der an einer Replikation beteiligt ist, braucht eine eindeutige „<strong>server-id</strong>“. Dabei sind nur Zahlen erlaubt. Man sollte dann auch noch einen Verbindungstest durchführen, indem man sich vom Slave aus auf den Master verbindet. „<strong>mysql -h masterhost -u ReplikationsUser -p</strong>“. Sollte diese Verbindung nicht aufgebaut werden können, sollte man beim Master kontrollieren ob in der Konfig evtl. „<strong>bind-address = 127.0.0.1</strong>“ steht oder ob das Passwort richtig gesetzt ist. Im folgenden Schritt erstellt man dann eine Kopie aller zu replizierenden Daten. Im Regelfall ist das meist alles. Dafür sperrt man den kompletten Server mit einer Schreib-Sperre.</p>
<p align="JUSTIFY">„<strong>FLUSH TABLES WITH READLOCK ;</strong>“. Die Konsole in der man dies Kommando eingegeben hat muss für die Dauer der folgenden Vorgänge geöffnet bleiben, da sonst der Readlock erlischt. Um dem Slave die genaue Position und den Namen der Binärlogdatei mitzuteilen, führt man noch folgendes Kommando aus: „<strong>SHOW MASTER STATUS;</strong>“. Die Ausgabe sollte dabei dieser ähneln:</p>
<table width="100%" cellspacing="0" cellpadding="5">
<colgroup>
<col width="64*" />
<col width="64*" />
<col width="64*" />
<col width="64*" /> </colgroup>
<tbody>
<tr valign="TOP">
<td bgcolor="#c0c0c0" width="25%"><strong>File</strong></td>
<td bgcolor="#c0c0c0" width="25%"><strong>Position</strong></td>
<td bgcolor="#c0c0c0" width="25%"><strong>Binlog_Do_DB</strong></td>
<td bgcolor="#c0c0c0" width="25%"><strong>Binlog_Ignore_DB</strong></td>
</tr>
<tr valign="TOP">
<td width="25%">mysqld-bin.000023</td>
<td width="25%">50958306</td>
<td width="25%"></td>
<td width="25%"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p align="JUSTIFY">[ Mit den letzten beiden Feldern kann man in der „<strong>my.cnf</strong>“ explizit festlegen, welche einzelnen Datenbanken repliziert werden sollen und welche nicht. Dieses sollte man aber im Regelfall nie auf dem Master festlegen. Sondern eher auf dem Slave filtern. Dort kann man auch wieder in der „<strong>my.cnf</strong>“ festlegen was alles repliziert werden soll und was nicht. ]</p>
<p align="JUSTIFY">Man notiert sich nun den Namen des „<strong>binlog</strong>“ und die Position, danach kann man mit dem Kopieren der Daten beginnen. Hat man nur MyISAM-Datenbanken macht man dies am besten auf Dateiebene. „<strong>tar -cvz -f /backup/mysql/snapshot_DATUM.tar.gz /var/lib/mysql</strong>“. Um die DB nicht all zu lange zu sperren kann man auch erst nur die Daten kopieren und dann später komprimieren. Ist man dann fertig, kann man sich aus der MySQL-Konsole ausloggen und somit die Sperre wieder aufheben.</p>
<h3>Konfiguration eines Slave</h3>
<p align="JUSTIFY">Die MySQL-Version auf dem Slave sollte mindestens der des Masters entsprechen. Sie darf neuer sein, aber nicht älter. Auf dem Slave stoppt man dann erstmal den laufenden MySQL-Server und editiert die „my.cnf“. Dort setzt man auch wieder die Variablen für die Server-ID. Zu beachten ist hier nur, dass die Server-ID sich von der des Masters und aller bestehenden Slaves unterscheiden muss. Will man, das dieser Slave noch Master für weitere untergeordnete Slaves ist, muss man auch darauf achten das hier das binlog aktiviert ist. Hat man dann die Daten, welche man auf dem Master kopiert hat übertragen, kopiert man diese auf dem Slave nach „<strong>/var/lib/mysql</strong>“. Zu beachten sei, das man sich nicht die Datenbank „<strong>mysql</strong>“ überschreibt. Diese sollte man auch in der „my.cnf“ von der Replikation ausnehmen. Dies macht man mit den Optionen:</p>
<p><code>replicate-ignore-db= mysql<br />
replicate-wild-ignore-table = mysql.%</code></p>
<p align="JUSTIFY">Hat man dann die Daten kopiert, kontrolliert man noch mal, ob alle Dateien unterhalb von „<strong>/var/lib/mysql</strong>“ auch dem Benutzer und der Gruppe „<strong>mysql</strong>“ gehören. Jetzt kann man den MySQL-Server wieder starten. Um nun die Replikation zu aktiveren müssen wir dem Slave noch mitteilen, wer der Master ist und an welcher Stelle im binlog er anfangen soll zu lesen. Dies macht man mit dem „<strong>CHANGE MASTER</strong>“ Kommando:</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td><code>CHANGE MASTER TO<br />
MASTER_HOST = 'master_host',<br />
MASTER_USER = 'ReplikationsUser',<br />
MASTER_PASSWORD = 'PWD',<br />
MASTER_LOG_FILE = 'log file name',<br />
MASTER_LOG_POS = log_offset;</code></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p align="JUSTIFY">Wurde das Statement erfolgreich ausgeführt, wurden alle Änderungen übernommen und der Slave ist soweit bereit die Replikation zu starten. Gestartet wird dann einfach mit „<strong>SLAVE START;</strong>“ (gestoppt mit „<strong>SLAVE STOP;</strong>“). Nach dem Start sollte man mit „<strong>SHOW SLAVE STATUS;</strong>“ den Status der Replikation überprüfen. Steht „<strong>Slave_IO_Running</strong>“ auf „<strong>Yes</strong>“ läuft die Replikation. Dann ist immer noch der Wert „<strong>Seconds_Behind_Master</strong>“ interessant. Er gibt an, wie viel der Slave dem Master hinterher hängt. Am Anfang steht hier eine mehr oder weniger große Zahl, in endlicher Zeit sollte hier dann aber nur noch „0“ stehen. Steht dort „<strong>NULL</strong>“ gibt es ein Problem mit der Replikation, dann ist aber auch „<strong>Slave_IO_Running</strong>“ meisten auf „<strong>No</strong>“. Unter „<strong>Last_Error</strong>“ kann man dann noch nachlesen, wieso es zu einer Unterbrechung kam.</p>
<p align="JUSTIFY"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/08/master-slave.png"><img class="aligncenter size-medium wp-image-3228" title="master-slave" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/08/master-slave-300x120.png" alt="" width="300" height="120" /></a></p>
<h3></h3>
<h2>Reparieren der Replikation</h2>
<p align="JUSTIFY">Sollte die Replikation einmal unterbrochen werden, sollte man mit „<strong>slave stop</strong>“ erst mal den Replikations Prozess beenden. Mit „<strong>slave show status\G</strong>“ kann man sich dann den Status ausgeben lassen. Hierbei sollte man jetzt auf die Zeile „<strong>Last_Error</strong>:“ achten. Die dort ausgegebene Fehlermeldung sollte man nun genauer untersuchen und versuchen festzustellen warum es zu diesen Fehler kam. Hat man diesen dann beseitigt kann man mit „<strong>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;</strong>“ MySQL anweisen, dieses Query zu überspringen. Anschließend kann man mit „<strong>slave start</strong>“ die Replikation wieder starten. Wenn alles gut läuft und dies der einzigste Fehler war, müsste diese nun auch wieder laufen.</p>
<h2>Master – Master</h2>
<p align="JUSTIFY">Bei einer Master-Master-Replikation, gibt es, wie der Name schon sagt, 2 Master. Beide sind sich gegenseitig aber noch Slave. Sodas Änderungen auf einen Master direkt auch auf dem 2. Verfügbar sind und umgekehrt. Bei Master Slave kommen Update immer nur von einer Seite, vom Master. Hier kann jeder der beiden Änderungen machen. Dies führt natürlich auch zu Probleme. Was ist, wenn beide den gleichen Datensatz Ändern wollen? Deswegen muss man hier sehr auf die Daten-Integrität achten und am besten immer nur einen der Beiden Master schreiben lassen.</p>
<h2>Aufbau einer Master-Master-Replikation</h2>
<p align="JUSTIFY">Es muss hier auch wieder auf beiden Server von den Gleichen Daten ausgegangen werden. Auf beiden das „<strong>binlog</strong>“ aktiviert sein. Dann kann man auf beiden jeweils einen Slave-Prozess einrichten, welcher den anderen Als Master nimmt.</p>
<p align="JUSTIFY"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/08/master-master.png"><img class="aligncenter size-medium wp-image-3237" title="master-master" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/08/master-master-300x120.png" alt="" width="300" height="120" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/08/datenbankreplikation-mit-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQLd &#8211; Datenbankserver</title>
		<link>http://www.zero0ne.de/2011/08/mysqld-datenbankserver/</link>
		<comments>http://www.zero0ne.de/2011/08/mysqld-datenbankserver/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:30:03 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[datenbank]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqld]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3212</guid>
		<description><![CDATA[Allgemeines Der Aufbau von MySQL ist recht Simple. Die einzige Konfigurationsdatei liegt in „/etc/mysql/“ und heißt „my.cnf“. Hier lassen sich nun die verschiedenen Laufzeitoptionen von MySQL einstellen. Zum Beispiel auf welchen Port und welchen Interface es laufen soll. Aber auch wieviel Puffer und Speicher MySQL verwenden soll. Die eigentlichen Daten von MySQL werden dann in [...]]]></description>
			<content:encoded><![CDATA[<h2>Allgemeines</h2>
<p align="JUSTIFY">Der Aufbau von MySQL ist recht Simple. Die einzige Konfigurationsdatei liegt in „<strong>/etc/mysql/</strong>“ und heißt „<strong>my.cnf</strong>“. Hier lassen sich nun die verschiedenen Laufzeitoptionen von MySQL einstellen. Zum Beispiel auf welchen Port und welchen Interface es laufen soll. Aber auch wieviel Puffer und Speicher MySQL verwenden soll. Die eigentlichen Daten von MySQL werden dann in „<strong>/var/lib/mysql</strong>“ gespeichert. Das Rechte-Management von MySQL wird über eine MySQL-Datenbank mit dem Namen „<strong>mysql</strong>“ gesteuert.<img title="Weiterlesen..." src="http://twitter.zero0ne.de/blog/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-3212"></span></p>
<h2>„my.cnf“</h2>
<p align="JUSTIFY">Die „<strong>my.cnf</strong>“ ist in mehrere Teil gegliedert. Jeder Teilbereich wird durch den Namen eckige Klammer abgegrenzt. Der wirklich wichtige Bereich ist „<strong>[mysqld]</strong>“. Dort stehen die Optionen welche für den MySQL-Prozess wichtig sind. Hier man eine gute Grundkonfiguration:</p>
<h2>Server Basics</h2>
<p align="JUSTIFY">Am Anfang sollte man immer Grundlegende Dinge festlegen. Wie z.B. den Buntzer, unter welchen MySQL laufen soll. Soll es an eine IP gebunden werden? Welcher Port verwendet werden soll. Wichtig für die Replikation ist dann auch immer eine eindeutige „<strong>server-id</strong>“. Oft ist es auch sinnvoll „<strong>Selects</strong>“ eine höhere Priorität zu geben. „<strong>skip-locking</strong>“ sollte auf jeden Fall aktiviert sein, da sonst die Performance massiv einbrechen kann. Ohne diese Option werden recht rechenintensive Methoden verwendet, Tabellen von der Festplatte zu lesen.</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>Grundconfiguration</th>
</tr>
<tr>
<td><code>user = mysql<br />
bind-address = 10.10.10.10<br />
port = 3306<br />
server-id = 40<br />
low_priority_updates = 1<br />
skip-locking</code></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h2>Server Verzeichnisse und Logdateien</h2>
<p align="JUSTIFY">Im weiteren Verlauf der Konfig werde meist noch mehrere Verzeichnisse und Log-Dateien definiert. Diese sind selbsterklärend. Einzig auf das „<strong>bin-log</strong>“ sollte man genau achten, da darüber die Replikation abläuft. „<strong>datadir</strong>“ ist, wo die Tabellen auf der Festplatte abgelegt werden.</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>weitere Grundkonifguration</th>
</tr>
<tr>
<td><code>socket = /var/run/mysqld/mysqld.sockpid-file = /var/run/mysqld/mysqld.pid<br />
log-bin = /var/log/mysql/master-blog<br />
log-error = /var/log/mysql/mysqld.err<br />
log-queries-not-using-indexes = /var/log/mysql/q-n-u-i.log<br />
log-slow-queries = /var/log/mysql/slow-q.log<br />
basedir = /usr<br />
datadir = /var/lib/mysql<br />
tmpdir = /tmp</code></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h2>Puffer und Caches</h2>
<p align="JUSTIFY">MySQL hat verschiedene Cache-Funktionen und Puffer. Manche sind nur auf Verbindungsebene aktive, wieder andere serverweit. Aber es geht auch, das man auf seiner Verbindung den Cache/Puffer neu definiert und so den Serverweiten überschreibt, für seine Verbindung. Cache und Puffer kann man nie pauschal festlegen. Sie müssen auf die jeweiligen Anwendungen angepasst werden, welche mit der Datenbank arbeiten sollen.</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>Detailkonfiguration</th>
</tr>
<tr>
<td><code>max_connections = 350open_files_limit = 3600<br />
long_query_time = 5<br />
thread_cache_size = 200<br />
query_cache_size = 96M<br />
query_cache_limit = 5M<br />
table_cache = 4200<br />
max_heap_table_size = 64M<br />
tmp_table_size = 32M<br />
read_buffer_size = 512k<br />
key_buffer_size = 4500M<br />
read_rnd_buffer_size = 8M<br />
join_buffer_size = 1M<br />
sort_buffer_size = 1M</code></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Bei „<strong>max_connections</strong>“ handelt es sich um die Anzahl der offenen Verbindungen, oder eingeloggten Benutzer wenn man so will.</p>
<p>„<strong>open_files_limit</strong>“ gibt an, wieviele Dateien der MySQL-Prozess gleichzeitig öffnen darf.</p>
<p>„<strong>long_query_time</strong>“ wird in Sekunden angegeben. Es definiert ab welcher laufzeit ein Query als „slow query“ eingestuft wird.</p>
<p>„<strong>thread_cache_size</strong>“ gibt die Anzahl der Threads an, welche zurückgehalten werden.</p>
<p>„<strong>query_cache_szie</strong>“ legt die Größe des Speichers für SELECT-Querys fest.</p>
<p>„<strong>query_cache_limit</strong>“ besagt, das Querys, welche größer als das Limit sind, nicht gecached werden sollen.</p>
<p>„<strong>table_cache</strong>“ gibt die Anzahl an Tabellen vor, welche im Speicher gehalten werden sollen.</p>
<p>„<strong>max_heap_table_size</strong>“ gibt an, wie groß eine Tabellen sein darf, welche temporär im RAM erzeugt wird.</p>
<p>„<strong>tmp_table_size</strong>“ legt die gesamt Größe des Tabellen-Cache fest.</p>
<p>„<strong>read_buffer_size</strong>“ ist für das sequenzielle auslesen von Tabellen zuständig. Werte größer als 512 KB bringen kaum mehr Performance.</p>
<p>„<strong>key_buffer_size</strong>“ legt die Größe des Speichers für die MyISAM Key-Files der Tabellen fest. Man sollte möglichst versuchen viel davon im Speicher zu haben.</p>
<p>„<strong>read_rnd_buffer_size</strong>“ ist für nicht-sequenzielle und parallele Zugriffe auf Tabellen zuständig.</p>
<p>„<strong>join_buffer_size</strong>“, wie der Name schon da, um bei „joins“ zwischen zu speichern.</p>
<p>„<strong>sort_buffer_size</strong>“, beim Sortieren ist dieser Puffer wichtig.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/08/mysqld-datenbankserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogparade: Wie 1.0 bist du?</title>
		<link>http://www.zero0ne.de/2011/08/blogparade-wie-1-0-bist-du/</link>
		<comments>http://www.zero0ne.de/2011/08/blogparade-wie-1-0-bist-du/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 11:21:05 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Nur so ...]]></category>
		<category><![CDATA[1.0]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[Blogparade]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3204</guid>
		<description><![CDATA[Über Stefan bin ich auf die Blogparade von unqualifiziert.net aufmerksam geworden. &#8220;Wie 1.0 bist du?&#8221; soll zeigen, ob man eher offliner oder onliner ist&#8230; auch ohne es voher ausgefüllt zu haben, weiss ich doch schon allein durch diesen eintrag hier, das ich onliner bin&#8230; bezeichne mich auch gern mal als Netcitizen&#8230; Also hier nun die Liste: [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Über <a title="Wie eins null bist du?" href="http://www.mysha.de/blog/blogparade-wie-1-0-bist-du" target="_blank">Stefan</a> bin ich auf die Blogparade von <a title="unqualifiziert.net" href="http://www.unqualifiziert.net/blogparade-wie-1-0-bist-du/" target="_blank">unqualifiziert.net</a> aufmerksam geworden. &#8220;Wie 1.0 bist du?&#8221; soll zeigen, ob man eher offliner oder onliner ist&#8230; auch ohne es voher ausgefüllt zu haben, weiss ich doch schon allein durch diesen eintrag hier, das ich onliner bin&#8230; bezeichne mich auch gern mal als Netcitizen&#8230; Also hier nun die Liste:<span id="more-3204"></span></p>
<h2>Blogparade: Wie 1.0 bist du?</h2>
<p>&nbsp;</p>
<p>CDs oder <strong>mp3-Player</strong>?</p>
<p>Festnetz oder <strong>Mobiltelefonie</strong>?</p>
<p>Handy oder <strong>Smartphone</strong>?</p>
<p>Notebook oder <strong>Tablet-PC</strong>?</p>
<p>Buch oder<strong> E-Book-Reader</strong>?</p>
<p><strong>Buch</strong> oder Hörbuch?</p>
<p>Brettspiel oder <strong>Spiel-Konsole</strong>?</p>
<p>Tagebuch oder <strong>Weblog</strong>?</p>
<p>Bargeld oder <strong>EC-Karte</strong>?</p>
<p>Poesiealbum oder <strong>Social Network</strong>?</p>
<p><strong>Kabel-/Satelliten-TV</strong> oder IpTV?</p>
<p>Videothek oder <strong>Online-Videothek</strong>?</p>
<p>Ladengeschäft oder <strong>Online-Shop</strong>?</p>
<p>Brief oder <strong>E-Mail</strong>?</p>
<p>Urlaubspostkarte oder <strong>MMS</strong>?</p>
<p>Straßenkarte oder <strong>Navigationsgerät</strong>?</p>
<p>Duden oder <strong>Online-Duden</strong>?</p>
<p>Pizza-Zettel mit Anruf oder <strong>Online-Pizza-Bestellung</strong>?</p>
<p>Briefmarke oder <strong>Online-Frankierung</strong>? (achtung Werbung: ePostbrief XD )</p>
<p>Papierrechnung oder <strong>Online-Rechnung</strong>?</p>
<p>Und zuletzt: mehr offline oder <strong>mehr online</strong>?</p>
<p>&nbsp;</p>
<p>Und nun zum spannenden Ergebnis: Mit 19 Punkten in Sachen 2.0 und 2 in 1.0 &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/08/blogparade-wie-1-0-bist-du/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fehlercodes und Fehlermeldungen von Mailservern</title>
		<link>http://www.zero0ne.de/2011/07/fehlercodes-und-fehlermeldungen-von-mailservern/</link>
		<comments>http://www.zero0ne.de/2011/07/fehlercodes-und-fehlermeldungen-von-mailservern/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 14:08:01 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[fehlermeldung]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3198</guid>
		<description><![CDATA[Ein Mailserver antwortet auf alle Anforderungen, die er von E-Mail Clients (also etwa von Outlook, Thunderbird oder Apple Mail) erhält, mit einem Antwortcode. Dieser Code besteht aus drei Ziffern. Die erste Ziffer teilt mit, ob der Server die Anforderung akzeptiert hat und ob er sie auch ausführen konnte. Es gibt fünf mögliche Werte: Mailserver hat [...]]]></description>
			<content:encoded><![CDATA[<p align="JUSTIFY">Ein Mailserver antwortet auf alle Anforderungen, die er von E-Mail Clients (also etwa von Outlook, Thunderbird oder Apple Mail) erhält, mit einem Antwortcode. Dieser Code besteht aus drei Ziffern. Die erste Ziffer teilt mit, ob der Server die Anforderung akzeptiert hat und ob er sie auch ausführen konnte. Es gibt fünf mögliche Werte:<span id="more-3198"></span></p>
<ol>
<li>
<p align="JUSTIFY">Mailserver hat die Anforderung akzeptiert, ist aber selbst noch nicht tätig geworden. Eine Bestätigungsmeldung ist erforderlich.</p>
</li>
<li>
<p align="JUSTIFY">Mailserver hat die Anforderung erfolgreich ohne Fehler ausgeführt.</p>
</li>
<li>
<p align="JUSTIFY">Mailserver hat die Anforderung verstanden, benötigt aber zur Verarbeitung weitere Informationen.</p>
</li>
<li>
<p align="JUSTIFY">Mailserver hat einen temporären Fehler festgestellt. Wenn die Anforderung ohne jegliche Änderung wiederholt wird, kann die Verarbeitung möglicherweise abgeschlossen werden. Versuchen Sie es erneut, vielleicht funktioniert&#8217;s!</p>
</li>
<li>
<p align="JUSTIFY">Mailserver hat einen fatalen Fehler festgestellt. Ihre Anforderung kann nicht verarbeitet werden.</p>
</li>
</ol>
<p align="JUSTIFY">Die zweite Zahl geht ins Detail. Es gibt sechs mögliche Werte:</p>
<ol start="0">
<li>
<p align="JUSTIFY">Syntax Fehler</p>
</li>
<li>
<p align="JUSTIFY">Antwortinformation</p>
</li>
<li>
<p align="JUSTIFY">Diese Zahl bezieht sich auf den Status der Verbindung</p>
</li>
<li>
<p align="JUSTIFY">Wird nicht benutzt</p>
</li>
<li>
<p align="JUSTIFY">Wird nicht benutzt</p>
</li>
<li>
<p align="JUSTIFY">Diese Zahl bezieht sich auf den Status des Mailservers</p>
</li>
</ol>
<p align="JUSTIFY">Die dritte Zahl geht noch stärker ins Detail als die zweite. Sie zeigt in feineren Stufen den Status des Mailtransfers. Die Kombination dieser drei Zahlen ergibt die detaillierte Liste der ESMTP Server Antwortcodes, wie sie im <a href="http://www.atvirtual.net/email/rfc821.txt">RFC 821</a> und später festgelegt wurden.</p>
<h3>Gängige Fehlercodes bei Mailservern</h3>
<table width="100%" cellspacing="0" cellpadding="3">
<colgroup>
<col width="33*" />
<col width="223*" /></colgroup>
<tbody>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>Fehlercode</strong></p>
</td>
<td width="87%">
<p align="LEFT"><strong>SMTP/ESMTP Fehlermeldungsbeschreibung</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>211</strong></p>
</td>
<td width="87%">System Status, oder Antwort System Hilfe</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>214</strong></p>
</td>
<td width="87%">Hilfe Nachricht<br />
(Information über die Verwendung des Empfängers oder die Bedeutung eines bestimmten Nicht-Standard Befehls. Diese Antwort ist nur für den menschlichen Benutzer von Vorteil)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>220</strong></p>
</td>
<td width="87%">Dienst bereit</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>221</strong></p>
</td>
<td width="87%">Dienst schließt Übertragungskanal</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>250</strong></p>
</td>
<td width="87%">Angeforderte Mail Aktion ok, abgeschlossen</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>251</strong></p>
</td>
<td width="87%">Benutzer nicht lokal, werde weiterleiten an [Weiterleitungspfad]</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>354</strong></p>
</td>
<td width="87%">Beginne Mail Eingabe; beende mit [CRLF].[CRLF]</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>421</strong></p>
</td>
<td width="87%">Dienst nicht bereit, schließe Übertragungskanal<br />
(Das kann eine Antwort auf jede beliebige Anforderung sein, wenn der Dienst weiß, dass er schließen muss)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>450</strong></p>
</td>
<td width="87%">Angeforderte Mail Aktion nicht ausgeführt: Mailbox nicht erreichbar<br />
(z.B., Mailbox aktiv)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>451</strong></p>
</td>
<td width="87%">Angeforderte Aktion abgebrochen: Lokaler Fehler in der Verarbeitung</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>452</strong></p>
</td>
<td width="87%">Angeforderte Aktion nicht ausgeführt: Nicht genügend Systemspeicher</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>500</strong></p>
</td>
<td width="87%">Syntax Fehler, Befehl nicht erkannt<br />
(Das schließt auch den Fehler einer zu langen Befehlszeile ein)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>501</strong></p>
</td>
<td width="87%">Syntax Fehler bei Parameter oder Argumenten</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>502</strong></p>
</td>
<td width="87%">Befehl nicht implementiert</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>503</strong></p>
</td>
<td width="87%">Unbrauchbare Befehlsabfolge</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>504</strong></p>
</td>
<td width="87%">Befehlsparameter nicht implementiert</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>550</strong></p>
</td>
<td width="87%">Angeforderte Aktion nicht ausgeführt: Mailbox unerreichbar<br />
(z.B.: Mailbox nicht gefunden, kein Zugang)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>551</strong></p>
</td>
<td width="87%">Benutzer nicht lokal; bitte [Weiterleitungspfad] versuchen</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>552</strong></p>
</td>
<td width="87%">Angeforderte Mail Aktion abgebrochen: Überschreitung der zugewiesenen Speichergröße</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>553</strong></p>
</td>
<td width="87%">Angeforderte Aktion nicht ausgeführt: Name der Mailbox nicht erlaubt<br />
(z.B.: Mailbox Syntax inkorrekt)</td>
</tr>
<tr valign="TOP">
<td width="13%">
<p align="CENTER"><strong>554</strong></p>
</td>
<td width="87%">Übertragung misslungen</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/fehlercodes-und-fehlermeldungen-von-mailservern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpamAssassin</title>
		<link>http://www.zero0ne.de/2011/07/spamassassin/</link>
		<comments>http://www.zero0ne.de/2011/07/spamassassin/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 12:40:00 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamassasin]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3193</guid>
		<description><![CDATA[SpamAssassin ist ein Filterprogramm zu Spam-Bekämpfung. Dabei Scannt es nicht nur die Header, wie z.B. Postfix, sondern die gesamte Mail. Es setzt dabei multiple Wörterbücher ein und ist selbst lernend und führt eigenständig Updates dieser Wörterbücher durch. Es wird der gesamte Body der Mail gescannt und gewertet. D.h. der Inhalt wird maschinell ausgewertet. Dies kann [...]]]></description>
			<content:encoded><![CDATA[<h3 align="JUSTIFY"><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;">SpamAssassin ist ein Filterprogramm zu Spam-Bekämpfung. Dabei Scannt es nicht nur die Header, wie z.B. Postfix, sondern die gesamte Mail. Es setzt dabei multiple Wörterbücher ein und ist selbst lernend und führt eigenständig Updates dieser Wörterbücher durch. Es wird der gesamte Body der Mail gescannt und gewertet. D.h. der Inhalt wird maschinell ausgewertet. Dies kann in einigen fällen Datenschutzrechtlich bedenklich sein. Beim Scannen wird dann auf Wortzusammenhänge und Anzahl von Links geachtet. Aber auch es werden auch noch wesentlich komplexere Algorithmen eingesetzt zur Vermeidung von sogenannten „false-positives“. Also fälschlicherweise als Spam erkannte Mails. Die Konfiguration von Spamassassin findet sich unter „/etc/spamassassin/“. Hier kann festgelegt werden, welcher Anti-Spamtechniken sich Spamassassin bedient. Standardmäßig ist dies <em>bayes</em>. In unseren Fall wird dann aber noch <em>pyzor</em> und <em>dcc</em> verwendet.</span></h3>
<p align="JUSTIFY">
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/spamassassin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CalmAV</title>
		<link>http://www.zero0ne.de/2011/07/calmav/</link>
		<comments>http://www.zero0ne.de/2011/07/calmav/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 12:38:32 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[viren]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3190</guid>
		<description><![CDATA[ClamAV ClamAV ist ein freier OpenSource Virenscanner. Er ist der de-facto Standard in Linux-Mailsystemen. Er wird auch über AMaViS angesteuert. Sollte ClamAV etwas verdächtiges finden, reportet er dies an AMaViS zurück, welches dann die Mail aus dem Verkehr zieht. ClamAV verfügt über einen automatischen Update-Mechanismus, sodass er selbst dafür sorgt, das seine Bibliotheken immer aktuell [...]]]></description>
			<content:encoded><![CDATA[<h3 align="JUSTIFY">ClamAV</h3>
<p align="JUSTIFY">ClamAV ist ein freier OpenSource Virenscanner. Er ist der de-facto Standard in Linux-Mailsystemen. Er wird auch über AMaViS angesteuert. Sollte ClamAV etwas verdächtiges finden, reportet er dies an AMaViS zurück, welches dann die Mail aus dem Verkehr zieht. ClamAV verfügt über einen automatischen Update-Mechanismus, sodass er selbst dafür sorgt, das seine Bibliotheken immer aktuell sind. Um ClamAV über AMaViS zu aktivieren, muss man in der AmaViS Konfiguration „<strong>15-content_filter_mode</strong>“ die beiden „<strong>@bypass</strong>“-Regeln aktivieren. Danach kann ClamAV über AmaViS angesprochen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/calmav/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMaViS (A Mail Virus Scanner)</title>
		<link>http://www.zero0ne.de/2011/07/amavis-a-mail-virus-scanner/</link>
		<comments>http://www.zero0ne.de/2011/07/amavis-a-mail-virus-scanner/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 12:36:54 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[spamassasin]]></category>
		<category><![CDATA[viren]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3181</guid>
		<description><![CDATA[AMaViS allgemein Ein weiteres Support-Programm außerhalb von Postfix ist AMaViS. Im eigentlichen steht AMaViS für A Mail Virus Scanner. Doch kann es mehr als nur Mails auf Viren zu prüfen. Mittlerweile ist es auch ein Spam und Maleware-Scanner. Dazu behilft sich AMaViS selbst wieder mit 2 weiteren Programmen. Dies ist einmal ClamAV, der OpenSource-Virenscanner und [...]]]></description>
			<content:encoded><![CDATA[<h3 align="JUSTIFY">AMaViS allgemein</h3>
<p align="JUSTIFY">Ein weiteres Support-Programm außerhalb von Postfix ist AMaViS. Im eigentlichen steht AMaViS für A Mail Virus Scanner. Doch kann es mehr als nur Mails auf Viren zu prüfen. Mittlerweile ist es auch ein Spam und Maleware-Scanner. Dazu behilft sich AMaViS selbst wieder mit 2 weiteren Programmen. Dies ist einmal ClamAV, der OpenSource-Virenscanner und als zweites wird Spamassassin zum scannen nach Spam verwendet.<span id="more-3181"></span></p>
<p align="JUSTIFY">AMaViS fungiert dabei selbst als Mini-Mailserver. Dieser läuft dann nur auf Localhost auf Port 10024. Postfix macht auch noch einen Port auf, und zwar Port 10025 nimm man dort üblicher Weise. Die beiden schicken sich dann die Mails über diese beiden Ports hin und her. Das funktioniert dann so: Postfix nimmt eine Mail an, führt seine bisherigen Checks durch, Greylistet evtl., besteht diese Mail die Test, wird sie an AMaViS weitergereicht, aber noch nicht endgültig angenommen. Dieser übergibt sie dann direkt an ClamAV, wo sie nach Viren durch-scannt wird. Werden Viren gefunden, wird Postfix angewiesen die Mail abzuweisen. Werden keine Viren gefunden wird dann auf Spam geprüft. Hierbei werden verschiedene Techniken benutzt, einmal wird der Text gegen eine Datenbank mit oft vorkommenden Spammeldungen geprüft, andererseits wird auch auf das vorkommen von Links und die Formatierung der Links geachtet. Das Ganze läuft in einen Scorering zusammen, was in den Header geschrieben wird. Liegt der Score zwischen 0 und 5.00 wird die Mail meist als kein Spam klassifiziert oder höchstens als verdächtig im Betreff getagt. Liegt er drüber, wird er meist entweder ins Quarantäne-Postfach umgelenkt oder besser gleich Postfix angewiesen die Mail abzulehnen. Wenn die Mail hier ohne Weiteres durchkommt, wird sie wieder an Postfix übergeben und weiterverarbeitet. AMaViS und Spamassassin kennen natürlich auch wieder White- und Blacklists. Um gewisse Domains von vorhnherein zu erlauben oder zu verbieten. Auch kann man in der AmaViS-Konfiguration in „<strong>/etc/amavis/local.cf</strong>“ und den danebenliegen Konfigurationsdateien das Verhalten noch anpassen. Eben solche Dinge wie, ob Mails abgelehnt oder in Quarantäne verschoben werden.</p>
<p align="JUSTIFY">AMaViS kann in der Konfiguration von Postfix auf zwei Arten aktiviert werden. Entweder über „<strong>content_filter</strong>“ oder über „<strong>smtpd-proxy</strong>“. Logisch gesehen machen die beiden Direktiven das selbe, nur technisch gesehen gibt es einige Unterschiede. Wir werden zu Anfang noch „<strong>content_filter</strong>“ verwenden. Dies ist die bekannte und getestet Lösung. Es ist jedoch geplant auf „<strong>smptd_proxy</strong>“ umzusteigen. Diese bietet technische gesehen einige Vorteile in der Abarbeitung der Mails.</p>
<p align="JUSTIFY">AMaViS wird nun also per <strong>content_filter</strong> eingebunden. Dies ist ein eigener Parameter und steht außerhalb der bis jetzt verwendeten <strong>smtpd_recipient_restrictions</strong>. In einer eigene Zeile wird einfach „<strong>content_filter = amavis:[127.0.0.1]:10024</strong> “ in der <strong>main.cf</strong> eingefügt. Nun muss aber noch zusätzlich in der <strong>master.cf</strong> ein weiterer Eintrag ganz am ende der Datei hinzugefügt werden, da es sonst nicht funktioniert. Denn man muss Postfix noch sagen, das es zu Port 10024, den AMaViS aufmacht, den korrespondierenden Port 10025 aufmachen soll.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/amavis-a-mail-virus-scanner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Courier IMAP/POP3 Server</title>
		<link>http://www.zero0ne.de/2011/07/courier-imap-pop3-server/</link>
		<comments>http://www.zero0ne.de/2011/07/courier-imap-pop3-server/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 12:15:46 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[imaps]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[pop3s]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3174</guid>
		<description><![CDATA[Courier allgemein Courier stellt im Mailserver-Konstrukt den Zugang für den Benutzer zu seinen Mails dar. Courier ist dabei auch wieder ein Multi-Server, da er 4 Services auf einmal stellt. Courier ist eine IMAP, IMAP-S, POP3 und POP3S Server. Wobei das S immer für Secure stehen soll, hießt eine SSL-verschlüsselte Verbindung genutzt wird. Was Courier an [...]]]></description>
			<content:encoded><![CDATA[<h3 align="JUSTIFY">Courier allgemein</h3>
<p align="JUSTIFY">Courier stellt im Mailserver-Konstrukt den Zugang für den Benutzer zu seinen Mails dar. Courier ist dabei auch wieder ein Multi-Server, da er 4 Services auf einmal stellt. Courier ist eine IMAP, IMAP-S, POP3 und POP3S Server. <span id="more-3174"></span>Wobei das S immer für Secure stehen soll, hießt eine SSL-verschlüsselte Verbindung genutzt wird. Was Courier an Standard Einstellungen mitbringt kann man eigentlich so weiter nutzen. Das einzige wobei man etwas nachjustieren muss ist der Wert für „<strong>MAXDAEMONS</strong>“ und „<strong>MAXPERIP</strong>“. Dies legt einerseits fest, wie viele Threads für den entsprechenden Server erstellt werden und andererseits wie oft man sich von der gleichen IP aus einloggen darf. Courier benutzt für die verschiedenen Protokolle die Standardports. D.h. für IMAP 143, für IMAPS 993, für POP3 110 und für POP3S 995. Diese lassen sich in den Konfigs von Courier aber auch ganz leicht anpassen.</p>
<h3>Courier und SSL</h3>
<p align="JUSTIFY">Was man weiterhin beachten sollte ist, das Courier IMAP und POP3 eigene SSL Zertifikate verwenden. Mann kann diese aber einfach gegen seine eintauschen. Muss dann aber auch wieder darauf achten das diese im PEM-Format vorliegen und auch das CA-Bundle eingebunden wird. Tut man dies nicht, werden die Benutzer beim abholen der Mails über gesicherte Verbindungen darauf hingewiesen, das man ein selbst unterschriebenes Zertifikat benutzt. Dies wird allgemein als unsicher erachtet, was aber nicht immer der Fall sein muss. Die Zertifikate liegen standardmäßig im selben Verzeichnis wie die Konfigurationsdateien. Man kann diese aber auch woanders ablegen, muss dann aber in der „<strong>IMAP-SSL</strong>“-Konfig den Pfad zu diesen korrigieren. Das CA-Bundle bindet man mit der Option „<strong>TLS_TRUSTCERTS</strong>“ ein. Gleiches gilt natürlich auch für POP3-SSL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/courier-imap-pop3-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>blog my life</title>
		<link>http://www.zero0ne.de/2011/07/blog-my-life/</link>
		<comments>http://www.zero0ne.de/2011/07/blog-my-life/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 14:13:32 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Neuigkeiten]]></category>
		<category><![CDATA[Nur so ...]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=3170</guid>
		<description><![CDATA[Habe nun neben dem Blog hier, noch einige weitere. Zwei schon länger, zwei erst seit gestern. Dieser blog ist eher für allgemeine Berichte, Tutorials und so. Dann habe ich noch eine offizielle Profilseite. Als Consultant braucht man dies ja immer. Quasi als Online-Visitenkarte und für die &#8220;offizielle&#8221; Email-Adresse. Monster-Film-Rezensionen und der Gleichen hab ich ja [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Habe nun neben dem Blog hier, noch einige weitere. Zwei schon länger, zwei erst seit gestern. Dieser blog ist eher für allgemeine Berichte, Tutorials und so. Dann habe ich noch eine offizielle Profilseite. Als Consultant braucht man dies ja immer. Quasi als Online-Visitenkarte und für die &#8220;offizielle&#8221; Email-Adresse. Monster-Film-Rezensionen und der Gleichen hab ich ja auch schon was länger ausgelagert. Passt ja eh nicht so ganz hier rein. Neu hinzugekommen ist nun ein &#8220;Twitter-Archive&#8221; und ein &#8220;Stuff-Archive&#8221;. Ins Twitter-Archive hab ich meine ganzen bisherigen Twitter-Tages-Zusammenfassungen ausgelagert. Erstmal 700 Beiträge weniger. Ins Stuff-Archive kommen Bilder, Links und Texte über welche ich so im Web stolpere. Mein privates tumblr oder soup.io. Weil was ist mit meinen ganzen Tweets oder Bildern wenn die Dienste mal nicht online sind oder für immer offline gehen? So hab ich alles auf meinen Server.</p>
<p> <span id="more-3170"></span></p>
<p><strong>Hauptseite:</strong></p>
<p><a title="zero0ne.de" href="http://www.zero0ne.de" target="_blank">www.zero0ne.de</a></p>
<p><strong>Profil:</strong></p>
<p><a title="RobertWaffen.de" href="http://www.RobertWaffen.de" target="_blank">www.RobertWaffen.de</a></p>
<p><strong>What if radioactive mutant vampire zombie robots from outerspace attack?!</strong></p>
<p><a title="What if radioactive mutant vampire zombie robots from outerspace attack?! " href="http://www.rmvzrfo.de" target="_blank">www.rmvzrfo.de</a></p>
<p><strong>Twitter-Archive</strong></p>
<p><a title="Twitter-Archive" href="http://twitter.zero0ne.de" target="_blank">twitter.zero0ne.de</a></p>
<p><strong>Stuff-Archive</strong></p>
<p><a title="Stuff Archive" href="http://stuff.zero0ne.de" target="_blank">stuff.zero0ne.de</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/blog-my-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deutsche Bahn 21th Century</title>
		<link>http://www.zero0ne.de/2011/07/deutsche-bahn-21th-century/</link>
		<comments>http://www.zero0ne.de/2011/07/deutsche-bahn-21th-century/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 10:12:20 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[On the Road]]></category>
		<category><![CDATA[bahn]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[Deutsche Bahn]]></category>
		<category><![CDATA[handy]]></category>
		<category><![CDATA[handy-ticket]]></category>
		<category><![CDATA[ticket]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2429</guid>
		<description><![CDATA[Die Deutsche Bahn scheint endlich im 21. Jahrhundert angekommen zu sein . Stelle man sich vor: man sitze in einem Park in Berlin. Man muss nun aber schnell nach Köln. Sucht sich mit der &#8220;DB Navigator&#8221;-App eine Verbindung raus. Diese kann man direkt aus der App buchen. Dazu brauch man nun ein Benutzerkonto bei bahn.de. Dort meldet man sich [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Die Deutsche Bahn scheint endlich im 21. Jahrhundert angekommen zu sein . Stelle man sich vor: man sitze in einem Park in Berlin. Man muss nun aber schnell nach Köln. Sucht sich mit der &#8220;DB Navigator&#8221;-App eine Verbindung raus. <span id="more-2429"></span>Diese kann man direkt aus der App buchen. Dazu brauch man nun ein Benutzerkonto bei bahn.de. Dort meldet man sich innerhalb seines Acounts am besten auch gleich für das Handy-Ticket an. Dies ist auch eine großartige Erfindung der Bahn! Kauf man dann sein Ticket als Handy-Ticket, bekommt man auf sein Smartphone eine MMS mit einem QR-Code. Dieser wird dann vom Schaffner gescannt. Mehr als diese MMS braucht man dann nicht mehr und kann sich mit seinen Gepäck direkt an Gleis bewegen.</p>
<p style="text-align: justify;">Keine Hektik mehr beim Ticketkauf. Keine unfreundliche/langsamen Mitarbeiter am Schalter (obwohl diese auch ihre Vorzüge haben. z.b. Angebote raussuchen). Kein Stress mit dem Kartenautomaten der das Geld/die Karte nicht annehmen will. Kein Stress mehr mit dem Drucker, welcher das online-ticket nicht ausdrucken mag!</p>
<p style="text-align: justify;">Alles &#8220;on the go&#8221; mit dem iPhone! (od. Ähnlichem Smartphone)</p>
<p style="text-align: justify;">Einziges Problem jetzt: der Akku geht vor der Kontrolle in die Brüche! In der Sache sind analoge Tickets auf toten Bäumen echt vorteilhaft!</p>
<p style="text-align: justify;">Lustig: wie verdutzt so mancher Schaffner ist. Er ist es gewohnt irgendwo mit seiner Kontrollzange reinzuknipsen&#8230; Doch nun geht das nicht mehr. Man sollte ihn auch daran hindern es zu versuchen ;-)</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/deutsche-bahn-21th-century/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X Japan &#8211; 04.07.2011 &#8211; Berlin</title>
		<link>http://www.zero0ne.de/2011/07/x-japan-04-07-2011-berlin/</link>
		<comments>http://www.zero0ne.de/2011/07/x-japan-04-07-2011-berlin/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 22:16:00 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Neuigkeiten]]></category>
		<category><![CDATA[On the Road]]></category>
		<category><![CDATA["columbia halle"]]></category>
		<category><![CDATA[berlin]]></category>
		<category><![CDATA[columbiahalle]]></category>
		<category><![CDATA[japan]]></category>
		<category><![CDATA[x]]></category>
		<category><![CDATA[x japan]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2431</guid>
		<description><![CDATA[Nach Jahren des Wartens war es dann letzten Montag (04.07.2011) soweit: X Japan traten in Deutschland auf! Vor Jahren hatte ich mir immer schon vorgestellt wie toll es sein musste diese einmal live zu sehen. Doch hatten sie sich zu dieser Zeit schon getrennt gehabt. 1998, ein Jahr bevor ich auf sie aufmerksam wurde, hatten [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Nach Jahren des Wartens war es dann letzten Montag (04.07.2011) soweit: X Japan traten in Deutschland auf! Vor Jahren hatte ich mir immer schon vorgestellt wie toll es sein musste diese einmal live zu sehen. Doch hatten sie sich zu dieser Zeit schon getrennt gehabt. 1998, ein Jahr bevor ich auf sie aufmerksam wurde, hatten diese sich aufgelöst. Und als wäre das schon nicht schlimm genug gewesen verstarb hide (einer der beiden Gitarristen) auf sehr unglückliche und tragische Weise. Er ist unersetzbar und wird von der Band selbst bis heute als Mitglied aufgeführt und auf jeder Tour während der Eröffnung mit genannt. Als dann 2007 die Wiedervereinigung bekannt wurde war meine Freude kaum zu bremsen. Es würde neue Lieder geben und auch sehr bestimmt eine neue Tour. Diese lies leider auf sich warten. Erst wurde wieder nur der asiatische Raum betourt und letztes Jahr dann die Staaten. Kurz nach Karneval surfte ich zufällig auf einen Ticket-Portal, dort viel mir an diesem Morgen ein rotes X umschlungen von einem Drachen ins Auge. Ich konnte es kaum fassen. Dachte mir, das kann doch nicht war sein. Doch das war es! X Japan hatten sich für Deutschland angekündigt. Darauf mussten meine Kollegen an diesem Tag ein wenig leiden. Eine meiner besten Freundinnen warf es aber total aus dem Alltag. Nicht aus Freude, sondern weil an diesem angekündigten Montag schon ihr Auslandsurlaub begonnen hätte. Mit ein wenig Recherche (Züge/Flieger usw.) und Unterstützung eines Freundes haben wir sie aber dann doch noch zum Konzert mitbekommen. Ihren Urlaub leicht verschoben, ihr leben wieder aufgehellt.<span id="more-2431"></span></p>
<p style="text-align: justify;"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2617.jpg"><img class="alignright size-thumbnail wp-image-2443" title="X Japan" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2617-150x150.jpg" alt="" width="150" height="150" /></a>Das ist nun wieder eine ganze Weile her. Letzten Montag war es dann wie gesagt so weit. Am Freitag davor reisten wir nach Paderborn, um noch einen weiteren Freund einzusammeln. Samstag sahen wir dann schon mal zur Einstimmung verschiedene Tour-Videos aus vergangenen Tagen. Die „Blue Blood“-Tour, die „Dahlia“-Tour, den „hide memorial summit“ und abschließend die „Last Live“-Aufzeichnung. Sonntag ging’s dann mit X Japan in den Ohren auf nach Berlin. Dort angekommen sammelten wir noch einen weiteren Freund ein. Somit waren wir nun zu viert und komplett. Also auf ins Hostel&#8230; Nach der Zugfahrt waren wir echt kaputt und deshalb gab’s nur noch was zu essen und ein wenig Musik und Kartenspielen. Man will sich ja nicht schon vor dem Konzert zu sehr verausgaben. Die Nacht war dann doch eher unruhig. Ob nun wegen der Aufregung oder wegen des Lärmes auf der Straße. Oder auch des Gewitters&#8230;</p>
<p style="text-align: justify;"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2587.jpg"><img class="size-thumbnail wp-image-2440 alignleft" title="X Japan - Einlass" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2587-150x150.jpg" alt="" width="150" height="150" /></a>Montag, einer der wenigen Momente im Leben wo man sich auf einen Montag freut.! Leider sehr verregnet. Aber es sollte ja ein Hallen-Konzert werden. Davor waren wir noch mal im nahe gelegenen &#8220;Neo Tokyo&#8221;, wo wir auch schon die ersten anderen Fans trafen. Abends dann mit der U-Bahn auf zur Columbia Halle! Dort warteten auch schon sehr viele auf Einlass. Es kamen immer noch mehr, amn konnte aber auch sehen, das einige schon länger hier campiert hatten. Der Einlass war dann pünktlich um 19:00 Uhr. Schnell und ohne Probleme waren auch schon die ersten drin. Gegen 19:25 waren dann auch schon alle in der Halle.Das ging ich echt flott! Hier begann dann erst mal der Sturm auf den T-Shirt-Stand. Dieser hielt der Masse an Fans aber sehr gut stand, hatte genug für alle.<br />
<a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2593.jpg"><img class="alignright size-thumbnail wp-image-2441" title="Yoshiki" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2593-150x150.jpg" alt="" width="150" height="150" /></a>Dann, kurz nach 20:00 Uhr, ging es los. Die Band wurde mit einem neuen Intro angekündigt und kam nach und nach auf die Bühne. Laut umjubelt ging es auch gleich mit dem neuen Song &#8220;Jade&#8221; los. Darauf folgten Klassiker wie &#8220;Rusty Nail&#8221;, &#8220;Silent Jealousy&#8221; oder &#8220;Kurenai&#8221; (in der englischen wie in der japanischen Version). Zwischen durch wurde immer wieder unterbrochen um das ein oder andere Solo zu spielen. Yoshiki und Sugizo hatten so die Bühne jeweils oder zusammen für sich allein. Sugizo ist der Band als „Aushilfe“ für hide beigetreten. Hide werde nicht ausgetauscht oder ersetzt, Sugizo vertrete ihn nur. Was weiterhin aber in der Setlist nicht fehlen durfte war &#8220;X&#8221; mit der Aufforderung an das Publikum immer wieder &#8220;X&#8221; zu schreien&#8230; &#8220;We are&#8230;?!?&#8221; &#8211; &#8220;X!!!&#8221; &#8230; „You are&#8230;.?!?“ – „_X!!!“. Dies ist eigentlich immer Toshi’s Part, aber Yoshiki schnappte sich auch immer wieder das Micro und schrie so laut er konnte &#8220;We are?!?!&#8221;. Auch sehr Genial war &#8220;Endless Rain&#8221;, wo das Publikum fehlerfrei und lautstark mitsang. X Japan überlies dann auch lange das Singen allein dem Publikum und zog den Song so in die länge. Was aber echt super war! Abgeschlossen wurde das Konzert mit &#8220;Art of Life&#8221;. Yoshiki bedankte sich im <a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2599.jpg"><img class="alignleft size-thumbnail wp-image-2445" title="Sugizo" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/07/CIMG2599-150x150.jpg" alt="" width="150" height="150" /></a>Namen von X Japan bei allen Fans, sprach über hide, dessen Tod und die Trennung der Band. Er meinte der wahre Grund für die Wiedervereinigung waren einzig allein die Fans. Der Satz des Abends war aber als, Yoshiki sagte das sie zum ersten mal Currywurst gegessen hatten und es super gewesen sei : &#8220;X Japan will Return for Curry Wurst!!!!!&#8221; Dann wurde die Band frenetisch verabschiedet, diese macht auch noch von der Bühne aus Bilder von sich und dem Publikum, verbeugte sich und räumte die Bühne.</p>
<p style="text-align: justify;">Alles in allem war es wirklich ein super Konzert! Man kann es aber nicht mit den Mega-Shows aus Japan vergleichen. Dort sind sie gewohnt nicht vor weniger als 10.000 Menschen aufzutreten. In Japan schaffen sie es auch ein 140.000 Personen Stadion zu füllen – an drei Tagen am Stück! Hier in Berlin waren es gerade einmal 3.600! Und dabei wurde auch hier schon in eine größere Location umgesiedelt. Man kann also sagen das dies eher eine Club Tour für X Japan war ;) .</p>
<p style="text-align: justify;">Einzig negativ aufgefallen war, das ab ungefähr der Mitte des Konzerts der Sound sehr blechern und verzerrt wurde. Auch war Toshis Stimme viel schlechter zu hören und man hatte das Gefühl Sugizo&#8217;s Gitarre überstimmte alles. Irgendwer hatte sich da wohl an den Reglern vertan.</p>
<p style="text-align: justify;">Es war aber trotzdem echt super X Japan nach so langer Zeit endlich einmal live sehen zu können. Es wurde eine super Show abgeliefert und auch sehr gut mit dem Publikum interagiert. Ich freue mich darauf, sie hoffentlich bald noch einmal sehen zu können!</p>
<p style="text-align: justify;">Hier die komplette Setlist (von <a title="X Japan Berlin Setlist" href="http://www.xplosion-online.com/index.php/de/news/x-japan-news/329-x-japan-in-berlin-live-updates" target="_blank">X-Plosion-Online.com</a> )</p>
<blockquote><p>01) Intro<br />
02) Jade<br />
03) Rusty Nail<br />
04) Silent Jealousy<br />
05) Drain<br />
06) SUGIZO Violin Solo<br />
07) Kurenai (english &amp; japanese Version)<br />
08) Born To Be Free<br />
09) YOSHIKI drums &amp; piano solo<br />
10) I.V.<br />
11) X<br />
&#8212; Break<br />
12) Forever Love (Short Version)<br />
13) Endless Rain<br />
14) Art of Life (started from piano solo)</p></blockquote>
<p>Hier dann noch zwei Videos vom Konzert:</p>
<p>Ausschnitt &#8211; Rusty Nail</p>
<p><object width="425" height="349" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/_dfTcAPLncs?version=3&amp;hl=de_DE" /><param name="allowfullscreen" value="true" /><embed width="425" height="349" type="application/x-shockwave-flash" src="http://www.youtube.com/v/_dfTcAPLncs?version=3&amp;hl=de_DE" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<p>Abschied von X Japan</p>
<p><object width="560" height="349" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/_Oo8y4u8_3A?version=3&amp;hl=de_DE&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed width="560" height="349" type="application/x-shockwave-flash" src="http://www.youtube.com/v/_Oo8y4u8_3A?version=3&amp;hl=de_DE&amp;hd=1" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/07/x-japan-04-07-2011-berlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X Japan Live in Berlin</title>
		<link>http://www.zero0ne.de/2011/06/x-japan-live-in-berlin/</link>
		<comments>http://www.zero0ne.de/2011/06/x-japan-live-in-berlin/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 21:07:29 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[On the Road]]></category>
		<category><![CDATA[japan]]></category>
		<category><![CDATA[x]]></category>
		<category><![CDATA[x japan]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2416</guid>
		<description><![CDATA[Am kommenden Montag ist es dann endlich soweit! Nach Jahren des Wartens und schon aufgegebenen Hoffnungen, ist nun endlich, endlich doch soweit: X Japan kommen nach Deutschland. Schien die Trennung noch so endgültig, ist sie nun aber doch überwunden. Zwar nicht in Originalbesetzung, da hide so unglücklich von uns geschieden ist. Aber mit Sugizo hat er eine gute Vertretung [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Am kommenden Montag ist es dann endlich soweit! Nach Jahren des Wartens und schon aufgegebenen Hoffnungen, ist nun endlich, endlich doch soweit: X Japan kommen nach Deutschland. Schien die Trennung noch so endgültig, ist sie nun aber doch überwunden. Zwar nicht in Originalbesetzung, da hide so unglücklich von uns geschieden ist. Aber mit Sugizo hat er eine gute Vertretung gefunden. Obgleich ihn niemand ersetzen kann. Deshalb wird er auch noch immer offiziell als Bandmitglied aufgezählt.<span id="more-2416"></span><br />
Seit der Wiedervereinigung 2007 warte ich darauf das sie nach Deutschland kommen. Ich freu mich schon sowas von total drauf. Freitag Abend geht&#8217;s schon mal nach Paderborn, dort bleiben wir dann bis Sonntag und fahren dann nach Berlin rüber. Und am 04.07.2011 um 20:00 wird es dann endlich soweit sein. Ich bin schon echt gespannt auf die Bühnenperformance! Was man so aus den Videos kennt ist ja schon bombastisch. Doch immer aus sehr viel grösseren Locations. Dagegen wirkt die berliner Columbiahalle recht klein mit ihren 3.500 Personen. Es wird für X Japan also eher ein kleines &#8220;Club&#8221; Konzert ;)</p>
<p style="text-align: justify;">Sehe mir schon den ganzen Abend verschiedenen Live Aufzeichnungen an um mich ein wenig einzustimmen. ( Meine Lieblingslieder &#8211;  das komplette Blue Blood Album )</p>
<p style="text-align: justify;">Hier mal ein Aufzeichnung von &#8220;X&#8221; aus Yokohama:</p>
<p style="text-align: justify;"><object width="560" height="349"><param name="movie" value="http://www.youtube.com/v/d4ImEJsuAHc?version=3&amp;hl=de_DE&amp;hd=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed type="application/x-shockwave-flash" width="560" height="349" src="http://www.youtube.com/v/d4ImEJsuAHc?version=3&amp;hl=de_DE&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/x-japan-live-in-berlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>aktuelle Artikel</title>
		<link>http://www.zero0ne.de/2011/06/aktuelle-artikel/</link>
		<comments>http://www.zero0ne.de/2011/06/aktuelle-artikel/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 14:29:44 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Neuigkeiten]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2412</guid>
		<description><![CDATA[Wer sich über die Anzahl, Länge und vllt sogar Qualität der letzten Veröffentlichungen wunder: dies sind zumeist Themen aus einer von mir erstellten Doku. Da ich Ende letzten Jahres die Firma wechselte, versuchte ich so viel Wissen wie möglich in ein Dokument zu pressen. Rausgekommen ist dabei ein 200+ Seiten starkes Dokument. Jetzt dachte ich mir, es wäre doch [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Wer sich über die Anzahl, Länge und vllt sogar Qualität der letzten Veröffentlichungen wunder: dies sind zumeist Themen aus einer von mir erstellten Doku. Da ich Ende letzten Jahres die Firma wechselte, versuchte ich so viel Wissen wie möglich in ein Dokument zu pressen. Rausgekommen ist dabei ein 200+ Seiten starkes Dokument. Jetzt dachte ich mir, es wäre doch schade, wenn nur sowenig Menschen davon profitieren könnten. Also veröffentliche ich jetzt ab und zu ausgewählte Teilbereiche der Doku. Summa summarum sind das  gesammelte Werke aus den letzten 3 Jahren zu Themen wie MySQL, Apache2, Tomcat/Java, vmware, Asterisk und Linux allgemein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/aktuelle-artikel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mit Postfix Mails pro Domain filtern</title>
		<link>http://www.zero0ne.de/2011/06/mit-postfix-mails-pro-domain-filtern/</link>
		<comments>http://www.zero0ne.de/2011/06/mit-postfix-mails-pro-domain-filtern/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 14:09:26 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2409</guid>
		<description><![CDATA[Will man nicht alles was rein kommt filtern, sondern nur bestimmte Domains, so muss man sein „main.cfg“ auf folgende Weise anpassen. Zu erst muss man dann den Eintrag für „amavis“ raus nehmen. Also die Zeile mit „content_filter=“ und soweit vorhanden „receive_override_options = no_address_mappings“. Somit würde jetzt keine Mail mehr an AMaViS weitergegeben werden. Um nun [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Will man nicht alles was rein kommt filtern, sondern nur bestimmte Domains, so muss man sein „<strong>main.cfg</strong>“ auf folgende Weise anpassen. Zu erst muss man dann den Eintrag für „<strong>amavis</strong>“ raus nehmen. Also die Zeile mit „<strong>content_filter=</strong>“ und soweit vorhanden „<strong>receive_override_options = no_address_mappings</strong>“. Somit würde jetzt keine Mail mehr an AMaViS weitergegeben werden. Um nun pro Domain zu filtern fügt man den „<strong>smtpd_recipient_restrictions</strong>“ zwei Regeln hinzu. Dies wären „<strong>check_recipient_access</strong>“ für eingehende Mails und „<strong>check_sender_access</strong>“ für ausgehende Mails. Als Parameter haben diese Regeln jeweils eine gehashte Datei mit einer Liste von Domains. Zum Beispiel: „<strong>hash:/etc/postfix/filter_recipient_domains</strong>“ für eingehende Mails. Der Aufbau dieser Filterlisten sieht so aus: „<strong>example.com  FILTER amavis:[127.0.0.1]:10024</strong>“. Eine Filterliste ist eine simple Textdatei, welche dann von Postfix gehasht wird. Gehasht wird mit „<strong>postmap dateiname“</strong>. Damit werden dann Mails, welche für „<strong>example.com</strong>“ hereinkommen an AMaViS weitergegeben. Will man auch ausgehende Mails überprüfen, fügt man den selben Text in „<strong>/etc/postfix/filter_sender_domains</strong>“ hinzu.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/mit-postfix-mails-pro-domain-filtern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix SMTP Server</title>
		<link>http://www.zero0ne.de/2011/06/postfix-smtp-server/</link>
		<comments>http://www.zero0ne.de/2011/06/postfix-smtp-server/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 14:01:25 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[mailserver]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2402</guid>
		<description><![CDATA[Ein SMTP-Server nimmt Mails an und versendet diese. Er ist das eigentliche Herz des Email-Server-Komplex. Dabei heißt annehmen nur, die Mails ablegen. Sie dem Benutzer zugänglich machen, dafür ist ein anderer Server zuständig. Postfix basiert im wesentlichen nur auf 2 Konfig-Dateien. Das ist einmal die „master.cfg“ und einmal die „main.cfg“. Hier wird definiert wie viele [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Ein SMTP-Server nimmt Mails an und versendet diese. Er ist das eigentliche Herz des Email-Server-Komplex. Dabei heißt annehmen nur, die Mails ablegen. Sie dem Benutzer zugänglich machen, dafür ist ein anderer Server zuständig. Postfix basiert im wesentlichen nur auf 2 Konfig-Dateien. Das ist einmal die „<strong>master.cfg</strong>“ und einmal die „<strong>main.cfg</strong>“. Hier wird definiert wie viele Threads laufen, auf welchen Ports er lauscht und wie eingehende und ausgehende Mails geprüft werden.<span id="more-2402"></span></p>
<h3 style="text-align: justify;"><span style="font-size: 15px; font-weight: bold;">master.cf</span></h3>
<p style="text-align: justify;">In der „<strong>master.cf</strong>“ kann man eigentlich das meiste so lassen wie es ist. Selten besteht bedarf hier etwas zu ändern. Definiert sind hier alle Subprozesse von Postfix und deren Optionen. Z.B. kann man hier einen weiteren SMTP-Port definieren um die Übergabe an Amavis zu regeln. Auch kann man hier schon Checks durchführen, bevor die Mail überhaupt richtig angenommen wurde. Dies sollte man in der Regel aber der „<strong>main.cf</strong>“ überlassen.</p>
<h3 style="text-align: justify;"><span style="font-size: 15px; font-weight: bold;">main.cf</span></h3>
<p style="text-align: justify;">Die „<strong>main.cf</strong>“ definiert wirklich alles weitere, was über die Helfershelfer und die Ports hinausgeht. Unter anderen z.B. Wie sich der Server nennt, auf welche Domains er achten soll, welche Annahmechecks durchgeführt werden, verschiedene Limits und wo die Mailboxen liegen. Mit zusätzlichen Modulen kann man die Mailboxen auch über MySQL definieren. dazu bedarf es dann noch einiger Helfer-Konfigurationen. Diese sind aber selbsterklärend, da in ihnen nur eine MySQL-Verbindung und ein SELECT steht. Neben den ganzen Laufzeit- und Domaineinstellungen sind hier aber die Annahmechecks am wichtigsten. Es gibt verschiedene Level von „<strong>restrictions</strong>“  in denen man filtern kann. Am meisten Sinn macht aber eigentlich nur „<strong>smtpd_recipient_restrictions</strong>“.</p>
<p style="text-align: justify;"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/06/adress-valedierung.png"><img class="aligncenter size-full wp-image-2403" title="adress-valedierung" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/06/adress-valedierung.png" alt="" width="456" height="376" /></a></p>
<p style="text-align: justify;">Hier ein Beispiel wie die „<strong>restriction</strong>“ aussehen könnte:</p>
<p style="padding-left: 30px;"><code> smtpd_recipient_restrictions =<br />
#       Keine unsauberen Mails annehmen<br />
reject_non_fqdn_recipient,<br />
reject_unknown_recipient_domain,<br />
#       eigene saeuberung der adresse<br />
check_recipient_mx_access cidr:/etc/postfix/mx_access,<br />
check_recipient_access pcre:/etc/postfix/recipient_checks.pcre,<br />
check_helo_access hash:/etc/postfix/helo_blacklist,<br />
#       Eiegne Nutzer erlauben<br />
permit_sasl_authenticated,<br />
permit_mynetworks,<br />
#       SPAMSCHUTZ RBLs<br />
reject_rbl_client zen.spamhaus.org,<br />
reject_rbl_client ix.dnsbl.manitu.net,<br />
reject_rbl_client bl.spamcop.net,<br />
reject_rbl_client dnsbl.njabl.org,<br />
#       relay-empfaenger<br />
reject_unverified_recipient,<br />
#       backup MX<br />
permit_mx_backup,<br />
reject_unauth_destination,<br />
permit</code></p>
<p style="text-align: justify;"><strong>Von oben nach unten erklärt:</strong></p>
<p style="text-align: justify;">Am Anfang wir geprüft ob der Absender eine Voll qualifizierte Domain-Adresse hat. Anschließend wird geprüft ob die Domain bekannt (erreichbar) ist. Mit MX-Access wird geprüft ob der Absender aus einen Gültigen IP-Netz kommt. Hierauf wird dann geprüft, ob die Mail vom Aufbau her stimmt, also z.B. ob genau ein <strong>„@“</strong> darin enthalten ist. Mit der Regel „<strong>check_helo_access</strong>“ wird überprüft ob jemand versucht mit der IP des Servers aber einer anderen, nicht bekannte Domain, Mail einzuliefern. Anschließend erlaubt man das per SASL authentifizierte Benutzer Kontakt zum Server aufnehmen dürfen. Weiterhin werden auch die eigenen IPs erlaubt, sodass man sich nicht selbst aussperrt. Danach wird mit „<strong>reject_rbl_*</strong>“ verschiedenen „<strong>DNS Black Lists</strong>“ abgefragt, ob der einliefernde Mailserver nicht schon für Spam bekannt ist. Anschließend werden Mails abgewiesen, welche einen unbekannten Empfänger haben. Letztendlich wird noch erlaubt das ein Backup-MX erlaubt. Es wird dann noch verboten, das an Adressen versendet wird, welche nicht erlaubt sind oder nicht existieren. Abschließen wird noch alles erlaubt was bis jetzt nicht verboten ist.</p>
<h3 style="text-align: justify;">RBL im Detail</h3>
<p style="text-align: justify;"><a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/06/anti-span-dns-listen.png"><img class="aligncenter size-full wp-image-2404" title="anti-span-dns-listen" src="http://www.zero0ne.de/blog/wp-content/uploads/2011/06/anti-span-dns-listen.png" alt="" width="456" height="374" /></a></p>
<p style="text-align: justify;">Auszug aus der Wikipedia (http://de.wikipedia.org/wiki/Realtime_Blackhole_List, 13.10.2009):</p>
<blockquote><p>Als Realtime Blackhole List (RBL) oder DNS-based Blackhole List (DNSBL) werden in Echtzeit (realtime) abfragbare Schwarze Listen bezeichnet, die verwendet werden, um E-Mail zweifelhafter Herkunft als Spam zu klassifizieren. In den meisten RBLs werden IP-Adressen von Rechnern gelistet, von denen in der Vergangenheit Spam versendet wurde – einige Listen enthalten auch Quellen von Computerviren und anderer Malware. Heute handelt es sich bei diesen Rechnern meist um trojanisierte PCs oder seltener offene Mail-Relays, die von Spammern missbraucht wurden. Diese Listen können Mailserver oder Spam-Erkennungssoftware (z. B. Spamassassin) beim Eingang einer Mail nahezu in Echtzeit über das DNS-Protokoll auswerten und bei positivem Ergebnis die Annahme der Mail verweigern, die Annahme der Mail verzögern (Teergrube, Greylisting) oder die Mail so markieren, dass sie ohne großen Aufwand vom Empfänger gefiltert werden kann.</p></blockquote>
<p style="text-align: justify;">Es werden die Listen von Spamhaus.org, NiXSpam (Liste der iX), SpamCop.net und NJABL.org empfohlen. Diese haben sich in der Vergangenheit als sehr zuverlässig erwiesen und einen geringen Anteil an False-Positives.</p>
<p style="text-align: justify;"><span style="font-size: 15px; font-weight: bold;">postconf</span></p>
<p style="text-align: justify;">Will man sich die Konfig welche gerade geladen ist noch einmal ansehen, kann man dazu das Kommando „<strong>postconf</strong>“ nehmen. Mit „<strong>postconf -d</strong>“ kann man sich alle Defaulteinstellungen anzeigen lassen. Dies gibt sehr viel Output, da wirklich fast jede Variable ausgegeben wird. Übersichtlicher wird das ganze wenn man „<strong>postconf -n</strong>“, welche Variablen anzeigt, welche nicht defaultmäßig belegt sind. Also verändert wurden. Neben dem Anzeigen der Konfigs, kann man mit postconf auch Variablen setzen. Dazu gibt man „<strong>postconf -e &#8216;PARAMETER=WERT&#8217;</strong> “.</p>
<h3 style="text-align: justify;">postqueue</h3>
<p style="text-align: justify;">Mit dem Kommando „<strong>postqueue</strong>“ kann man sich die Warteschlange des Servers ansehen. Hier liegen Mails die noch nicht versendet wurden, oder zurück kamen und auf einen erneuten Zustellversuch warten. Dabei kann man sich die Queue ansehen und auch einen erneuten Zustellversuchen veranlassen. Anzeigen kann man sich die Queue mit „<strong>postqueue -p</strong>“. Dabei wird dann angezeigt, welche ID die Mail hat. Dies ist wichtig wenn man in Logdateien danach sucht. Weiterhin wird auch angezeigt, welche Größe die Mail hat, wann sie ursprünglich eintraf und von wem an wen sie gesendet wurde. Hängt man den noch ein „<strong>-v</strong>“ an, bekommt man noch einige Debug-Meldungen ausgegeben. Gibt man mehr V&#8217;s an, werden noch mehr Ausgaben produziert. Mit „<strong>postconf -f</strong>“ veranlasst man Postfix dazu, alle Mails in der Queue noch mal versuchen zu versenden. Mit „<strong>postqueue -i ID</strong>“ veranlasst man Postfix genau die Mail mit der übergebenen ID nochmals zuzustellen. Weiterhin kann man dann auch noch mit „<strong>postqueue -s Domain</strong>“ den erneuten Versandt aller Mails dieser Domain zu veranlassen. Was postqueue nicht kann, ist das löschen einer Mail aus der Queue.</p>
<h3 style="text-align: justify;">postsuper</h3>
<p style="text-align: justify;">Da postqueue keine Mails löschen kann, nimmt man „<strong>postsuper</strong>“. Dieses ist zur Queue-Steuerung da. Man kann Queue-Mails löschen, in eine Queue stecken oder sie auch wieder herausholen. Will man also eine Mail aus der Queue entfernen gibt man „<strong>postsuper -d ID</strong>“ an. Will man die gesamte Queue löschen nimmt man „<strong>postsuper -d ALL</strong>“. Wobei darauf zu achten ist, das das „<strong>ALL</strong>“ auch wirklich groß geschrieben wird, da es sonst nicht klappt. Hinter dem ALL kann man auch noch eine Queue angeben. Muss man aber nicht. Man kann auch eine Mail auf „<strong>on Hold</strong>“ setzten. das heißt sie temporär stoppen. Das tut man indem man „<strong>postsuper -h ID</strong>“ eingibt. Auch hier trifft wieder das mit ALL und der optionalen Queue Angabe zu. Um die Mail wieder weiterzubearbeiten holt man sie mit „<strong>postsuper -H ID</strong>“ wieder ins aktive System.</p>
<p style="text-align: justify;"><span style="font-size: 15px; font-weight: bold;">Das Postfix-Log</span></p>
<p style="text-align: justify;">Postfix schreibt im normal Fall unter „<strong>/var/log/</strong>“ seine Log-Dateien. Hierbei schreibt es immer 4 Logs parallel. Einmal all-umfassend „<strong>mail.log</strong>“. Hier steht alles drin was Postfix und seine Helfershelfer so von sich geben. Dann gibt es noch die drei Dateien „<strong>mail.info</strong>“ , „<strong>mail.warn</strong>“ und „<strong>mail.err</strong>“. Hier stehen dann entsprechend der Namen jeweils nur die Logs vom Level Info, Warning und Error drin. Die Logs werden dabei immer ungefähr  10-14 Tage in 8 Versionen vorgehalten.</p>
<h3 style="text-align: justify;">pflogsum</h3>
<p style="text-align: justify;">„<strong>pflogsum</strong>“ erstellt aus dem Logfile von Postfix eine Zusammenfassung. Wie viele Mails prozesst wurden, wie viele abgelehnt und geblockt. Welche SMTP-Fehler auftraten. Top-Senden und Top-Empfänger. Wie die Verteilung der Mails über den Tag hinweg waren und noch andere statistische Werte. Damit kann man den Mailserver ein wenig im blick behalten und frühzeitig Fehler erkennen. Ein aufruf von „<strong>pflogsum</strong>“ für normaler Weise zur Ausgabe in der CLI. Man kann das Ganze aber auch in eine Mail umleiten und dann per Cronjob einmal am Tag versenden lassen.</p>
<p style="padding-left: 30px;"><code>pflogsumm --rej_add_from --problems_first --smtpd_stats -h 15 -u 15 --no_reject_detail --no_smtpd_warnings -d today /var/log/mail.log | mail -s "Mailserver Report -  `date`" monitoring@domain.de</code></p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/postfix-smtp-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufbau eines Linux Mailserver</title>
		<link>http://www.zero0ne.de/2011/06/aufbau-eines-linux-mailserver/</link>
		<comments>http://www.zero0ne.de/2011/06/aufbau-eines-linux-mailserver/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 08:35:09 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mailserver]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[spamassasin]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2398</guid>
		<description><![CDATA[Hier möchte ich kurz den von mir favorisierten Aufbau eines &#8220;Mailserver&#8221; unter Linux beschreiben. Im Eigentlichen ist es nicht ein „Mailserver“ sondern mehrere Dienste die zusammenarbeiten und im Endeffekt nach außen als ein Server auftreten. Der Mailserver-Komplex besteht aus: Service-Liste: Postfix SMTP-Server AmaVis Spamassasin pyszor dcc bayes ClamAV Courier IMAP-Server POP3-Server Schematischer Aufbau: Annahme Von [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hier möchte ich kurz den von mir favorisierten Aufbau eines &#8220;Mailserver&#8221; unter Linux beschreiben. Im Eigentlichen ist es nicht ein „<strong>Mailserver</strong>“ sondern mehrere Dienste die zusammenarbeiten und im Endeffekt nach außen als ein Server auftreten. <span id="more-2398"></span>Der Mailserver-Komplex besteht aus:</p>
<h2>Service-Liste:</h2>
<ul>
<li>Postfix SMTP-Server</li>
<li>AmaVis
<ul>
<li>Spamassasin
<ul>
<li>pyszor</li>
<li>dcc</li>
<li>bayes</li>
</ul>
</li>
<li>ClamAV</li>
</ul>
</li>
</ul>
<ul>
<li>Courier
<ul>
<li>IMAP-Server</li>
<li>POP3-Server</li>
</ul>
</li>
</ul>
<h2>Schematischer Aufbau:</h2>
<p><a href="http://www.zero0ne.de/blog/wp-content/uploads/mailserver.png"><img class="aligncenter size-medium wp-image-1975" title="mailserver" src="http://www.zero0ne.de/blog/wp-content/uploads/mailserver-300x212.png" alt="" width="300" height="212" /></a></p>
<h2 style="text-align: justify;">Annahme Von E-Mails</h2>
<p style="text-align: justify;">Kommen E-Mails vom Internet aus am Mail-Server an, werden diese zunächst angenommen und dann geprüft. Zu erst wird der Aufbau der E-Mail geprüft. Ist dieser nicht FQDN-Konform wird die E-Mail abgewiesen, da FQDN-Unkonforme (FQDN = Full Qualified Domain Name = Standardmäßiger Domainname) E-Mails nicht im Internet vorkommen, außer sie werden von Spammern verwendet. Danach wird geprüft ob der einliefernde Mailserver per Reserve DNS und EHLO-Check legitim ist. Darauf wird dann noch geprüft ob der Empfänger FQDN-konform ist. Ist dies der Fall wird die IP des einliefernden Servers gegen verschiedene Spam-Listen getestet. Sollte dies positiv sein, wird die E-Mail abgewiesen. Ist das Ergebnis negativ wird die E-Mail an AMaViS übergeben. Dieser durch-scannt mit Hilfe von Spamassassin die E-Mail nach Spam-Merkmalen. Auch wird durch AMaViS die E-Mail auf Viren geprüft. Dies geschieht mit Hilfe von ClamAV. Wenn die E-Mail dann letztendlich auch diese Prüfungen bestanden hat, wird sie auf die Festplatte ins MailDir des betreffenden Empfängers gespeichert. Dort liegt sie dann als simple Textdatei vor.</p>
<p style="text-align: justify;">Nun kann sie durch ein Mailprogramm abgerufen werden. Dies geschieht indem das Mailprogramm zu Courier eine Verbindung aufbaut und nach neuen Mails fragt. Courier biete dazu die Protokolle POP3 und IMAP an. Darüber werden dann die als Textdateien gespeicherten E-Mail aus dem Maildir ausgelesen  und an das Mailprogramm gesendet.</p>
<h2 style="text-align: justify;">Versenden von E-Mails</h2>
<p style="text-align: justify;">Vor dem Versenden durch den SMTP-Server wird die E-Mail wieder auf Viren und Spam geprüft. Ein Greylisting findet in diese Richtung nicht statt. Die Anti-Spam-Listen werden in diese Richtung auch nicht abgefragt. Im Anschluss wird die Mail wieder darauf geprüft ob Sender- und Empfänger-Adresse FQDN-konform sind. Auch wird noch geprüft ob der empfangende Mailserver legitim ist. Passiert die Mail die Tests wird sie vom SMTP versendet.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/aufbau-eines-linux-mailserver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPad2</title>
		<link>http://www.zero0ne.de/2011/06/ipad2/</link>
		<comments>http://www.zero0ne.de/2011/06/ipad2/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 08:12:50 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Nur so ...]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipad2]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/2011/06/ipad2/</guid>
		<description><![CDATA[Jetzt werde ich mir wohl doch ein iPad2 kaufen, wenn man es dann doch eine Weile hatte und dann aufs iPad zurück muss, ist es doch recht schmerzlich. Man vermisst dann doch die Geschwindigkeit. Auch das es ein wenig leichter ist. Doch am meisten das es besser in der Hand liegt. Die Haptik ist da [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Jetzt werde ich mir wohl doch ein iPad2 kaufen, wenn man es dann doch eine Weile hatte und dann aufs iPad zurück muss, ist es doch recht schmerzlich. Man vermisst dann doch die Geschwindigkeit. Auch das es ein wenig leichter ist. Doch am meisten das es besser in der Hand liegt. Die Haptik ist da einfach besser. Muss jetzt nur noch das alte iPad irgendwie verkaufen. Geht aber nicht so wirklich leicht. Weil es ein 64GB Modell ist und das dann noch recht viel wert ist. Und die Leute wollen für ein gebrauchtes iPad nicht soviel ausgeben. Vor allen wenn sie für das Geld schon ein iPad2 haben könnten. Naja, werd&#8217;s die Tage dann mal bei eBay reinstellen, da findet sich bestimmt einer der es nimmt.</p>
<p style="text-align: justify;">Früher oder später bekommt mich Steve immer rum seinen Shice zu kaufen XD</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/ipad2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx Redirect von non-WWW auf WWW</title>
		<link>http://www.zero0ne.de/2011/06/nginx-redirect-von-non-www-auf-www/</link>
		<comments>http://www.zero0ne.de/2011/06/nginx-redirect-von-non-www-auf-www/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 09:29:32 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[umleitung]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2258</guid>
		<description><![CDATA[Oft hat man ja das Bedürfnis, seine Website unter der &#8220;www.&#8221; Subdomain laufen zu lassen. Oder eben auch ohne &#8220;www.&#8221;. Oder auch man hat mehrere Domains zu seiner Präsenz und will immer die Hauptdomain angezeigt haben. So kann man dann auch dem Problem des &#8220;duplicated Contents&#8221; bei Google beseitigen. Da man dann ja seinen Content [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Oft hat man ja das Bedürfnis, seine Website unter der &#8220;www.&#8221; Subdomain laufen zu lassen. Oder eben auch ohne &#8220;www.&#8221;. Oder auch man hat mehrere Domains zu seiner Präsenz und will immer die Hauptdomain angezeigt haben. So kann man dann auch dem Problem des &#8220;duplicated Contents&#8221; bei Google beseitigen. Da man dann ja seinen Content nur noch unter einen Domain betreibt.</p>
<p>Mit Nginx kann man das in folgender Weise realisieren:</p>
<p>Immer WWW:</p>
<blockquote><p>if ($host != &#8216;www.domain.de&#8217; ) {<br />
rewrite  ^/(.*)$  http://www.domain.de/$1  permanent;<br />
}</p></blockquote>
<p>Ohne WWW:</p>
<blockquote><p>if ($host != &#8216;domain.de&#8217; ) {<br />
rewrite  ^/(.*)$  http://domain.de/$1  permanent;<br />
}</p></blockquote>
<p>Falls man aber noch mehrere Subdomains unterhalb seiner Domain fährt, sollte man dies etwas anders gestalten:</p>
<blockquote><p>if ($host = &#8216;www.domain.de&#8217; ) {<br />
rewrite  ^/(.*)$  http://domain.de/$1  permanent;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/nginx-redirect-von-non-www-auf-www/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad2 Test</title>
		<link>http://www.zero0ne.de/2011/06/ipad2-test/</link>
		<comments>http://www.zero0ne.de/2011/06/ipad2-test/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 08:29:11 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipad2]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2249</guid>
		<description><![CDATA[Hab die Tage mal ein iPad2 zum testen. Ich muss sagen, zu Anfang gab und gibt es eigentlich noch immer keinen wirklichen Kaufgrund, wenn man schon ein iPad der ersten Generation hat. Das neue iPad ist abgerundeter und liegt so besser in den Händen. Es ist ein wenig leichter und ein wenig dünner. Hat zwei [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hab die Tage mal ein iPad2 zum testen. Ich muss sagen, zu Anfang gab und gibt es eigentlich noch immer keinen wirklichen Kaufgrund, wenn man schon ein iPad der ersten Generation hat. Das neue iPad ist abgerundeter und liegt so besser in den Händen. Es ist ein wenig leichter und ein wenig dünner. Hat zwei Kameras. Aber wer braucht die schon an einem Tablet?! Das einzig wichtige ist eigentlich der bessere CPU der im iPad2 steck. Dieser bringt echt mehr Leistung. Viele Applikationen laufen gefühlt schneller und flüssiger. Ganz nett ist auch dieses Smart Cover. Wobei Apple aber nicht wirklich gemerkt hat, das die leute mehr Angst davor haben das die Alu-Rückseite verkratzt als das Display. Mir geht es jedenfalls so. Und dabei hilft einem das tolle Smart Cover nicht wirklich. Die alte Apple Hülle war schon toll, aber ein Dreckmagnet sondergleichen! Ein wirklicher Kaufgrund währe ja eigentlich ein höher auflösendes Display gewesen. Leider hat das Apple wohl anders gesehen. Ich mag das Display vom iPhone 4 echt. Das auf der Grösse vom iPad wäre Hammer! Vielleicht kommt das ja in der nächsten Generation. Im Vergleich zum iPad ist der SIM-Schacht echt schlecht verbaut und lässt sich nur schwer öffnen. Die Lösung vom iPad war da besser. Aber dann hätte das mit den abgerundeten Kanten ja nicht geklappt. Und wie oft wechselt man schon mal die SIM? Das lässt sich also verkraften. Um noch mal auf die Kamera zurückzukommen, diese ist eher mittelmässig bis schlecht von der Auflösung her. Aber es ist eben nicht mal 1 MegaPixel, da kann man nicht all zuviel erwarten. Den Hauptzweck, Videotelefonie, erfüllt sie aber ganz gut. Aber mehr als Spielerei ist das eh nicht. Ich sitzt für so etwas lieber vor meinem iMac.</p>
<p style="text-align: justify;">Summa Summarum kann man sagen, eine gut überarbeitet Version des ersten iPad, welche eigentlich den Namen iPad2 nicht verdient hätte. Für mich ist es eher ein iPad 1.5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/ipad2-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

