<?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 &#187; Linux</title>
	<atom:link href="http://www.zero0ne.de/category/linux/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>Wed, 08 Feb 2012 14:49:24 +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>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>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>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>virt-install.sh</title>
		<link>http://www.zero0ne.de/2011/06/virt-install-sh/</link>
		<comments>http://www.zero0ne.de/2011/06/virt-install-sh/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 21:08:15 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[virt-install]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2195</guid>
		<description><![CDATA[Hier mal ein kleines nützliches Skript zum erstellen von KVM-VMs. Beim Aufrufen lässt sich der Name, der RAM und die Festplattengrösse setzen. Der Rest wird vorbelegt. Dann brauch mann nicht immer soviel tippen und kann einfach ein Skript auffrufen. So sich dann vllt auch einen Mechanismus für &#8220;on-demand&#8221; VM deployment bauen. Hier nun also das Skript: #!/bin/bash NAME=$1 RAM=$2 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hier mal ein kleines nützliches Skript zum erstellen von KVM-VMs. Beim Aufrufen lässt sich der Name, der RAM und die Festplattengrösse setzen. Der Rest wird vorbelegt. Dann brauch mann nicht immer soviel tippen und kann einfach ein Skript auffrufen. So sich dann vllt auch einen Mechanismus für &#8220;on-demand&#8221; VM deployment bauen.</p>
<p><span id="more-2195"></span></p>
<p>Hier nun also das Skript:</p>
<blockquote><p>#!/bin/bash<br />
NAME=$1<br />
RAM=$2<br />
HDD=$3</p>
<p>&nbsp;</p>
<p>virt-install &#8211;connect qemu:///system -n $NAME -r $RAM -vcpus=1 \<br />
-f /var/lib/libvirt/images/$NAME.img -s $HDD \<br />
&#8211;network=bridge:vibr0  &#8211;vnc &#8211;accelerate -v \<br />
-c /var/lib/libvirt/images/ISOs/Fedora-15-x86_64-DVD.iso \<br />
&#8211;os-type=linux &#8211;noautoconsole</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/virt-install-sh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>danbooru auf Ubuntu 10.4 LTS installieren</title>
		<link>http://www.zero0ne.de/2011/04/danbooru-auf-ubuntu-10-4-lts-installieren/</link>
		<comments>http://www.zero0ne.de/2011/04/danbooru-auf-ubuntu-10-4-lts-installieren/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 14:08:09 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[10.4]]></category>
		<category><![CDATA[danbooru]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[LTS]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Skript]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[unicorn]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2070</guid>
		<description><![CDATA[Wer ein wenig in der Anime-Szene unterwegs ist wird die zahlreichen Image-Boards kennen. Ein bekanntes und doch recht beliebtes System ist dabei Danbooru (link). Danbooru ist Community und System zu gleich. Es ist sehr umfangreich und bietet viele funktionen, wie z.B. automatisches Rezise von grossen Bildern. Doch gilt es auch als sehr schwer zu installieren. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Wer ein wenig in der Anime-Szene unterwegs ist wird die zahlreichen Image-Boards kennen. Ein bekanntes und doch recht beliebtes System ist dabei Danbooru (<a href="http://danbooru.donmai.us">link</a>). Danbooru ist Community und System zu gleich. Es ist sehr umfangreich und bietet viele funktionen, wie z.B. automatisches Rezise von grossen Bildern. Doch gilt es auch als sehr schwer zu installieren. Es ist nämlich keine simple PHP-Anwendung die man in sein Doc-Root kopiert und dann starten kann. <span id="more-2070"></span>Nein, Danbooru baut auf Rails auf und bietet dadurch eine Menge mehr. Doch leider ist es etwas schlecht dokumentiert. Und was Dokumentiert ist, ist veraltet. Ich wollte nun den aktuelle Trunk auf dem aktuellen Ubuntu LTS installieren. Das Klappte an sich von der installation her auch. Doch gab es dann im anschluss ein DB Problem, welches ich bis jetzt noch nicht lösen konnte. Mit Version 1.16.0 von Danbooru klappt allerdings alles! So lässt es sich ohne Probleme auf Ubuntu installieren. Mann muss nur darauf achten, das man keine zu Neue Rails-Version nimmt, da es sonst wieder knallt. Ich hab nun alles mit Rails 2.2.2 installiert. Der aufbau sieht dabei so aus, das Ich danbooru mit Rails betreibe, als Webserver Unicorn in Verbindung mit memcache nehme und das ganze über einen Nginx-Proxy laufen lasse.</p>
<p style="text-align: justify;">Damit das alles ein wenig leichter zu installieren ist, hab ich mich an dem veralteten INSTALL.debian Skript von Danbooru orientiert und hier und da was ergänz oder abgeändert.</p>
<p>#### http://tech.tomgoren.com/archives/245<br />
#### http://animebsd.net/archives/2528<br />
#### http://trac.donmai.us/browser/danbooru/trunk/INSTALL.debian</p>
<p>als Download: <a href="http://www.zero0ne.de/blog/wp-content/uploads/2011/04/INSTALL.debian.txt">INSTALL.debian</a></p>
<p>Hier das install script:<br />
<code>#!/bin/bash</code></p>
<p><code>#### http://tech.tomgoren.com/archives/245<br />
#### http://animebsd.net/archives/2528<br />
#### http://trac.donmai.us/browser/danbooru/trunk/INSTALL.debian</code></p>
<p><code>#### root@danbooru:/var/www/danbooru# vim app/models/post_methods/file_methods.rb<br />
#### sftp albert maskieren</p>
<p>if [ $USER != root ] ; then<br />
echo "You must run this script as root"<br />
exit 1<br />
fi</p>
<p>echo "Danbooru Install"<br />
echo "This script will install Ruby, Rails, PostgreSQL, Unicorn, and Nginx. By the end,"<br />
echo "you should be able to connect to the server and create an account."<br />
echo<br />
echo "It will create a new user called danbooru which will run the Danbooru"<br />
echo "processes. It will download the latest trunk copy or v1.16.0 and install it in"<br />
echo "/var/www/danbooru. It will run unicorn, starting on port 8050"<br />
echo<br />
echo<br />
echo -n "Enter the hostname for this server (ex: danbooru.donmai.us): "<br />
read hostname</p>
<p>if [ -z $hostname ] ; then<br />
echo "Must enter a hostname"<br />
exit 1<br />
fi</p>
<p>echo -n "Enter a name for the site (default: Danbooru): "<br />
read sitename</p>
<p>if [ -z $sitename ] ; then<br />
sitename=Danbooru<br />
fi</p>
<p>echo -n "Enter a path for danbooru (default: /var/www/danbooru): "<br />
read danboorupath</p>
<p>if [ -z $danboorupath ] ; then<br />
danboorupath="/var/www/danbooru"<br />
fi</p>
<p>echo -n "Which danbooru version? [trunk, 1.16.0, 1.18.0]"<br />
read danbooruversion</p>
<p>if [ -z $danbooruversion ] ; then<br />
danbooruversion="1.16.0"<br />
fi</p>
<p># Install packages<br />
echo "install required packages via apt-get"<br />
apt-get -qq -y install sudo gcc g++ make libreadline5-dev zlib1g-dev flex bison libgd2-noxpm libgd2-noxpm-dev bzip2 postgresql-8.4 postgresql-contrib-8.4 libpq-dev ruby ruby1.8-dev ri irb rdoc rubygems ragel memcached libmemcache-dev subversion nginx rake libopenssl-ruby libxml2-dev libxslt-dev byobu vim htop</p>
<p># Install Ruby gems<br />
echo "install Ruby/Rails/Unicorn"</p>
<p>gem install hoe --version=2.2.0 --no-ri --no-rdoc</p>
<p>for i in postgres diff-lcs html5 unicorn memcache-client aws-s3 json mechanize net-sftp sys-cpu ; do gem install $i --no-ri --no-rdoc ; done</p>
<p>gem install rails --version=2.2.2 --no-ri --no-rdoc</p>
<p># Create user account<br />
echo "create danbooru user, allow db access"</p>
<p>useradd -m danbooru<br />
PG_HBA_FILE="/etc/postgresql/8.4/main/pg_hba.conf"<br />
echo "local    all         postgres,danbooru                              trust" &gt; $PG_HBA_FILE<br />
echo "host     all         postgres,danbooru          127.0.0.1/32        trust" &gt;&gt; $PG_HBA_FILE</p>
<p>if [ -f /etc/init.d/postgresql-8.4 ]; then /etc/init.d/postgresql-8.4 restart; else /etc/init.d/postgresql restart; fi</p>
<p># Install Danbooru<br />
cd /var/www</p>
<p>echo "installing danbooru source"</p>
<p>case "$danbooruversion" in<br />
1.16.0)<br />
echo "installing version: 1.16.0"<br />
svn export svn://donmai.us/danbooru/tags/danbooru-1.16.0 danbooru<br />
;;<br />
1.18.0)<br />
echo "installing version: 1.18.0"<br />
svn export svn://donmai.us/danbooru/tags/danbooru-1.18.0 danbooru<br />
;;<br />
trunk)<br />
echo "installing version: trunk"<br />
svn export svn://donmai.us/danbooru/trunk danbooru<br />
;;<br />
tar16)<br />
echo "deflating tgz danbooru-1.16.0.tgz"<br />
tar xfz /tmp/danbooru-1.16.0.tgz -C /var/www<br />
;;<br />
tar18)<br />
echo "deflating tgz danbooru-1.18.0.tgz"<br />
tar xfz /tmp/danbooru-1.18.0.tgz -C /var/www<br />
;;<br />
esac</p>
<p>chown -R danbooru:danbooru danbooru<br />
cd danbooru<br />
mkdir -p public/data/sample<br />
cd config<br />
cp database.yml.example database.yml<br />
cp local_config.rb.example local_config.rb<br />
sed -i -e "s/DAN_HOSTNAME/$hostname/g" local_config.rb<br />
sed -i -e "s/DAN_SITENAME/$sitename/g" local_config.rb<br />
cd ../lib/danbooru_image_resizer<br />
ruby extconf.rb<br />
make<br />
cd ../..</p>
<p>### Database anlegen<br />
echo "installing danbooru database"</p>
<p>sudo -u postgres createuser -s danbooru<br />
sudo -u danbooru createdb danbooru<br />
sudo -u danbooru createdb danbooru_dev<br />
sudo -u danbooru createdb danbooru_test<br />
sudo -u danbooru psql danbooru &lt; db/postgres.sql<br />
sudo -u danbooru psql danbooru_dev &lt; db/postgres.sql<br />
sudo -u danbooru psql danbooru_test &lt; db/postgres.sql if [ "$danbooruversion" = "1.18.0" || "$danbooruversion" = "trunk" ]; then 	echo "initialising database" 	 	script/db-init.sh 	script/db-init.sh 	script/db-init.sh 	 	#### app/controller/application_controller in application umbenenen 	mv app/controllers/application_controller.rb app/controllers/application.rb 	#### config/envirnment.rb anpassen. ruby version rausnehmen 	sed -i -e "/^RAILS_GEM_VERSION/d" config/environment.rb 	### middle ware entfernen 	sed -i -e "/^config.middleware.use/d" config/environments/development.rb fi echo "initialising production database" sudo -u danbooru RAILS_ENV=production rake db:migrate # Set up nginx echo "generating nginx danbooru conf" nginx_danbooru_conf="/etc/nginx/sites-enabled/danbooru.conf" echo 'server {' &gt; $nginx_danbooru_conf<br />
echo '  listen 80;' &gt;&gt; $nginx_danbooru_conf<br />
echo "  server_name $hostname;" &gt;&gt; $nginx_danbooru_conf<br />
echo '  location ~ /\.svn { deny all; }' &gt;&gt; $nginx_danbooru_conf<br />
echo '  location / {' &gt;&gt; $nginx_danbooru_conf<br />
echo "    root $danboorupath/public;" &gt;&gt; $nginx_danbooru_conf<br />
echo '    try_files $uri /maintenance.html @danbooru;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    client_max_body_size 30m;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    expires max;' &gt;&gt; $nginx_danbooru_conf<br />
echo '  }' &gt;&gt; $nginx_danbooru_conf<br />
echo '  location @danbooru {' &gt;&gt; $nginx_danbooru_conf<br />
echo '    proxy_set_header X-Real-IP $remote_addr;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    proxy_set_header Host $http_host;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    proxy_redirect off;' &gt;&gt; $nginx_danbooru_conf<br />
echo '    proxy_pass http://127.0.0.1:8050;' &gt;&gt; $nginx_danbooru_conf<br />
echo '  }' &gt;&gt; $nginx_danbooru_conf<br />
echo '}' &gt;&gt; $nginx_danbooru_conf</p>
<p>/etc/init.d/nginx restart</p>
<p>### unicorn config file<br />
echo "generating unicorn danoobru conf"</p>
<p>mkdir /etc/unicorn<br />
unicorn_conf="/etc/unicorn/danbooru.conf"<br />
echo "RAILS_ROOT=$danboorupath" &gt; $unicorn_conf<br />
echo "RAILS_ENV=production" &gt;&gt; $unicorn_conf</p>
<p>### unicorn danbooru-config file<br />
echo "generating danbooru unicorn conf"</p>
<p>danbooru_unicorn_conf="$danboorupath/config/unicorn.rb"<br />
echo "app_path = \"$danboorupath\"" &gt; $danbooru_unicorn_conf<br />
echo -n &gt;&gt; $danbooru_unicorn_conf<br />
echo 'listen 8050' &gt;&gt; $danbooru_unicorn_conf<br />
echo 'worker_processes 2' &gt;&gt; $danbooru_unicorn_conf<br />
echo 'pid "#{app_path}/tmp/pids/unicorn.pid"' &gt;&gt; $danbooru_unicorn_conf<br />
echo 'stderr_path "#{app_path}/log/unicorn.log"' &gt;&gt; $danbooru_unicorn_conf<br />
echo 'stdout_path "#{app_path}/log/unicorn.log"' &gt;&gt; $danbooru_unicorn_conf</p>
<p>### unicron init skript<br />
echo "downloading unicorn init skript"</p>
<p>unicorn_rails_path="/var/lib/gems/1.8/bin/unicorn_rails"<br />
cd /etc/init.d/<br />
wget http://tech.tomgoren.com/wp-content/uploads/unicorn_init.gz<br />
gunzip unicorn_init.gz<br />
sed -i -e "s|/usr/local/bin/unicorn_rails|$unicorn_rails_path|g" unicorn_init<br />
chmod +x unicorn_init<br />
/etc/init.d/unicorn_init start</p>
<p></code></p>
<p>&nbsp;</p>
<p><code>echo<br />
echo<br />
echo<br />
echo "I'm done!"<br />
echo "You should probably set the password for the danbooru account (run passwd danbooru)."</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/04/danbooru-auf-ubuntu-10-4-lts-installieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tomcat: too many open files</title>
		<link>http://www.zero0ne.de/2011/02/tomcat-too-many-open-files/</link>
		<comments>http://www.zero0ne.de/2011/02/tomcat-too-many-open-files/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 08:50:04 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[open files]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2004</guid>
		<description><![CDATA[Dieses Problem tritt häufig auf, wenn man mehrere Tomcats unter einen unprivilegierten Benutzer laufen lässt. Dies liegt daran, das für diese Benutzer strengere Regeln gelten, was das öffnen von Dateien und belegen von System-Ressourcen angeht. Doch kann man dies relativ leicht beheben. Und zwar in dem man das „open file“- Limit erhöht. Normalerweise liegt dies [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Dieses Problem tritt häufig auf, wenn man mehrere Tomcats unter einen unprivilegierten Benutzer laufen lässt. Dies liegt daran, das für diese Benutzer strengere Regeln gelten, was das öffnen von Dateien und belegen von System-Ressourcen angeht. Doch kann man dies relativ leicht beheben. Und zwar in dem man das „<strong>open file</strong>“- Limit erhöht. Normalerweise liegt dies bei 1024 Dateien pro Prozess die gleichzeitig geöffnet sein dürfen. Zu erst kann man den aktuellen Stand einmal überprüfen mit „<strong>lsof |grep java|wc -l</strong>“. Damit sollte einen die Gesamtanzahl aller offen Dateien für die Prozesse von Java ausgegeben werden. Jetzt kann man das „<strong>open file</strong>“-Limit auf zwei Arten versuchen zu erhöhen. Einmal mit den sogenannten „<strong>soft-limits</strong>“ in der Datei „<strong>/etc/security/limits.conf</strong>“. Dort könnte man nun einmal „<strong>* soft nofile 65535</strong>“ und einmal „<strong>* hard nofile 65535</strong>“ eintragen. Allerdings zeigte sich, das dies auf einigen Server nicht zum gewünschten Ergebnis führte. Deswegen wird die zweite Lösung favorisiert. Diese besteht darin über den root-Benutzer mit „<strong>ulimit</strong>“ das Limit zu erhöhen. mit „<strong>ulimit -a</strong>“ kann man sich die aktuellen Limits ansehen. Mit „<strong>ulmit -n &lt;Zahl&gt;</strong>“ kann man das Limit für die geöffneten Dateien erhöhen. Gibt man es nur einmal auf der Konsole ein, gilt die nur temporär. Um dies auf Dauer zu übernehmen schreibt man es entweder in die „<strong>.bashrc</strong>“ von root oder in die „<strong>/etc/rc.local</strong>“.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/02/tomcat-too-many-open-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mailserver Aufbau (grob)</title>
		<link>http://www.zero0ne.de/2011/02/mailserver-aufbau-grob/</link>
		<comments>http://www.zero0ne.de/2011/02/mailserver-aufbau-grob/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 09:23:38 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[clam]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[rbl]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=1974</guid>
		<description><![CDATA[Hier mal ein Schema was ich vor einige Zeit erstellt habe um einen Mailserver zu erklären. Ist vllt nicht ganz richtig, aber es hatte seinen Zweck erfüllt.]]></description>
			<content:encoded><![CDATA[<p>Hier mal ein Schema was ich vor einige Zeit erstellt habe um einen Mailserver zu erklären. Ist vllt nicht ganz richtig, aber es hatte seinen Zweck erfüllt.</p>
<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>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/02/mailserver-aufbau-grob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome für Ubuntu/Debian</title>
		<link>http://www.zero0ne.de/2009/11/google-chrome-fuer-ubuntu-debian/</link>
		<comments>http://www.zero0ne.de/2009/11/google-chrome-fuer-ubuntu-debian/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 00:19:41 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=1145</guid>
		<description><![CDATA[Lange hab ich mich geärgert das es Google Chrome nur für Windows gibt. Wollt den auch auf meinen Linux laufen haben. Doch offizielle von Google gabs da nur ne warteliste, wo man sich eintragen konnte.  Nun hab ich gestern in der NFSW-Wave gelesen, das es bereits eine Version für Linux gibt die auch sehr gut [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Lange hab ich mich geärgert das es Google Chrome nur für Windows gibt. Wollt den auch auf meinen Linux laufen haben. Doch offizielle von Google gabs da nur ne warteliste, wo man sich eintragen konnte.  Nun hab ich gestern in der NFSW-Wave gelesen, das es bereits eine Version für Linux gibt die auch sehr gut läuft, auch wenn sie noch als &#8220;unstable&#8221; geführt werden würde.</p>
<p>Wie kommt man nun dran? einfach:</p>
<blockquote><p>deb <a style="font-family: arial, sans-serif; color: #003ea8;" href="http://dl.google.com/linux/deb/" target="_blank">http://dl.google.com/linux/deb/</a> stable main<span> </span></p></blockquote>
<p style="text-align: justify;"><span>in die /etc/apt/sources.list einffügen. Dann brauchen wir noch den Key dazu. also noch den Key runterladen mit:</span></p>
<blockquote style="text-align: justify;">
<p style="text-align: justify;"><span>wget <a style="font-family: arial, sans-serif; color: #003ea8;" href="http://dl.google.com/linux/linux_signing_key.pub" target="_blank">http://dl.google.com/linux/linux_signing_key.pub</a></span></p>
</blockquote>
<p style="text-align: justify;"><span><span>Da nach fügen wir den Key dann zu apt-get hinzu. Das machen wir mit apt-key. Und zwar so:</span></span></p>
<blockquote style="text-align: justify;">
<p style="text-align: justify;"><span><span>sudo apt-key add linux_signing_key.pub</span></span></p>
</blockquote>
<p style="text-align: justify;"><span><span>Haben wir dies getan, können wir mal unsere Repositorylisten updaten. Einfach das überlich normale Update:</span></span></p>
<blockquote style="text-align: justify;">
<p style="text-align: justify;"><span><span>apt-get update</span></span></p>
</blockquote>
<p style="text-align: justify;"><span><span>Und nun sind wir auch schon fast durch, war ja nicht so schwer bis jetzt oder? Schwerer wirds auch nicht mehr ;) Nun muss man nämlich nur noch mit apt-get oder aptitude das Paket &#8220;google-chrome&#8221; Paket installieren.</span></span></p>
<blockquote style="text-align: justify;">
<p style="text-align: justify;"><span><span>apt-get install google-chrome</span></span></p>
</blockquote>
<p style="text-align: justify;"><span><span>Und schon sind wir fertig. Nun finden wir&#8217;s im Menü unter dem Punkt &#8220;Internet&#8221;. Sollte eigentlich auch einfach so starten. Tat&#8217;s bei mir jedenfalls. Läuft auch wunderbar. Noch keinen Absturz gehabt. Läuft auch schneller und besser als der Firefox, gefühlt. Ich hab da keine genauen Messungen gemacht. Jedenfalls läuft GooleWave darin schon mal 100% besser als im Firefox.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/11/google-chrome-fuer-ubuntu-debian/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter-Updates per Bash</title>
		<link>http://www.zero0ne.de/2009/07/twitter-updates-per-bash/</link>
		<comments>http://www.zero0ne.de/2009/07/twitter-updates-per-bash/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 17:03:29 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=791</guid>
		<description><![CDATA[Hier mal mein kleines Twitter-Skript. Es braucht nur der Benutzeraccount und das Passwort in die Felder USER und PASS eingetragen zu werden. Danach für man es am besten so aus: ./twitter.sh &#8220;Twitternachricht&#8221;. Das Skript zählt die Zeichen und warnt einen falls man über die 140 Zeichen kommen sollte. #!/bin/bash USER="Benutzer" PASS="Password" CHARS=$(echo "$1" &#124; wc [...]]]></description>
			<content:encoded><![CDATA[<p>Hier mal mein kleines Twitter-Skript. Es braucht nur der Benutzeraccount und das Passwort in die Felder USER und PASS eingetragen zu werden. Danach für man es am besten so aus: <strong><em>./twitter.sh &#8220;Twitternachricht&#8221;</em></strong>. Das Skript zählt die Zeichen und warnt einen falls man über die 140 Zeichen kommen sollte.</p>
<p><code><br />
#!/bin/bash<br />
USER="Benutzer"<br />
PASS="Password"<br />
CHARS=$(echo "$1" | wc -m)<br />
LIMIT="140"<br />
if [ $CHARS -lt $LIMIT ]<br />
then<br />
curl -u $USER:$PASS -d status="$1" http://twitter.com/statuses/update.xml &gt; /dev/null 2&gt;&amp;1<br />
else<br />
echo "Mehr als 160 Zeichen"<br />
fi<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/07/twitter-updates-per-bash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xorcom Asterisk, die 2.</title>
		<link>http://www.zero0ne.de/2009/06/xorcom-asterisk-2/</link>
		<comments>http://www.zero0ne.de/2009/06/xorcom-asterisk-2/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:59:44 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[asterisk1.4]]></category>
		<category><![CDATA[BRIstuff]]></category>
		<category><![CDATA[cause 34]]></category>
		<category><![CDATA[ISDN]]></category>
		<category><![CDATA[Junghanns]]></category>
		<category><![CDATA[Xorcom]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=724</guid>
		<description><![CDATA[Nach einer Woche zeigt sich, das sich das Update gelohnt hat. Das Problem des &#8220;cause 34&#8243; scheint behoben, der Asterisk läuft allgemein stabiler. Doch gab es einen &#8220;cause 34&#8243;, wo ich mich doch wunderte, es lies sich aber nicht herausfinden ob es nun am Treiber lag oder wirklich an der Leitung. Was ich auch noch [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Nach einer Woche zeigt sich, das sich das Update gelohnt hat. Das Problem des &#8220;cause 34&#8243; scheint behoben, der Asterisk läuft allgemein stabiler. Doch gab es einen &#8220;cause 34&#8243;, wo ich mich doch wunderte, es lies sich aber nicht herausfinden ob es nun am Treiber lag oder wirklich an der Leitung. Was ich auch noch sagen muss ist, das in der neuen Version das Kommando &#8220;zap reset span x&#8221; nicht mehr zu existieren scheint. Ich teste dann die Tage mal die Junghanns-Version, ob es da noch da ist. Würde es allgemein wegfallen wäre das suboptimal, denn damit kann man doch mal den ein oder anderen Span wieder reaktivieren, wenn er gerade mal als down markiert ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/06/xorcom-asterisk-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xorcom Asterisk</title>
		<link>http://www.zero0ne.de/2009/06/xorcom-asterisk/</link>
		<comments>http://www.zero0ne.de/2009/06/xorcom-asterisk/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 12:22:33 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[BRIstuff]]></category>
		<category><![CDATA[cause 34]]></category>
		<category><![CDATA[ISDN]]></category>
		<category><![CDATA[Junghanns]]></category>
		<category><![CDATA[Xorcom]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=702</guid>
		<description><![CDATA[Bei meinen Asterisken setz ich bei der Anbindung ans ISDN-Netz auf Junghanns-Karten. Da diese doch echt gut sind. Leider brauchen die Karten von Junghanns eine angepasste Version von Asterisk/Zaptel. Diese bietet Junghanns auch als komplett Paket an. Doch hängen die Versionen von Junghanns immer ein wenig den aktuellen Asterisk-Versionen hinterher. Auch ist Junghanns dafür bekannt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bei meinen Asterisken setz ich bei der Anbindung ans ISDN-Netz auf Junghanns-Karten. Da diese doch echt gut sind. Leider brauchen die Karten von Junghanns eine angepasste Version von Asterisk/Zaptel. Diese bietet Junghanns auch als komplett Paket an. Doch hängen die Versionen von Junghanns immer ein wenig den aktuellen Asterisk-Versionen hinterher. Auch ist Junghanns dafür bekannt nicht wirklich auf Community-Eingaben zu reagieren, sodass nur wenige Patche ihren Weg in die BRIstuff-Pakete von Junghanns finden.<span id="more-702"></span></p>
<p style="text-align: justify;">Nun war ich doch recht unzufrieden mit der der Asterisk-Version von Junghanns. Zwar lief sie auf 2 von 3  meiner Systeme sehr gut, doch auf einem mit OctoBRI-Karte gab es immer wieder Probleme. Es war das wohl bekannte &#8220;cause 34&#8243;-Problem. Liesse sich wohl auch durch einen Patch der Junghanns-Version beseitigen. Doch ich wollte eh eine neue Asteriskversion haben und eine Alternative zu Junghanns.</p>
<p style="text-align: justify;">So sah ich mich nach Alternativen um. Zu spät bemerkte ich, das ich sie schon direkt vor Augen hatte. Denn im Installationsverzeichnis der Junghanns-Kompilation befand sich in der INSTALL Textdatei ein verweis auf Xorcom. Sowie es aussieht stellen diese ihren eigenen Zweig an BRIstuff-Versionen. Also entschied ich testweise auf dem System mit der OctoBRI-Karte einmal die Xorcom-Variante von BRIstuff zu installieren. Ich bezog die neuste Version von Xorcom. Zu finden auf deren <a href="http://updates.xorcom.com/astribank/bristuff/1.4/">Update-Seite</a>. Die neuste ist zur Zeit <em>bristuff-0.4.0-RC4-xr7.tar.gz</em>. Mit dieser lies sich das bestehende System mit der Asteriskversion von Junghanns sehr einfach updaten, da beide ja im Grunde das Gleiche sind. Einfach wie bei Junghanns bekannt: runterladen, entpacken und dann die install.sh ausführen. Den Rest macht das Script dann schon. Wenn das Script dann durchgelaufen ist hat man seinen neuen Asterisk.</p>
<p style="text-align: justify;">Hier nochmals die einzelnen Schritte, die Kommandos in den eckigen Klammern müssen nur ausgeführte wenn man vorher noch keinen Asterisk auf dem System hatte.</p>
<pre>wget http://updates.xorcom.com/astribank/bristuff/1.4/bristuff-0.4.0-RC4-xr7.tar.gz
tar xfz bristuff-0.4.0-RC4-xr7.tar.gz
cd bristuff-0.4.0-RC4-xr7
[ ./prereq.sh test
./prereq.sh install ]
./install.sh</pre>
<p style="text-align: justify;">Der Artikel bekommt dann nächste Woche noch ein Update oder einen Folgeartikel darüber wie das System nun läuft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/06/xorcom-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk 1.6.1.0 installieren</title>
		<link>http://www.zero0ne.de/2009/05/asterisk-1610-installieren/</link>
		<comments>http://www.zero0ne.de/2009/05/asterisk-1610-installieren/#comments</comments>
		<pubDate>Wed, 06 May 2009 16:01:39 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[asterisk 1.6.1]]></category>
		<category><![CDATA[asterisk1.4]]></category>
		<category><![CDATA[dahdi]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[installieren]]></category>
		<category><![CDATA[libpri]]></category>
		<category><![CDATA[PRI]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[zap]]></category>
		<category><![CDATA[zaptel]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=437</guid>
		<description><![CDATA[Hier nun eine kleine Anleitung wie man Asterisk 1.6.1 aus den Sourcen herraus installiert. Es ist eigentlich nur ein Merkzettel für mich, damit ich mir die einzelnen Schritte merken kann, aber vllt braucht es ja noch jemand. Ich hoffe für denjenigen ist es dann eine Hilfe. Auch da man ja in der Regel ehrer wenig [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hier nun eine kleine Anleitung wie man Asterisk 1.6.1 aus den Sourcen herraus installiert. Es ist eigentlich nur ein Merkzettel für mich, damit ich mir die einzelnen Schritte merken kann, aber vllt braucht es ja noch jemand. Ich hoffe für denjenigen ist es dann eine Hilfe. Auch da man ja in der Regel ehrer wenig über Asterisk 1.6 liest.</p>
<p><span id="more-437"></span></p>
<h3><strong>Vorbereitungen</strong></h3>
<p>wenn nötig:<br />
<code>aptitude install build-essential linux-headers-`uname -r` psmisc libncurses-dev</code></p>
<h3><strong>Asterisk Downloaden:</strong></h3>
<p><code>wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.6.1.0.tar.gz<br />
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.6.1.0.tar.gz<br />
wget http://downloads.digium.com/pub/telephony/dahdi-linux/releases/dahdi-linux-2.1.0.4.tar.gz<br />
wget http://downloads.digium.com/pub/telephony/dahdi-tools/releases/dahdi-tools-2.1.0.2.tar.gz<br />
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz</code></p>
<h3><strong>libpri installieren (PRI-Treiber, falls nötig):</strong></h3>
<p><code>tar xfz libpri-1.4.9.tar.gz<br />
cd libpri-1.4.9<br />
make all<br />
make install</code></p>
<h3><strong>dahdi installieren (ISDN-Treiber, falls nötig, ehml. ZAP):</strong></h3>
<p><code><br />
tar xfz dahdi-linux-2.1.0.4.tar.gz<br />
cd dahdi-linux-2.1.0.4<br />
make all<br />
make install<br />
cd ..<br />
tar xfz dahdi-tools-2.1.0.2.tar.gz<br />
cd dahdi-tools-2.1.0.2<br />
./configure<br />
make all<br />
make install config</code></p>
<h3><strong>Asterisk installieren:</strong></h3>
<p><code>tar xfz asterisk-1.6.1.0.tar.gz<br />
cd asterisk-1.6.1.0<br />
./configure<br />
make all<br />
make install config samples<br />
cd ..<br />
tar xfz asterisk-addons-1.6.1.0.tar.gz<br />
cd asterisk-addons-1.6.1.0<br />
./configure<br />
make all<br />
make install samples config</code></p>
<p>Nun ist Asterisk betriebsbereit und muss noch konfiguriert werden, die Standard-Config reicht aber schon einmal aus um die grundsätzliche Funktionsfähigkeit von Asterisk zu testen. Mit dem folgenden Kommando nun asterisk starten.<br />
<code>asterisk -cvvv</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/05/asterisk-1610-installieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux im RAM</title>
		<link>http://www.zero0ne.de/2009/03/linux-im-ram/</link>
		<comments>http://www.zero0ne.de/2009/03/linux-im-ram/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 00:16:53 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Gentoo Linux]]></category>
		<category><![CDATA[hardened]]></category>
		<category><![CDATA[hat]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[tin]]></category>
		<category><![CDATA[Tin Hat]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=411</guid>
		<description><![CDATA[Es war ja nur eine Frage der Zeit bis jemand den gedanken endlich umsetzt. Bei den fallenden RAM-Preisen und den Steigenden Größen stellte sich mir schon lang die Frage warum man nicht das gesamte System in den RAM verlagern kann. Mit der heutigen Technik dauert ja nicht einmal das initiale laden dann lange. Man braucht [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Es war ja nur eine Frage der Zeit bis jemand den gedanken endlich umsetzt. Bei den fallenden RAM-Preisen und den Steigenden Größen stellte sich mir schon lang die Frage warum man nicht das gesamte System in den RAM verlagern kann. Mit der heutigen Technik dauert ja nicht einmal das initiale laden dann lange. Man braucht eben nur noch eine kleine Festplatte um Userdaten und Einstellungen zu speichern. So könnte man noch kleinere ThinPCs bauen. Na gut, man könnte diese auch mit Flashspeicher ausstatten, doch dieser ist meist teuer. Also nimmt man RAM, der einen ja im Moment quasi hinterher geworfen wird.</p>
<p style="text-align: justify;">Laut dem Artikel von Golem.de solle man aber immer noch min. 4GB benötigen um die Distribution &#8220;Tin Hat&#8221; nutzen zu können. Find ich aber schon wieder ein wenig hart. Systeme wie DSL oder Knoppix kommen auch mit weit weniger platz zurecht. Und da Gentoo als Grundsystem dient, sollte man doch denken, das man daraus ein schlankes System bauen kann. Ich glaub ich muss mir das mal ein wenig genauer ansehen um herauszufinden wozu die soviel platz brauchen. Na ja, wenn man Gnome dann auch als WM nimmt, erklärt das schon einiges, könnte man auch ein wenig abspecken. An sich ist Gnome schon toll, aber für solch ein System hätte ich dann was anderes genommen. Fluxbox oder xfce bieten sich da eher an.</p>
<p style="text-align: justify;">Insgesamt aber schon eine Prima Idee&#8230; Mal sehen ob ich das irgendwie auf meinen MacBook zum laufen bekomme&#8230;</p>
<p>Link: <a href="http://opensource.dyc.edu/tinhat" target="_blank">Tin Hat</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/03/linux-im-ram/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einführung in Screen</title>
		<link>http://www.zero0ne.de/2009/02/einfuhrung-in-screen/</link>
		<comments>http://www.zero0ne.de/2009/02/einfuhrung-in-screen/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 23:10:02 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[anwendung]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[einführung]]></category>
		<category><![CDATA[konsole]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=398</guid>
		<description><![CDATA[Eben auf buildblog.de veröffentlicht: meine kleine Einführung in den Umgang mit &#8220;screen&#8221;. Hier also der Link dazu: klick mich]]></description>
			<content:encoded><![CDATA[<p>Eben auf <a href="http://www.buildblog.de" target="_blank">buildblog.de</a> veröffentlicht: meine kleine Einführung in den Umgang mit &#8220;screen&#8221;.</p>
<p>Hier also der Link dazu: <a href="http://www.buildblog.de/2009/02/26/screenplay-eine-einfuhrung-in-das-kommandozeilentool-screen/" target="_blank">klick mich</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/02/einfuhrung-in-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP auf Gentoo</title>
		<link>http://www.zero0ne.de/2009/01/php-auf-gentoo/</link>
		<comments>http://www.zero0ne.de/2009/01/php-auf-gentoo/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 01:33:58 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache liefert kein php]]></category>
		<category><![CDATA[apache2.conf]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Gentoo Linux]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[http.conf]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[IfDefine]]></category>
		<category><![CDATA[kein php]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=237</guid>
		<description><![CDATA[puhh, dachte eben ich hab mir meine gesamte apache config zerschossen, weil ich für ein wordpress plugin php neu compilierte. das ging auch alles gut, bis auf das ich meine apache-config dann hab automatisch verändern lassen. sah eigentlich alles auch ganz normal aus. blos der apache jagte php code nicht mehr durch den interpreter. alles [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">puhh, dachte eben ich hab mir meine gesamte apache config zerschossen, weil ich für ein wordpress plugin php neu compilierte. das ging auch alles gut, bis auf das ich meine apache-config dann hab automatisch verändern lassen. sah eigentlich alles auch ganz normal aus. blos der apache jagte php code nicht mehr durch den interpreter. alles durch gesehen und überprüft und getestet. aber nichts ging. also dann die config stück für stück auseinander genommen. am ende war es dann das, das es ein IfDefine zuviel war, der apache das ganze zwar angenommen hatte, aber nicht wirklich mit den direktiven umgehen konnte. alles sah normal aus, aber ging ebend nicht. dann hab ich die gesamte php config, aus ihrerer module.conf rausgenommen und alles einzeln nacheinander ohne IfDefine in die main config httpd.conf reingetan und was soll ich sagen? jetzt ging alles wie von zauberhand wieder&#8230;. scheiss scripte XD</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/01/php-auf-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speicherverbrauch mit Top anzeigen</title>
		<link>http://www.zero0ne.de/2009/01/speicherverbrauch-mit-top-anzeigen/</link>
		<comments>http://www.zero0ne.de/2009/01/speicherverbrauch-mit-top-anzeigen/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 10:18:01 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[speicher]]></category>
		<category><![CDATA[speicherauslastung]]></category>
		<category><![CDATA[speicherverbrauch]]></category>
		<category><![CDATA[top]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/speicherverbrauch-mit-top-anzeigen/</guid>
		<description><![CDATA[Den aktuellen Speicherverbrauch eines Prozesses kann man sich mit top auch in Byte anzeigen lassen und nicht nur in Prozent. Dazu startet man top und drück dann &#8220;f&#8221; und danach &#8220;s&#8221; und bestätigt mit &#8220;ENTER&#8221;. Jetzt hat men ein zusätzliches Feld in welchen der aktuelle Speicher den ein Prozess belegt angezeigt wird. Drück man nun [...]]]></description>
			<content:encoded><![CDATA[<p>Den aktuellen Speicherverbrauch eines Prozesses kann man sich mit top auch in Byte anzeigen lassen und nicht nur in Prozent.<br />
Dazu startet man top und drück dann &#8220;f&#8221; und danach &#8220;s&#8221; und bestätigt mit &#8220;ENTER&#8221;. Jetzt hat men ein zusätzliches Feld in welchen der aktuelle Speicher den ein Prozess belegt angezeigt wird. Drück man nun noch &#8220;SHIFT+f&#8221; und dann wiederum s, wird nach diesem neuen feld absteigend sortiert, beginnend mit dem grössten Wert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/01/speicherverbrauch-mit-top-anzeigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bind9</title>
		<link>http://www.zero0ne.de/2008/12/bind9/</link>
		<comments>http://www.zero0ne.de/2008/12/bind9/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 17:29:41 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dns-server]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[domain name system]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Gentoo Linux]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[named]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[zone-datei]]></category>
		<category><![CDATA[zonen]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=212</guid>
		<description><![CDATA[Heute hab ichs endlich mal geschafft einen DNS-Server aufzusetzen. Hab dann auch gleich mal drei Zonen eingerichtet, worauf ich unsere Domains lokal auf einen Test-Server umleite. sodas man direct auf den Testsytem landet anstatt im internet. sehr dabei geholfen hat mir dieses Tutorial]]></description>
			<content:encoded><![CDATA[<p>Heute hab ichs endlich mal geschafft einen DNS-Server aufzusetzen. Hab dann auch gleich mal drei Zonen eingerichtet, worauf ich unsere Domains lokal auf einen Test-Server umleite. sodas man direct auf den Testsytem landet anstatt im internet.</p>
<p>sehr dabei geholfen hat mir <a href="http://www.lug-wr.de/wiki/index.php/Bind9">dieses Tutorial</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/12/bind9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentoo Stage4 Vserver updaten, die 2.</title>
		<link>http://www.zero0ne.de/2008/12/gentoo-stage4-vserver-updaten-die-2/</link>
		<comments>http://www.zero0ne.de/2008/12/gentoo-stage4-vserver-updaten-die-2/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 17:50:03 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[emerge world]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Gentoo Linux]]></category>
		<category><![CDATA[Linux-VServer]]></category>
		<category><![CDATA[stage4]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[updaten]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[upgraden]]></category>
		<category><![CDATA[VServer]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=204</guid>
		<description><![CDATA[So nun hier nochmal die Script-Version um eine VServer installation von Gentoo zu updaten, welche mit einen alten Satge4 installiert wurde. #!/bin/bash emerge -f e2fsprogs emerge -C mktemp com_err ss setarch e2fsprogs &#38;&#38; emerge e2fsprogs emerge "=sys-apps/util-linux-2.13.1.1" portage coreutils vim mc ACCEPT_KEYWORDS="~amd64" emerge "=sys-devel/autoconf-wrapper-6" FEATURES=-unmerge-orphans emerge cracklib ACCEPT_KEYWORDS="~amd64" emerge -uvDN world Um das jetzt nicht [...]]]></description>
			<content:encoded><![CDATA[<p>So nun hier nochmal die Script-Version um eine VServer installation von Gentoo zu updaten, welche mit einen alten Satge4 installiert wurde.<span id="more-204"></span></p>
<p><code>#!/bin/bash<br />
emerge -f e2fsprogs<br />
emerge -C mktemp com_err ss setarch e2fsprogs &amp;&amp; emerge e2fsprogs<br />
emerge "=sys-apps/util-linux-2.13.1.1" portage coreutils vim mc<br />
ACCEPT_KEYWORDS="~amd64" emerge "=sys-devel/autoconf-wrapper-6"<br />
FEATURES=-unmerge-orphans emerge cracklib<br />
ACCEPT_KEYWORDS="~amd64" emerge -uvDN world</code></p>
<p>Um das jetzt nicht jedesmal machen zu müssen, kann man sich auch ein neues Stage4 bauen.<br />
Dazu habe ich im Blog von Philipp Kroenke &#8211; <a href="http://vibora.homelinux.org">Vibora</a> eine gute Anleitung gefunden.<br />
mit folgendem Kommando legt man eine neues Stage4 an:<br />
<code>tar --no-ignore-case -cjpf /dokumente/stage4-datum.tbz2 / --exclude=/dokumente/* --exclude=/dev/* --exclude=/sys/* --exclude=/proc/* --exclude=/var/tmp/* --exclude=/var/log/* --exclude=/usr/portage/distfiles/*</code></p>
<p>Sodas man dann mit dem neuen Stage4 sich in altbekannter manier wieder einen VServer bauen kann:<br />
<code>vserver meinVserver build -m template --context 01 --hostname meinVserver --interface eth1:10.0.0.1/24 --initstyle gentoo -- -d gentoo -t stage4-datum.tar.bz2</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/12/gentoo-stage4-vserver-updaten-die-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Nacht der lebenden Server &#8230;</title>
		<link>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/</link>
		<comments>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 19:05:12 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[awstats]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[openfire]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=198</guid>
		<description><![CDATA[So gestern dann mal wieder an mein Projekt eines selbkompilierten Servers. Naja, nur Apache, PHP, MySQL sind wirklich selbstkompiliert. Dann kommt noch eine angepasste Version von Postfox dazu. Dann noch ein wenig IMAP und POP3, sowie ein Virenfilter dazu und fertig. Das ganze läuft im Rahmen einer Serveraktualisierung von <a title="www.dunkel-volk.de" href="http://www.dunkel-volk.de" target="_self">www.dunkel-volk.de</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">So gestern dann mal wieder an mein Projekt eines selbkompilierten Servers. Naja, nur Apache, PHP, MySQL sind wirklich selbstkompiliert. Dann kommt noch eine angepasste Version von Postfox dazu. Dann noch ein wenig IMAP und POP3, sowie ein Virenfilter dazu und fertig. Das ganze läuft im Rahmen einer Serveraktualisierung von <a title="www.dunkel-volk.de" href="http://www.dunkel-volk.de" target="_blank">www.dunkel-volk.de</a>.<br />
<span id="more-198"></span><br />
Das ganze bereite eine Freund und ich nun schon ein paar Monate vor. Irgendwie fehlte wohl immer so richtig die Zeit. Es ist ja nicht so das wir das ganze von Hand installieren, so nach und nach. Nein, es soll alles gescripted ablaufen. So das wir so gut wie nichts mehr machen müssen. Also haben wir uns da eine kleine Scriptsammlung zusammen geschrieben und anhand einiger Tutorials, welche auf  binär-Paketen setzen, die Lücken aufgefüllt.<br />
Angefangen haben wir mit einen frisch installierten Debian 4.0. Dann noch so die Grundlagen wie SSH und MC oder mal hier und da die ein oder andere Bibliothek und den ganzen Kram zum Kompilieren noch. Gefolgt davon dann die Quellen von Apache, MySQL und PHP. Diese konnten wir jetzt speziell an unsere Bedürfnisse anpassen und so auch die aktuellsten Versionen nehmen. Wo das dann alles fertig war, dachten wir uns, nen eigener Mail server sei ja auch nicht schlecht. Der jetzige den wir haben ist nicht wirklich kontrollierbar und es gibt massig SPAM. Also wollten wir das besser machen ;-) Da ich mir zuvor schon für mich und die Arbeit ein Postfix-Buch gekauft habe, war das ja perfekt zum üben und Erfahrungen sammeln. Also haben wir dann zu den drei bestehenden Server-Programmen noch Postfix, Courier, Spammassin, Amavis/Clamav hinzugefügt. Diese haben wir aller dings aus dem repository von Debian genommen. Ausser Postfix, dies haben wir zwar auch aus dem Repository genommen, dann aber mit der Source-Version überspielt, welche vorher gepatcht wurde. Das ist es dann also, ist ja nicht all zu viel denkt man. Da kann man sich aber gewaltig irren, weil es noch sehr sehr viele kleine ecken und kanten gab, an welchen man etwas nachbessern musste, oder wo etwas nicht so klappte wie man sich das eigentlich dachte.</p>
<p style="text-align: justify;">Gestern haben wir uns dann mal einen VServer erstellt, also ne VM die ich bereit stellte und darauf eine Domain geschalten. Dann alles nach und nach installiert. Eigentlich sollten wir ja nicht soviel eingreifen müssen, da wir ja viele scripte vorbereitet hatten. Dies war aber ein Irrtum. Das meiste lief ganz gut durch, also Apache, MySQL und PHP. Postfix ging auch ganz gut durch. Doch dann die Konfiguration davon. Da gab es dann doch das ein oder andere Problem, was isch dann aber auch lösen lies. Meist waren es kleine Fehler mit grossen Auswirkungen wie eben falsche Dateiberechtigungen oder Datenbankberechtigungen. Eines der Grösseren Probleme war, das die ClamAV Version von Debian wohl einen Tick hat und in der Konfiguration, so wie ich sie hier hatte, nicht richtig funktionierte. Nach ein wenig Recherche im Netz fand ich dann aber einen passenden Workaround.<br />
So gegen 23 Uhr war dann alles soweit erstmal bereit das es lief. Also ein Webserver mit PHP und MySQL support, MySQL an sich und eine Mailserverkonstrukt, was Emails empfangen und verenden kann. Wir hatten um 12:00 Uhr Mittags angefangen. Naja, mal ne grössere Pause zum einkaufen und noch eine weitere zum essen. Was jetzt dann noch fehlte waren so Kleinigkeiten wie die Richtige Verschlüsselung der Mails und Statistik tools wie AwStats und Cacti. Auch sollte noch ein Jabber-Server hinzukommen. Dies haben wir dann noch bis 4 Uhr morgens implementiert. Als Jabber Server hatten wir uns dann für OpenFire entschieden, aufgrund der GUI. Is ja für Mausschubser, aber falls eben mal kein Admin zu Hand ist, das die auch mal ein wenig was regeln können. Dann noch als Test für den Webserver und PHP sowie MySQL noch eben ein kleines WordPress aufgesetzt um zu sehen  ob das läuft.</p>
<p>Ich werde dann mal Demnächst die Final Version der Script-Sammlung hier noch veröffentlichen.</p>
<p>hier dann noch ein paar quellen:</p>
<p><a href="http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.10" target="_blank">HowtoForge Tutorial für einen Mail Server</a></p>
<p><a href="http://workaround.org/articles/ispmail-etch/" target="_blank">Workaround Tutorial für einen Mail Server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

