<?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>controlc.de &#187; debian</title>
	<atom:link href="http://controlc.de/category/it/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://controlc.de</link>
	<description>mehr als nur ein Notizblock</description>
	<lastBuildDate>Fri, 13 Jan 2012 18:37:18 +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>bash &#124; Abgestürzte ssh-Sitzungen beenden</title>
		<link>http://controlc.de/2011/09/20/bash-abgesturzte-ssh-sitzungen-beenden/</link>
		<comments>http://controlc.de/2011/09/20/bash-abgesturzte-ssh-sitzungen-beenden/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 12:21:40 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=2044</guid>
		<description><![CDATA[Ab und an reagieren SSH-Sessions nicht mehr und damit ist das komplette Terminal blockiert. Das liegt meist daran, das die Netzwerkverbindung unterbrochen wurde — sei es auf Grund von Netzwerkfehlern oder weil das Notebook in den Energiesparmodus gegangen ist. In solchen Fällen habe ich immer das Terminal-Fenster geschlossen, was ich ziemlich nervig fand (Stichwort: Fensteranordnung [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2011/08/Absturz-SSH-Verkehrsschild.png" class="floatbox" rev="group:2044 caption:`Absturz SSH Verkehrsschild`"><img class="aligncenter size-medium wp-image-2060" title="Absturz SSH Verkehrsschild" src="http://controlc.de/wp-content/uploads/2011/08/Absturz-SSH-Verkehrsschild-300x281.png" alt="" width="270" height="253" /></a></p>
	<p>Ab und an reagieren SSH-Sessions nicht mehr und damit ist das komplette Terminal blockiert. Das liegt meist daran, das die Netzwerkverbindung unterbrochen wurde — sei es auf Grund von Netzwerkfehlern oder weil das Notebook in den Energiesparmodus gegangen ist. In solchen Fällen habe ich immer das Terminal-Fenster geschlossen, was ich ziemlich nervig fand (Stichwort: Fensteranordnung im <a href="http://www.iterm2.com">iTerm</a>). Irgendwann habe ich die <a href="http://blog.jozjan.net/2008/01/close-your-frozen-ssh-session.html" target="_blank">Lösung</a> gefunden, die ich Euch nicht vorenthalten möchte. Wenn man im Terminal-Fenster die Tasten [ENTER] [TILDE] und [PUNKT] der Reihe nach eingibt, wird die abgestürzte SSH-Session beendet und das Terminal freigegeben:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">↩~.</pre></div></div>

	<p>Da ich mir das nicht merken kann bzw. mir die Tastenkombination zu kompliziert ist, habe ich damit einfach <a href="http://www.ergonis.com/products/typinator/">Typinator</a> »missbraucht«</p>
	<p><a href="http://controlc.de/wp-content/uploads/2011/09/Typinator-SSH-session-abort.png" class="floatbox" rev="group:2044 caption:`Typinator - SSH session abort`"><img class="aligncenter size-medium wp-image-2067" title="Typinator - SSH session abort" src="http://controlc.de/wp-content/uploads/2011/09/Typinator-SSH-session-abort-265x300.png" alt="" width="265" height="300" /></a>So ist es mir möglich mit der Tastenkombination »XXX« jede hängende SSH-Session zu beenden.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2011/09/20/bash-abgesturzte-ssh-sitzungen-beenden/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>debian &#124; OpenVPN-Server als Standard-Gateway</title>
		<link>http://controlc.de/2010/12/15/debian-openvpn-server-als-standard-gateway/</link>
		<comments>http://controlc.de/2010/12/15/debian-openvpn-server-als-standard-gateway/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 14:04:14 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[netzwerk]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[ip_forward]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[opendns]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[redirect gateway]]></category>
		<category><![CDATA[skript]]></category>
		<category><![CDATA[sysctl.conf]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1899</guid>
		<description><![CDATA[Wie im Artikel OpenVPN-Server einrichten geschrieben soll der auf dem vServer installierte OpenVPN-Server auch als Standard-Gateway für das Notebook auf Auslandsreisen fungieren, um staatliche Restriktionen umgehen zu können. Damit dies funktioniert müssen folgende Konfigurationen gemacht werden: Auf dem OpenVPN-Server muss IP-Forwarding angeschaltet sein sysctl -w net.ipv4.ip_forward=1 bzw. dauerhaft in /etc/sysctl.conf eintragen. Ebenfalls muss das OpenVPN-Netz [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2010/12/Tunnelblick-Logo.png" class="floatbox" rev="group:1899 caption:`Tunnelblick-Logo`"><img class="aligncenter size-full wp-image-1924" title="Tunnelblick-Logo" src="http://controlc.de/wp-content/uploads/2010/12/Tunnelblick-Logo.png" alt="" width="127" height="127" /></a>Wie im Artikel <a href="http://controlc.de/2009/06/03/debian-openvpn-server-einrichten/">OpenVPN-Server einrichten</a> geschrieben soll der auf dem vServer installierte OpenVPN-Server auch als Standard-Gateway für das Notebook auf Auslandsreisen fungieren, um staatliche Restriktionen umgehen zu können. Damit dies funktioniert müssen folgende Konfigurationen gemacht werden:<span id="more-1899"></span></p>
	<ul>
	<li>Auf dem OpenVPN-Server muss IP-Forwarding angeschaltet sein</li>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sysctl <span style="color: #660033;">-w</span> net.ipv4.ip_forward=<span style="color: #000000;">1</span></pre></div></div>

	<p>bzw. dauerhaft in <em>/etc/sysctl.conf</em> eintragen.</ul>
	<ul>
	<li>Ebenfalls muss das OpenVPN-Netz beim Übergang ins Internet geNATet werden. Dazu muss eine iptables Regel gesetzt werden. Diese Befehlszeile muss jedesmal ausgeführt werden, wenn OpenVPN gestartet wird, damit es funktioniert. Deswegen wird unter <em>/etc/openvpn/firewall.sh</em> ein Script angelegt, welches folgenden Inhalt hat.</li>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
iptables <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> POSTROUTING <span style="color: #660033;">-s</span> 10.8.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> <span style="color: #660033;">-o</span> eth0 <span style="color: #660033;">-j</span> MASQUERADE</pre></div></div>

	<p>Und anschließend muß noch in die OpenVPN-Konfigurationsdatei auf dieses Script gezeigt werden.</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">route-up <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>firewall.sh</pre></div></div>

	</ul>
	<p>Dann wird für in die clientspezifische Konfigurationsdatei in <em>/etc/openvpn/ccd</em> folgendes geschrieben:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">push <span style="color: #ff0000;">&quot;redirect-gateway def1&quot;</span>
push <span style="color: #ff0000;">&quot;dhcp-option DNS 208.67.222.222&quot;</span>
push <span style="color: #ff0000;">&quot;dhcp-option DNS 208.67.220.220&quot;</span></pre></div></div>

	<p>Ersteres weist den Client an den OpenVPN-Server als Default-Gateway einzutragen und die nächsten beiden Anweisungen geben dem Client die OpenDNS-Server als DNS-Server.</p>
	<p>Ich habe dafür extra clientspezifische Konfigurationsdateien in <em>/etc/openvpn/ccd </em>abgelegt, damit man zukünftig die Wahl hat.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/12/15/debian-openvpn-server-als-standard-gateway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash &#124; History aufwerten</title>
		<link>http://controlc.de/2010/03/14/bash-history-aufwerten/</link>
		<comments>http://controlc.de/2010/03/14/bash-history-aufwerten/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 09:00:52 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[.bash_profile]]></category>
		<category><![CDATA[.profile]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=614</guid>
		<description><![CDATA[Wenn man öfter auf der Kommandozeile arbeitet lernt man die History-Funktion zu schätzen. Hier eine lose Aufstellung einiger Möglichkeiten, wie man die History-Funktion noch weiter aufbohren und an seine Bedürfnisse anpassen kann. Update: Aufgrund von weiteren Recherchen und des Kommentars auf macfidelity habe ich diesen Artikel noch einmal überarbeitet und weitere Informationen hinzugefügt. Einleitung Die [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2009/06/bash-history-terminal.png" class="floatbox" rev="group:614 caption:`bash-history-terminal`"><img class="aligncenter size-full wp-image-1581" title="bash-history-terminal" src="http://controlc.de/wp-content/uploads/2009/06/bash-history-terminal.png" alt="" width="200" height="178" /></a></p>
	<p>Wenn man öfter auf der Kommandozeile arbeitet lernt man die History-Funktion zu schätzen. Hier eine lose Aufstellung einiger Möglichkeiten, wie man die History-Funktion noch weiter aufbohren und an seine Bedürfnisse anpassen kann.<br />
<strong>Update:</strong> <em>Aufgrund von weiteren Recherchen und des <a href="http://macfidelity.de/2010/03/11/randnotiz-tweaking-terminal-history/#comment-14527">Kommentars</a> auf <a href="http://macfidelity.de">macfidelity</a> habe ich diesen Artikel noch einmal überarbeitet und weitere Informationen hinzugefügt.</em><br />
<span id="more-614"></span></p>
	<h3>Einleitung</h3>
	<p>Die History ist eine eingebaute Funktion in dem Befehlsinterpreter <a href="http://www.gnu.org/software/bash/">bash</a> — der Standardshell inzwischen vieler *nixe bzw. *BSDs, so auch von Mac OS X. Die History hat eingebaute Befehle, die man wunderbar im <a href="http://www.gnu.org/software/bash/manual/bashref.html#Bash-Builtins">Handbuch von Bash</a> nachlesen kann, oder in Kürze erklärt bei <a href="http://macfidelity.de/2010/03/11/randnotiz-tweaking-terminal-history/">macfidelity</a> findet. Das Grundverhalten der History kann man, wie auch ziemlich vieler anderer Funktionen, in den Profil-Dateien der bash definieren. Dazu möchte ich auf den Artikel <a href="http://controlc.de/2010/03/12/bash-shell-einrichten/">Bash-Shell einrichten</a> verweisen.</p>
	<h3>History von mehreren parallel laufenden Terminalsessions sichern</h3>
	<p>Oft genug hat man mehrere Terminalsessions zu einem Host offen um sich z.B. in der einen Session das Logfile anzuschauen, während man in anderen Session einen Befehl ausführt. Beim Beenden der Session wird aber nur eine History gespeichert. Um immer hinzuzufügen führt man folgenden Befehl aus</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">shopt</span> <span style="color: #660033;">-s</span> histappend</pre></div></div>

	<h3>History sofort speichern</h3>
	<p>Die History einer Sesion wird immer erst beim Beenden einer Session in die Datei .bash_history gespeichert. Um bei parallelen Terminalsessions auf die Befehle zuzugreifen, die gerade erst in einer anderen Session getätigt wurden, kann man mit der Umgebungsvariablen</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PROMPT_COMMAND</span>=<span style="color: #ff0000;">'history -a'</span></pre></div></div>

	<p>die Shell dazu zwingen bei jedem Generieren eines neuen Prompts (als einer Befehlseingabezeile) die History zu schreiben.</p>
	<h3>History mit Timestamp</h3>
	<p>Um im Historyfile sich pro Befehl auch einen Timestamp hinzufügen zu lassen gibt man folgendes ein:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTTIMEFORMAT</span>=<span style="color: #ff0000;">'%a %T '</span></pre></div></div>

	<p>Die Variablen dafür kann man sich von <a href="http://php.net/manual/de/function.strftime.php">strftime</a> abschauen.</p>
	<h3>Größe des History-Speichers in der Datei</h3>
	<p>Wie viele Zeile die History-Datei speichern kann weiß ich zwar nicht genau (ich denke aber das es 500 Zeilen sind), aber vergrößern kann man ihn mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTFILESIZE</span>=<span style="color: #000000;">1000</span></pre></div></div>

	<p>oder aber man schaltet gleich die Größenbeschränkung aus:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">unset</span> HISTFILESIZE</pre></div></div>

	<p>Mit der Variable</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTSIZE</span>=<span style="color: #000000;">500</span></pre></div></div>

	<p>kann man definieren, wie viele Zeilen maximal beim Beenden einer Terminalsession in die History-Datei geschrieben werden.</p>
	<h3>Ignorieren von Befehlen</h3>
	<p>Alle eingegebenen Befehle werden in die History gespeichert. Dieses Verhalten kann man etwas einschränken, indem man Befehle, welche mit einem Leerzeichen anfangen nicht in die History aufnehmen läßt</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTCONTROL</span>=ignorespace</pre></div></div>

	<p>So kann man auch bewußt Befehle nicht in die History schreiben lassen, wenn man z.B. statt »<em>ls«</em> einfach «<em> ls</em>« eingibt.</p>
	<h3>Keine Duplikate in die History</h3>
	<p>Wie oben schon beschrieben werden alle Befehle in die History aufgenommen, auch die, die mehrfach eingegeben wurden. Möchte man das nicht</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTCONTROL</span>=ignoredups</pre></div></div>

	<p>Möchte man weder Duplikate, noch die mit einem Leerzeichen am Anfang, so gibt man folgendes ein</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTCONTROL</span>=ignoreboth</pre></div></div>

	<h3>Spezielle Zeilen von der History ausschließen</h3>
	<p>Wenn die Variable HISTCONTROL nicht gesetzt ist, kann man auch selbst entscheiden, welche Zeilen nicht in die History aufgenommen werden sollen. Dies geschieht durch die Variable HISTIGNORE, welche mit Doppelpunkten getrennt</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTIGNORE</span>=<span style="color: #ff0000;">'cat*:cd*:vi*:ls*'</span></pre></div></div>

	<p>Damit werden alle Zeilen, die mit <em>cat</em>, <em>cd</em> oder<em> vi</em> oder<em> ls</em> beginnen, nicht in der History gespeichert. Es bietet sich auch an hier alle selbst definierten Aliase anzugeben. Da theoretisch hier mit regulären Ausdrücken gearbeitet werden kann, stehen der Phantasie alle Möglichkeiten offen.</p>
	<h3>Fragen über Fragen</h3>
	<p><em>Kennt Ihr noch mehr Befehle um die History zu »pimpen«? <span style="text-decoration: line-through;">Ich kann mich daran erinnern, das es einen Befehl gab, mit dem man automatisch gleich nach jedem Return den Befehl in die History schreiben lassen kann — aber wie hies der nur?</span></em>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/03/14/bash-history-aufwerten/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>bash &#124; Shell einrichten</title>
		<link>http://controlc.de/2010/03/12/bash-shell-einrichten/</link>
		<comments>http://controlc.de/2010/03/12/bash-shell-einrichten/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 13:08:54 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[.bash_profile]]></category>
		<category><![CDATA[.profile]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[farben]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[inputrc]]></category>
		<category><![CDATA[ls colors]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=912</guid>
		<description><![CDATA[Gerade bei OSX kommt man ja meist drumherum mit der Kommandozeile zu arbeiten — dabei kann man in der Shell einiges schneller bzw. einfacher machen und um gewisse Einstellungen von OSX (wie zum Beispiel hier und hier beschrieben) zu ändern kommt man nicht umher das Terminal zu öffnen. Vorgeplänkel Wie man im Finder oder in [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2009/11/Bash.png" class="floatbox" rev="group:912 caption:`Bash`"><img class="aligncenter size-medium wp-image-1063" title="Bash" src="http://controlc.de/wp-content/uploads/2009/11/Bash-300x232.png" alt="" width="300" height="232" /></a></p>
	<p>Gerade bei OSX kommt man ja meist drumherum mit der Kommandozeile zu arbeiten — dabei kann man in der Shell einiges schneller bzw. einfacher machen und um gewisse Einstellungen von OSX (wie zum Beispiel <a href="http://controlc.de/2009/06/11/mac-apple-mail-optimieren/">hier</a> und <a href="http://controlc.de/2009/10/30/mac-apple-mail-das-kopieren-von-email-adressen/">hier</a> beschrieben) zu ändern kommt man nicht umher das Terminal zu öffnen.<span id="more-912"></span></p>
	<h3>Vorgeplänkel</h3>
	<p>Wie man im Finder oder in jedem anderen Programm zuerst seine Benutzeroberfläche einrichtet, so macht man das auch in der Kommandozeile. Nur wird das hier nicht über eine Preference File gemacht sondern über (in OSX) versteckte Systemdateien. Da OSX diese Schreiben bzw. Erstellen dieser Dateien zum Teil für den normalen Benutzer verboten hat, muss man daran denken, das man sich <em>root</em>–Rechte holt. Das geht einmal mit dem Account <em>root </em>(Zur Aktivierung des <em>root</em>–Accounts verweise ich auf <a href="http://support.apple.com/kb/HT1528">Apple</a>), zu dem ich mit dem Shell-Befehl</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> -</pre></div></div>

	<p>oder</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-s</span></pre></div></div>

	<p>wechsle. Oder aber zukünftig jedem Befehl ein</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span></pre></div></div>

	<p>voransetze.</p>
	<p>Für die Individualisierung der Shell sind verschiedene Dateien und Verzeichnisse wichtig. Zuerst wird zwischen den Benutzereinstellungen und den Einstellungen für den ganzen Rechner unterschieden. Die Benutzereinstellungen liegen im Userverzeichnis, also <em>/Users/BENUTZERNAME</em> (Ausnahme hier ist der Benutzer<em> root</em>, der sein Homeverzeichnis in <em>/root</em> findet) und die Systemeinstellungen im Verzeichnis <em>/etc</em>. Wie die Namen schon sagen, sind die ersteren nur für den angemeldeten Benutzer gültig, die Systemeinstellungen für jeden Benutzer.</p>
	<p>Individuelle Anpassungen kann man einmal für das Tastaturmapping machen — hier sind die Dateien <em>/etc/inputrc </em>bzw. <em>~/.inputrc</em> verantwortlich und für  das Aussehen bzw. das definieren von Umgebungsvariablen — dafür sind die Dateien <em>/etc/profile</em> und <em>/etc/bash.bashrc</em> bzw. <em>~/.bash_profile, ~/.profile, ~/.bashrc</em> und <em>~/bash_login</em>. Eine gute Zusammenfassung der Reihenfolge der Abarbeitung der Dateien findet man <a href="http://stefaanlippens.net/bashrc_and_others">hier</a>. Der Einfachheit halber benutze ich in diesem Artikel die Datei <em>profile</em>.</p>
	<h3>Farben für den tristen Alltag</h3>
	<p>Mit Farben kann man sich die Shell übersichtlicher machen. Dazu hat <a href="http://macfidelity.de/2009/10/09/mac-snow-leopard-terminal-einrichten/">fidel</a> schon mal was geschrieben. Definiert werden diese in der Profil-Datei. Man kann den Prompt bearbeiten (Farbe und Aussehen).  Standard ist folgendes Aussehen</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/03/default-shell-look.png" class="floatbox" rev="group:912 caption:`default shell look`"><img class="aligncenter size-medium wp-image-1547" title="default shell look" src="http://controlc.de/wp-content/uploads/2010/03/default-shell-look-300x132.png" alt="" width="300" height="132" /></a>In meinem Fall brauche ich die Angabe des Rechner-Namens nicht und ein nettes Gelb kann auch nicht schaden</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PS1</span>=<span style="color: #ff0000;">&quot;\[\e[33;1;40m\][\u] \w&gt;\[\e[0m\] &quot;</span></pre></div></div>

	<p><a href="http://controlc.de/wp-content/uploads/2010/03/modified-ps1-prompt.png" class="floatbox" rev="group:912 caption:`modified ps1 prompt`"><img class="aligncenter size-medium wp-image-1548" title="modified ps1 prompt" src="http://controlc.de/wp-content/uploads/2010/03/modified-ps1-prompt-300x136.png" alt="" width="300" height="136" /></a>Das Gleiche kann man auch für den Prompt definieren, wenn man mit <em>sudo</em> sich temporäre <em>root</em>–Rechte gibt. In meinem Fall möchte ich gelbe Schrift auf einem rotem Untergrund.</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">SUDO_PS1</span>=<span style="color: #ff0000;">&quot;\[\e[33;1;41m\][\u] \w&gt;\[\e[0m\] &quot;</span></pre></div></div>

	<p><a href="http://controlc.de/wp-content/uploads/2010/03/modified-sudo_ps1-prompt.png" class="floatbox" rev="group:912 caption:`modified sudo_ps1 prompt`"><img class="aligncenter size-medium wp-image-1549" title="modified sudo_ps1 prompt" src="http://controlc.de/wp-content/uploads/2010/03/modified-sudo_ps1-prompt-300x136.png" alt="" width="300" height="136" /></a>Das sieht jetzt alles recht kryptisch aus, was daran liegt, das die Programmierung des Prompts in Escape-Sequenzen erfolgen muss. Wenn man etwas tiefer in die Materie einsteigen will, seinen ganz persönlichen Prompt bauen möchte oder schlicht einfach verstehen will, was hier gemacht wird, dem sein <a href="http://blog.pimpmyshell.de/2007/12/10/pimp-your-prompt/">pimp my shell</a> ans Herz gelegt. Es gibt dann auch noch Informationen von <a href="http://www.ibm.com/developerworks/linux/library/l-tip-prompt/">IBM</a> und <a href="http://networking.ringofsaturn.com/Unix/Bash-prompts.php">Ring of saturn</a>.</p>
	<p>Ein oft benutzter Befehl in der Kommandozeile lautet <em>ls</em> zum Anzeigen eine Verzeichnisinhalts. Um die verschiedenen Inhalte wie Verzeichnisse, Dateien, Symlinks und Co. auseinanderzuhalten ist eine farbige Darstellung sehr nützlich. Dies kann man entwerder durch das Aufrufen des Befehls <em>ls</em> mit dem Schalter <em>–G</em> erreichen, oder aber, wenn man die Farben selber definieren will, mit folgenden Umgebungsvariablen</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CLICOLOR</span>=<span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LSCOLORS</span>=dxfxcxbxegedabagacad</pre></div></div>

	<p>Die Bedeutung der jeweiligen Optionen kann man sich <a href="http://linux-sxs.org/housekeeping/lscolors.html">hier</a> anschauen. Für ganz Faule gibt es einen <a href="http://geoff.greer.fm/lscolors/">Generator</a>.</p>
	<p>Um dem Befehl <em>grep</em> etwas Farbe zu geben, muss folgende Umgebungsvariable gesetzt werden</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GREP_OPTIONS</span>=<span style="color: #ff0000;">'--color=auto'</span> <span style="color: #007800;">GREP_COLOR</span>=<span style="color: #ff0000;">'1;32'</span></pre></div></div>

	<h3><a href="http://controlc.de/wp-content/uploads/2010/03/GREP_OPTIONS.png" class="floatbox" rev="group:912 caption:`GREP_OPTIONS`"><img class="aligncenter size-medium wp-image-1556" title="GREP_OPTIONS" src="http://controlc.de/wp-content/uploads/2010/03/GREP_OPTIONS-300x148.png" alt="" width="300" height="148" /></a>Einfacher Zugriff auf die History</h3>
	<p>Ich hatte hier schon mal was über die <a href="http://controlc.de/2009/06/10/bash-history-aufwerten/">Einstellungen der bash history</a> geschrieben. Die Einstellungen dort werden in der Profil-Datei gemacht. Wie in den Kommentaren hinzugefügt benutze ich folgendes Tastaturmapping in <em>/etc/inputrc</em></p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #ff0000;">&quot;e[5~&quot;</span>: history-search-backward
<span style="color: #ff0000;">&quot;e[6~&quot;</span>: history-search-forward</pre></div></div>

	<p>Damit kann ich mit den Tasten Bild rauf/Page up bzw. Bild runter/Page down durch die History scrollen. Das funktioniert sogar basierend auf dem, was schon auf der Kommandozeile steht. Gebe ich zum Beispiel <em>less</em> ein, dann werden mir mit den genannten Tasten nur die History-Einträge angezeigt, die mit dieser Buchstabenfolge anfangen.</p>
	<p>Damit die history gleich geschrieben wird und nicht erst beim Beenden der shell session kann in der Profil-Datei mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Append commands to the history every time a prompt is shown,</span>
<span style="color: #666666; font-style: italic;"># instead of after closing the session.</span>
<span style="color: #007800;">PROMPT_COMMAND</span>=<span style="color: #ff0000;">'history -a'</span></pre></div></div>

	<p>erzwungen werden, dass mit jedem Erzeugen eines neuen Prompts die history geschrieben wird.</p>
	<h3>Leichteres Admin-Leben mit Aliasen</h3>
	<p>Standardmäßig wird dem normalen Benutzer beim Aufrufen von ls die Ansicht auf dotfiles verwehrt. Mit dem Eintrag</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #ff0000;">&quot;ls=ls -a&quot;</span></pre></div></div>

	<p>wird das korrigiert. Ansonsten kann man hier Programmaufrufen feste Parameter mitgeben und auch langen Befehlszeilen Kürzel vergeben.</p>
	<h3>Zusätzliches</h3>
	<p>Möchte man zusätzliche Pfad als Standardpfad einzurichten, damit man beim Aufrufen nicht den gesamten Pfad angeben muss, dann gibt man diesen wie folgt an:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

	<p>Wenn man Änderungen an den Profil-Dateien macht, dann werden diese Änderungen erst gültig, wenn die Profil-Datei erneut eingelesen wird. Das erreicht man entweder mit dem Öffnen einer neuen Terminal-Session oder aber mit dem Befehl</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">source</span> ~<span style="color: #000000; font-weight: bold;">/</span>.profile</pre></div></div>

	<h3>Fragen über Fragen</h3>
	<p><em>Wie sieht Eure Individualisierung der Kommandzeile aus? Welche Möglichkeiten habe ich vergessen zu erklären? Kanntet Ihr schon alle Möglichkeiten?</em>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/03/12/bash-shell-einrichten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mac &#124; Apple Mail und das Füttern von Spamassassin mit Spammails</title>
		<link>http://controlc.de/2010/01/30/mac-apple-mail-und-das-futtern-mit-spammails-an-spamassassin/</link>
		<comments>http://controlc.de/2010/01/30/mac-apple-mail-und-das-futtern-mit-spammails-an-spamassassin/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 11:44:32 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[apple mail]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[sa-learn]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1394</guid>
		<description><![CDATA[Ich betreibe meinen eigenen kleinen Mail-Server, auf dem auch eine Filterung nach Spams und Viren mit den OpenSource-Produkten amavisd-new und spamassassin stattfindet. Trotz alledem rutscht die eine oder andere Mail durch, was mich natürlich dazu animiert, meiner Filterkombination diese Mails noch einmal explizit als Spam vorzuwerfen, damit diese dazulernen kann. Ich möchte zeigen, wie einfach [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2010/01/SpamInACan.jpg" class="floatbox" rev="group:1394 caption:`SpamInACan`"><img class="aligncenter size-medium wp-image-1406" title="SpamInACan" src="http://controlc.de/wp-content/uploads/2010/01/SpamInACan-294x300.jpg" alt="" width="294" height="300" /></a></p>
	<p>Ich betreibe meinen eigenen kleinen Mail-Server, auf dem auch eine Filterung nach Spams und Viren mit den OpenSource-Produkten <a href="http://www.ijs.si/software/amavisd/">amavisd-new</a> und <a href="http://spamassassin.apache.org/">spamassassin</a> stattfindet. Trotz alledem rutscht die eine oder andere Mail durch, was mich natürlich dazu animiert, meiner Filterkombination diese Mails noch einmal explizit als Spam vorzuwerfen, damit diese dazulernen kann. Ich möchte zeigen, wie einfach man das mit Apple Mail machen kann.</p>
	<p><span id="more-1394"></span></p>
	<p>In meinem Postfach habe ich mir einen Ordner (keine Ahnung, warum das bei Apple Mail Mailbox bzw. Postfach heißt) <em>Spam</em> erstellt, dort werden alle unerkannten Spammails hinverschoben.</p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/01/Mail.app-Spamordner.png" class="floatbox" rev="group:1394 caption:`Mail.app - Spamordner`"><img class="size-medium wp-image-1398 aligncenter" title="Mail.app - Spamordner" src="http://controlc.de/wp-content/uploads/2010/01/Mail.app-Spamordner-300x140.png" alt="" width="300" height="140" /></a>Dieser Ordner wird nun mit einem Rechtsklick/Archivieren … bzw. über das Menü Postfach/Archivieren … ins Dateisystem exportiert</p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/01/Mail.app-Ordner-archivieren.png" class="floatbox" rev="group:1394 caption:`Mail.app - Ordner archivieren`"><img class="aligncenter size-medium wp-image-1399" title="Mail.app - Ordner archivieren" src="http://controlc.de/wp-content/uploads/2010/01/Mail.app-Ordner-archivieren-300x173.png" alt="" width="300" height="173" /></a></p>
	<p style="text-align: left;">Der Einfachheit halber lass ich mir den auf den Desktop legen. Im Dateisystem sieht das dann so aus</p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/01/Spam.mbox-Ordner.png" class="floatbox" rev="group:1394 caption:`Spam.mbox Ordner`"><img class="aligncenter size-full wp-image-1400" title="Spam.mbox Ordner" src="http://controlc.de/wp-content/uploads/2010/01/Spam.mbox-Ordner.png" alt="" width="91" height="88" /></a></p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/01/Spam.mbox-Ordner.png" class="floatbox" rev="group:1394"></a>Eigentlich ist es ein Ordner mit weiteren Dateien bzw. Ordnern drin, MacOSX zeigt das aber vereinfacht als eine Datei an. Dieses Datei/Ordner-Konstrukt wird nun auf den Mail-Server übertragen — ich verwende dazu Cyberduck.</p>
	<p style="text-align: left;">Anschließend öffnet man eine Terminalsession zu Mail-Server wechselt in das Verzeichnis, in das der Spam-Ordner kopiert wurde und verändert zuerst einmal die Zugriffsrechte des Ordners</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #660033;">-R</span> <span style="color: #000000;">777</span> Spam.mbox<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

	<p>Anschließend wechselt man den Benutzer, da nur der Benutzer den Spam lernen kann, der auch für die Filterung zuständig ist. Bei mir heißt der Benutzer <em>amavis</em></p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> amavis</pre></div></div>

	<p>Nun kann man den Lernprozeß anstoßen</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sa-learn <span style="color: #660033;">--spam</span> <span style="color: #660033;">--mbox</span> Spam.mbox<span style="color: #000000; font-weight: bold;">/</span>mbox</pre></div></div>

	<p>Und erhält anschließend die Nachricht</p>
	<p style="text-align: center;"><em><a href="http://controlc.de/wp-content/uploads/2010/01/Learned-tokens-from-24-messages-24-messages-examined.png" class="floatbox" rev="group:1394 caption:`Learned tokens from 24 message(s) (24 message(s) examined)`"><img class="size-medium wp-image-1404 aligncenter" title="Learned tokens from 24 message(s) (24 message(s) examined)" src="http://controlc.de/wp-content/uploads/2010/01/Learned-tokens-from-24-messages-24-messages-examined-300x23.png" alt="" width="300" height="23" /></a></em></p>
	<p>Man kann den ganzen Export und Transferprozess auch mit einem Service automatisieren — dazu war ich bisher aber schlichtweg zu faul <img src='http://controlc.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
	<p><strong>Wie geht es Euch? Habt Ihr einen Spamfilter? Wenn ja, wie füttert Ihr ihn mit nicht erkannten Spammails?</strong>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/01/30/mac-apple-mail-und-das-futtern-mit-spammails-an-spamassassin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>openwrt &#124; Kompilierungsumgebung aktualisieren</title>
		<link>http://controlc.de/2010/01/26/openwrt-kompilierungsumgebung-aktualisieren/</link>
		<comments>http://controlc.de/2010/01/26/openwrt-kompilierungsumgebung-aktualisieren/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 09:57:21 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[luci]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1371</guid>
		<description><![CDATA[Nachdem ich, wie in dem Artikel OpenWRT und eigenes Image bauen beschrieben, meine Kompilierungsumgebung für OpenWRT gebaut und mein erstes eigenes Image für meinen Router kompiliert habe, möchte ich jetzt zeigen, wie man sich ein neueres Image kompilieren kann. OpenWRT wird ständig weiterentwickelt — Fehler werden ausgemerzt, neue Funktionen werden eingebaut. Der Quellcode, gerade in [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make.png" class="floatbox" rev="group:1371 caption:`OpenWRT- make`"><img class="aligncenter size-full wp-image-1377" title="OpenWRT- make" src="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make.png" alt="" width="485" height="284" /></a></p>
	<p>Nachdem ich, wie in dem Artikel <a href="http://controlc.de/2009/09/26/debian-openwrt-und-eigenes-image-bauen/">OpenWRT und eigenes Image bauen</a> beschrieben, meine Kompilierungsumgebung für OpenWRT gebaut und mein erstes eigenes Image für meinen Router kompiliert habe, möchte ich jetzt zeigen, wie man sich ein neueres Image kompilieren kann.</p>
	<p>OpenWRT wird ständig weiterentwickelt — Fehler werden ausgemerzt, neue Funktionen werden eingebaut. Der Quellcode, gerade in dem Trunk-Zweig, ist also in ständiger Veränderung. Es verändert sich, neben den einzelnen Paketen von OpenWRT und LuCI auch das Basissystem andauernd. Wenn man also ein neues Image erstellen will, ist es angeraten immer die neuesten Entwicklungen einzuspielen. Es kann natürlich, davor sei hier gewarnt, sein, das bestimmte Dinge nicht funktionieren — eben aufgrund der ständigen Arbeiten am Quellcode. Wenn man aber die neuesten Entwicklungen haben möchte, muss man dies bewusst in Kauf nehmen.<br />
<span id="more-1371"></span><br />
Nun aber zu den Abläufen. Zuerst wechseln wir (das Ganze als Nicht-Root-User) in das Verzeichnis, indem OpenWRT liegt</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> openwrt</pre></div></div>

	<p>Anschließend aktualisieren wir das Basissystem</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> up</pre></div></div>

	<p>um danach die Paketliste zu aktualisieren</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>feeds update</pre></div></div>

	<p>und schließlich  die aktualisierten Pakete zu installieren</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>feeds <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #660033;">-a</span> <span style="color: #660033;">-p</span></pre></div></div>

	<p>Und schon kann man sich mit einem</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #007800;">V</span>=<span style="color: #000000;">99</span></pre></div></div>

	<p>ein neues Image bauen oder aber mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> menuconfig <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #007800;">V</span>=<span style="color: #000000;">99</span></pre></div></div>

	<p>die bestehende Konfiguration verändern und anschließend neu bauen lassen.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/01/26/openwrt-kompilierungsumgebung-aktualisieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash &#124; Zeilen in Dateien löschen</title>
		<link>http://controlc.de/2010/01/25/bash-zeilen-in-dateien-loschen/</link>
		<comments>http://controlc.de/2010/01/25/bash-zeilen-in-dateien-loschen/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 12:59:49 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[edit]]></category>
		<category><![CDATA[host key]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[known_hosts]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1316</guid>
		<description><![CDATA[Wer kennt das nicht? Da experimentiert man mit virtuellen Maschinen rum und jedes Mal wenn man eine VM neu installiert bekommt man die obige Fehlermeldung. Bisher habe ich mit vi in der  Datei ~/.ssh/known_hosts die entsprechende Zeile gelöscht. Mit folgender Befehls-Zeile sed -i -e 10d ~/.ssh/known_hosts kann man schnell die Zeile 10 der entsprechenden Datei [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2010/01/REMOTE-HOST-IDENTIFICATION-HAS-CHANGED.png" class="floatbox" rev="group:1316 caption:`REMOTE HOST IDENTIFICATION HAS CHANGED!`"><img class="aligncenter size-full wp-image-1353" title="REMOTE HOST IDENTIFICATION HAS CHANGED!" src="http://controlc.de/wp-content/uploads/2010/01/REMOTE-HOST-IDENTIFICATION-HAS-CHANGED.png" alt="" width="474" height="164" /></a></p>
	<p>Wer kennt das nicht? Da experimentiert man mit virtuellen Maschinen rum und jedes Mal wenn man eine VM neu installiert bekommt man die obige Fehlermeldung. Bisher habe ich mit <strong>vi</strong> in der  Datei <em>~/.ssh/known_hosts</em> die entsprechende Zeile gelöscht.</p>
	<p>Mit folgender Befehls-Zeile</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">-e</span> 10d ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>known_hosts</pre></div></div>

	<p>kann man schnell die Zeile 10 der entsprechenden Datei löschen.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/01/25/bash-zeilen-in-dateien-loschen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>openwrt &#124; OpenWRT als VM</title>
		<link>http://controlc.de/2010/01/20/openwrt-openwrt-als-vm/</link>
		<comments>http://controlc.de/2010/01/20/openwrt-openwrt-als-vm/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 19:57:34 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[netzwerk]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[kamikaze]]></category>
		<category><![CDATA[luci]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trunk]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[vmware fusion]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1173</guid>
		<description><![CDATA[Wie ich schon geschrieben hatte, bin ich ein Fan des OpenWRT-Projektes. Um die Neuerungen schneller nutzen zu können, wie zum Beispiel die Weboberfläche für OpenVPN, kompiliere ich mir in unregelmäßigen Abständen selbst eine neue Firmware um diese auf meinen ASUS-Router auszuprobieren. Ich habe aber leider nur den einen Router und mit dem Flashen und anschließendem [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-als-Virtuelle-Maschine.png" class="floatbox" rev="group:1173 caption:`OpenWRT als Virtuelle Maschine`"><img class="aligncenter size-full wp-image-1223" title="OpenWRT als Virtuelle Maschine" src="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-als-Virtuelle-Maschine.png" alt="" width="512" height="382" /></a></p>
	<p>Wie ich schon <a href="http://controlc.de/2009/09/26/debian-openwrt-und-eigenes-image-bauen/">geschrieben</a> hatte, bin ich ein Fan des <a href="http://www.openwrt.org/">OpenWRT-Projektes</a>. Um die Neuerungen schneller nutzen zu können, wie zum Beispiel die Weboberfläche für <a href="http://www.openvpn.net/">OpenVPN</a>, kompiliere ich mir in unregelmäßigen Abständen selbst eine neue Firmware um diese auf meinen <a href="http://de.asus.com/products.aspx?l1=29&amp;l2=172&amp;l3=743&amp;l4=59&amp;model=1121&amp;modelmenu=1">ASUS-Router </a>auszuprobieren. Ich habe aber leider nur den einen Router und mit dem Flashen und anschließendem Neukonfigurieren ist natürlich auch meine Internetleitung tot. Da man OpenWRT nicht nur auf kleinen Hardware-Routern sondern z.B. auch auf x86-Plattformen laufen lassen kann, probiere ich gerade mal aus was man machen muss um OpenWRT als virtuelle Maschine laufen zu lassen.<span id="more-1173"></span></p>
	<p>Zuerst muss man auf der Maschine, die die Firmware kompiliert, neben den schon beschrieben Voraussetzungen noch die Programme nachinstallieren, die nach der fertigen Kompilierung der Pakete diese als fertiges VM-Image zusammenbauen. Es gibt folgende Image-Versionen, die gebaut werden können:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-VDI-oder-VMDK.png" class="floatbox" rev="group:1173 caption:`OpenWRT - make menuconfig - VDI oder VMDK`"><img class="aligncenter size-full wp-image-1221" title="OpenWRT - make menuconfig - VDI oder VMDK" src="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-VDI-oder-VMDK.png" alt="" width="474" height="34" /></a></p>
	<p>Soll das fertige Image in <a href="http://www.virtualbox.org/">VirtualBox</a> laufen, dann muss folgendes gemacht werden:</p>
	<p>Neue Quelle für APT/Aptitude</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;deb http://download.virtualbox.org/virtualbox/debian lenny non-free&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list</pre></div></div>

	<p>Herunterladen des public keys</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.virtualbox.org<span style="color: #000000; font-weight: bold;">/</span>virtualbox<span style="color: #000000; font-weight: bold;">/</span>debian<span style="color: #000000; font-weight: bold;">/</span>sun_vbox.asc <span style="color: #660033;">-O-</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">apt-key</span> add -</pre></div></div>

	<p>Aktualisieren der Paketliste</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> update</pre></div></div>

	<p>Installieren von VirtualBox</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> virtualbox</pre></div></div>

	<p><strong>Aber Achtung: Bei einem frischen Debian Lenny wurden 171MB heruntergeladen, da viele zusätzliche Pakete benötigt wurden. </strong></p>
	<p>Soll das spätere Image unter <a href="http://www.vmware.com/de/">VMware</a> laufen dann muss <a href="http://www.qemu.org/about.html">Qemu</a> installiert werden:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> qemu</pre></div></div>

	<p>Nun kann mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> menuconfig</pre></div></div>

	<p>sich wie gewünscht das Firmware Image zusammenbauen.</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-Menue.png" class="floatbox" rev="group:1173 caption:`OpenWRT - make menuconfig - Menue`"><img class="aligncenter size-medium wp-image-1231" title="OpenWRT - make menuconfig - Menue" src="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-Menue-238x300.png" alt="" width="238" height="300" /></a>Am Besten arbeitet man sich von oben nach unten.</p>
	<p>Als <em>target system</em> wählt man <em>x86</em> aus, <em>subtarget</em> und <em>target profile</em> bleiben auf <em>Generic</em>. Bei <em>target images</em> muss man sich entscheiden, wofür man das Image braucht: VMware oder VirtualBox.</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-Target-Images.png" class="floatbox" rev="group:1173 caption:`OpenWRT - make menuconfig - Target Images`"><img class="aligncenter size-medium wp-image-1232" title="OpenWRT - make menuconfig - Target Images" src="http://controlc.de/wp-content/uploads/2010/01/OpenWRT-make-menuconfig-Target-Images-234x300.png" alt="" width="234" height="300" /></a></p>
	<p>Anschließend müssen noch die OpenWRT-Pakete ausgewählt und beim Beenden des Programms die Konfiguration gespeichert werden. Danach</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

	<p>ausgeführt. Nach einer langen Zeit liegt im Unterverzeichnis <em>bin</em> eine Verzeichnis mit dem x86-Image. Dieses Image kann man sich auf seinen Rechner kopieren. Wie man eine virtuelle Maschine für OpenWRT zu erstellt möchte ich am Beispiel von VMware Fusion zeigen.</p>
	<p>Mit dem Erstellen einer neuen VM öffnet sich der Assistent</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-1.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 1`"><img class="aligncenter size-medium wp-image-1239" title="VMware Fusion - OpenWRT - 1" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-1-300x227.png" alt="" width="300" height="227" /></a>Mit dem Fortfahren »Ohne Datenträger« öffnet sich eine Dialog zur Auswahl des gerade kompilierten Images</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-2.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 2`"><img class="aligncenter size-medium wp-image-1240" title="VMware Fusion - OpenWRT - 2" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-2-300x231.png" alt="" width="300" height="231" /></a>Als Nächstes gibt man das zu installierende Betriebssystem an</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-3.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 3`"><img class="aligncenter size-medium wp-image-1241" title="VMware Fusion - OpenWRT - 3" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-3-300x231.png" alt="" width="300" height="231" /></a>Anschließend kann man die Einstellungen der VM noch anpassen.</p>
	<h4>RAM</h4>
	<p>allzu viel RAM braucht OpenWRT nicht und man möchte es ja so reel wie möglich machen.</p>
	<h4><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-5.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 5`"><img class="aligncenter size-medium wp-image-1243" title="VMware Fusion - OpenWRT - 5" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-5-300x194.png" alt="" width="300" height="194" /></a>Netzwerkkarten</h4>
	<p>Hier kommt es auf die Reihenfolge an, da OpenWRT die erste Netzwerkkarte als <em>eth0</em> für LAN und die zweite als <em>eth1</em> für WAN nimmt.</p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-Network.png" class="floatbox" rev="group:1173"></a><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-6.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 6`"><img class="size-medium wp-image-1244 aligncenter" title="VMware Fusion - OpenWRT - 6" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-6-300x209.png" alt="" width="300" height="209" /></a>Je nach Reihenfolge sieht die Zuordnung wie folgt aus:</p>
	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-Netzwerkkarten-und-Zuordnung-1.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - Netzwerkkarten und Zuordnung 1`"><img class="alignnone size-medium wp-image-1280" title="VMware Fusion - Netzwerkkarten und Zuordnung 1" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-Netzwerkkarten-und-Zuordnung-1-288x300.png" alt="" width="259" height="270" /></a><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-Netzwerkkarten-und-Zuordnung-2.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - Netzwerkkarten und Zuordnung 2`"><img class="alignnone size-medium wp-image-1281" title="VMware Fusion - Netzwerkkarten und Zuordnung 2" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-Netzwerkkarten-und-Zuordnung-2-287x300.png" alt="" width="258" height="270" /></a></p>
	<p>Meine VM sieht abschließend so aus</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-7.png" class="floatbox" rev="group:1173 caption:`VMware Fusion - OpenWRT - 7`"><img class="aligncenter size-medium wp-image-1245" title="VMware Fusion - OpenWRT - 7" src="http://controlc.de/wp-content/uploads/2010/01/VMware-Fusion-OpenWRT-7-300x170.png" alt="" width="300" height="170" /></a>Nun kann man die VM das erste Mal starten.</p>
	<p>Nun muss zuerst die Netzwerkkonfiguration vorgenommen werden:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">uci delete network.lan.ipaddr
&nbsp;
uci delete network.lan.netmask
&nbsp;
uci <span style="color: #000000; font-weight: bold;">set</span> network.lan.proto=dhcp
&nbsp;
uci commit network</pre></div></div>

	<p>Nun kann man vom Host-Computer aus auf die OpenWRT-VM zugreifen.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/01/20/openwrt-openwrt-als-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash &#124; Backups mit tar</title>
		<link>http://controlc.de/2009/11/22/bash-backups-mit-tar/</link>
		<comments>http://controlc.de/2009/11/22/bash-backups-mit-tar/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:40:58 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1041</guid>
		<description><![CDATA[In einem älteren Artikel habe ich mich schon mal damit beschäftigt, wie man in *nix-basierten Betriebssystemen leicht Backups anlegen kann. Da der Bedarf bei mir wieder mal akuter wurde, haber ich mich wieder mal damit beschäftigt und möchte hier erklären, wie man was machen kann. Backup von bestimmten Dateien Häufiger möchte man, wenn man mal [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2009/11/Bash.png" class="floatbox" rev="group:1041 caption:`Bash`"><img class="aligncenter size-medium wp-image-1063" title="Bash" src="http://controlc.de/wp-content/uploads/2009/11/Bash-300x232.png" alt="Bash" width="300" height="232" /></a>In einem <a href="http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/">älteren Artikel</a> habe ich mich schon mal damit beschäftigt, wie man in *nix-basierten Betriebssystemen leicht Backups anlegen kann. Da der Bedarf bei mir wieder mal akuter wurde, haber ich mich wieder mal damit beschäftigt und möchte hier erklären, wie man was machen kann.</p>
	<h4><span id="more-1041"></span>Backup von bestimmten Dateien</h4>
	<p>Häufiger möchte man, wenn man mal schnell etwas in einer Config-Datei etwas ändert, davon fix ein Backup anlegen. Klassisch habe ich das meist schnell mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> DATEI.conf DATEI.conf.orig</pre></div></div>

	<p>gelöst. Was aber passiert, wenn man dann später nochmal was ändern will respektive ein neues Backup angelegt werden soll?! Wie man dieses Problem erschlägt, habe ich schon mal in <a href="http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/">diesem Artikel</a> erklärt — das war aber nur ein Schnellschuß. Das Problem dabei ist nämlich, das man ja jeweils die alten Backups nochmal mitsichert und dadurch die Backups immer größer werden. Dies kann man durch einen Exclude-Parameter von tar auschließen. Der Befehl um in einem Verzeichnis alle Dateien zu sichern lautet also</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cz</span> <span style="color: #660033;">--no-recursion</span> <span style="color: #660033;">--exclude</span>=backup-<span style="color: #000000; font-weight: bold;">*</span>.tar.gz <span style="color: #660033;">-f</span> backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

	<h4>Backup von ganzen Pfaden inkl. der Unterverzeichnisse</h4>
	<p>In einigen Fällen will man nicht nur die Dateien in einem Verzeichnis sichern sondern lieber gleich den Inhalt gesamte Verzeichnis inklusive aller Unterverzeichnisse</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cz</span> <span style="color: #660033;">--exclude</span>=backup-<span style="color: #000000; font-weight: bold;">*</span>.tar.gz <span style="color: #660033;">-f</span> backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz .</pre></div></div>

	<h4>Backup von Dateien bzw. Pfaden, die im gesamten System verteilt sind</h4>
	<p>Und schließlich hat man den Fall, das man alle wichtigen Dateien eines Systems sichern will, die aber über das gesamte System verteilt sind. Dies erreicht man mit einer Include-Datei</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> cvzf <span style="color: #000000; font-weight: bold;">/</span>backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>T<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz <span style="color: #660033;">-T</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>backup-include-dir.conf</pre></div></div>

	<p>wobei man in die Datei <em>/etc/backup-include-dir.conf</em> alle Pfade bzw. alle Dateien reinschreibt, die gesichert werden sollen. Wichtig ist dabei nur: Pro Datei/Pfad jeweils eine Zeile.</p>
	<p>Und denkt daran: Solche Befehlszeilen eignen sich wunderbar dazu als alias definiert zu werden, damit man schnell drauf zugreifen kann, wenn man es mal braucht.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/11/22/bash-backups-mit-tar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian &#124; OpenWRT und eigenes Image bauen</title>
		<link>http://controlc.de/2009/09/26/debian-openwrt-und-eigenes-image-bauen/</link>
		<comments>http://controlc.de/2009/09/26/debian-openwrt-und-eigenes-image-bauen/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 15:58:39 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[netzwerk]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[kamikaze]]></category>
		<category><![CDATA[luci]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trunk]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=873</guid>
		<description><![CDATA[Ich nutze schon seit Jahren Router, die ich mit der alternativen Firmware OpenWRT betreibe. Mir geht es dabei nicht darum, das ich den Herstellern misstraue, sondern primär darum, das mir OpenWRT die Möglichkeit lässt selbst zu entscheiden, welche Dienste ich auf dem Router anbieten will und welche nicht. Dazu kommt, das die Firewall deutlich besser [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2009/09/openwrt-logo.png" class="floatbox" rev="group:873 caption:`openwrt-logo`"><img class="aligncenter size-medium wp-image-882" title="openwrt-logo" src="http://controlc.de/wp-content/uploads/2009/09/openwrt-logo-300x76.png" alt="openwrt-logo" width="300" height="76" /></a></p>
	<p>Ich nutze schon seit Jahren Router, die ich mit der alternativen Firmware <a href="http://openwrt.org/">OpenWRT</a> betreibe. Mir geht es dabei nicht darum, das ich den Herstellern misstraue, sondern primär darum, das mir OpenWRT die Möglichkeit lässt selbst zu entscheiden, welche Dienste ich auf dem Router anbieten will und welche nicht. Dazu kommt, das die Firewall deutlich besser konfigurierbar ist und das ich mich per SSH auf den Router und über darüber gesetzte Tunnel auch auf das Netzwerk dahinter Zugriff habe. Davon einmal ganz abgesehen ist es natürlich auch gut zu wissen, das die Macher hinter OpenWRT Sicherheitslöcher stopfen — ein Verhalten, was man sich von den Hardware-Herstellern wünschen würde. Ich bin bis dato immer gut mit den Routern der Firma ASUS gefahren — zuerst hatte ich einen <a href="http://de.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=359&amp;modelmenu=1">Asus WL-500g Deluxe</a>, später einen <a href="http://de.asus.com/products.aspx?l1=29&amp;l2=172&amp;l3=743&amp;l4=59&amp;model=1121&amp;modelmenu=1">Asus WL-500g Premium</a>. Der Vorteil dieser Router: Sie haben zwei USB 2.0-Ports — da kann man z.B. Festplatten dranhängen und diese als Netzwerkplatten freigeben.</p>
	<p>Aber zurück zu OpenWRT: Mit der neuesten Version von <a href="http://kamikaze.openwrt.org/8.09.1/">OpenWRT Kamikaze 8.09.1</a> ist aber über die Weboberfläche LuCI keine Steuerungs– und Konfigurationsmöglichkeit von <a href="http://www.openvpn.net/index.php/open-source.html">OpenVPN</a> möglich. Deswegen kann aus dem OpenWRT-Forum der Tipp, es mit der Trunk-Version von OpenWRT zu probieren. Da es diese Versionen aber nicht als fertiges Image gibt, muss man diese selbst kompilieren.<span id="more-873"></span></p>
	<p>Dazu habe ich mir in einer VM ein frisches <a href="http://www.debian.org/">Debian Lenny</a> aufgesetzt und mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential mercurial subversion <span style="color: #c20cb9; font-weight: bold;">cvs</span> zlib1g-dev <span style="color: #c20cb9; font-weight: bold;">gawk</span> <span style="color: #c20cb9; font-weight: bold;">bison</span> <span style="color: #c20cb9; font-weight: bold;">flex</span> libncurses5-dev <span style="color: #c20cb9; font-weight: bold;">unzip</span></pre></div></div>

	<p>die Basis geschaffen.</p>
	<p><strong>Update: Also entweder hat noch nie jemand versucht meine Anleitung nachzuvollziehen, Ihr wart zu faul was zu schreiben oder aber Ihr hattet schon fertige Debian-Installationen — in der Aufzählung der benötigten Pakete fehlte noch <em>unzip</em>. Ich habe die Befehlszeile mal vervollständigt.</strong></p>
	<p>Anschließend legt man sich am besten ein neues Unterverzeichnis an</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> openwrt</pre></div></div>

	<p>und wechselt in dieses Verzeichnis</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> openwrt</pre></div></div>

	<p>Jetzt kann man sich die OpenWRT-Dateien herunterladen</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span> <span style="color: #c20cb9; font-weight: bold;">svn</span>:<span style="color: #000000; font-weight: bold;">//</span>svn.openwrt.org<span style="color: #000000; font-weight: bold;">/</span>openwrt<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">/</span> .</pre></div></div>

	<p>Wichtig dabei ist, das man dies alles als normaler Nutzer macht — nicht als <em>root</em>.</p>
	<p>Da die LuCI-Weboberfläche für OpenVPN nur in den Trunk-Paketen ist, müssen die Quellen für die Pakete noch angepasst werden</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;src-svn packages svn://svn.openwrt.org/openwrt/packages&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> feeds.conf
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;src-svn luci http://svn.luci.subsignal.org/luci/trunk/contrib/package&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> feeds.conf</pre></div></div>

	<p>Jetzt noch die Paketliste aktualisieren</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>feeds update</pre></div></div>

	<p>Und die Pakete für LuCI einbinden</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>feeds <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #660033;">-a</span> <span style="color: #660033;">-p</span> luci</pre></div></div>

	<p>Und schon kann man mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> menuconfig</pre></div></div>

	<p>das Image vorbereiten — sprich die Auswahl machen, was alles in das Image hinein soll.</p>
	<p>Abschließend ein</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

	<p>und nach ewig langer Zeit liegt ein Imagefile in dem Unterverzeichnis <em>bin</em>, welches geflasht werden möchte.</p>
	<h4>Links</h4>
	<p><a href="http://openwrt.org/">http://openwrt.org/</a></p>
	<p><a href="http://de.asus.com/products.aspx?l1=29&amp;l2=172&amp;l3=743&amp;l4=59&amp;model=1121&amp;modelmenu=1">http://de.asus.com/products.aspx?l1=29&amp;l2=172&amp;l3=743&amp;l4=59&amp;model=1121&amp;modelmenu=1</a></p>
	<p><a href="http://de.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=359&amp;modelmenu=1">http://de.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=359&amp;modelmenu=1</a></p>
	<p><a href="http://kamikaze.openwrt.org/8.09.1/">http://kamikaze.openwrt.org/8.09.1/</a></p>
	<p><a href="http://www.openvpn.net/index.php/open-source.html">http://www.openvpn.net/index.php/open-source.html</a></p>
	<p><a href="https://forum.openwrt.org/viewtopic.php?pid=94844#p94844">https://forum.openwrt.org/viewtopic.php?pid=94844#p94844</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/09/26/debian-openwrt-und-eigenes-image-bauen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

