<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2germanfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Bonsailinse</title>
	
	<link>http://bonsailinse.net</link>
	<description>Blog</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:02:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bonsailinse" /><feedburner:info uri="bonsailinse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>48.048372</geo:lat><geo:long>8.208790</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><feedburner:emailServiceId>bonsailinse</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=de&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://us.i1.yimg.com/us.yimg.com/i/de/my/addtomyyahoo4.gif">Subscribe with Mein Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/bonsailinse" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbonsailinse" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><item>
		<title>Uargh, Abkürzungen</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/eF0144BraCU/</link>
		<comments>http://bonsailinse.net/uargh-abkuerzungen/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 11:00:00 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Nerdiges]]></category>
		<category><![CDATA[Abkürzungen]]></category>
		<category><![CDATA[Gedanken]]></category>
		<category><![CDATA[Polizei]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/uargh-abkurzungen/</guid>
		<description><![CDATA[Vom &#8216;Los Angeles Police Department&#8217;, dem LAPD, hat jeder schon in irgendeinem Fernsehfilm etwas geh&#246;rt. Auch das Pendant aus New York, dem NYPD, ist sicher vielen bekannt. Warum aber gelten diese beiden als Vorzeige-Einrichtungen? Gibt es solche Institutionen nicht in jeder (gr&#246;&#223;eren) Stadt? Haben diese dann auch so fancy Abk&#252;rzungen? Hei&#223;t es etwa &#8216;SFPD&#8216; in ...]]></description>
			<content:encoded><![CDATA[<p>Vom &#8216;Los Angeles Police Department&#8217;, dem <strong>LAPD</strong>, hat jeder schon in irgendeinem Fernsehfilm etwas geh&ouml;rt. Auch das Pendant aus New York, dem <strong>NYPD</strong>, ist sicher vielen bekannt. </p>
<p>Warum aber gelten diese beiden als Vorzeige-Einrichtungen?<br />
Gibt es solche Institutionen nicht in jeder (gr&ouml;&szlig;eren) Stadt?<br />
Haben diese dann auch so fancy Abk&uuml;rzungen?<br />
Hei&szlig;t es etwa &#8216;<em>SFPD</em>&#8216; in <strong>San Francisco</strong> oder &#8216;<em>LVPD</em>&#8216; in <strong>Las Vegas</strong>?<br />
Was machen die ganzen St&auml;dte, die sich nur einen Buchstaben als Abk&uuml;rzung leisten k&ouml;nnen? &#8216;<em>DPD</em>&#8216; in <strong>Detroit</strong>? &#8216;<em>PPD</em>&#8216; in <strong>Phoenix</strong>?<br />
Und kriegen sich <strong>Seattle</strong>, <strong>Sacramento</strong> und <strong>Salem</strong> nicht in die Haare, wenn sie sich die selbe Abk&uuml;rzung teilen m&uuml;ssen?<br />
Und kriegt <strong>Sigmar Gabriel</strong>, seines Zeichens Chef unserer <strong>Sozialdemokraten</strong>, &Auml;rger wegen Amtsanma&szlig;ung, wenn er f&auml;hnchenwedelnd in eben diesen drei St&auml;dten zu Besuch ist?</p>
<p>Fragen &uuml;ber Fragen. Keine interessant genug um intensivere Recherchen zu bem&uuml;hen, dennoch w&uuml;sste ich die Antworten schon ganz gerne.<br />
Vielleicht kann mich ja einer meiner Leser in den Kommentaren erleuchten.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/eF0144BraCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/uargh-abkuerzungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/uargh-abkuerzungen/</feedburner:origLink></item>
		<item>
		<title>Bash: Eine schönere History</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/io6baM4-ym8/</link>
		<comments>http://bonsailinse.net/bash-eine-schoenere-history/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 20:29:42 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=830</guid>
		<description><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2012/01/bash.png" class="attachment-post-thumbnail wp-post-image" alt="bash" title="bash" />Mir ist bei meinen Arbeiten zum Projekt: Neuer Server aufgefallen, dass die History in der Shell zwar hilfreich ist, aber durchaus noch etwas verfeinert werden kann. Nach kurzer Recherche konnte ich sie meinen Anspr&#252;chen anpassen, in dem ich die Datei ~/.bashrc um folgende Zeilen erweiterte: export HISTCONTROL=ignoreboth export HISTSIZE=500 export HISTIGNORE="&#38;:ls:history:exit" export HISTTIMEFORMAT="[%d.%m.%Y - %T] ...]]></description>
			<content:encoded><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2012/01/bash.png" class="attachment-post-thumbnail wp-post-image" alt="bash" title="bash" /><p>Mir ist bei meinen Arbeiten zum <a href="http://bonsailinse.net/projekt-neuer-server/" title="Projekt: Neuer Server" class="liinternal">Projekt: Neuer Server</a> aufgefallen, dass die <strong>History</strong> in der Shell zwar hilfreich ist, aber durchaus noch etwas verfeinert werden kann.</p>
<p>Nach kurzer Recherche konnte ich sie meinen Anspr&uuml;chen anpassen, in dem ich die Datei <strong>~/.bashrc</strong> um folgende Zeilen erweiterte:</p>
<code class="code">export HISTCONTROL=ignoreboth
export HISTSIZE=500
export HISTIGNORE="&amp;:ls:history:exit"
export HISTTIMEFORMAT="[%d.%m.%Y - %T] "</code>
<p>Der Parameter <strong>HISTCONTROL</strong> kann mit einen der folgenden Strangs gef&uuml;ttert werden: &#8216;<em>ignorespace</em>&#8216;, &#8216;<em>ignoredups</em>&#8216; oder &#8216;<em>ignoreboth</em>&#8216;.</p>
<p>Durch <strong>ignorespace</strong> werden alle Zeilen, die mit einem Leerzeichen beginnen, nicht in die History aufgenommen.<br />
Mit <strong>ignoredups</strong> werden doppelte Eintr&auml;ge entfernt, so dass immer nur der j&uuml;ngste vorhanden bleibt.<br />
Selbsterkl&auml;rend ist nun <strong>ignoreboth</strong>: Dort werden einfach beide Funktionen &uuml;bernommen.</p>
<p>Die eingetragene Zahl in <strong>HISTSIZE</strong> bestimmt, wieviele Eintr&auml;ge in der History gespeichert werden. &Uuml;blicherweise sollten die letzten 500 Zeilen nachvollziehbar sein.</p>
<p><strong>HISTIGNORE</strong> enth&auml;lt die Befehle, die nicht mit in die History aufgenommen werden sollen. Dadurch halte ich pers&ouml;nlich meine History sauber, in dem ich unn&ouml;tige Zeilen wie ls oder exit von ihr fern halte.</p>
<p>Mit <strong>HISTTIMERFORMAT</strong> lasse ich einen Zeitstempel in der History anzeigen. Sehr hilfreich, wenn man mit mehreren Leuten in der Bash rumh&auml;ngt oder beim Suchen einer Befehlszeile nur noch die Uhrzeit im Kopf hat.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/io6baM4-ym8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/bash-eine-schoenere-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/bash-eine-schoenere-history/</feedburner:origLink></item>
		<item>
		<title>Projekt: Neuer Server – Postfix + Dovecot</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/ZVzCNXswf9U/</link>
		<comments>http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 09:55:43 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=774</guid>
		<description><![CDATA[Zuerst: Backup erneuern. Damit hei&#223;t meines nun 2012.01.10_02:26 und ist 512.76 MB gro&#223;. Inzwischen haben wir einen funktionierenden Webserver, der mit allen grundlegenden Dingen umgehen kann. PHP in Verbindung mit MySQL kann also nun ohne Probleme genutzt werden. Im Prinzip k&#246;nnten wir jetzt unsere vHosts anlegen und beginnen, unsere Webprojekte hochzuladen, das werde ich jedoch ...]]></description>
			<content:encoded><![CDATA[<div class="note alignright">
<h4 class="note_title">Projekt: Neuer Server</h4>
<div class="note_content">
<a href="http://bonsailinse.net/projekt-neuer-server/" class="liinternal">Teil 1: Einleitung</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-erste-schritte/" class="liinternal">Teil 2: Erste Schritte</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/" class="liinternal">Teil 3: nginx + php-fpm</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/" class="liinternal">Teil 4: MySQL + phpMyAdmin</a><br />
<strong>Teil 5: Postfix + Dovecot</strong><br />
Teil 6: [in Planung]<br />
Teil 7: [in Planung]<br />
Teil 8: Der Abschluss
</div>
</div>
<p>Zuerst: Backup erneuern. Damit hei&szlig;t meines nun <strong>2012.01.10_02:26</strong> und ist <strong>512.76 MB</strong> gro&szlig;.</p>
<p>Inzwischen haben wir einen funktionierenden <strong>Webserver</strong>, der mit allen grundlegenden Dingen umgehen kann. <strong>PHP</strong> in Verbindung mit <strong>MySQL</strong> kann also nun ohne Probleme genutzt werden.<br />
Im Prinzip k&ouml;nnten wir jetzt unsere <strong>vHosts</strong> anlegen und beginnen, unsere Webprojekte hochzuladen, das werde ich jedoch noch nicht tun, da ich das Einpflegen von Daten (au&szlig;er f&uuml;r Funktionalit&auml;tstests) erst ganz am Ende durchf&uuml;hre, um eine gewisse Routine zu entwickeln.<br />
Immerhin m&ouml;chte ich nicht jetzt vHosts anlegen, dann erstmal wieder was installieren, dann f&uuml;r die entsprechenden vHosts die Mailadressen anlegen&#8230; alles in einem Rutsch gef&auml;llt mir da doch besser.<br />
Au&szlig;erdem kann ich mir dann sogar vielleicht noch ein paar <strong>Skripte</strong> schreiben, um mir die Arbeit in Zukunft noch etwas zu vereinfachen.</p>
<p>Nun wollen wir unserem Server erstmal beibringen, mit <strong>eMails</strong> umzugehen. Der Plan sieht so aus:</p>
<div class="note aligncenter">
<div class="note_content">
<strong>Postfix</strong> um Mails aus dem Internet zu ziehen und den ganzen Basiskram zu erledigen<br />
<strong>Dovecot</strong> um Mails auf dem Server zu speichern und sie dem User via Pop3 / IMAP zug&auml;nglich zu machen<br />
<strong>MySQL</strong> um Domains, Useraccounts und Forwarding-Regeln zu verwalten<br />
<strong>AMaViS</strong> zum Scannen eingehender Mails mit Hilfe von ClamAV und SpamAssassin<br />
<strong>Clam Antivirus</strong> f&uuml;r einen Virus-Check<br />
<strong>SpamAssassin</strong> f&uuml;r die Einordnung von Spam </p>
<p>evtl. <strong>Roundcube</strong> als Webmail-L&ouml;sung, falls es n&ouml;tig werden sollte.
</div>
</div>
<p><em>Los geht&#8217;s.</em><br />
<span id="more-774"></span><br />
Wir installieren alle erforderlichen Pakete:</p>
<pre class="pre"># apt-get install postfix postfix-mysql</pre>
<p>W&auml;hlt im Assistenten zun&auml;chst &#8216;<strong>Internet-Site</strong>&#8216; aus, danach gebt den <strong>FQDN</strong> eures Servers an.</p>
<div class="info">
<div class="message_box_content">
<strong>Achtung:</strong> Hier wird ein <a href="http://de.wikipedia.org/wiki/Domain#Fully_Qualified_Domain_Name_.28FQDN.29" target="_blank" rel="nofollow" class="liwikipedia">FQDN</a> (Fully Qualified Domain Name) ben&ouml;tigt.<br />
Der Hostname eures Servers sollte hoffentlich aus so einem bestehen.<br />
Dies ist <strong>nicht</strong> einfach nur eure Domain, sondern, salopp gesagt, inklusive einer Subdomain. Typischerweise bietet sich <strong>server.bonsailinse.net</strong> oder &auml;hnliches an. &Uuml;berpr&uuml;fen k&ouml;nnt ihr das &uuml;brigens mit &#8216;<strong>hostname -f</strong>&#8216;
</div>
<div class="clearboth"></div>
</div>
<p>Sollte euer Debian nicht ganz so minimal sein wie ihr dachtet, hat es vielleicht standardm&auml;&szlig;ig exim4 als Mailservice installiert. Ihr solltet zur Vorsicht einfach den Befehl hier durchlaufen lassen, um es zu deinstallieren, sollte es vorhanden sein:</p>
<pre class="pre"># apt-get --purge remove 'exim4*'</pre>
<p>Installieren von Dovecot und, testweise, Roundcube. Dann noch den Shell-IMAP-Client mutt, den wir sp&auml;ter gut zum testen nutzen k&ouml;nnen.</p>
<pre class="pre"># apt-get install dovecot-pop3d dovecot-imapd
# apt-get install roundcube
# apt-get install mutt</pre>
<p>Dann fangen wir mal an unsere Datenbank vorzubereiten. Wer will, kann dies in phpMyAdmin machen, muss daf&uuml;r meine Konsolenbefehle entsprechen anpassen. Ich werde der Einfachheit halber s&auml;mtliche SQL-Queries in der Shell durchf&uuml;hren.<br />
Wir erstellen zu Anfang die Datenbank, die ich hier einfach mal &#8216;<strong>mailserver</strong>&#8216; nenne. Wir werden nach dem root-Kennwort gefragt, welches wir bei der Installation von MySQL angegeben haben:</p>
<pre class="pre"># mysqladmin -p create mailserver</pre>
<p>Nun loggen wir uns in die Datenbank ein und erstellen einen neuen Benutzer. Postfix ben&ouml;tigt definitiv keinen root-Zugriff auf unsere Datenbanken <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ich w&auml;hle als Benutzer hier &#8216;<strong>mailuser</strong>&#8216; und als Kennwort &#8216;<strong>mailpass</strong>&#8216;. Bitte w&auml;hlt euer Kennwort sorgf&auml;ltiger aus:</p>
<pre class="pre"># mysql -p mailserver</pre>
<div class="info">
<div class="message_box_content">
<strong>Achtung:</strong> Ich verwende f&uuml;r die Anzeige von MySQL-Queries das Pr&auml;fix &#8216;<strong>></strong>&#8216;, um zu verdeutlichen, dass wir uns in der Datenbank befinden (wie sonst die <strong>Raute</strong> &#8216;<strong>#</strong>&#8216; f&uuml;r die Eingabe in der Shell).<br />
Bitte kopiert das Zeichen nicht mit, es geh&ouml;rt <strong>nicht</strong> zu dem Query!
</div>
<div class="clearboth"></div>
</div>
<pre class="pre">&gt; GRANT SELECT ON mailserver.*
TO 'mailuser'@'127.0.0.1'
IDENTIFIED BY 'mailpass';</pre>
<p>Nun haben wir einen User f&uuml;r Postfix, der ausschlie&szlig;lich Leserechte f&uuml;r unsere Mail-Datenbank besitzt.<br />
M&ouml;chten wir sp&auml;ter Datens&auml;tze anlegen oder &auml;ndern, m&uuml;ssen wir uns einen weiteren User mit Schreibrechten anlegen oder den root-User nutzen.</p>
<p>Nun erstellen wir unsere Tabellen f&uuml;r virtuelle Domains, virtuelle User und virtuelle Aliases. Alles, was man eben so ben&ouml;tigt, um sp&auml;ter vern&uuml;nftig mit Mails umgehen zu k&ouml;nnen:</p>
<pre class="pre">&gt; CREATE TABLE `virtual_domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
<pre class="pre">&gt; CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `password` varchar(32) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
<pre class="pre">&gt; CREATE TABLE `virtual_aliases` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `destination` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
<p>Damit wir nicht ganz dumm sterben zeige ich euch mal anhand von ein paar Testdaten die Struktur unserer Tabellen:</p>
<p><strong>virtual_domains:</strong></p>
<div class="table_style">
<table>
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">name</th>
<th scope="col"></th>
<th scope="col"></th>
</tr>
</thead>
<tr>
<td><span style="color: #00ff00;">1</span></td>
<td>example.com</td>
<td></td>
<td></td>
</tr>
<tr>
<td><span style="color: #0000ff;">2</span></td>
<td>example.net</td>
<td></td>
<td></td>
</tr>
</table>
</div>
<p><strong>virtual_users:</strong></p>
<div class="table_style">
<table>
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">domain_id</th>
<th scope="col">email</th>
<th scope="col">password</th>
</tr>
</thead>
<tr>
<td>1</td>
<td><span style="color: #00ff00;">1</span></td>
<td>user1@example.com</td>
<td>hd7wo93n64</td>
</tr>
<tr>
<td>2</td>
<td><span style="color: #00ff00;">1</span></td>
<td>user2@example.com</td>
<td>j3bh1n0d74</td>
</tr>
<tr>
<td>3</td>
<td><span style="color: #0000ff;">2</span></td>
<td>user3@example.net</td>
<td>o30bq4lh5z</td>
</tr>
</table>
</div>
<p><strong>virtual_aliases:</strong></p>
<div class="table_style">
<table>
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">domain_id</th>
<th scope="col">source</th>
<th scope="col">destination</th>
</tr>
</thead>
<tr>
<td>1</td>
<td><span style="color: #00ff00;">1</span></td>
<td>user2@example.com</td>
<td>user2@web.de</td>
</tr>
<tr>
<td>2</td>
<td><span style="color: #0000ff;">2</span></td>
<td>user3@example.net</td>
<td>user3@gmx.net</td>
</tr>
<tr>
<td>3</td>
<td><span style="color: #0000ff;">2</span></td>
<td>user3@example.net</td>
<td>user3@gmail.com</td>
</tr>
</table>
</div>
<p>Durch die <strong>virtual_aliases</strong> Werden nun alle Mails an <strong>user2@example.com</strong> an <strong>user2@web.de</strong> weitergeleitet.<br />
Analog jede Mail, die an <strong>user3@example.net</strong> geht an <strong>user3@gmx.net</strong> sowie <strong>user3@gmail.com</strong>.<br />
Hierf&uuml;r werden zwei Eintr&auml;ge in die Datenbanktabelle eingetragen.</p>
<p>Nun f&uuml;ttern wir unsere Datenbank mit den ersten Eintr&auml;gen, damit wir sp&auml;ter testen k&ouml;nnen, ob unsere Konfigurationen auch funktionieren.<br />
In meinem Beispiel f&uuml;ge ich die Domain &#8216;<strong>bonsailinse.net</strong>&#8216; ein, einen User &#8216;<strong>mail@bonsailinse.net</strong>&#8216; mit Kennwort &#8216;<strong>vollgeheim</strong>&#8216; und zus&auml;tzlich noch eine Weiterleitung aller Mails an &#8216;<strong>admin@bonsailinse.net</strong>&#8216; nach &#8216;<strong>mail@bonsailinse.net</strong>&#8216;:</p>
<pre class="pre">&gt; INSERT INTO `mailserver`.`virtual_domains` (
  `id` ,
  `name`
)
VALUES (
  '1', 'bonsailinse.net'
);</pre>
<pre class="pre">&gt; INSERT INTO `mailserver`.`virtual_users` (
  `id` ,
  `domain_id` ,
  `password` ,
  `email`
)
VALUES (
  '1', '1', MD5( 'vollgeheim' ) , 'mail@bonsailinse.net'
);</pre>
<pre class="pre">&gt; INSERT INTO `mailserver`.`virtual_aliases` (
  `id`,
  `domain_id`,
  `source`,
  `destination`
)
VALUES (
  '1', '1', 'admin@bonsailinse.net', 'mail@bonsailinse.net'
);</pre>
<p>Nun beenden wir MySQL und dann bringen wir Postfix bei, wo in unseren Datenbanken es unsere virtuellen Domains, User und Aliase finden kann:</p>
<pre class="pre">&gt; exit
# nano /etc/postfix/mysql-virtual-mailbox-domains.cf</pre>
<code class="code">user = mailuser
password = mailpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'</code>
<p>Damit Postfix Bescheid wei&szlig;, kriegt er die Config eingelesen:</p>
<pre class="pre"># postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf</pre>
<p>Das Ganze wird dann fix getestet, bei einem gegl&uuml;ckten Mapping sollte eine &#8216;<strong>1</strong>&#8216; als R&uuml;ckmeldung kommen:</p>
<pre class="pre"># postmap -q bonsailinse.net mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf</pre>
<p>Das selbe Spiel nochmal f&uuml;r das Mapping der Mailboxen und der Aliase:</p>
<pre class="pre"># nano /etc/postfix/mysql-virtual-mailbox-maps.cf</pre>
<code class="code">user = mailuser
password = mailpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'</code>
<pre class="pre"># postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf</pre>
<p>Testen: </p>
<pre class="pre"># postmap -q mail@bonsailinse.net mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf</pre>
<pre class="pre"># nano /etc/postfix/mysql-virtual-alias-maps.cf</pre>
<code class="code">user = mailuser
password = mailpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'</code>
<pre class="pre"># postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf</pre>
<p>Testen, diesmal m&uuml;sste &#8216;<strong>mail@bonsailinse.net</strong>&#8216; als Zieladresse ausgegeben werden:</p>
<pre class="pre"># postmap -q admin@bonsailinse.net mysql:/etc/postfix/mysql-virtual-alias-maps.cf</pre>
<p><em>Phew. Kurze Verschnaufpause.</em></p>
<p>Jetzt sehen wir zu, dass nur die User &#8216;root&#8217; und &#8216;postfix&#8217; auf unsere Konfigurationfiles zugreifen k&ouml;nnen:</p>
<pre class="pre"># chgrp postfix /etc/postfix/mysql-*.cf
# chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf</pre>
<p>F&uuml;r die Konfiguration von <strong>Dovecot</strong> erstellen wir zun&auml;chst einen neuen <strong>Systemuser</strong>, der in Zukunft f&uuml;r den ganzen Mailkram zust&auml;ndig sein wird. Ich w&auml;hle hier den User &#8216;<strong>vmail</strong>&#8216; mit der User-ID <strong>5000</strong> und die Gruppe &#8216;<strong>vmail</strong>&#8216; mit der Gruppen-ID <strong>5000</strong>. Achtet darauf, dass die IDs noch nicht anderweitig belegt sind. Ihr k&ouml;nnt jede ID zwischen 1000 und 65000 nutzen, solange sie noch nicht verwendet wird (siehe &#8216;<strong>cat /etc/passwd</strong>&#8216;).<br />
Dann noch die Rechte f&uuml;r unser zuk&uuml;nftiges Mail-Verzeichnis setzen:</p>
<pre class="pre"># groupadd -g 5000 vmail
# useradd -g vmail -u 5000 vmail -d /var/vmail -m

# chown -R vmail:vmail /var/vmail
# chmod u+w /var/vmail</pre>
<p>Dann fangen wir mal an Dovecot zu konfigurieren:</p>
<pre class="pre"># nano /etc/dovecot/dovecot.conf</pre>
<p>Die erste Zeile definiert die Protokolle, die gestartet werden sollen. Hier k&ouml;nnt ihr bei Bedarf bspw. die unsicheren Varianten ohne &#8216;<strong>s</strong>&#8216; rausl&ouml;schen oder ausschlie&szlig;lich IMAP aktivieren.</p>
<p>Die zweite Zeile steht standardm&auml;&szlig;ig auf &#8216;<strong>yes</strong>&#8216;, was sicherheitstechnisch auch super ist, allerdings kann es passieren, dass ihr unter der Verwendung <em>diverser Mailprogramme</em> diese Einstellung auf &#8216;<strong>no</strong>&#8216; setzen m&uuml;sst:</p>
<code class="code">protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no</code>
<p>Mit folgender Zeile teilen wir Dovecot mit, wo die <strong>Mailboxen</strong> unserer User liegen.<br />
Mit der folgenden Konfiguration befinden sie sich stets unter <strong>/var/vmail/<em>DOMAIN</em>/<em>USER</em>/Maildir</strong> und liegen im <em>maildir</em> Format vor:</p>
<code class="code">mail_location = maildir:/var/vmail/%d/%n/Maildir</code>
<p>In der Sektion &#8216;<strong>auth default</strong>&#8216; sollten wir dem Part &#8216;<strong>mechanisms</strong>&#8216; die Methode &#8216;<strong>login</strong>&#8216; hinzuf&uuml;gen:</p>
<code class="code">mechanisms = plain login</code>
<p>Damit Dovecot wei&szlig;, wo sich die Zugangsdaten der User befinden, suchen wir die Sektionen &#8216;<strong>passdb sql</strong>&#8216; und &#8216;<strong>userdb static</strong>&#8216; und sehen zu, dass sie folgenderma&szlig;en ausschauen:</p>
<code class="code">passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
}

userdb static {
    args = uid=5000 gid=5000 home=/var/vmail/%d/%n/Maildir allow_all_users=yes
}</code>
<p>Achja, wir sollten vielleicht noch die Sektion &#8216;<strong>passdb pam</strong>&#8216; auskommentieren (achtet auf die abschlie&szlig;ende, geschwungene Klammer!), da Dovecot sonst auch nach lokalen Usern Ausschau h&auml;lt, was uns nur unsere Logfiles mit Fehlern zum&uuml;llt.</p>
<p>Wir suchen die Sektion &#8216;<strong>socket listen</strong>&#8216; und bearbeiten sie wie folgt:</p>
<code class="code">socket listen {
    master {
        path = /var/run/dovecot/auth-master
        mode = 0600
        user = vmail
    }

    client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
    }
}</code>
<p>&Auml;hnliches Spiel mit der Sektion &#8216;<strong>protocol lda</strong>&#8216;, wobei ihr hier eine Mail-Adresse eintragen solltet, unter der ihr als Admin des Servers erreichbar seid:</p>
<code class="code">protocol lda {
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = admin@bonsailinse.net
    mail_plugins = sieve
    log_path =
}</code>
<p>Wenn ihr den log_path leer lasst, landen eure Logs zusammen mit anderen eMail-relevanten Logs in <strong>/var/log/mail.log</strong>. Definiert ihr hier einen anderen Pfad k&ouml;nnt ihr eventuell falsch konfigurierten Filtern oder &auml;hnlichem auf die Schliche kommen.</p>
<p>Wir schlie&szlig;en die Datei und k&uuml;mmern uns um die n&auml;chste Config:</p>
<pre class="pre"># nano /etc/dovecot/dovecot-sql.conf</pre>
<code class="code">driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailpass
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';</code>
<p>Dovecot neustarten und noch schnell die Rechte vern&uuml;nftig setzen:</p>
<pre class="pre"># /etc/init.d/dovecot restart
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf
chown root:root /etc/dovecot/dovecot-sql.conf
chmod go= /etc/dovecot/dovecot-sql.conf</pre>
<p>Wir m&uuml;ssen Postfix dazu bringen mit Dovecot zu sprechen und f&uuml;gen folgende Zeilen der Konfiguration von Postfix hinzu: </p>
<pre class="pre"># nano /etc/postfix/master.cf</pre>
<div class="error">
<div class="message_box_content">
<strong>Vorsicht!</strong> Achtet darauf, dass die zweite Zeile <strong>einger&uuml;ckt</strong> sein muss! Au&szlig;erdem geh&ouml;rt das nach dem <strong>$</strong> noch ein die zweite Zeile, die Zeile ist einfach nur zu lang f&uuml;r mein Blog.
</div>
<div class="clearboth"></div>
</div>
<code class="code">dovecot unix - n n - - pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}</code>
<p>Dann Postfix neustarten und die Konfiguration einlesen lassen:</p>
<pre class="pre"># postfix reload
# postconf -e virtual_transport=dovecot
# postconf -e dovecot_destination_recipient_limit=1</pre>
<div class="info">
<div class="message_box_content">An dieser Stelle habe ich pers&ouml;nlich meinen Server neugestartet.<br />
Nach so vielen neu installierten Programmen und ge&auml;nderten Konfigurationen ist das gar keine so schlechte Idee, um sicherzustellen, dass alles von jedem angenommen wurde. Au&szlig;erdem sieht man in den Logfiles des Servers, ob alles einwandfrei gestartet werden konnte.
</div>
<div class="clearboth"></div>
</div>
<p>Dann testen wir mal, ob Mails auf dem Server ankommen.<br />
Folgende Zeilen geben uns zuerst einen &Uuml;berblick, ob der Speicherort der zuk&uuml;nftigen Mails erreichbar ist (das Verzeichnis sollte zun&auml;chst nahezu leer sein), dann senden wir eine Testmail und &uuml;berpr&uuml;fen im Anschluss, ob sich eine Verzeichnisstruktur aufgebaut hat:</p>
<pre class="pre"># find /var/vmail
# echo test | mail mail@bonsailinse.net
# find /var/vmail</pre>
<p>Sollte etwas schiefgegangen sein lohnt sich ein Blick in &#8216;<strong>/var/log/mail.log</strong>&#8216;.<br />
Ein weiterer Test stellt fest, ob bspw. IMAP funktioniert. Evtl. werdet ihr aufgefordert, einer Erstellung des Verzeichnisses <strong>/root/Mail</strong> zuzustimmen und etwaige SSL-Zertifikate zu akzeptieren. Einfach zustimmen. Wenn ihr eure Testmail einsehen k&ouml;nnt ist das schonmal ein sehr gutes Zeichen. Mit &#8216;<strong>q</strong>&#8216; beendet ihr Mutt:</p>
<pre class="pre"># mutt -f imap://mail@bonsailinse.net@localhost</pre>
<p>Dann stellen wir mal fix unseren SMTP so ein, dass er nur eMails von authentifizierten Usern annimmt. Dies ist sch&ouml;n einfach, da Postfix die Logindaten von den in Dovecot hinterlegten Usern mit nutzen kann:</p>
<pre class="pre"># postconf -e smtpd_sasl_type=dovecot
# postconf -e smtpd_sasl_path=private/auth
# postconf -e smtpd_sasl_auth_enable=yes
# postconf -e smtpd_recipient_restrictions="permit_mynetworks permit_sasl_authenticated reject_unauth_destination"</pre>
<p>An dieser Stelle erstelle ich mir <strong>SSL-Zertifikate</strong>, die nat&uuml;rlich nicht als &#8220;<em>vertrauensw&uuml;rdig</em>&#8221; eingestuft werden. Wenn ihr Zertifikate zum Beispiel bei <a href="https://www.startssl.com" title="StartSSL" target="_blank" class="liexternal">StartSSL</a> erstellt habt oder gar eines gekauft habt, wisst ihr sicherlich auch, wie ihr sie einf&uuml;gt.<br />
Ansonsten hier die Vorgehensweise f&uuml;r selbst signierte Zertifikate.<br />
Wichtig ist, dass ihr bei der Erstellung bei &#8216;<strong>common name</strong>&#8216; exakt die Domain eingebt, mit der sich die User einloggen sollen. Soll dies also &#8216;<strong>mail.example.com</strong>&#8216; sein, geh&ouml;rt genau dies dort rein.</p>
<pre class="pre"># openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem
# chmod o= /etc/ssl/private/dovecot.pem
# /etc/init.d/dovecot restart

# openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
# chmod o= /etc/ssl/private/postfix.pem
# postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
# postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem</pre>
<div class="info">
<div class="message_box_content">Ich pers&ouml;nlich nutze f&uuml;r die eMail-Adresse des Serveradmins IMAPs, SMTP l&auml;uft bei mir weiterhin unverschl&uuml;sselt, da ich dort immer wieder auf Probleme mit diversen Mailprogrammen sto&szlig;e.<br />
Solltet ihr dort also Probleme bekommen, kann ich euch leider nicht helfen.<br />
IMAPs und POP3s sollten aber einwandfrei funktionieren.</div>
<div class="clearboth"></div>
</div>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/ZVzCNXswf9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/</feedburner:origLink></item>
		<item>
		<title>Projekt: Neuer Server – MySQL + phpMyAdmin</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/0bHSNT2psKE/</link>
		<comments>http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 23:42:01 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=751</guid>
		<description><![CDATA[Unser Webserver l&#228;uft schonmal, bevor wir uns um das Anlegen weiterer vHosts k&#252;mmern wollen wir erstmal noch die restlichen Dinge installieren, die wir so ben&#246;tigen. MySQL und so ein Kram eben. Zuerst k&#252;mmern wir uns aber um unser Backup. Ich erw&#228;hnte ja schon, dass ich zwischendurch gerne mal was kaputtkonfiguriere und so Und damit ich ...]]></description>
			<content:encoded><![CDATA[<div class="note alignright">
<h4 class="note_title">Projekt: Neuer Server</h4>
<div class="note_content">
<a href="http://bonsailinse.net/projekt-neuer-server/" class="liinternal">Teil 1: Einleitung</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-erste-schritte/" class="liinternal">Teil 2: Erste Schritte</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/" class="liinternal">Teil 3: nginx + php-fpm</a><br />
<strong>Teil 4: MySQL + phpMyAdmin</strong><br />
<a href="http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/" class="liinternal">Teil 5: Postfix + Dovecot</a><br />
Teil 6: [in Planung]<br />
Teil 7: [in Planung]<br />
Teil 8: Der Abschluss
</div>
</div>
<p>Unser Webserver l&auml;uft schonmal, bevor wir uns um das Anlegen weiterer vHosts k&uuml;mmern wollen wir erstmal noch die restlichen Dinge installieren, die wir so ben&ouml;tigen. <strong>MySQL</strong> und so ein Kram eben.</p>
<p>Zuerst k&uuml;mmern wir uns aber um unser <strong>Backup</strong>. Ich erw&auml;hnte ja schon, dass ich zwischendurch gerne mal was kaputtkonfiguriere und so <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Und damit ich den Namen des Backups leichter dem Stand meines Servers zuordnen kann, tippsel ich ihn wieder einfach hier rein:</p>
<p>Aktuell hei&szlig;t mein Backup <strong>2012.01.06_05:04</strong> und ist <strong>344.40 MB</strong> gro&szlig;.</p>
<p>Nun k&ouml;nnen wir anfangen, <del datetime="2012-01-06T20:26:37+00:00">unseren Server mit MySQL zu infizieren</del><ins datetime="2012-01-06T20:26:37+00:00">MySQL zu installieren</ins>:</p>
<pre class="pre"># apt-get install mysql-server mysql-client</pre>
<p>Der Installer fragt uns nach einem Admin-Kennwort, welches wir definitiv anlegen sollten. Nehmt bitte nicht das selbe wie f&uuml;r den root-Benutzer des Servers, ja?<br />
<span id="more-751"></span><br />
Eine gute Konfiguration f&uuml;r den Anfang ist folgende (nat&uuml;rlich gehe ich hier von meinem Server aus, 1 bis 2 GB RAM sollten da schon eingebaut sein. Sonst sucht euch passende Werte im Internet oder belasst es bei den Standard-Eintr&auml;gen):</p>
<pre class="pre"># nano /etc/mysql/my.cnf</pre>
<code class="code">key_buffer			= 512M
max_heap_table_size		= 128M
max_allowed_packet		= 16M
thread_stack			= 128K
thread_cache_size		= 8
max_connections			= 250
table_cache			= 512
query_cache_limit		= 16M
query_cache_size		= 128M

log_slow_queries		= /var/log/mysql/mysql-slow.log
long_query_time			= 2
log-queries-not-using-indexes</code>
<p>Ein Restart damit die Konfiguration angenommen wird:</p>
<pre class="pre"># /etc/init.d/mysql restart</pre>
<p>Eine optionale, aber empfehlenswerte Vorgehensweise an dieser Stelle ist das Ausf&uuml;hren der <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-secure-installation.html" target="_blank" class="liexternal">mysql_secure_installation</a>, mit der wir ein paar Sicherheitsrisiken eliminieren:</p>
<pre class="pre"># mysql_secure_installation</pre>
<p>Die Fragen sind selbsterkl&auml;rend, bis auf ein neues root-Kennwort (ihr habt ja hoffentlich bereits bei der Installation eines eingegeben) k&ouml;nnen s&auml;mtliche Fragen mit der Standard-Auswahl beantwortet werden. Lest es euch trotzdem durch, falls ihr bspw. <strong>Remote-Zugriff</strong> auf euren MySQL-Server ben&ouml;tigt solltet ihr diesen Punkt &uuml;berspringen.</p>
<p>Bei der Installation von phpMyAdmin wird nach dem verwendeten Webserver gefragt, leider sind hier nur Apache und LIGHTTPD ausw&auml;hlbar. Also w&auml;hlen wir keinen aus und beantworten auch die zweite Frage nach der Konfiguration der Datenbank mit dbconfig-common mit &#8216;<strong>Nein</strong>&#8216;.</p>
<p>Dann passen wir unseren vHost an, damit nginx die phpMyAdmin-Installation auch findet.<br />
Dazu erstellen wir eine neue Include-Datei, die dann in jedem vHost eingebunden wird, der phpMyAdmin erreichen k&ouml;nnen soll:</p>
<pre class="pre"># apt-get install phpmyadmin
# nano /etc/nginx/phpmyadmin.inc</pre>
<code class="code">location /phpmyadmin {
  root /usr/share/;
  index index.php index.html index.htm;
  location ~ ^/phpmyadmin/(.+\.php)$ {
    try_files $uri =404;
    root /usr/share/;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    include /etc/nginx/fastcgi_params;
    }
  location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
    root /usr/share/;
  }
}

location /phpMyAdmin {
  rewrite ^/* /phpmyadmin last;
}</code>
<pre class="pre"># nano /etc/nginx/sites-available/bonsailinse.net</pre>
<code class="code">server {
  server_name bonsailinse.net www.bonsailinse.net;

  root /var/www/bonsailinse.net/www;

  include defaults.inc;
  include phpmyadmin.inc;
}</code>
<p>nginx neustarten:</p>
<pre class="pre"># /etc/init.d/nginx restart</pre>
<div class="info">
<div class="message_box_content">
<strong>&Uuml;brigens:</strong> An dieser Stelle w&uuml;rde es auch reichen, die nginx-Konfiguration mit &#8216;<strong>/etc/init.d/nginx reload</strong>&#8216; neu laden zu lassen, jedoch starte ich nginx immer komplett neu, zum einen dauert das nicht wesentlich l&auml;nger und zum anderen bekomme ich so schneller mit, wenn er aus irgendwelchen Gr&uuml;nden (meist eine falsche Konfiguration) nicht mehr starten will.
</div>
<div class="clearboth"></div>
</div>
<p>Unter <strong>http://bonsailinse.net/phpmyadmin</strong> sowie <strong>http://bonsailinse.net/phpMyAdmin</strong> k&ouml;nnen wir nun den Login f&uuml;r unser MySQL-Verwaltungstool erreichen.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/0bHSNT2psKE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/</feedburner:origLink></item>
		<item>
		<title>Projekt: Neuer Server – nginx + php-fpm</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/_1JRs6HAe6A/</link>
		<comments>http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 03:05:03 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=713</guid>
		<description><![CDATA[So, bevor ich jetzt irgendwas an meinem Server kaputt mache (ich hab da definitiv nen Hang zu. Ben&#246;tige einen Undo-Knopf f&#252;r sowas) erstelle ich an dieser Stelle ein komplettes Backup. Bei netcup ist das gl&#252;cklicherweise ziemlich einfach, ich erstelle das Backup im Verwaltungsbereich f&#252;r die Server, da brauch ich kein Backuptool oder sonstiges bem&#252;hen. In ...]]></description>
			<content:encoded><![CDATA[<div class="note alignright">
<h4 class="note_title">Projekt: Neuer Server</h4>
<div class="note_content">
<a href="http://bonsailinse.net/projekt-neuer-server/" class="liinternal">Teil 1: Einleitung</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-erste-schritte/" class="liinternal">Teil 2: Erste Schritte</a><br />
<strong>Teil 3: nginx + php-fpm</strong><br />
<a href="http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/" class="liinternal">Teil 4: MySQL + phpMyAdmin</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/" class="liinternal">Teil 5: Postfix + Dovecot</a><br />
Teil 6: [in Planung]<br />
Teil 7: [in Planung]<br />
Teil 8: Der Abschluss
</div>
</div>
<p>So, bevor ich jetzt irgendwas an meinem Server kaputt mache (ich hab da definitiv nen Hang zu. Ben&ouml;tige einen Undo-Knopf f&uuml;r sowas) erstelle ich an dieser Stelle ein komplettes <strong>Backup</strong>.</p>
<p>Bei <a href="http://www.netcup.de" target="_blank" class="liexternal">netcup</a> ist das gl&uuml;cklicherweise ziemlich einfach, ich erstelle das Backup im Verwaltungsbereich f&uuml;r die Server, da brauch ich kein Backuptool oder sonstiges bem&uuml;hen.<br />
In meinem Tarif habe ich zwei Backups frei, das hei&szlig;t, ich kann hier und da ein wenig rumspielen und verschiedene Snapshots zur&uuml;ckspielen, falls ich mir bei irgendwelchen Installationen mal nicht ganz so sicher bin *g*.</p>
<p>Das Einzige, was ich nicht kann, ist dem Backup einen Namen oder eine Beschreibung zu geben, was es etwas einfacher machen w&uuml;rde, es dem jeweiligen Stand des Servers zuzuordnen. So muss ich mit einer Uhrzeit leben. Aber wof&uuml;r habe ich denn ein Blog?! Ich schreib den Namen einfach hier rein, dann wei&szlig; ich immer, wo ich ihn finde <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Das Backup zum aktuellen Stand hat also nun den Namen <strong>2012.01.05_00:51</strong> und ist <strong>287.03 MB</strong> gro&szlig;.<br />
<span id="more-713"></span><br />
Wie bereits erw&auml;hnt m&ouml;chte ich nicht mehr wie bisher <strong>Apache</strong> verwenden sondern gerne umsteigen. Ich habe mich nach kurzer Lekt&uuml;re f&uuml;r den schlanken Webserver <strong>nginx</strong> (Gesprochen: En-gin-iX) entschieden. Das hat mehrere Gr&uuml;nde. Dazu hier ein kurzer Vergleich des Indianers, LIGHTTPD und nginx:</p>
<div class="one_third"><strong>Apache</strong></p>
<p><span style="color: #00ff00;">+</span> Open Source<br />
<span style="color: #00ff00;">+</span> unendlich viele Module<br />
<span style="color: #00ff00;">+</span> gro&szlig;e Community<br />
<span style="color: #00ff00;">+</span> viele Tutorials<br />
<span style="color: #ff0000;">-</span> schlechte Performance<br />
<span style="color: #ff0000;">-</span> <abbr title="vergleichbar">vglb.</abbr> geringe Stabilit&auml;t<br />
<span style="color: #ff0000;">-</span> Langsame Entwicklung<br />
<span style="color: #ff0000;">-</span> Veraltet und &uuml;berf&uuml;llt<br />
<span style="color: #ff0000;">-</span> Keine zufriedenstellende Standard-Konfiguration</div>
<div class="one_third"><strong>LIGHTTPD</strong></p>
<p><span style="color: #00ff00;">+</span> Open Source<br />
<span style="color: #00ff00;">+</span> unendlich viele Module<br />
<span style="color: #00ff00;">+</span> gute Community<br />
<span style="color: #00ff00;">+</span> unglaublich ressourcenschonend<br />
<span style="color: #00ff00;">+</span> gute Geschwindigkeit<br />
<span style="color: #ff0000;">-</span> <abbr title="vergleichbar">vglb.</abbr> geringe Stabilit&auml;t<br />
<span style="color: #ff0000;">-</span> miese Rewrite-Engine<br />
<span style="color: #ff0000;">-</span> nicht so schnelle Entwicklung<br />
<span style="color: #ff0000;">-</span> ungefixte Memory-Leaks</div>
<div class="one_third last"><strong>nginx</strong></p>
<p><span style="color: #00ff00;">+</span> Open Source<br />
<span style="color: #00ff00;">+</span> gen&uuml;gend Module<br />
<span style="color: #00ff00;">+</span> ziemlich ressourcenschonend<br />
<span style="color: #00ff00;">+</span> geniale Geschwindigkeit<br />
<span style="color: #00ff00;">+</span> stabil und ohne bekannte Leaks<br />
<span style="color: #00ff00;">+</span> vern&uuml;nftige Rewrite-Engine<br />
<span style="color: #00ff00;">+</span> rasante Weiterentwicklung<br />
<span style="color: #00ff00;">+</span> sch&ouml;ne &#038; &uuml;bersichtliche Konfiguration<br />
<span style="color: #ff0000;">-</span> kleine Community<br />
<span style="color: #ff0000;">-</span> kein FastCGI, externer fcgi-Spawner erforderlich</div>
<div class="clearboth"></div>
<p>Meine Entscheidung fiel hiermit auf <strong>nginx</strong>, da ich mir viel von der Performance verspreche und keine Lust auf die h&auml;ssliche Rewrite-Engine vom lighty habe, wenn es darum geht, die Permalinks von WordPress anzupassen.</p>
<p>F&uuml;r FastCGI-Prozesse werde ich <strong>php-fpm</strong> nutzen, was gar nicht so kompliziert sein soll. Mal abwarten =/</p>
<p><em>Also, los gehts!</em></p>
<p>Wie bereits im ersten Teil angedeutet, holen wir uns die aktuelle Version von nginx aus dem Repository von <a href="http://www.dotdeb.org/" target="_blank" class="liexternal">Dotdeb</a>, da wir hier alles so aktuell bekommen wie wir es ben&ouml;tigen und auf eine aufbereitete, etwas h&uuml;bschere Standard-Konfiguration von nginx sto&szlig;en werden.</p>
<p>Wir installieren uns <strong>nginx</strong>, <strong>php</strong> und einige php-Module &uuml;ber <strong>apt-get</strong>:</p>
<pre class="pre"># apt-get install nginx
# apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php5-suhosin php5-curl</pre>
<p>Wir wechseln in das nginx Verzeichnis um ein paar Einstellungen vorzunehmen:</p>
<pre class="pre"># cd /etc/nginx/
# nano nginx.conf</pre>
<p>Die nun folgende Konfiguration ist das Beispiel, welches f&uuml;r meine Bed&uuml;rfnisse passt, f&uuml;r euch ist die Lekt&uuml;re vom <a href="http://wiki.nginx.org/Configuration" target="_blank" class="liexternal">Wiki</a> eventuell interessant, um eure Konfigurationen anzupassen.</p>
<code class="code">index index.php index.htm index.html;
keepalive_timeout 15;

client_max_body_size 20M;
client_body_buffer_size 128k;

##
# Gzip Settings
##

gzip on;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg;
gzip_http_version 1.1;
gzip_min_length 1000;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6] \.";
gzip_vary on;</code>
<p>Wir entfernen den Standard-vHost und schreiben uns einen eigenen (der Name ist hier nat&uuml;rlich frei w&auml;hlbar, der &Uuml;bersicht halber am besten den Domainnamen verwenden). Dabei nat&uuml;rlich darauf achten, dass ihr eure Domain entsprechend eintragt und den vHost nach euren Bed&uuml;rfnissen anpasst. Hier sei wieder auf das nginx-Wiki verwiesen:</p>
<pre class="pre">cd /etc/nginx/sites-enabled
rm default
nano /etc/nginx/sites-available/bonsailinse.net</pre>
<code class="code">server {
  server_name bonsailinse.net www.bonsailinse.net;

  root /var/www/bonsailinse.net/www;
 
  location / {
    try_files $uri $uri/ /index.php /index.html;
  }

  location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
  }

   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
     access_log off;
     expires 30d;
   }

   location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
     deny all;
   }

   location ~ \.php$ {
     try_files $uri =404;

     fastcgi_split_path_info ^(.+\.php)(.*)$;
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

     include fastcgi_params;

     fastcgi_intercept_errors on;
     fastcgi_ignore_client_abort off;
     fastcgi_connect_timeout 60;
     fastcgi_send_timeout 180;
     fastcgi_read_timeout 180;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 4 256k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }
}</code>
<p>Da wir keine Lust haben, diesen ganzen Wulst f&uuml;r jeden einzelnen vHost neu einzutragen erstellen wir uns eine Datei, die wir einfach f&uuml;r jede Domain fix includen.</p>
<p>Damit sieht die Include-Datei nun so aus:</p>
<pre class="pre"># nano /etc/nginx/defaults.inc</pre>
<code class="code">location / {
    try_files $uri $uri/ /index.php /index.html;
  }

  location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
  }

   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
     access_log off;
     expires 30d;
   }

   location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
     deny all;
   }

   location ~ \.php$ {
     try_files $uri =404;

     fastcgi_split_path_info ^(.+\.php)(.*)$;
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

     include fastcgi_params;

     fastcgi_intercept_errors on;
     fastcgi_ignore_client_abort off;
     fastcgi_connect_timeout 60;
     fastcgi_send_timeout 180;
     fastcgi_read_timeout 180;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 4 256k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }</code>
<p>Dementsprechend ist unser vHost nun etwas k&uuml;rzer:</p>
<pre class="pre"># nano /etc/nginx/sites-available/bonsailinse.net</pre>
<code class="code">server {
  server_name bonsailinse.net www.bonsailinse.net;

  root /var/www/bonsailinse.net/www;

  include defaults.inc;
}</code>
<p>Ein neuer <strong>Symlink</strong> sorgt daf&uuml;r, dass unser vHost auch aktiv ist:</p>
<pre class="pre"># ln -s /etc/nginx/sites-available/bonsailinse.net /etc/nginx/sites-enabled/bonsailinse.net</pre>
<p>Fr&ouml;hliches Neustarten:</p>
<pre class="pre"># /etc/init.d/nginx restart</pre>
<p>Und den eben angelegten vHost am besten mit einer <a href="http://php.net/manual/de/function.phpinfo.php" target="_blank" class="liexternal">phpinfo</a> testen:</p>
<pre class="pre"># mkdir -p /var/www/bonsailinse.net/{www,tmp}
# chown -R root:www-data /var/www/bonsailinse.net
# chmod -R 0770 /var/www/bonsailinse.net
# cd /var/www/bonsailinse.net/www
# nano info.php</pre>
<code class="code">&lt;?php
phpinfo();
?&gt;</code>
<p>Ein Aufruf von http://bonsailinse.net/info.php zeigt mir jetzt meine PHP-Konfiguration an.<br />
Bei euch sollte das nun auch funktionieren.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/_1JRs6HAe6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/</feedburner:origLink></item>
		<item>
		<title>Projekt: Neuer Server – Erste Schritte</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/hgw30lQfg6Y/</link>
		<comments>http://bonsailinse.net/projekt-neuer-server-erste-schritte/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 05:04:50 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=665</guid>
		<description><![CDATA[Zu Beginn k&#252;mmern wir uns um grundlegende Dinge, die einen neu aufgesetzten Server etwas brauchbarer machen. Die meisten Schritte sind als optional, aber empfehlenswert, einzustufen. Das Projekt wird in mehrere Teile aufgeteilt, damit wir den &#220;berblick nicht verlieren. Ich hoffe, dass die einzelnen Teile relativ z&#252;gig nacheinander online kommen k&#246;nnen und das Projekt abgeschlossen werden ...]]></description>
			<content:encoded><![CDATA[<div class="note alignright">
<h4 class="note_title">Projekt: Neuer Server</h4>
<div class="note_content">
<a href="http://bonsailinse.net/projekt-neuer-server/" class="liinternal">Teil 1: Einleitung</a><br />
<strong>Teil 2: Erste Schritte</strong><br />
<a href="http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/" class="liinternal">Teil 3: nginx + php-fpm</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/" class="liinternal">Teil 4: MySQL + phpMyAdmin</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/" class="liinternal">Teil 5: Postfix + Dovecot</a><br />
Teil 6: [in Planung]<br />
Teil 7: [in Planung]<br />
Teil 8: Der Abschluss
</div>
</div>
<p>Zu Beginn k&uuml;mmern wir uns um grundlegende Dinge, die einen neu aufgesetzten Server etwas brauchbarer machen. Die meisten Schritte sind als <em>optional, aber empfehlenswert</em>, einzustufen.</p>
<p>Das Projekt wird in mehrere Teile aufgeteilt, damit wir den &Uuml;berblick nicht verlieren. Ich hoffe, dass die einzelnen Teile relativ z&uuml;gig nacheinander online kommen k&ouml;nnen und das Projekt abgeschlossen werden kann. Dr&uuml;ckt uns also die Daumen, dass wir nicht auf allzu h&auml;ssliche Hindernisse sto&szlig;en. Die Links in der Box rechts werden entsprechend nach Ver&ouml;ffentlichung eines Artikels aktualisiert.</p>
<div class="info">
<div class="message_box_content">
<strong>Info:</strong> Sollte im Folgenden mal ein Befehl nicht funktionieren, weil die Shell &#8216;<strong>Kommando nicht gefunden.</strong>&#8216; zur&uuml;ckliefert, kann es sein, dass ich das entsprechende Programm bereits zwischendurch installiert, dies aber nicht dokumentiert habe, oder es bereits im Image von <a href="http://www.netcup.de/" target="_blank" class="liexternal">netcup</a> enthalten war (so bspw. der Fall bei &#8216;<strong>wget</strong>&#8216;).<br />
Einfach via &#8216;<strong>apt-get install</strong> <em>[Programmname]</em>&#8216; nachinstallieren, im Normalfall ist keine gesonderte Konfiguration erforderlich.
</div>
<div class="clearboth"></div>
</div>
<p><span id="more-665"></span></p>
<p>Wir loggen uns also als root ein und &auml;ndern zu allererst das Kennwort. Ich empfehle eine m&ouml;glichst lange Zeichenfolge mit Ziffern und Sonderzeichen, das &uuml;bliche eben.</p>
<pre class="pre"># passwd</pre>
<p>Der n&auml;chste Schritt sollte auf jeden Fall das Updaten des Systems sein. Vorher &uuml;berpr&uuml;fen wir noch die eingetragenen Repositories:</p>
<pre class="pre"># nano /etc/apt/sources.list</pre>
<p>Dort tragen wir, neben den von netcup bereits eingetragenen Mirrors noch den von <a href="http://www.dotdeb.org/" target="_blank" class="liexternal">Dotdeb</a> ein, den wir sp&auml;ter zum Beispiel f&uuml;r die Installation von nginx ben&ouml;tigen:</p>
<code class="code">deb http://debian.netcup.net/debian squeeze main
deb-src http://debian.netcup.net/debian squeeze main

deb http://packages.dotdeb.org stable all</code>
<p>Da die Pakete von Dotdeb signiert sind m&uuml;ssen wir unserem System noch den GPG-Key bekannt machen, wenn wir nicht bei jedem Aufruf von apt eine Fehlermeldung provozieren wollen:</p>
<pre class="pre"># wget http://www.dotdeb.org/dotdeb.gpg
# cat dotdeb.gpg | apt-key add -
# rm dotdeb.gpg</pre>
<p>Nun k&ouml;nnen wir via apt-get das System aktualisieren:</p>
<pre class="pre"># apt-get update &amp;&amp; apt-get upgrade</pre>
<p>Als n&auml;chstes k&uuml;mmern wir uns um ein paar Kleinigkeiten wie die Serverzeit und die Ausgabesprache der Shell:</p>
<pre class="pre"># dpkg-reconfigure tzdata</pre>
<p>Dort <strong>Europe</strong> und <strong>Berlin</strong> ausw&auml;hlen, jeweils mit <strong>[Enter]</strong> best&auml;tigen. Nun ist unsere Zeitzone eingestellt.</p>
<p>Eine automatisierte Zeiteinstellung k&ouml;nnen wir mit ntp erreichen. Bei Bedarf noch die Lieblingsserver in die ntp.conf eintragen:</p>
<pre class="pre"># apt-get install ntp
# nano /etc/ntp.conf</pre>
<code class="code">server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst</code>
<pre class="pre"># /etc/init.d/ntp restart</pre>
<p>Da wir alle sehr faul sind, h&auml;tten wir die Ausgabe der Shell noch gerne in deutscher Sprache:</p>
<pre class="pre"># apt-get install locales
# dpkg-reconfigure locales -plow</pre>
<p>Dort w&auml;hlen wir via <strong>[Leertaste]</strong> die Punkte <strong>de_DE ISO-8859-1</strong>, <strong>de_DE.UTF-8 UTF-8</strong> und <strong>de_DE@euro ISO-8859-15</strong> aus. Mit <strong>[Enter]</strong> best&auml;tigen und in der n&auml;chsten Auswahl f&uuml;r einen der drei als Standard entscheiden. Ich pers&ouml;nlich favorisiere UTF-8. Die &Auml;nderungen sind nach einem erneuten Login in die Shell sichtbar. Spart euch die M&uuml;he, haben wir eh gleich vor <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Jetzt wird es Zeit, dass wir unseren sshd absichern. Ein neuer Benutzer ohne root-Rechte ist hier der erste Schritt. Der Name des Users sollte vielleicht nicht unbedingt leicht zu erraten sein, um eine erste H&uuml;rde f&uuml;r Skriptkiddies einzubauen:</p>
<pre class="pre"># adduser [username]</pre>
<p>Diesen User machen wir nun zu dem einzigen, der sich &uuml;ber SSH einloggen darf. Dazu &auml;ndern oder f&uuml;gen wir folgende Zeilen in die &#8216;<strong>/etc/ssh/sshd_config</strong>&#8216; ein:</p>
<pre class="pre"># nano /etc/ssh/sshd_config</pre>
<p>Mit der ersten Zeile &auml;ndern wir den Port, &uuml;ber den wir SSH erreichen. Hier w&auml;hlt <a href="http://de.wikipedia.org/wiki/Port_(Protokoll)#Dynamic_Ports" target="_blank" rel="nofollow" class="liwikipedia">optimalerweise</a> einen zuf&auml;lligen zwischen <strong>49152</strong> und <strong>65535</strong> aus und <em>merkt ihn euch</em> f&uuml;r zuk&uuml;nftige Logins. Die zweite und dritte Zeile sorgen daf&uuml;r, dass sich der root-User nicht mehr und ausschlie&szlig;lich unser eben angelegter User einloggen kann:</p>
<code class="code">Port 52942
PermitRootLogin no
AllowUsers [username]</code>
<p>Nun noch den Daemon neu starten:</p>
<pre class="pre"># /etc/init.d/ssh restart</pre>
<p>Im Anschluss <strong>in einem neuen Terminalfenster</strong> den Login mit dem neuen User versuchen. So sperrt ihr euch nicht komplett aus, sollte es nicht gleich geklappt haben. Denkt daran, beim Login nun den neuen Port zu nutzen!<br />
Funktioniert der Login, kann im neuen Terminalfenster per &#8216;<strong>su</strong>&#8216; auf root gewechselt und das alte Fenster geschlossen werden.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/hgw30lQfg6Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/projekt-neuer-server-erste-schritte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/projekt-neuer-server-erste-schritte/</feedburner:origLink></item>
		<item>
		<title>Projekt: Neuer Server</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/kIH_QzpvHTI/</link>
		<comments>http://bonsailinse.net/projekt-neuer-server/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 00:43:14 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=643</guid>
		<description><![CDATA[Zu Weihnachten habe ich mir einen neuen Server geg&#246;nnt. Hoffnungslos overpowered f&#252;r das, was er aktuell leisten muss (ein paar Blogs und diverse andere Kleinigkeiten), aber im Sonderangebot Und in diesem Sinne habe ich jetzt einen guten Puffer f&#252;r zuk&#252;nftige, eventuell gr&#246;&#223;ere Projekte (immerhin will ich den Server jetzt ein Weilchen behalten, und nicht in ...]]></description>
			<content:encoded><![CDATA[<div class="note alignright">
<h4 class="note_title">Projekt: Neuer Server</h4>
<div class="note_content">
<strong>Teil 1: Einleitung</strong><br />
<a href="http://bonsailinse.net/projekt-neuer-server-erste-schritte" class="liinternal">Teil 2: Erste Schritte</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-nginx-php-fpm/" class="liinternal">Teil 3: nginx + php-fpm</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-mysql-phpmyadmin/" class="liinternal">Teil 4: MySQL + phpMyAdmin</a><br />
<a href="http://bonsailinse.net/projekt-neuer-server-postfix-dovecot/" class="liinternal">Teil 5: Postfix + Dovecot</a><br />
Teil 6: [in Planung]<br />
Teil 7: [in Planung]<br />
Teil 8: Der Abschluss
</div>
</div>
<p>Zu Weihnachten habe ich mir einen neuen Server geg&ouml;nnt. Hoffnungslos overpowered f&uuml;r das, was er aktuell leisten muss (ein paar Blogs und diverse andere Kleinigkeiten), aber im Sonderangebot <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Und in diesem Sinne habe ich jetzt einen guten Puffer f&uuml;r zuk&uuml;nftige, eventuell gr&ouml;&szlig;ere Projekte (immerhin will ich den Server jetzt ein Weilchen behalten, und nicht in dem Moment dann schon wieder umsteigen m&uuml;ssen).</p>
<p>Da ich jetzt also eh von dem alten zum neuen Server umziehen muss, nutze ich die Chance und installier mir mal alles von Grund auf.<br />
Kein vorgefertigtes Image von <a href="http://www.netcup.de/" target="_blank" class="liexternal">netcup</a>, die ja auch ganz nett sind, sondern eine minimal Installation ohne vorinstallierte Dienste wie Webserver oder Admin Control Panels.</p>
<p>Nachdem <a href="http://isp-control.net/" target="_blank" class="liexternal">ispCP</a> nicht mehr offiziell weiterentwickelt wird und ich keine Lust habe, auf ein Stable-Release von <a href="http://i-mscp.net/" target="_blank" class="liexternal">i-MSCP</a> zu warten, mir <a href="http://www.froxlor.org/" target="_blank" class="liexternal">Froxlor</a> nicht gef&auml;llt und ich gar nicht von <a href="http://www.parallels.com/de/products/plesk/" target="_blank" class="liexternal">Plesk</a> oder <a href="http://www.parallels.com/de/products/confixx/" target="_blank" class="liexternal">Confixx</a> anfangen m&ouml;chte, habe ich mich entschlossen kein Admin Control Panel mehr einzusetzen.<br />
Damit nehme ich mir zwar ein wenig Luxus was das Anlegen von Virtuellen Hosts angeht, aber all zu oft tut man das dann ja doch nicht und der Gewinn an Individualit&auml;t und Konfigurationsm&ouml;glichkeiten schl&auml;gt meine Faulheit.</p>
<p>Als Grundinstallation dient also ein <a href="http://www.debian.org/" target="_blank" class="liexternal">Debian</a> Squeeze (64 Bit), die einzigen Dienste, die beim Systemstart nun vorhanden sind, sind der <strong>sshd</strong> f&uuml;r den Zugriff &uuml;ber SSH, der <strong>rsyslogd</strong> als zentrale Logverwaltung und <strong>cron</strong>.</p>
<p>Als Ziel setze ich mir erstmal ein System mit den n&ouml;tigsten Diensten:</p>
<div class="note aligncenter">
<div class="note_content">
<a href="http://nginx.org/" target="_blank" class="liexternal">nginx</a> (mit <a href="http://php-fpm.org/" target="_blank" class="liexternal">php-fpm</a>) als Webserver<br />
<a href="http://www.mysql.com/" target="_blank" class="liexternal">MySQL</a> inklusive <a href="http://www.phpmyadmin.net/" target="_blank" class="liexternal">phpMyAdmin</a><br />
<a href="http://www.postfix.org/" target="_blank" class="liexternal">Postfix</a> und <a href="http://dovecot.org/" target="_blank" class="liexternal">Dovecot</a> f&uuml;r den ganzen eMail-Kram
</div>
</div>
<p>Dann wird weiter &uuml;berlegt, zum Beispiel bin ich mir noch nicht sicher, ob ich <a href="http://www.proftpd.org/" target="_blank" class="liexternal">ProFTP</a> f&uuml;r den Zugriff via FTP ben&ouml;tige. DNS und son Kram w&auml;re auch noch ne Idee, wie ich <a href="http://webdav.org/" target="_blank" class="liexternal">WebDAV</a> (oder einen ad&auml;quaten Ersatz) mit nginx umsetze, und sonst mal schauen was mir noch so einf&auml;llt. Erstmal k&uuml;mmere ich mich um die Sachen in der Liste oben.</p>
<p>.</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/kIH_QzpvHTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/projekt-neuer-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/projekt-neuer-server/</feedburner:origLink></item>
		<item>
		<title>Frohes 2012</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/2h79qhmJIIU/</link>
		<comments>http://bonsailinse.net/frohes-2012/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 16:32:14 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Lebendes]]></category>
		<category><![CDATA[Feiertag]]></category>
		<category><![CDATA[Silvester]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=639</guid>
		<description><![CDATA[&#8217;nuff said.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.de/search?hl=de&#038;client=safari&#038;rls=en&#038;q=frohes+neues&#038;gs_sm=e&#038;gs_upl=14833l16332l0l16479l12l8l0l3l3l0l201l1217l1.6.1l11l0&#038;bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&#038;biw=1440&#038;bih=699&#038;um=1&#038;ie=UTF-8&#038;tbm=isch&#038;source=og&#038;sa=N&#038;tab=wi&#038;ei=djj_TprlN8iCOpyi9J4B" target="_blank" class="ligoogle">&#8217;nuff said.</a></p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/2h79qhmJIIU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/frohes-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/frohes-2012/</feedburner:origLink></item>
		<item>
		<title>Längst vergessenes</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/f-BNrYpaoz4/</link>
		<comments>http://bonsailinse.net/laengst-vergessenes/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 02:05:58 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Mediales]]></category>
		<category><![CDATA[StudiVZ]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=624</guid>
		<description><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2011/08/studivz_logo.png" class="attachment-post-thumbnail wp-post-image" alt="studivz_logo" title="studivz_logo" />Man kann sich mit etwas eine halbe Ewigkeit nicht mehr besch&#228;ftigt haben, irgendwann kriecht es dann doch aus der Versenkung und erschleicht sich Aufmerksamkeit. So auch StudiVZ. Vor Jahren mal dort angemeldet weil man dort die Kontakte der Schulzeit pflegen konnte, wurde es doch relativ z&#252;gig durch Facebook abgel&#246;st. Also den Account im VZ versauern ...]]></description>
			<content:encoded><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2011/08/studivz_logo.png" class="attachment-post-thumbnail wp-post-image" alt="studivz_logo" title="studivz_logo" /><p>Man kann sich mit etwas eine halbe Ewigkeit nicht mehr besch&auml;ftigt haben, irgendwann kriecht es dann doch aus der Versenkung und erschleicht sich Aufmerksamkeit.</p>
<p>So auch <strong>StudiVZ</strong>. Vor Jahren mal dort angemeldet weil man dort die Kontakte der Schulzeit pflegen konnte, wurde es doch relativ z&uuml;gig durch <a href="https://www.facebook.com/pages/Bonsailinse/213015145385759" target="_blank" class="liexternal">Facebook</a> abgel&ouml;st. Also den Account im VZ versauern lassen.<br />
L&ouml;schen war damals noch doof, weil die Kontakte noch nicht alle bei FB zu finden waren, danach hab ich das Teilchen schlicht und einfach vergessen.</p>
<p>Aber was passiert heute? Ich krieg eine eMail von denen 0.o Soweit ich mich erinnern kann, habe ich noch nie eine bekommen.<br />
Aber klar, man merkt im VZ auch, dass es bergab geht, und versucht die Aufmerksamkeit der Benutzer mit einem letzten Aufb&auml;umen auf sich zu lenken.<br />
Also haben die jetzt so <del datetime="2011-08-31T01:45:50+00:00">ein tolles Feature</del><ins datetime="2011-08-31T01:45:50+00:00">eine nervige Bel&auml;stigung</ins> eingef&uuml;hrt, bei dem man, sch&auml;tzungsweise w&ouml;chentliche, Statusupdates empf&auml;ngt.<br />
Nat&uuml;rlich standardm&auml;&szlig;ig f&uuml;r jeden User aktiviert, so dass ich mich jetzt dort einloggen (erstmal das Kennwort erraten >.<) und die Benachrichtigungen manuell ausstellen muss.<span id="more-624"></span></p>
<p>Das ist &uuml;brigens das, was mich am meisten aufregt. Features, die einen mit Benachrichtigungen penetrieren, bei Implementierung ins System standardm&auml;&szlig;ig f&uuml;r alle zu aktivieren. Wenn ich das will, reicht doch eine Ank&uuml;ndigung auf deren Startseite, dass diese Funktion nun vorhanden ist. Aber haja, damit w&auml;ren ja die abtr&uuml;nnigen User nicht erreicht worden *seufz*</p>
<span class="image_styled aligncenter"><span class="image_frame" style="width:630px;height:630px"><a class="image_size_Full image_no_link" title="StudiVZ - Mail" href="#"><img width="630" height="630"alt="StudiVZ - Mail" src="http://bonsailinse.net/wp-content/themes/bonsailinse/includes/timthumb.php?src=http://mediathek.bonsailinse.net/2011/08/studivz.png&amp;h=630&amp;w=630&amp;zc=0&q=100" /></a></span><img class="image_shadow" width="632" src="http://bonsailinse.net/wp-content/themes/bonsailinse/images/image_shadow.png"/></span><p>Dabei geht der Schuss, jedenfalls bei mir, nach hinten los: Ich werde mir jetzt die M&uuml;he machen, alle meine Kontakte bei Facebook zu suchen um sie dort zu adden. Wer dort nicht zu finden ist, wird von mir im VZ angeschrieben. Dank des tollen neuen Features kann ich ja jetzt relativ sicher sein, dass sie diese Nachricht auch erhalten werden.</p>
<p>Ich nutze auch gleich mal die Gelegenheit, ein paar Leute auszusortieren. Bei manchen lohnt ein Mitschleppen des Kontaktes einfach nicht mehr, weil man sich eh nie schreibt und sich gegenseitig auch nicht wichtig genug ist. So l&auml;uft es nunmal.</p>
<p>Achjo: Wieso genau die Mail doppelt und nachts um halb 4 ankam, kann ich mir &uuml;brigens auch nicht erkl&auml;ren 0.o</p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/f-BNrYpaoz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/laengst-vergessenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/laengst-vergessenes/</feedburner:origLink></item>
		<item>
		<title>Humble Bundle [Gewinnspiel] [2x Update]</title>
		<link>http://feedproxy.google.com/~r/bonsailinse/~3/8xZUbdSeuWw/</link>
		<comments>http://bonsailinse.net/humble-bundle-gewinnspiel/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 14:20:48 +0000</pubDate>
		<dc:creator>Bonsailinse</dc:creator>
				<category><![CDATA[Verlorenes]]></category>
		<category><![CDATA[Gewinnspiel]]></category>
		<category><![CDATA[Humble Indie Bundle]]></category>

		<guid isPermaLink="false">http://bonsailinse.net/?p=542</guid>
		<description><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2011/08/shelf.png" class="attachment-post-thumbnail wp-post-image" alt="shelf" title="shelf" />Vor kurzem startete das Humble Bundle in die dritte Runde. Zu einem selbst bestimmbaren Preis konnte man sich urspr&#252;nglich f&#252;nf Spiele im Gesamtwert von circa $50 sichern. Auf halber Strecke der Laufzeit der Aktion gab es dann noch zwei Boni-Spiele oben drauf, also insgesamt sieben Spiele. Sehr sch&#246;n finde ich, dass man, bezahlte man mehr ...]]></description>
			<content:encoded><![CDATA[<img width="960" height="440" src="http://mediathek.bonsailinse.net/2011/08/shelf.png" class="attachment-post-thumbnail wp-post-image" alt="shelf" title="shelf" /><div class="framed_box rounded">
<div class="framed_box_content" style="background-color:#a0ffb5;">
<strong>Hooray!</strong> Wir haben einen Gewinner!<br />
Nochmals Entschuldigung f&uuml;r die Verz&ouml;gerung, deswegen auch jetzt keine langen Reden, der Gewinner des Gewinnspieles hei&szlig;t <a href="http://bonsailinse.net/humble-bundle-gewinnspiel/#comment-352" class="liinternal">Thermi</a>! Er war der erste, der einen Kommentar hinterlassen hat und damit freut mich das besonders! Ich nehme dann jetzt direkt Kontakt mit Thermi auf und w&uuml;nsche ihm ein spa&szlig;iges Wochenende beim Antesten der ganzen Spiele <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Vielen Dank f&uuml;r eure Teilnahme und viel Gl&uuml;ck beim n&auml;chsten Mal!</p>
<div class="clearboth"></div>
</div>
</div>
<div class="info">
<div class="message_box_content">
<strong>Update:</strong> Verzeiht mir, aber ich habe gar nicht daran gedacht, dass meine Freundin morgen Geburtstag hat (also schon daran gedacht, nur das Datum irgendwie nicht mit dem Gewinnspiel hier verkn&uuml;pft).<br />
Ich habe wegen Vorbereitungen der Fete leider absolut keine Zeit zum Auslosen des Gewinners, deswegen seht es mir bitte nach. Ich verl&auml;nger hiermit die Dauer des Gewinnspieles bis Ende August, mit der Garantie, dass am 1. September ein Gewinner feststehen wird. Vielen Dank f&uuml;r euer Verst&auml;ndnis!
</div>
<div class="clearboth"></div>
</div>
<p>Vor kurzem startete das <a href="http://www.humblebundle.com/" target="_blank" class="liexternal">Humble Bundle</a> in die dritte Runde.<br />
Zu einem selbst bestimmbaren Preis konnte man sich urspr&uuml;nglich <strong>f&uuml;nf Spiele</strong> im Gesamtwert von circa <strong>$50</strong> sichern. Auf halber Strecke der Laufzeit der Aktion gab es dann noch zwei Boni-Spiele oben drauf, also <strong>insgesamt sieben Spiele</strong>.</p>
<p>Sehr sch&ouml;n finde ich, dass man, bezahlte man mehr als den Durchschnittspreis, alle Spiele aus dem <strong>Humble Bundle #2</strong> als Geschenk erhielt:</p>
<span class="image_styled aligncenter"><span class="image_frame" style="width:630px;height:162px"><a class="image_size_full image_no_link" title="" href="#"><img width="630" height="162"alt="" src="http://bonsailinse.net/wp-content/themes/bonsailinse/includes/timthumb.php?src=http://mediathek.bonsailinse.net/2011/08/humblebonus.png&amp;h=162&amp;w=630&amp;zc=0&q=100" /></a></span><img class="image_shadow" width="632" src="http://bonsailinse.net/wp-content/themes/bonsailinse/images/image_shadow.png"/></span><p>Insgesamt wurde das Bundle #3 <strong>372&#8217;380</strong> mal verkauft und erzielte knapp <strong>2,2 Mio Dollar</strong>.<br />
Die jeweiligen Ausgaben konnten dabei vom K&auml;ufer an Entwickler und Charity-Vereine verteilt werden.<br />
Ich habe damals bereits das <strong>Humble Frozenbyte Bundle</strong> gekauft und auch dieses mal wieder zugegriffen.</p>
<p><span class="icon_text icon_user red">F&uuml;r euch habe ich das Bundle einfach nochmal gekauft, und kann einen von euch hiermit mit insgesamt <strong>13 Spielen</strong> gl&uuml;cklich machen. Super Deal, ihr bekommt Spiele und ich spende daf&uuml;r ein wenig =)</span><br />
<span id="more-542"></span></p>
<div class="divider"></div>
<span class="image_styled aligncenter"><span class="image_frame" style="width:630px;height:183px"><a class="image_size_full image_no_link" title="" href="#"><img width="630" height="183"alt="" src="http://bonsailinse.net/wp-content/themes/bonsailinse/includes/timthumb.php?src=http://mediathek.bonsailinse.net/2011/08/humble_specs.png&amp;h=183&amp;w=630&amp;zc=0&q=100" /></a></span><img class="image_shadow" width="632" src="http://bonsailinse.net/wp-content/themes/bonsailinse/images/image_shadow.png"/></span><p>Die Spiele sind komplett <strong>Plattform-unabh&auml;ngig</strong>, also spielbar auf Linux, Mac OS X und Windows. Es gibt bei keinem der Spiele einen <strong>Kopierschutz</strong>, das hei&szlig;t ihr k&ouml;nnt das Spiel so oft installieren wie ihr wollt. Zus&auml;tzlich bekommt ihr einen Key f&uuml;r <a href="http://store.steampowered.com/" target="_blank" class="liexternal">Steam</a> und/oder <a href="http://www.desura.com/" target="_blank" class="liexternal">Desura</a>, um die Spiele euren Bibliotheken hinzuzuf&uuml;gen.</p>
<p>Folgende Spieletitel sind enthalten:</p>
<div class="one_third"><a href="http://www.crayonphysics.com/" target="_blank" class="liexternal">Crayon Physics Deluxe</a><br />
<a href="http://www.cogsgame.com/" target="_blank" class="liexternal">Cogs</a><br />
<a href="http://thelettervsixtim.es/" target="_blank" class="liexternal">VVVVVV</a><br />
<a href="http://www.koshutin.com/" target="_blank" class="liexternal">Hammerfight</a><br />
<a href="http://www.andyetitmoves.net/" target="_blank" class="liexternal">And Yet It Moves</a></div>
<div class="one_third"><a href="http://www.steel-storm.com/" target="_blank" class="liexternal">Steel Storm</a><br />
<a href="http://blendogames.com/atomzombiesmasher/" target="_blank" class="liexternal">Atom Zombie Smasher</a></div>
<div class="one_third last"><a href="http://www.braid-game.com/" target="_blank" class="liexternal">Braid</a><br />
<a href="http://www.cortexcommand.com" target="_blank" class="liexternal">Cortex Command</a><br />
<a href="http://machinarium.net/" target="_blank" class="liexternal">Machinarium</a><br />
<a href="http://www.hemispheregames.com/" target="_blank" class="liexternal">Osmos</a><br />
<a href="http://www.puppygames.net/revenge-of-the-titans/" target="_blank" class="liexternal">Revenge of the Titans</a></div>
<div class="clearboth"></div>
<div class="divider"></div>
<p><span class="icon_text icon_id red">Das <strong>Gewinnspiel</strong> findet ab sofort statt und l&auml;uft eine Woche. Ich w&uuml;rde euch bitten, nur teilzunehmen, wenn ihr nicht bereits in den Genuss gekommen seid, das Bundle gekauft zu haben <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></p>
<p>Ich werde <del datetime="2011-08-26T13:30:58+00:00">nach einer Woche, also</del> am <strong><del datetime="2011-08-26T13:30:58+00:00">26.08.2011</del> <ins datetime="2011-08-26T13:30:58+00:00">01.09.2011</ins></strong>, einen Gewinner auslosen.<br />
Dabei gilt folgendes, um am Gewinnspiel teilzunehmen:</p>
<div class="framed_box rounded">
<div class="framed_box_content" style="color:#030068">
<ul>
<li>Schreibt einen <strong>Kommentar</strong> unter diesen Artikel und erhaltet so <strong>ein Los.</strong></li>
<li><strong>Twittert</strong> &uuml;ber dieses Gewinnspiel, erw&auml;hnt dabei mich (@Bonsailinse) und den Link zu diesem Artikel (<a href="http://blinse.net/humble" target="_blank" class="liinternal">http://blinse.net/humble</a>) (der Twitterbutton unten und der dort erzeugte Link z&auml;hlt auch) und erhaltet so <strong>ein Los</strong>.</li>
<li><strong>Verlinkt</strong> diesen Artikel auf <a href="http://facebook.com" target="_blank" class="liexternal">Facebook</a> und/oder <a href="http://plus.google.com" target="_blank" class="ligoogle">Google+</a> und erhaltet so jeweils <strong>ein Los</strong>.</li>
<li><strong>Bloggt</strong> &uuml;ber dieses Gewinnspiel, nat&uuml;rlich inklusive Link, und erhaltet so <strong>drei Lose</strong>.</li>
</ul>
<p><em>Ich freue mich nat&uuml;rlich auch, wenn ihr Fan auf meiner <a href="https://www.facebook.com/pages/Bonsailinse/213015145385759" target="_blank" class="liexternal">Facebook-Fanseite</a> werdet. Daf&uuml;r gibt es allerdings kein Los <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </em></p>
<p><strong>Wichtig</strong>: Wenn ihr auf Facebook/Google+ verlinkt m&uuml;sst ihr zus&auml;tzlich noch einen Kommentar unter diesen Artikel setzen, in dem ihr auf eure Statusmeldungen verlinkt.<br />
Achtet dabei darauf, dass die Statusmeldungen <strong>&ouml;ffentlich sichtbar</strong> sind (also auf Facebook auch f&uuml;r eure nicht-Freunde und auf Google+ &#8220;&ouml;ffentlich&#8221;, nicht nur eure Circle).<br />
F&uuml;r die M&uuml;hen, einen Kommentar hier zu schreiben, erhaltet ihr damit auch automatisch das oben erw&auml;hnte <strong>Los</strong> f&uuml;r Kommentare <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Doppelte Kommentare, Tweets, Statusmeldungen und Blogposts werden nat&uuml;rlich trotzdem nur <strong>einfach</strong> gez&auml;hlt. Machbar sind also maximal <strong>sieben Lose</strong>.</p>
<div class="clearboth"></div>
</div>
</div>
<ul>
<li>Das Gewinnspiel endet am <strong><del datetime="2011-08-26T13:30:58+00:00">Donnerstag, den 25.08.2011,</del><ins datetime="2011-08-26T13:30:58+00:00">Mittwoch, den 31.08.2011</ins> 23:59:59 Uhr</strong>.</li>
<li>Der Gewinner wird ausgelost und anschlie&szlig;end von mir kontaktiert.<br />
Bei Kommentaren hier im Blog sollte also eine <strong>g&uuml;ltige eMail-Adresse</strong> angegeben werden <img src='http://bonsailinse.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Der Gewinner wird zus&auml;tzlich auf meinem Blog namentlich erw&auml;hnt.</li>
<li><em>Der Rechtsweg ist selbstverst&auml;ndlich ausgeschlossen.</em></li>
</ul>
<div class="divider"></div>
<p><span class="icon_text icon_tag gray"><small>S&auml;mtliche Grafiken sind Eigentum der jeweiligen Spieleentwickler bzw. <a href="http://humblebundle.com/" target="_blank" class="liexternal">humblebundle.com</a> und unterliegen entsprechendem Copyright.</small></span></p>
<img src="http://feeds.feedburner.com/~r/bonsailinse/~4/8xZUbdSeuWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bonsailinse.net/humble-bundle-gewinnspiel/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://bonsailinse.net/humble-bundle-gewinnspiel/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.606 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-15 16:18:16 --><!-- Compression = gzip -->

