<?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>Willkommen bei der eL Mediaagentur &#187; Linux und mehr</title>
	<atom:link href="http://www.el-mediaagentur.com/best-practice/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.el-mediaagentur.com</link>
	<description>die kreative Agentur aus dem Herzen Kölns</description>
	<lastBuildDate>Fri, 02 Apr 2010 19:18:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Monatliches Backup auf DVD unter Linux</title>
		<link>http://www.el-mediaagentur.com/2009/02/27/monatliches-backup-auf-dvd/</link>
		<comments>http://www.el-mediaagentur.com/2009/02/27/monatliches-backup-auf-dvd/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 13:10:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[backup image]]></category>
		<category><![CDATA[backup iso]]></category>
		<category><![CDATA[dvd+rw-tools]]></category>
		<category><![CDATA[dvd-backup]]></category>
		<category><![CDATA[fstab]]></category>
		<category><![CDATA[growisofs]]></category>
		<category><![CDATA[mkisofs]]></category>
		<category><![CDATA[shell-script]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/monatliches-backup-auf-dvd</guid>
		<description><![CDATA[Wer wert auf eine lückenlose Datensicherung legt, gerade in Hinblick auf Datenbank Backups (cold/hot), der möchte von jedem Tag im Jahr den Datenbestand, insbesondere der Iterimdaten, rücksichern (recovern) können. Da nicht immer ein physischer Zugriff auf den Server erfolgen kann (einlegen/wechseln des Backupmediums), muss man sich andere Backup-Strategien überlegen. Folgendes Szenario wäre ein möglicher Ansatz: [...]]]></description>
			<content:encoded><![CDATA[<p><b>Wer wert auf eine lückenlose Datensicherung legt, gerade in Hinblick auf Datenbank Backups (cold/hot), der möchte von jedem Tag im Jahr den Datenbestand, insbesondere der Iterimdaten, rücksichern (recovern) können. Da nicht immer ein physischer Zugriff auf den Server erfolgen kann (einlegen/wechseln des Backupmediums), muss man sich andere Backup-Strategien überlegen. Folgendes Szenario wäre ein möglicher Ansatz: Es existieren ein oder mehrere Webserver mit unterschiedlichen Standorten. Mit Rsync (s. Artikel <a href="http://www.el-mediaagentur.com/index.php/archives/rsync-datei-synchronisation-leicht-gemacht">Rsync &#8211; Synchronisation leicht gemacht</a>), Reoback (s. Artikel <a href="http://www.el-mediaagentur.com/index.php/archives/reoback-backup">REOBack Backup</a>) und Master/Slave MySQL Replikation (s. Artikel <a href="http://www.el-mediaagentur.com/index.php/archives/mysql-replizierung-master-und-slave">MySQL Replikation / Master und Slave in 4 Schritten</a>) synchronisiert man diese Webserver mit einem &#8220;kleinen&#8221; Linux Server daheim. Man zieht sozusagen alle Applikations- und Interimdaten auf ein System, auf das man physischen Zugriff hat, zusammen. Und an dieser Stelle steigen wir in die folgende Anleitung für ein monatliches Backup auf DVD ein.</b><span id="more-51"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<h3>Was wird benötigt?</h3>
<p>1. Linux Kernel >= 2.6<br />
2. dvd+rw-tools<br />
3. ein Backupordner mit Symlinks auf die Backupverzeichnisse<br />
4. ein Cronjob auf eine ausführbares Shell-Script<br />
5. ein Shell-Script für das Anstossen des Brennvorgangs</p>
<h3>Zu 1.: Warum Linux Kernel >= 2.6</h3>
<p>Unter der Kernel Version 2.6 wird ein IDE DVD Brenner als SCSI Gerät mit einer SCSI-Emulation angesprochen. Da dies etwas umständlicher ist und man schliesslich selbst das Derivat auf dem Heimserver bestimmen kann, empfehle ich ein Kernel >= 2.6 zu verwenden.</p>
<h3>Zu 2.: dvd+rw-tools installieren</h3>
<p>Mit</p>
<pre class="brush: bash;">apt-get install -u dvd+rw-tools</pre>
<p>installieren wir das benötigte Programm-Bundle um DVDs beschreiben zu können.</p>
<h3>Zu 3.: Backupordner mit Symlinks auf die Backupverzeichnisse</h3>
<p>Mit</p>
<pre class="brush: bash;">mkdir ORDNERNAME</pre>
<p> erstellen wir einen Ordner, welche die Symlinks auf die Backup-Verzeichnisse beinhalten wird.<br />Anschliessend erstellen wir mit</p>
<pre class="brush: bash;">ln -s ZIEL LINKNAME</pre>
<p> in diesem Ordner die Symlinks auf alle Verzeichnisse welche gesichert werden sollen. Warum Symlinks? Mit Symlinks ersparen wir uns die Daten &#8211; die bereits auf der Platte vorhanden sind &#8211; zu kopieren, des Weiteren sprechen wir wie durch Zauberhand immer die aktuellen Dateien an.</p>
<h3>Zu 4.: Cronjob auf Shell-Script</h3>
<p>Je nachdem wieviele Daten in einem gewissen Zeitraum zu erwarten sind, sollte der Cronjob im entsprechenden Intervall aufgerufen werden. Bsp. werden über 4,7 GB (normaler DVD-Rom, Vorsicht! Die Herstellerangaben für 1 GB entspricht 1000 MB und nicht 1024 MB, d.h. eine DVD-Rom kann also mit ca. 4,3 GB gefüllt werden) in einen Monat erwartet, sollte entweder der Cronjob in kürzeren Zeiträumen ausgeführt werden oder man gestaltet das Shell-Script so, dass die Datenmenge auf mehrere DVDs aufgeteilt wird oder man benutzt andere Medien (bsp. Dual-Layer-DVD mit ca. doppelter Kapazität im Vergleich zur einfachen DVD-Rom). In meinem Fall genügt ein monatliches brennen, also sehe der Cronjob folgendermaßen aus:</p>
<pre class="brush: bash;">
# m   h     dom    mon   dow   command
0     11      15    *     *     /usr/local/bin/dvdbackup.sh &gt;&gt; /var/log/burning-dvd-backup.log
</pre>
<p>Dieser Cronjob wird jeden 15ten im Monat um 11:00 Uhr ausgeführt und ruft das Script <i>dvdbackup.sh</i> auf. Mit <i>>> /var/log/burning-dvd-backup.log</i> leitet man die &#8220;grundlegende&#8221; Ausgabe des Scriptes in eine Log-Datei um. Warum ich hier von &#8220;grundlegende&#8221; Ausgabe spreche erläutere ich im nächsten Schritt.</p>
<h3>Zu 5.: Shell-Script</h3>
<p>Mit <i>vi</i> oder <i>touch</i> erstellen wir eine Textdatei namens &#8220;dvdbackup.sh&#8221;. Diese machen wir mit </p>
<pre class="brush: bash;">
chmod 755 dvdbackup.sh
</pre>
<p>ausführbar. Anschliessend kopieren wir folgendes Listing &#8211; mit entsprechenden Anpassungen &#8211; in die Textdatei:</p>
<pre class="brush: bash;">
#!/bin/bash
cat /dev/null &gt; /var/log/burning-dvd-backup.log

echo &quot;$(date '+%b %d %H:%M:%S') debian-mrs creating monthly backup dvd:&quot;
echo &quot;---------------------------------------------------------------------------------&quot;

#image von symlink ordner erstellen
echo &quot;creating iso backup image&quot;
mkisofs -f -l -iso-level 4 -o /storage/tmpbackup.iso /storage/symbackupfolder/ &gt;&gt; /var/log/burning-dvd-backup.log 2&gt;&amp;1

isosize=`ls -al /storage/tmpbackup.iso | awk '{print $5}'`

if [ $isosize -lt 4697620480 ] ; then
        echo &quot;burning iso backup image on dvd&quot;
        growisofs -dvd-compat -Z /dev/hda=/storage/tmpbackup.iso &gt;&gt; /var/log/burning-dvd-backup.log 2&gt;&amp;1

        echo &quot;eject dvd&quot;
        eject
else
        echo &quot;can't write iso backup image, because iso is to large&quot;
fi

echo &quot;remove iso backup image&quot;
rm /storage/tmpbackup.iso

echo &quot;---------------------------------------------------------------------------------&quot;
</pre>
<h3>Download dvdback.sh</h3>
<p><a class="download" href="http://www.el-mediaagentur.com/download.php?id=fa43a3dbea4bdc50bed3afb47704096e" title="dvdbackup.sh">dvdbackup.sh</a></p>
<p>Was macht das Script?<br />
1. Mit <i>cat /dev/null > /var/log/burning-dvd-backup.log</i> leere ich die Log-Datei.</p>
<p>2. Die Ausgaben mit <i>echo</i> sind genau die Ausgaben die ich durch den Cronjob in die Log-Datei umleite.</p>
<p>3. Mit <i>mkisofs -f -l -iso-level 4 -o /storage/tmpbackup.iso /storage/symbackupfolder/ >> /var/log/burning-dvd-backup.log 2>&#038;1</i> erstellt man ein ISO-File namens <i>tmpbackup.iso</i> von dem erstellten Backup-Ordner, der wiederum durch die Symlinks die entsprechend zu sichernenden Ordner enthält. Die &#8220;spezielle&#8221; Ausgabe von <i>mkisofs</i> leite ich mit <i>>> /var/log/burning-dvd-backup.log 2>&#038;1</i> auch in die Log-Datei um. <i>2>&#038;1</i> entspricht hierbei, dass alle Standardausgaben sowie Fehlermeldungen umge-&#8221;piped&#8221; werden.</p>
<p>4. Die erste <i>if</i>-Bedinung (<i>if [ $isosize -lt 4697620480 ] ;</i>) prüft die Größe des Images und vergleicht diese mit der maximalen Kapazität MEINER Rohlinge! Jeder DVD-Rohling ist unterschiedlich, mit <i>atip</i> kann man die freien Blöcke einer DVD ermitteln und mit 2048 Bytes (Blockgrösse) multiplizieren, nun hat man die maximale Kapazität der DVD in Bytes und ersetzt diese mit <b>4697620480</b>.</p>
<p>5. Wenn das ISO-Image grösser als die maximale Kapazität meines Rohlings ist, wird der Brennvorgang abgebrochen, da ich nach oben noch ca. 500-800 MB Luft habe, ist das für mich die einfachste Lösung gewesen. Stattdessen kann man natürlich das ISO-Image mit <i>split</i> in mundgerechte Stücke zerteilen und hiervon wieder ISO-Images erstellen, die dann in einer Schleife nacheinander gebrannt werden (mit manuellen DVD Wechseln) oder man legt mehrere Backup-Verzeichnisse mit unterschiedlichen Symlinks an, um so bereits zu Beginn mehrere ISOs zu planen und anschliessend zu erstellen.</p>
<p>6. Passt das Image auf den Rohling, wird es nun mit <i>growisofs -dvd-compat -Z /dev/hda=/storage/tmpbackup.iso >> /var/log/burning-dvd-backup.log 2>&#038;1</i> gebrannt. Statt <i>/dev/hda</i> muss eventuell etwas anderes eingetragen werden, in meinem Fall ist das DVD Laufwerk über <i>/dev/hda</i> ansprechbar. Um den Gerätenamen herauszufinden, genügt ein Blick per <i>vi</i> in die <i>/etc/fstab</i>. Der zu indentifizierende Eintrag sollte so</p>
<pre class="brush: bash;">
&lt;b&gt;/dev/hda&lt;/b&gt;        /media/cdrom0   udf,iso9660 user,noauto     0       0
</pre>
<p>oder ähnlich aussehen. <i>cdrom0</i> oder <i>ido9660</i> sind typischen Hinweise auf ein CD-Rom oder DVD-Laufwerk.</p>
<p>6. Abschliessend wird mit <i>eject</i> die DVD ausgeworfen und mit <i>rm /storage/tmpbackup.iso</i> das temporäre ISO-Image gelöscht.</p>
<p><b>Voila!</b></p>
<h3>Hinweis</h3>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
<h3>Weiterführende Literatur</h3>
<p>empfehlenswert sind folgende Bücher:</p>
<ul>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3826615875/elmediaagentu-21/" target="_blank">Linux-Server mit Debian GNU/Linux. Das umfassende Handbuch und Praxisbuch für die Versionen Etch (Debian 4.0) und Sarge (Debian 3.1): Das umfassende Praxis-Handbuch</a> von Eric Amberg</li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3826617991/elmediaagentu-21/" target="_blank">Shell Skript Programmierung: Kommandos, Techniken, Konzepte. Die wichtigsten UNIX-Tools. Lösungen für den Systemadministrator</a> von Patrick Ditchen</li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3897214261/elmediaagentu-21/" target="_blank">Linux in a Nutshell</a> von Ellen Siever, Stephen Figgins, Aaron Weber, und Lars Schulten</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2009/02/27/monatliches-backup-auf-dvd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH mit DenyHosts sicherer machen</title>
		<link>http://www.el-mediaagentur.com/2008/09/08/ssh-mit-denyhosts-sicherer-machen/</link>
		<comments>http://www.el-mediaagentur.com/2008/09/08/ssh-mit-denyhosts-sicherer-machen/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 16:58:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[Brute Force]]></category>
		<category><![CDATA[DenyHosts]]></category>
		<category><![CDATA[Linux Sicherheit]]></category>
		<category><![CDATA[SHHD]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[SSH absichern]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/ssh-mit-denyhosts-sicherer-machen</guid>
		<description><![CDATA[DenyHosts ist ein Linux Werkzeug, um über die Authentifizierungs-Log Anmeldungen gegen Brute Force Angriffe, beispielweise über SSH, zu überwachen. Mehrfach in kurzen Abstand wiederholte fehlgeschlagene Login-Versuche von der gleichen IP Adresse werden ermittelt und durch einen Eintrag der IP in die /etc/hosts.deny geblockt. DenyHosts kann durch einen Cron oder Live als Daemon ausgeführt werden. In [...]]]></description>
			<content:encoded><![CDATA[<p><b>DenyHosts ist ein Linux Werkzeug, um über die Authentifizierungs-Log Anmeldungen gegen <i>Brute Force</i> Angriffe, beispielweise über SSH, zu überwachen. Mehrfach in kurzen Abstand wiederholte fehlgeschlagene Login-Versuche von der gleichen IP Adresse werden ermittelt und durch einen Eintrag der IP in die <i>/etc/hosts.deny</i> geblockt. DenyHosts kann durch einen Cron oder Live als Daemon ausgeführt werden. In dieser Anleitung demonstriere ich die Einrichtung und Nutzung von DenyHosts als Daemon. </b><span id="more-50"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>Diese Anleitung basiert auf einer Debian etch Distribution. Die Installation auf anderen Linux Derivaten sollte jedoch ähnlich vonstatten gehen. Für weiterführende Informationen lohnt sich ein Blick auf die offizielle <a href="http://denyhosts.sourceforge.net/" target="_blank">DenyHosts Webseite</a> zu werfen. </p>
<h3>DenyHosts installieren</h3>
<p>Mit dem Befehl <i>apt-get</i></p>
<p class="code">
apt-get install denyhosts
</p>
<p>wird zum einen DenyHosts installiert und sofern noch nicht vorhanden, <i>Python</i> mit installiert. Da DenyHosts eine Anwendung die in Python geschrieben ist, ist eine installierte Version von Python zwingend erforderlich.<br />
Unter <i>/usr/share/denyhosts</i> ist das Installationsverzeichnis nach absetzen des Befehls zu finden.</p>
<h3>DenyHosts konfigurieren</h3>
<p>Unter <i>/etc/</i> findet man nach der Installation die Konfigurationsdatei  <i>denyhosts.conf</i> von DenyHosts. Hier werden alle wichtigen Einstellungen für die Verfahrensweise von DenyHosts justiert. Folgend die wichtigsten Einstellungen:</p>
<p class="code">
SECURE_LOG = /var/log/auth.log   // anhand der Beschreibungen in der denyhosts.conf, muß hier die richtige Wahl der Log-Datei, abhängig von der eingesetzten Distribution, erfolgen. Mit # kann auskommentiert werden</p>
<p>DENY_THRESHOLD_INVALID = 3   // Anzahl erlaubter fehlgeschlagener Einlogversuche von nicht vorhandenen Benutzern</p>
<p>DENY_THRESHOLD_VALID = 3   // Anzahl erlaubter fehlgeschlagener Einlogversuche von vorhanden Benutzern</p>
<p>DENY_THRESHOLD_ROOT = 3   // Anzahl erlaubter fehlgeschlagener Einlogversuche durch root. VORSICHT! Standardwert ist auf 1 begrenzt, wenn man mit dem root Benutzer arbeitet sollte hier erhöht werden.</p>
<p>DENY_THRESHOLD_RESTRICTED = 3   // Anzahl erlaubter fehlgeschlagener Einlogversuche von eingeschränkten Benutzern</p>
<p>ADMIN_EMAIL = mail@el-mediaagentur.com   // E-Mail Adresse um über neue geblockte Hosts und/oder verdächtige Einlogversuche informiert zu werden
</p>
<p>Alle Weiteren Einstellungen können auf dem Ursprungswert gelassen werden, ansonsten ist ein Blick in die Erklärungstexte der Konfigurationsdatei oder des Handbuches gefragt.</p>
<h3>DenyHosts Daemon starten</h3>
<p>Mit einem beherzten Absetzen von</p>
<p class="code">
/etc/init.d/denyhosts start   // normaler Start<br />
/etc/init.d/denyhosts start .purge   // erlaubt die Variable PURGE_DENY zu nutzen um geblockte Hosts nach der Zeitspanne wieder aus der hosts.deny zu entfernen
</p>
<p>auf der Konsole wird DenyHosts gestartet.</p>
<p>Wenn Werte in der Konfigurationsdatei geändert wurden, werden diese erst nach einem Neustart</p>
<p class="code">
/etc/init.d/denyhosts restart
</p>
<p>in Kraft treten.</p>
<h3>Hinweis</h3>
<p>Das sportliche Ziel eines Angreifers ist sicherlich Root-Rechte zu erlangen. Wenn man mit dem Benutzer Root per SSH arbeiten muß, empfiehlt es sich über die SSH Konfiguration das direkte Einloggen des Root-Benutzers zu unterbinden. Stattdessen sollte über einen anderen Account, mit minimalen Rechten eingeloggt und dann mit <i>su</i> zu dem Root-Benutzer gewechselt werden. So hat der Angreifer zwei Passwörter als Barriere.</p>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
<h3>Weiterführende Literatur</h3>
<p>empfehlenswert sind folgende Bücher:</p>
<ul>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/389721413X/elmediaagentu-21/" target="_blank">Linux Server-Sicherheit </a> von  Michael D. Bauer</li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3827256224/elmediaagentu-21/" target="_blank">Linux Hacker&#8217;s Guide. Sicherheit für Linux- Server und -Netze</a></li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3446226265/elmediaagentu-21/" target="_blank">Praxisbuch Sicherheit für Linux-Server und -Netze</a> von Barbara Oberhaitzinger, Helmar Gerloni, Helmut Reiser und Jürgen Plate</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2008/09/08/ssh-mit-denyhosts-sicherer-machen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Spamassassin per E-Mail sensiblisieren</title>
		<link>http://www.el-mediaagentur.com/2008/03/09/spamassassin-per-e-mail-sensiblisieren/</link>
		<comments>http://www.el-mediaagentur.com/2008/03/09/spamassassin-per-e-mail-sensiblisieren/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 12:32:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[procmail]]></category>
		<category><![CDATA[procmail Konfiguration]]></category>
		<category><![CDATA[procmailrc]]></category>
		<category><![CDATA[sa-learn]]></category>
		<category><![CDATA[sa-learn Anhang]]></category>
		<category><![CDATA[sa-learn Konfiguration]]></category>
		<category><![CDATA[sa-learn per E-Mail]]></category>
		<category><![CDATA[sa-learn trainieren]]></category>
		<category><![CDATA[sa-warp.pl]]></category>
		<category><![CDATA[sa-wrapper.pl]]></category>
		<category><![CDATA[Spam per Anhang]]></category>
		<category><![CDATA[Spamassassin]]></category>
		<category><![CDATA[Spamassassin per E-Mail]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/spamassassin-per-e-mail-sensiblisieren</guid>
		<description><![CDATA[Spam ist lästig und kostet viel Zeit und Geld, Spamassassin ist ein beliebtes Werkzeug dem Einhalt zu gebieten. Doch ist Spam sehr wandlungsfähig, was gestern noch einwandfrei gefiltert wurde, bleibt schon heute unmarkiert. Was tun? Spamassassin bringt mit sa-learn ein tolles Werkzeug mit. Sa-learn ermöglicht das Sensiblisieren auf Spam (schlechte E-Mails) und Ham (gute E-Mails), [...]]]></description>
			<content:encoded><![CDATA[<p><b>Spam ist lästig und kostet viel Zeit und Geld, Spamassassin ist ein beliebtes Werkzeug dem Einhalt zu gebieten. Doch ist Spam sehr wandlungsfähig, was gestern noch einwandfrei gefiltert wurde, bleibt schon heute unmarkiert. Was tun? Spamassassin bringt mit <i>sa-learn</i> ein tolles Werkzeug mit. Sa-learn ermöglicht das Sensiblisieren auf Spam (schlechte E-Mails) und Ham (gute E-Mails), man kann sozusagen Spamassassin darauf trainieren Spam zu erkennen.</b><span id="more-35"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>Folgende Vorgehensweise beschreibt die Konfiguration von <i>Spamassassin</i>, um <i>sa-learn</i> per E-Mail (Spam oder Ham per Anhang) zu trainieren.</p>
<h3>Voraussetzung</h3>
<p>Voraussetzung ist eine intakte Installation von <i>Spamassassin</i> und <i>procmail</i>. Lassen Sie sich nicht abschrecken von der Länge des How-Tos, der Mehrwert zur Bekämpfung von Spam ist nicht zu vernachlässigen.</p>
<h3>Schritt 1: Procmail durch procmailrc konfigurieren</h3>
<p>Procmail ermöglicht vor Auslieferung von E-Mails diese vorzubearbeiten, bsp. als Spam zu markieren, ins Nirvana zu schicken (/dev/null) oder Tools wie <i>sa-learn</i> damit zu konfrontieren.<br />
Die Datei die die nötigen Anweisungen enthält befindet sich unter <i>/etc/procmailrc</i>. <i>Procmail</i> ist sehr mächtig und ermöglicht allerhand Einsatzzwecke, es lohnt sich ein Blick auf <a href="http://www.procmail.org/" target="_blank">http://www.procmail.org/</a> zu werfen.<br />
An folgende Beispiel-Konfiguration verdeutliche ich die Vorgehensweise von <i>procmail</i> (s. Kommentare)</p>
<p class="code">
DROPPRIVS=yes<br />
#Logfile für debugging<br />
LOGFILE=/var/log/procmail<br />
#Für debugging [ON|OFF]<br />
VERBOSE=ON<br />
#Welche Shell soll benutzt werden<br />
#SHELL=/bin/sh</p>
<p>#Mails die kleiner als 256000 Bytes sind, sollen mit spamc -f geprüft werden<br />
:0fw<br />
* < 256000<br />
| /usr/bin/spamc -f</p>
<p>#Wenn die Mail an spam@domain.de ausgeliefert werden soll, dann soll das Script sa-wrap.pl mit der Option -<span style="font-size: 1px;"> </span>-spam ausgeführt werden. Die sa-wrap.pl ermöglicht das Anlernen von Spam (schlechte E-Mails) und Ham (gute E-Mails) als Attachment, in Schritt 3 wird dieses Script behandelt.<br />
:0<br />
* spam@domain.de<br />
{<br />
:0fw<br />
| /usr/local/bin/sa-wrap.pl -<span style="font-size: 1px;"> </span>-spam<br />
:0<br />
/dev/null<br />
}</p>
<p>#Wenn die Mail an ham@domain.de ausgeliefert werden soll, dann soll das Script sa-wrap.pl mit der Option -<span style="font-size: 1px;"> </span>-ham ausgeführt werden.<br />
:0<br />
* ham@domain.de<br />
{<br />
:0fw<br />
| /usr/local/bin/sa-wrap.pl -<span style="font-size: 1px;"> </span>-ham<br />
:0<br />
/dev/null<br />
}</p>
<p>#Alle E-Mails, die das SPAM-Level von mehr als 7 (Sterne) erreicht haben und an domain1.de etc. ausgeliefert werden sollte, wird zu /dev/null weitergeleitet, also gelöscht. Augenmerk ist auf TO.*undisclosed-recipients zu richten, hier werden auch die Mails behandelt die keinen eindeutigen Empfänger führen, manche Spam-Mails wollten hiermit gewisse Mechanismen austricksen<br />
:0 w<br />
* ^TO.*@domain1.com|TO.*@domain2.com|TO.*@domain3.de|<br />TO.*@domain4.de|TO.*@domain5.com|TO.*@domain6.de|TO.*@domain7.de|<br />TO.*undisclosed-recipients<br />
* ^X-Spam-Level:.*\*\*\*\*\*\*<br />
/dev/null</p>
<p>#Ab hier kommt ein Work-Around, um ein Problem mit procmail in gewissen Konstellationen zu beheben</p>
<p># Work around procmail bug: any output on stderr will cause the &#8220;F&#8221;<br />
#in &#8220;From&#8221;<br />
# to be dropped.  This will re-add it.<br />
:0 H<br />
* ! ^From[ ]<br />
* ^rom[ ]<br />
{<br />
        LOG=&#8221;*** Dropped F off From_ header! Fixing up. &#8220;</p>
<p>        :0 fhw<br />
        | sed -e &#8217;s/^rom /From /&#8217;<br />
}
</p>
<p>Die Syntax von <i>procmail</i> ist gewöhnungsbedürftig, aber wenn man das Schema verstanden hat, kann man das Script prima anpassen. Es gibt einige Quellen, wenn man <i>procmail</i> intensiver verstehen möchte. Damit das Logging und das spätere Zwischenspeichern und Entpacken der angehangenen Spam und Ham E-Mails in Zusammenhang mit <i>procmail</i> funktioniert, müssen wir <i>/var/log/procmail</i>, <i>/var/log/sa-lear.log</i> und <i>/var/spool/unpack</i> erstellen und die nötigen Rechte und Gruppen setzen:</p>
<p class="code">
$ touch /var/log/procmail.log<br />
$ chown root:mail /var/log/procmail.log<br />
$ chmod 666 /var/log/procmail.log<br />
$ touch /var/log/sa-learn.log<br />
$ chown root:mail /var/log/sa-learn.log<br />
$ chmod 666 /var/log/sa-learn.log<br />
$ mkdir /var/spool/unpack<br />
$ chown root:mail /var/spool/unpack<br />
$ chmod 777 /var/spool/unpack
</p>
<h3>DOWNLOAD der Beispiel procmailrc</h3>
<p><a class="download" href="http://www.el-mediaagentur.com/download.php?id=b48bd8368782e6bcee52bcdd6a097a94" title="procmailrc">procmailrc</a></p>
<h3>Schritt 2: Einrichten der beiden E-Mail Adressen</h3>
<p>Die im Huckepack gesandten Spam oder Ham E-Mails werden an zwei Adressen gesandt. Hier in der Beispiel <i>procmailrc</i> sind es spam@domain.de und ham@domain.de. Diese beiden Adressen müssen existieren. Wie diese erzeugt werden ist egal.</p>
<h3>Schritt 3: Einrichten der <i>sa-wrap.pl</i></h3>
<p>Die <i>sa-wrap.pl</i> ist das Script welche die weitere Verarbeitung der Anhänge übernimmt und <i>sa-learn</i> zuführt. Im Beispiel Script von procmail liegt das Script unter <i>/usr/local/bin/sa-wrap.pl</i>.</p>
<h3>DOWNLOAD sa-wrap.pl</h3>
<p><a class="download" href="http://www.el-mediaagentur.com/download.php?id=4ec6324f7a58fd71a09dcbeaf4cbb6d1" title="sa-wrap.pl">sa-wrap.pl</a></p>
<p>Wenn man das Script anschaut, gibt es nur ein paar Möglichkeiten Einstellungen vorzunehmen</p>
<p class="code">
#<br />
# Thanks to: Chung-Kie Tung for the removal of the dir<br />
#            Adam Gent for bug report<br />
#<br />
# v1.2</p>
<p>use strict;<br />
use MIME::Tools;<br />
use MIME::Parser;</p>
<p>#Debugging aus- oder einschalten [0|1]<br />
my $DEBUG = 0;<br />
#Entpackverzeichnis<br />
my $UNPACK_DIR = &#8216;/var/spool/unpack&#8217;;<br />
#Pfad zu sa-learn<br />
my $SA_LEARN = &#8216;/usr/bin/sa-learn&#8217;;<br />
#kann vernachlässigt werden<br />
my @DOMAINS = qw/gtmp.org winnink.org/;<br />
.<br />
.<br />
.
</p>
<p>Die Pfade sollten natürlich angepasst werden, sofern man andere gewählt hat. Um die Fehlersuche zu unterstützen ist das Debugging wertvoll. Die Logs werden pro versandte E-Mail erzeugt und stadardmäßig unter <i>/tmp</i> abgelegt (spam.log.16377 etc.). Des weiteren werden zusätzliche Informationen in der <i>/var/log/procmail</i> abgelegt.</p>
<h3>HINWEIS</h3>
<p>Es gibt eine neuere <i>sa-wrap.pl</i> namens <i>sa-wrapper.pl</i> auf die ich nicht weiter eingehe, da ich zufriedener mit der alten Version bin. Mit einer Suche in Google oder einer anderen Suchmaschine nach <i>sa-wrapper.pl</i> wird man fündig werden.</p>
<h3>Schritt 4: Der Test</h3>
<p>Nach einem Neustart des Spamassassin Daemons kann man einen Test durchführen. Man nehme eine leere E-Mail und setze Spam oder Ham E-Mails als Attachement ein (<b>wieviele Anhänge ist egal, es wird iterativ abgearbeitet</b>) und schickt diese entwerder an spam@domain.de oder ham@domain.de, wobei natürlich hier die erstellten E-Mail Adressen genutz werden sollen und keine fiktiver Domainname. Wie überprüft man nun den Erfolg?<br />
Ganz einfach auf der Kommandozeile</p>
<p class="code">
$ sa-learn &#8211;dump magic
</p>
<p>wobei <i>magic</i> eine Kurzübersicht bietet. Es sollte so etwas hierbei herauskommen</p>
<p class="code">
$ /tmp # sa-learn &#8211;dump magic<br />
0.000          0          3          0  non-token data: bayes db version<br />
0.000          0      13938          0  non-token data: nspam<br />
0.000          0      12353          0  non-token data: nham<br />
0.000          0     169414          0  non-token data: ntokens<br />
0.000          0 1170422819          0  non-token data: oldest atime<br />
0.000          0 1205088456          0  non-token data: newest atime<br />
0.000          0 1205058100          0  non-token data: last journal sync atime<br />
0.000          0 1205040158          0  non-token data: last expiry atime<br />
0.000          0          0          0  non-token data: last expire atime delta<br />
0.000          0          0          0  non-token data: last expire reduction count
</p>
<p>Wenn das Lernen erfolgreich war wird der Count von <i>nspam</i> oder <i>nham</i> erhöht worden sein. Man kann natürlich auch mit Hilfe der Logs den entsprechenden Erfolg einsehen.</p>
<p><b>Voila!</b></p>
<h3>HINWEIS</h3>
<p>Nicht jeder Spam wird nach dem Anlernen erkannt werden, manchmal muss man ähnlichen Spam mehrmals senden. Auch das Versorgen mit guten E-Mails (Ham) darf nicht vernachlässigt werden, da hierüber Vergleiche gemacht werden.</p>
<h3>Nachtrag: Bug in neueren Spamassassin Versionen</h3>
<p>Vor kurzem stiess ich auf einen Bug in einer neuen Spamassassin Version. Die Logs führten folgendes auf</p>
<p class="code">
archive-iterator: invalid (undef) format in target list, 2<br />
at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/<br />ArchiveIterator.pm line 727, <STDIN> line 1.
</p>
<p>, wenn das Auftreten sollte muss die <i>sa-learn</i> unter <i>/usr/bin/</i> angepasst werden. Die Hinweismeldung kommt durch ein nicht gesetztes Target auf. Was ist zu tun?</p>
<p class="code">
Lösung: /usr/bin/sa-learn anpassen</p>
<p>Index: sa-learn.raw<br />
================================================================<br />
&#8212; sa-learn.raw	(revision 507745)<br />
+++ sa-learn.raw	(working copy)<br />
@@ -402,7 +402,10 @@</p>
<p>     # make sure the target list is in the normal AI format<br />
     if ($targets[$elem] !~ /^[^:]*:[a-z]+:/) {<br />
-      $targets[$elem] = target($targets[$elem]);<br />
+      my $item = splice @targets, $elem, 1;<br />
+      $elem&#8211;; # go back to this element again<br />
+      target($item); # add back to the list<br />
+      next;<br />
     }<br />
   }</p>
<p>- Zeile entfernen<br />
+ Zeile einfügen
</p>
<p>Die entpsrechende Zeilen könnt ihr an <i># make sure the target list is in the normal AI format</i> erkennen.</p>
<p><b>Voila!</b></p>
<h3>Hinweis</h3>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
<h3>Weiterführende Literatur</h3>
<p>empfehlenswert sind folgende Bücher:</p>
<ul>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3897213931/elmediaagentu-21/" target="_blank">SpamAssassin</a> von Alan Schwartz</li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/389721377X/elmediaagentu-21/" target="_blank">Mit Open Source-Tools Spam und Viren bekämpfen. Für Unix- und Linux-basierte Mailsysteme</a> von Peter Eisentraut und Alexander Wirt</li>
<li><a href="http://www.amazon.de/exec/obidos/ASIN/3826615573/elmediaagentu-21/" target="_blank">Postfix Ge-Packt</a> von Tobias Wassermann</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2008/03/09/spamassassin-per-e-mail-sensiblisieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH ohne Passwort Authentifizierung</title>
		<link>http://www.el-mediaagentur.com/2008/03/07/ssh-ohne-passwort-authentifizierung/</link>
		<comments>http://www.el-mediaagentur.com/2008/03/07/ssh-ohne-passwort-authentifizierung/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 13:20:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[öffentlichen Schlüssel]]></category>
		<category><![CDATA[public key]]></category>
		<category><![CDATA[publickey]]></category>
		<category><![CDATA[SSH ohne Passwort]]></category>
		<category><![CDATA[SSH ohne Passwort Authentifizierung]]></category>
		<category><![CDATA[ssh-keygen]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/ssh-ohne-passwort-authentifizierung</guid>
		<description><![CDATA[Automatisiere SSH-Kommunikation, bsp. für Datei-Synchronisation (s. Rsync &#8211; Synchronisation leicht gemacht) kann ohne weiteres Zutun nicht automatisch ablaufen. Um auch die Authentifizierung zu automatisieren, bedarf es eines öffentlichen Schlüssels (Public Key)






HINWEIS:
Passwortlose Authentifizierung bürgt Gefahren, hier zwei Szenarien.
1. Ein Angreifer erlangt Zugang zum Zielhost und kann in einem fremden Account in die Datei ~/.ssh/authorized_keys schreiben.
2. Ein [...]]]></description>
			<content:encoded><![CDATA[<p><b>Automatisiere SSH-Kommunikation, bsp. für Datei-Synchronisation (s. <a href="http://www.el-mediaagentur.com/index.php/archives/rsync-datei-synchronisation-leicht-gemacht">Rsync &#8211; Synchronisation leicht gemacht</a>) kann ohne weiteres Zutun nicht automatisch ablaufen. Um auch die Authentifizierung zu automatisieren, bedarf es eines öffentlichen Schlüssels (Public Key)</b><span id="more-36"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<h3>HINWEIS:</h3>
<p>Passwortlose Authentifizierung bürgt Gefahren, hier zwei Szenarien.<br />
1. Ein Angreifer erlangt Zugang zum Zielhost und kann in einem fremden Account in die Datei <i>~/.ssh/authorized_keys</i> schreiben.<br />
2. Ein Angreifer hat Zugriff auf den Quellhost und dessen Dateien <i>~/.ssh/id_dsa</i> oder <i>~/.ssh/id_rsa</i>. Beide Dateien sind ausserdem nicht passwortgeschuetzt. </p>
<p>Wer die Gefahren ausschliessen kann, sollte weiterlesen.</p>
<h3>Schritt 1: Schlüssel mit ssh-keygen generieren</h3>
<p>Nach Ausführung von</p>
<p class="code">$ ssh-keygen -t dsa</p>
<p>auf dem Quellhost (Ort und Passwort leer lassen und mit Return bestätigen), werden in <i>$HOME/.ssh/</i> die Dateien <i>~/.ssh/id_dsa</i> und <i>~/.ssh/id_dsa.pub</i> erzeugt. </p>
<h3>Schritt 2: Public Key auf Zielhost übertragen</h3>
<p>Hier führen viele Wege zum Ziel. Der Inhalt der erzeugten Datei <i>~/.ssh/id_dsa.pub</i> muß an die <i>.ssh/authorized_keys</i> des Zielhosts angehangen werden. Ob mit <i>cat</i>, <i>ssh-copy-id</i> oder anderen Übertragungsmöglichkeiten gearbeitet wird, ist grundsätzlich egal. Hier ein elegantes Beispiel:</p>
<p class="code">$ cat ~/.ssh/id_dsa.pub | ssh user@remotehost &#8216;cat >> .ssh/authorized_keys&#8217;</p>
<p>Als <i>remotehost</i> ist eine IP oder Domain möglich.</p>
<h3>HINWEIS:</h3>
<p>Die Berechtigungen der <i>authorized_keys</i> müssen auf 0600 gesetzt werden. Sonst lässt der Rechner unter Umständen aus Sicherheitsgründen gar keine Verbindung per Schlüssel zu.</p>
<h3>Schritt 3: Verbidungsversuch</h3>
<p>Wenn ich alles hier korrekt geschildert habe und es so umgesetzt wurde, sollte folgender Verbindungsaufbau vom Client ohne Passwortabfrage funktionieren:</p>
<p class="code">ssh user@remotehost</p>
<p>Wobei <i>remotehost</i> eine IP oder Domain sein kann.</p>
<p><b>Voila!</b></p>
<h3>Hinweis</h3>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2008/03/07/ssh-ohne-passwort-authentifizierung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rsync &#8211; Synchronisation leicht gemacht</title>
		<link>http://www.el-mediaagentur.com/2008/02/03/rsync-datei-synchronisation-leicht-gemacht/</link>
		<comments>http://www.el-mediaagentur.com/2008/02/03/rsync-datei-synchronisation-leicht-gemacht/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 12:39:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[automatisierte Synchronisation]]></category>
		<category><![CDATA[inkrementelle Synchronisation]]></category>
		<category><![CDATA[Rsync]]></category>
		<category><![CDATA[Rsync Spiegelung]]></category>
		<category><![CDATA[SSH Rsync]]></category>
		<category><![CDATA[Synchronisation]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/rsync-datei-synchronisation-leicht-gemacht</guid>
		<description><![CDATA[Rsync ist ein Open-Source-Tool, welches unkomplizierten inkrementellen Datei-Synchronisation ermöglicht. Rsync ist unter der GNU General Public License frei erhältlich und wird derzeit von Wayne Davison weiter gepflegt. Rsync ist unter anderem eine tolle Lösung um Webpräsenzen/ -anwendungen auf einen redudanten Server automatisiert zu spiegeln. Unter http://samba.anu.edu.au/rsync/ kann man die offizielle Webseite bzw. Dokumentation zu Rsync [...]]]></description>
			<content:encoded><![CDATA[<p><b>Rsync ist ein Open-Source-Tool, welches unkomplizierten inkrementellen Datei-Synchronisation ermöglicht. Rsync ist unter der GNU General Public License frei erhältlich und wird derzeit von Wayne Davison weiter gepflegt. Rsync ist unter anderem eine tolle Lösung um Webpräsenzen/ -anwendungen auf einen redudanten Server automatisiert zu spiegeln. Unter <a href="http://samba.anu.edu.au/rsync/" target="_blank">http://samba.anu.edu.au/rsync/</a> kann man die offizielle Webseite bzw. Dokumentation zu Rsync einsehen.</b><span id="more-34"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>Vorrausetzung für zur Nutzung von Rsync, ist natürlich eine funktionierende Installation des Tools auf beiden Servern (Sender, Empfänger). Ich werde nicht weiter auf die Installation eingehen, da diese sich recht einfach gestaltet, sofern man Paketmanger wie <i>apt-get</i> oder <i>rpm</i> bzw. <i>yast</i> oder ähnliches einsetzt.</p>
<h3>HINWEIS</h3>
<p>Rsync ist gnadenlos! Vor der Nutzung von Rsync und dessen Parameter, sollte man sich ausgiebig damit auseinader gesetzt haben und eventuell Testläufe mit unsensiblen Daten durchführen. Rsync ist zu mehr imstande als dem folgenden Einsatzbeispiel, es lohnt sich ein Blick in die <a href="http://samba.anu.edu.au/ftp/rsync/rsync.html" target="_blank">man page</a>.</p>
<h3>Rsync Syntax</h3>
<p>Per Konsole sieht das Syntax-Schema von Rsync folgendermaßen aus:</p>
<p class="code">rsync [OPTIONEN] &lt;Source&gt; &lt;Destination&gt;</p>
<p>&lt;Source&gt; bestimmt das Quellverzeichnis. &lt;Destination&gt; gibt das Zielverzeichnis auf dem entfernten System an. Wird nur einer dieser beiden Parameter gesetzt, gilt das aktuelle Verzeichnis als Quell-Verzeichnis.</p>
<h3>Beispiel</h3>
<p>Folgendes Beispiel verdeutlicht das automatisierte Synchronisieren von einem Webserver (Debian) auf ein entferntes System (Debian) per SSH. Wichtig hierbei ist, dass der Benutzer der den Befehl anstösst und auch der Benutzer der die Aktionen auf dem entfernten System ausführt, genügend Rechte auf die zu übertragenden Ordner bzw. Dateien besitzt.</p>
<p class="code">#min  hour  day  month  dow  user  command<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
#<br />
30 4 * * *  rsync -e ssh -a -<span style="font-size: 1px;"> </span>-delete -<span style="font-size: 1px;"> </span>-exclude=ordner1/ -<span style="font-size: 1px;"> </span>-exclude=datei1 -<span style="font-size: 1px;"> </span>-exclude=ordner2/ -<span style="font-size: 1px;"> </span>-exclude=cfg*.php /var/www/ root@domain.de:/var/www >> /var/log/rsync.log</p>
<p>Was geschieht im Detail? Jeden Morgen um 4:30Uhr wird der Rsync durch den Cronjob angestossen.<br />
Der Parameter</p>
<p class="code">-e ssh</p>
<p>gibt an das die Synchronisation per SSH gesichert erfolgen soll. Die Option</p>
<p class="code">-a</p>
<p> fasst die Optionen (-oDrlptg) zusammen:</p>
<ul>
<li><b>-o</b> behält Besitzrechte bei (nur root)</li>
<li><b>-D</b> behält Gerätedateien bei (nur root)</li>
<li><b>-r</b> kopiert Unterverzeichnisse</li>
<li><b>-l</b> kopiert symbolische Links</li>
<li><b>-p</b> behält Rechte bei</li>
<li><b>-t</b> behält Zeiten bei</li>
<li><b>-g</b> behält Gruppenrechte bei</li>
</ul>
<p>Der Parameter <i>-a</i> ist unumgänglich, wenn man das entfernte System als Ersatzserver betreiben möchte, da so gewährleistet wird das die Daten und deren Struktur 1 zu 1 (Rechte, Besitzer, Symlinks etc.) übertragen wird. Vorraussetzung für den Einsatz des Ersatzservers ist natürlich, dass dessen Strukturen sehr ähnlich sind, besonders im Bezug auf Benutzer und deren Rechte.<br />
Was macht <i>-<span style="font-size: 1px;"> </span>- delete</i>? Genau das was vermutet wird, es löscht alle Dateien auf dem entfernten System, die durch die Übertragenden Dateien ersetzt werden sollen. Bsp. die Datei <i>test.txt</i> existiert auf beiden Systemen. Auf dem Quell-Server wurde diese Datei geändert. Nun würde beim nächsten Synchronisationsdurchlauf die Datei auf dem Ziel-Server durch die Option <i>-<span style="font-size: 1px;"> </span>- delete</i> entfernt und dann durch die Übertragung neu geschrieben werden.<br />
Mit dem Parameter <i>-<span style="font-size: 1px;"> </span>- exclude</i> schliesst man Ordner, Unterordner und Dateien aus der Synchronisation aus. Gerade im Bezug auf das Betreiben eines redudanten Servers möchte man nicht nach jeder Synchronisation die typischen Konfigurations-Dateien überarbeiten und mit den Daten des Ziel-Servers anpassen, dies lässt sich bsp. mit <i>-<span style="font-size: 1px;"> </span>-exclude=cfg*.php</i> einrichten, sofern die Konfigurationsdateien nach diesem Schema erstellt wurden.<br />
Was genau würde in dem oben genannten Beispiel von wo nach wo synchronisiert? Der vollst. Inhalt von <b>/var/www/</b> würde in den Zielordner <b>root@domain.de:/var/www</b> synchronisiert. Man beachte, dass das Zielverzeichnis keinen abschliessenden Schrägstrich führt. Ersatzweise kann man auch eine IP (root@xxx.xxx.xxx.xxx) oder auch eine dynamische Adresse für die entfernte Synchronisation angeben.</p>
<p><b>Voila!</b></p>
<p>Dem eifrigen Leser ist sicherlich aufgefallen, dass der geschilderte Vorgang so nicht funktionieren kann, denn der Cronjob würde zwar ausgeführt, aber dann zwecks Passwortabfrage (SSH-Login) in die Schranken gewiesen werden. Um den reibungslosen (passwortlosen) Verbidungsaufbau zu gewährleisten muss man einen öffentlichen Schlüssel bekanntmachen. Wie das funktioniert erfahren Sie in dem Beitrag <a href="http://www.el-mediaagentur.com/index.php/archives/ssh-ohne-passwort-authentifizierung">SSH ohne Passwort Authentifizierung</a>.</p>
<h3>Hinweis</h3>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
<h3>Links zum Thema</h3>
<ul>
<li><a href="http://samba.anu.edu.au/rsync/" target="_blank">http://samba.anu.edu.au/rsync/</a> Rsync Webseite</li>
<li><a href="http://samba.anu.edu.au/ftp/rsync/rsync.html" target="_blank">http://samba.anu.edu.au/ftp/rsync/rsync.html</a> Rsync man page</li>
<li><a href="http://www.linux-user.de/ausgabe/2006/04/090-rsync/" target="_blank">http://www.linux-user.de/ausgabe/2006/04/090-rsync/</a> Dateien abgleichen mit Rsync</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2008/02/03/rsync-datei-synchronisation-leicht-gemacht/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>REOBack Backup</title>
		<link>http://www.el-mediaagentur.com/2008/02/01/reoback-backup/</link>
		<comments>http://www.el-mediaagentur.com/2008/02/01/reoback-backup/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 17:39:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux und mehr]]></category>
		<category><![CDATA[automatisiertes Backup]]></category>
		<category><![CDATA[Linux Backup]]></category>
		<category><![CDATA[remote backup]]></category>
		<category><![CDATA[REOBack]]></category>

		<guid isPermaLink="false">http://www.el-mediaagentur.com/index.php/archives/reoback-backup</guid>
		<description><![CDATA[REOBack ist eine leicht zu integrierende Backup-Lösung für Linux-Anwender und System-Administratoren. Einfach in der Benutzung und eine prima Lösung für automatische Voll- bzw. inkrementelle Backups. Backups können auch remote per NFS oder FTP übertragen werden. Näheres unter http://reoback.sourceforge.net/.






REOBack ist frei erhältlich und unterliegt der GPL (General Public License).
DOWNLOAD der aktuellen Version unter:
http://sourceforge.net/projects/reoback/
Das Archiv mit
tar -xvvzf [...]]]></description>
			<content:encoded><![CDATA[<p><b>REOBack ist eine leicht zu integrierende Backup-Lösung für Linux-Anwender und System-Administratoren. Einfach in der Benutzung und eine prima Lösung für automatische Voll- bzw. inkrementelle Backups. Backups können auch <i>remote</i> per NFS oder FTP übertragen werden. Näheres unter <a href="http://reoback.sourceforge.net/" target="_blank">http://reoback.sourceforge.net/</a></b>.<span id="more-32"></span></p>
<div id="inline_ad" style="float: left;">
<script type="text/javascript"><!--
google_ad_client = "pub-2821839982812174";
/* Mediaum Rectangle 300x250 (leicht abgr.), Erstellt 27.02.08 */
google_ad_slot = "3929261217";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>REOBack ist frei erhältlich und unterliegt der GPL (General Public License).</p>
<h3>DOWNLOAD der aktuellen Version unter:</h3>
<p><a class="download" href="http://sourceforge.net/projects/reoback/" target="_blank">http://sourceforge.net/projects/reoback/</a></p>
<p>Das Archiv mit
<p class="code">tar -xvvzf &lt;Archivname&gt;</p>
<p> im gewünschten Ort entpacken. REOBack wird durch zwei Dateien (files.conf und settings.conf) konfiguriert. Mit <i>files.conf</i> bestimmt man die zu sichernden Ordner und/oder Dateien. Die <i>settings.conf</i> bestimmt das Verhalten von REOBack.</p>
<h3><i>settings.conf</i> &#8211; Parameter</h3>
<ul>
<li><b>host</b> Hostname bzw. IP des Server der Reoback nutzt</li>
<li><b>backupdays</b> Anzahl der Tage, nach der Backups gelöscht werden (aus<br />
Sicherheitsgründen wird vom Programm immer die doppelte Anzahl der hier<br />
angegebenen Tage verwendet)</li>
<li><b>files</b> Pfad zu <i>files.conf</i></li>
<li><b>tmpdir</b> Pfad zu Ordner für temporäre Dateien</li>
<li><b>datadir</b> Pfad zu REOBack Programmverzeichnis</li>
<li><b>localbackup</b> Pfad für den lokalen Speicherort der Backups</li>
<li><b>keeplocalcopy</b> lokale Kopie des Backups behalten oder löschen?</li>
<li><b>remotebackup</b> Soll das Backup remote übertragen werden?</li>
<li><b>rbackuptype</b> Wahl des Übertragungsprotokolls (FTP oder NFS)</li>
<li><b>localmount</b> Wird nur für NFS benötigt, kann unverändert bleiben</li>
<li><b>remotehost</b> Hostname bzw. IP des Server der das Backup per FTP empfangen soll</li>
<li><b>remotepath</b> Wo soll das Backup auf dem Ziel-Server abgelegt werden?<br />
(REOBack erstellt automatisch einen Ordner mit dem jeweiligen Datum darin)</li>
<li><b>ftpuser</b> FTP-Benutzer</li>
<li><b>ftppasswd</b> FTP &#8211; Passwort</li>
</ul>
<h3><i>files.conf</i> &#8211; Parameter</h3>
<p>Als erstes kommentieren wir alle Beispielzeilen mit # in der <i>files.conf</i> aus. Nun können wir am Ende der Konfigurationsdatei mit folgenden Parametern REOBack die Ordner bzw. Dateien mitteilen, die in Zukunft gesichert werden sollen:</p>
<ul>
<li><b>File</b> Backup-Dateiname, aktuelles Datum wird automatisiert angefügt</li>
<li><b>Skip</b> alle Verzeichnisse die mit der Option <i>Skip</i> versehen sind werden bei der Sicherung nicht berücksichtigt.</li>
</ul>
<h3>Beispiel für <i>files.conf</i></h3>
<p class="code">File: Test-Backup<br />
/home/verzeichnis1<br />
Skip: /home/verzeichnis1/backups<br />
Skip: /home/verzeichnis1/reoback/data<br />
/etc<br />
/home/admin</p>
<p>Die zu sichernden Ordner jeweils in eine Zeile angeben.</br></br><br />
Um die Sicherung mit REOback zu automatisieren, kann man einen Cronjob anlegen. Einfach das Shellscript <i>run_reoback.sh</i> im Cronjob aufrufen. Beispiel:</p>
<p class="code">
#min  hour  day  month  dow  user  command<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
#<br />
0    5     *     *     *  <i>PFAD_ZU_REOBACK</i>/reoback-1.0/run_reoback.sh | mail -s &#8220;automatisches Backup&#8221; cron@domain.com
</p>
<p>Hier wird jeden Tag um 5 Uhr morgens ein Backup angestossen. Mit <i>&#8221; | mail -s &#8220;automatisches Backup&#8221; cron@domain.com&#8221;</i> wird die Ausgabe von REOBack direkt per E-Mail versandt. Sehr komfortabel um Fehler frühzeitig zu erkennen.</p>
<p><b>Voila!</b></p>
<h3>Hinweis</h3>
<p>Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.el-mediaagentur.com/2008/02/01/reoback-backup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

