<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Netz - Rettung - Recht (Artikel mit Tag Lenny)</title>
    <link>https://netz-rettung-recht.de/</link>
    <description>Aus dem Leben eines Szlauszafs</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 2.5.0 - http://www.s9y.org/</generator>
    <pubDate>Sun, 02 Jul 2017 11:21:37 GMT</pubDate>

    <image>
    <url>https://netz-rettung-recht.de/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Netz - Rettung - Recht - Aus dem Leben eines Szlauszafs</title>
    <link>https://netz-rettung-recht.de/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Backup mit duply und duplicity</title>
    <link>https://netz-rettung-recht.de/archives/1651-Backup-mit-duply-und-duplicity.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1651-Backup-mit-duply-und-duplicity.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1651</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1651</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;blockquote&gt; 
&lt;p&gt;Niemand will Backup. Alle wollen Restore.&lt;/p&gt; 
&lt;/blockquote&gt;

&lt;p align=&quot;right&quot;&gt;&lt;em&gt;(&lt;a href=&quot;http://kris.koehntopp.de/&quot; title=&quot;301 Moved Permanently&quot;&gt;Kristian Köhntopp&lt;/a&gt; zitiert einen Vertriebler - &lt;a href=&quot;http://www.iks-jena.de/mitarb/lutz/usenet/Fachbegriffe.der.Informatik.html&quot; title=&quot;302 Found&quot;&gt;Fachbegriffe der Informatik&lt;/a&gt; #125)&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Regelmäßige Backups sind wichtig und auch durch redundante Systeme wie RAIDs nicht zu ersetzen; ganz abgesehen davon, daß bei einem RAID 1 gerne die - meistens ja zum selben Zeitpunkt wie die erste in Betrieb genommene - zweite Platte beim notwendigen Rebuild zusammenbricht, schützt ein RAID auch nur gegen Datenverlust durch Ausfall einer Festplatte, aber weder gegen versehentliches oder böswilliges Löschen, Überschreiben oder Verändern von Daten, noch kann es gegen einen fatalen Schaden des gesamten Systems (Brand, Diebstahl, &amp;#8230;) schützen. Backups sollten daher&lt;/p&gt;

&lt;ul&gt; 
&lt;li&gt;regelmäßig durchgeführt werden,&lt;/li&gt; 
&lt;li&gt;versioniert sein (so daß man einen längeren Zeitraum zurückgehen kann) und&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;off-site transferiert werden können.&lt;/li&gt; 
&lt;/ul&gt;

&lt;p&gt;Zumindest dann, wenn man keine Kontrolle über die Infrastruktur hat, auf der die Backups gespeichert und über die sie transportiert werden, sollten Backups auch verschlüsselt sein. Diese letzte Anforderung ist typisch für sog. &amp;quot;Rootserver&amp;quot;, also Mietserver, zu denen bei üblichen Angeboten auch ein sog. &amp;quot;Backupspace&amp;quot;, also Speicherplatz auf einem Storage gehört, auf den zumeist nur per (unverschlüsseltem) FTP zugegriffen werden kann. Selbst wenn man dem Provider und seinen Mitarbeitern vertraut, kann man nicht ausschließen, daß auch Dritte - andere Kunden, &amp;#8230; - zumindest den unverschlüsselten Datenverkehr zwischen dem zu sichernden Server und dem Storage &amp;quot;belauschen&amp;quot; können. Wenn man seine Backups also unverschlüsselt überspielt, kann die gesamte Konfiguration samt aller Paßworte usw. usf. mitgelesen werden.&lt;/p&gt;

&lt;p&gt;Schließlich gibt es eine letzte Anforderung für sinnvolle Backups: sie sollten, einmal eingerichtet, möglichst wenig Aufwand bedeuten, optimalerweise automatisiert sein, denn nur dann werden sie auch wirklich regelmäßig durchgeführt.&lt;/p&gt;

&lt;p&gt;Alle zuvor genannten Anforderungen erfüllt das Tool &lt;a href=&quot;http://duplicity.nongnu.org/&quot; title=&quot;&quot;&gt;&lt;strong&gt;duplicity&lt;/strong&gt;&lt;/a&gt;, für das die c&amp;#8217;t bereits anno 2006 ein Frontend namens &lt;a href=&quot;http://www.heise.de/security/artikel/Hinter-Schloss-und-Siegel-270834.html&quot; title=&quot;301 Moved Permanently&quot;&gt;&lt;strong&gt;ftplicity&lt;/strong&gt;&lt;/a&gt; entwickelt hat, das nunmehr unter dem Namen &lt;a href=&quot;http://duply.net/&quot; title=&quot;&quot;&gt;&lt;strong&gt;duply&lt;/strong&gt;&lt;/a&gt; weiterentwickelt wird. &lt;strong&gt;duply&lt;/strong&gt; unterscheidet sich u.a. dadurch von &lt;strong&gt;ftplicity&lt;/strong&gt;, daß es nicht nur die Konfiguration der Übertragung via FTP unterstützt, sondern auch auf anderem Weg (was dann auch die Namensänderung erklärt).&lt;/p&gt;

&lt;p&gt; &lt;strong&gt;duplicity&lt;/strong&gt; sichert Dateien und Verzeichnisse in (nicht gepackte!) &lt;em&gt;tar&lt;/em&gt;-Archive, verschlüsselt diese vermittels &lt;em&gt;GnuPG&lt;/em&gt; und überträgt die Sicherungen in kleinen Häppchen auf verschiedenen Wegen (lokal, FTP, SCP, rsync, &amp;#8230;) auf das Sicherungsmedium; dabei werden inkrementielle Backups über den &lt;em&gt;rsync&lt;/em&gt;-Algorithmus erstellt, d.h. nicht alle veränderten Dateien gesichert, sondern ggf. nur ein diff, was wiederum Platz und Bandbreite spart. &lt;strong&gt;duplicity&lt;/strong&gt; dürfte in den meisten Distributionen paketiert sein, &lt;strong&gt;duply&lt;/strong&gt; ist es in Debian ab Squeeze, kann aber in jedem Fall trivial installiert werden.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Eine mögliche Umsetzung für einen Mietserver sieht - unter Debian Lenny - so aus:&lt;/p&gt;

&lt;ul&gt; 
&lt;li&gt;&lt;em&gt;duplicity &lt;/em&gt;und &lt;em&gt;ncftp &lt;/em&gt;installieren: &lt;code&gt;aptitude -r install duplicity ncftp&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; 
&lt;/ul&gt;

&lt;ul&gt; 
&lt;li&gt;&lt;em&gt;duply &lt;/em&gt;(in &lt;em&gt;/usr/local/bin&lt;/em&gt;) installieren:&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;cd /tmp
wget -O duply_1.5.4.2.tgz http://sourceforge.net/projects/ftplicity/files/duply%20%28simple%20duplicity%29/1.5.x/duply_1.5.4.2.tgz/download
tar -xzf duply_1.5.4.2.tgz 
cp duply_1.5.4.2/duply /usr/local/bin/
rm duply_1.5.4.2.tgz 
rm -r duply_1.5.4.2
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt; 
&lt;li&gt;Alternativ (Debian Squeeze): &lt;code&gt;aptitude -r install duply&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;Da der gesamte Server gesichert werden soll, läuft der Backupprozess am besten mit Root-Rechten. Wir brauchen jetzt also einen GPG-Key für &lt;em&gt;root &lt;/em&gt;und richten dann das Backup ein:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;cd /root
gpg --gen-key
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt; 
&lt;li&gt;Wenn nicht genug Entropie vorhanden ist, um den Key zu erzeugen, empfiehlt es sich, bspw. durch mehrere größere Downloads für Netzwerkverkehr und Belastung der Festplatten zu sorgen, um den Pool aufzufüllen. Key-ID und Paßwort des erzeugten Schlüssels benötigt man im nächsten Schritt zur Einrichtung des Backups; der Name des Backups kann frei gewählt werden:&lt;br /&gt;&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;duply *NAME* create
vim .duply/*NAME*/conf
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt; 
&lt;li&gt;In der Konfigurationsdatei sind nun zumindest einzutragen
&lt;ul&gt; 
&lt;li&gt;die ID des erzeugten GPG-Schlüssels (GPG_KEY),&lt;/li&gt; 
&lt;li&gt;das Paßwort desselben (GPG_PW),&lt;/li&gt; 
&lt;li&gt;das Backup-Ziel (FTP-Server und ggf. Verzeichnis, Benutzername, Kennwort: TARGET, TARGET_USER, TARGET_PASS) und&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;den Pfad, der gesichert werden soll (im Zweifel &amp;quot;/&amp;quot;: SOURCE).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Für die Einzelheiten und fortgeschrittene Konfigurationsmöglichkeiten sei auf die Kommentare innerhalb der Datei und die Dokumentation von &lt;strong&gt;duplicity &lt;/strong&gt;und &lt;strong&gt;duply &lt;/strong&gt;verwiesen.&lt;/p&gt; 
&lt;/li&gt; 
&lt;/ul&gt;

&lt;ul&gt; 
&lt;li&gt;Als nächstes erstellt man eine Liste der Dateien, die nicht gesichert werden sollen, die mindestens spezielle Verzeichnisse wie &lt;em&gt;/dev&lt;/em&gt; und &lt;em&gt;/proc&lt;/em&gt; enthalten sollte: &lt;code&gt;vim .duply/&lt;em&gt;NAME&lt;/em&gt;/exclude&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;/dev/\*
/proc/\*
/sys/\*
/tmp/\*
/var/tmp/\*
/var/run/\*
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt; 
&lt;li&gt;Danach kann man noch Scripts hinterlegen, die vor oder nach dem Backuplauf ausgeführt werden; bspw. kann es sich vor dem Backup empfehlen, Datenbanken zu dumpen. Diese Scripts heißen dementspechend &lt;em&gt;pre &lt;/em&gt;und &lt;em&gt;post&lt;/em&gt;, können zum Beispiel Shellscripts sein und müssen
&lt;ul&gt; 
&lt;li&gt;ausführbar sein (&lt;code&gt;chmod 700 .duply/&lt;em&gt;NAME&lt;/em&gt;/pre&lt;/code&gt;) und&lt;/li&gt; 
&lt;li&gt;einen entsprechenden &lt;em&gt;shebang&lt;/em&gt; (&lt;code&gt;#!/bin/bash&lt;/code&gt;) enthalten.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/li&gt; 
&lt;/ul&gt;

&lt;ul&gt; 
&lt;li&gt;Wenn das alles paßt, kann man nunmehr sein erstes Backup starten: &lt;code&gt;duply *NAME* backup&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;

&lt;ul&gt; 
&lt;li&gt;Danach sollte man das komplette Verzeichnis &lt;em&gt;.duply&lt;/em&gt; (das dann auch eine Kopie des GPG-Schlüssels enthält) sichern (nicht auf den Backupspace, sondern an einen sicheren Ort!).&lt;/li&gt; 
&lt;/ul&gt;

&lt;ul&gt; 
&lt;li&gt;Schließlich kann man noch in die Crontab von &lt;em&gt;root &lt;/em&gt;einen entsprechenden Eintrag einfügen:&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;00 5 \* \* \* /usr/local/bin/duply *NAME* backup
00 6 1 \* \* /usr/local/bin/duply *NAME* full &amp;amp;&amp;amp; /usr/local/bin/duply *NAME* purge --force
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Fertig. Viel Erfolg!&lt;/p&gt;

&lt;p&gt;In gleicher Weise ist es möglich, weitere Backups zu definieren, die bspw. nur &lt;em&gt;/home&lt;/em&gt; oder &lt;em&gt;/etc&lt;/em&gt; (oder &lt;em&gt;/var/mail&lt;/em&gt; &amp;#8230;) sichern, das dann aber häufiger.&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/e81d1c90a31742309274463dbf58bd3d&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 13 Jan 2011 17:18:15 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1651-guid.html</guid>
    <category>anleitung</category>
<category>Backup</category>
<category>debian</category>
<category>duplicity</category>
<category>lenny</category>
<category>linux</category>

</item>
<item>
    <title>Neustart von Diensten nach Updates - checkrestart</title>
    <link>https://netz-rettung-recht.de/archives/1649-Neustart-von-Diensten-nach-Updates-checkrestart.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1649-Neustart-von-Diensten-nach-Updates-checkrestart.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1649</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1649</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Als Hobby-Admin &lt;em&gt;*räusper*&lt;/em&gt; lernt man ständig dazu. Bekannt und bewußt war mir schon, daß nach (Sicherheits-)Updates von Bibliotheken, die von verschiedenen 
Programmen genutzt werden (man denken an OpenSSL), die entsprechenden 
laufenden Prozesse neu gestartet werden müssen, weil sie nur dann die dynamisch geladenen Bibliotheken neu laden und zuvor mit der alten Version arbeiten, was insbesondere bei sicherheitsrelevanten Updates nicht besonders hilfreich ist. Bisher ging ich allerdings (blauäugig) davon aus, daß die Paketverwaltung das schon richten wird. Durch einen &lt;a title=&quot;&amp;lt;AANLkTim9vAt9tt3Er2uHDZiOx-nW_Xm-NimAtdKjUw=h@mail.gmail.com&amp;gt;&quot; href=&quot;http://lists.debian.org/debian-devel/2011/01/msg00227.html&quot;&gt;Beitrag&lt;/a&gt; von &lt;a href=&quot;http://wiki.debian.org/PaulWise&quot; title=&quot;301 Moved Permanently&quot;&gt;Paul Wise&lt;/a&gt; in der Debian-Developer-Mailingliste wurde mir nun bewußt, daß das - jedenfalls / auch unter Debian - nicht der Fall ist, die betreffenden Dienste also manuell neu gestartet werden müssen.&lt;/p&gt;

&lt;p&gt;Hilfreich ist in diesem Zusammenhang das im Paket &lt;em&gt;debian-goodies&lt;/em&gt; enthaltene Tool &lt;em&gt;checkrestart&lt;/em&gt;, das überprüft, welche laufenden Prozesse noch auf Dateien zugreifen, die mittlerweile gelöscht wurden, und diese auflistet (zusammen mit ggf. vorhandenen init-Scripts, um die Dienste neu zu starten).&lt;br /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 10 Jan 2011 20:06:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1649-guid.html</guid>
    <category>debian</category>
<category>lenny</category>

</item>
<item>
    <title>Mantis Bug Tracker und Mantis Graphs 1.0</title>
    <link>https://netz-rettung-recht.de/archives/1589-Mantis-Bug-Tracker-und-Mantis-Graphs-1.0.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1589-Mantis-Bug-Tracker-und-Mantis-Graphs-1.0.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1589</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1589</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;&lt;a title=&quot;Mantis Bug Tracker&quot; href=&quot;http://www.mantisbt.org/&quot;&gt;Mantis&lt;/a&gt; (aktuell in der Version &lt;strong&gt;1.2.1&lt;/strong&gt;) ist ein ganz netter Bugtracker, also ein Ticketsystem (Fallbearbeitungssystem) für die Softwareentwicklung, dessen auffallendstes Manko allerdings die unterirdische Qualität der Dokumentation (weitgehend schlicht nicht vorhanden, ansonsten grob unvollständig oder weit veraltet) ist. &lt;em&gt;*seufz*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;quot;Mantis Graphs 1.0&amp;quot; ist ein Plugin für Mantis, das graphische Darstellungen ermöglicht, und ich habe heute längere Zeit damit verbracht, es in Betrieb zu setzen, nachdem es immer nur &amp;quot;unable to read/find font&amp;quot; von sich geben wollte. Einer der ersten Schritte war die Installation der msttcorefonts (&lt;em&gt;aptitude install ttf-mscorefonts-installer&lt;/em&gt;), aber das genügte nicht. Längeres Debugging mit eingestreuten Statements im Quellcode ergab schließlich, daß Mantis weder das passende Font-Verzeichnis erkennen noch - bei expliziter Angabe des Verzeichnisses in der Konfiguration mit &lt;em&gt;$g_system_font_folder&lt;/em&gt; - die Fontdatei laden wollte. Die Lösung dafür fand sich in der Dokumentation der PHP-Funktion &lt;em&gt;file_exists()&lt;/em&gt;: diese liefert auch dann &lt;em&gt;false&lt;/em&gt; zurück, wenn auf die entsprechende Datei aufgrund von &lt;a title=&quot;PHP: Security and Safe Mode&quot; href=&quot;http://de.php.net/manual/en/ini.sect.safe-mode.php&quot;&gt;&lt;em&gt;safe_mode&lt;/em&gt;&lt;/a&gt;-Restriktionen nicht zugegriffen werden kann &amp;#8230;&lt;/p&gt;

&lt;p&gt;Und natürlich ist das der Fall: das Font-Verzeichnis - bpw. &lt;em&gt;/usr/share/fonts/truetype/msttcorefonts/&lt;/em&gt; - gehört &lt;em&gt;root&lt;/em&gt;, und die Font-Dateien auch. Jedenfalls ist Owner dieser Dateien niemals der Webserver oder der Benutzer, unter dessen Kennung die PHP-Scripts dank &lt;em&gt;su_php&lt;/em&gt; o.ä. ausgeführt werden. &lt;em&gt;*brummel*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Es bleibt demnach nur der Verzicht auf die Grafiken oder die Deaktivierung von &lt;em&gt;safe_mode&lt;/em&gt; (für Mantis).&lt;br /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 14 May 2010 16:14:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1589-guid.html</guid>
    <category>debian</category>
<category>lenny</category>
<category>mantis</category>
<category>php</category>

</item>
<item>
    <title>gitweb mit Passwortschutz</title>
    <link>https://netz-rettung-recht.de/archives/1530-gitweb-mit-Passwortschutz.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1530-gitweb-mit-Passwortschutz.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1530</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1530</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;&lt;em&gt;gitweb&lt;/em&gt; ist, wie &lt;a title=&quot;Git-Repositories mit gitosis und gitweb (Debian Lenny)&quot; href=&quot;https://netz-rettung-recht.de/archives/1528-Git-Repositories-mit-gitosis-und-gitweb-Debian-Lenny.html&quot;&gt;vorgestern&lt;/a&gt; beschrieben, eine schöne Sache - aber nicht immer will man seine Repositories jedermann zugänglich machen. Schön wäre es doch, wenn man die Möglichkeit hätte, auch den Zugriff auf &lt;em&gt;gitweb&lt;/em&gt; an eine Anmeldung zu koppeln und so nur für befugte Benutzer zu erlauben. Eine Möglichkeit dazu will ich nachstehend schildern, orientiert an einem &lt;a title=&quot;Using apache authentication with gitweb, gitosis – repository access control&quot; href=&quot;http://leho.kraav.com/blog/2009/10/27/using-apache-authentication-with-gitweb-gitosis-repository-access-control/&quot;&gt;Beitrag&lt;/a&gt; im Blog von Leho Kraav.&lt;/p&gt;

&lt;p&gt;Weitere, vielleicht hilfreiche Anregungen dazu kann man ergoogeln, bspw.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://leho.kraav.com/blog/2009/10/27/using-apache-authentication-with-gitweb-gitosis-repository-access-control/&quot; title=&quot;301 Moved Permanently&quot;&gt;Using apache authentication with gitweb, gitosis – repository access control&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://git.madduck.net/v/gitweb-conf.git/blob/HEAD:/gitweb.conf&quot; title=&quot;301 Moved Permanently&quot;&gt;madduck&amp;#8217;s gitweb.conf&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://markatharvest.blogspot.com/2009/04/securing-gitweb.html&quot; title=&quot;Blog nicht gefunden.&quot;&gt;Securing gitweb&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;u.a.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Voraussetzung dafür ist eine ausreichend neue Version von &lt;em&gt;gitweb&lt;/em&gt;; die in Debian Lenny verfügbare Version 1.5.6.5 genügt nicht. Sie kann allerdings gepatcht werden (die Änderung ist minimal):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;--- /usr/lib/cgi-bin/gitweb.cgi.OLD 2010-01-14 16:49:44.000000000 +0100
+++ /usr/lib/cgi-bin/gitweb.cgi     2010-01-15 15:30:40.975350737 +0100
@@ -86,6 +86,11 @@
 # (only effective if this variable evaluates to true)
 our $export_ok = &quot;&quot;;

+# show repository only if this subroutine returns true
+# when given the path to the project, for example:
+#    sub { return -e &quot;$_[0]/git-daemon-export-ok&quot;; }
+our $export_auth_hook = undef;
+
 # only allow viewing of repositories also shown on the overview page
 our $strict_export = &quot;&quot;;

@@ -353,7 +358,8 @@
 sub check_export_ok {
        my ($dir) = @_;
        return (check_head_link($dir) &amp;amp;&amp;amp;
-               (!$export_ok || -e &quot;$dir/$export_ok&quot;));
+               (!$export_ok || -e &quot;$dir/$export_ok&quot;) &amp;amp;&amp;amp;
+                (!$export_auth_hook || $export_auth_hook-&amp;amp;gt;($dir)));
 }

 # process alternate names for backward compatibility
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Das vorausgesetzt, genügt es, die &lt;em&gt;gitweb.conf&lt;/em&gt; folgendermaßen zu erweitern:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# HTTP Basic Auth
$gitosis_conf = &#039;/home/gitosis/.gitosis.conf&#039;;
$username = $cgi-&amp;amp;gt;remote_user;
$export_auth_hook = sub {
  my $projectdir = shift;
  if($projectdir =~ (/(.*?)\.git/)) {
    #my $projectname = basename($1);
    my $projectname = $1;
    $projectname =~ s/$projectroot\/?//;
    open FILE, $gitosis_conf or die &#039;Could not open gitosis config file. Please make sure that $gitosis_conf is set properly&#039;;
    my $project_match = 0;
    my $user_match = 0;
    while(&amp;amp;lt;FILE&amp;amp;gt;) {
      if($_ =~ /^\s*members\s*\=\s*(?:.*?\s)*$username(?:\s+|$)/) {$user_match = 1;}
      if($_ =~ /^\s*(read|writ)able\s*\=\s*(?:.*?\s)*$projectname(?:\s+|$)/) {$project_match = 1;}
      if($project_match &amp;amp;&amp;amp; $user_match) {
         return 1;
      }
      if($_ =~ /\[group/) {
          $project_match = $user_match = 0;
      }
    }
  }
  return 0;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dann muß noch die Apache-Konfiguration passend erweitert werden, um HTTP-Basic-Authentication für das entsprechende Verzeichnis zu machen:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;Location /&amp;gt;
    AuthType Basic
    AuthName &quot;git.host.example&quot;
    AuthUserFile /home/gitosis/gitosis/ht.passwd
    Require valid-user
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pfade müssen, wie üblich, entsprechend angepaßt werden.&lt;/p&gt;

&lt;p&gt;Und schließlich müssen für die in der &lt;em&gt;gitosis.conf&lt;/em&gt; definierten Benutzer - jedenfalls diejenigen, die auch Webzugriff haben sollen - Paßworte in der &lt;em&gt;/home/gitosis/gitosis/ht.passwd&lt;/em&gt; angelegt werden. Dazu wird wie gewohnt &lt;em&gt;htpasswd&lt;/em&gt; bzw. &lt;em&gt;htpasswd2&lt;/em&gt; aufgerufen.&lt;/p&gt;

&lt;p&gt;Voilá!&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/3182bde2261d4a8c952d37378863c901&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Sat, 16 Jan 2010 19:04:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1530-guid.html</guid>
    <category>anleitung</category>
<category>debian</category>
<category>git</category>
<category>lenny</category>

</item>
<item>
    <title>Git-Repositories mit gitosis und gitweb (Debian Lenny)</title>
    <link>https://netz-rettung-recht.de/archives/1528-Git-Repositories-mit-gitosis-und-gitweb-Debian-Lenny.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1528-Git-Repositories-mit-gitosis-und-gitweb-Debian-Lenny.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1528</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1528</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Wie ich bereits &lt;a title=&quot;Patches für control-archive&quot; href=&quot;https://netz-rettung-recht.de/archives/1498-Patches-fuer-control-archive.html&quot;&gt;schrieb&lt;/a&gt;, habe ich mich in den letzten Tagen etwas näher mit dem Versionskontrollsystem (VCS, oder auch SCM für &amp;quot;Source-Code-Management&amp;quot;) &lt;a title=&quot;Git&quot; href=&quot;http://git-scm.com/&quot;&gt;git&lt;/a&gt; beschäftigt. Das macht natürlich nur bedingt Spaß - und Sinn -, wenn die Repositories nur auf dem heimischen Rechner liegen; um wirklich universal auf sie zugreifen zu können und auch die Zusammenarbeit mit anderen zu ermöglichen, sollten die Repositories irgendwo im Netz stehen, und eine nette Weboberfläche, die auch einen Zugriff über den Browser - ohne weitere Software - ermöglicht, um den aktuellen Stand der Bearbeitung zu sehen, Commits zu prüfen und ggf. einen Snapshot zu ziehen, wäre auch nicht schlecht.&lt;/p&gt;

&lt;p&gt;Um mir die Anlage von Repositories und das Zusammenspiel mit den anderen Komponenten zu erleichtern und auch für erweiterte Anforderungen wie verschiedene Zugriffsrechte für die jeweiligen Repositories gerüstet zu sein, habe ich mich für die Verwaltung der Repositories für &lt;em&gt;&lt;a title=&quot;gitosis&quot; href=&quot;http://eagain.net/gitweb/?p=gitosis.git&quot;&gt;gitosis&lt;/a&gt;&lt;/em&gt; entschieden; als Weboberfläche will ich &lt;em&gt;&lt;a title=&quot;gitweb&quot; href=&quot;https://git.wiki.kernel.org/index.php/Gitweb&quot;&gt;gitweb&lt;/a&gt;&lt;/em&gt; nutzen, und für den Zugriff via &lt;em&gt;git &lt;/em&gt;dann &lt;em&gt;git-daemon&lt;/em&gt;. Installiert habe ich dazu die jeweiligen Pakete aus Debian Lenny bzw. den Debian-Backports.&lt;/p&gt;

&lt;p&gt;Die Installation und Konfiguration habe ich folgendermaßen durchgeführt:&lt;/p&gt;

&lt;h3&gt;1. gitosis&lt;/h3&gt;

&lt;h4&gt;a) Vorüberlegungen&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;gitosis &lt;/em&gt;bietet die Möglichkeit, Benutzer und Repositories zu konfigurieren. Die entsprechenden Repositories werden dann angelegt; für jedes kann gesondert festgelegt werden, welcher Benutzer - lesen oder schreibend - darauf zugreifen kann. Die Zugriffe erfolgen über (&lt;em&gt;git&lt;/em&gt;-über-)SSH; jeder Benutzer muß dazu seinen öffentlichen SSH-Schlüssel hinterlegen. Er verbindet sich dann unter dem Benutzernamen (Useraccount) &amp;quot;gitosis&amp;quot; per SSH mit dem Server, auf dem das Repository liegt; gitosis prüft dann, welcher SSH-Schlüssel für die Verbindung übergeben wird und identifiziert auf diese Weise den Benutzer.&lt;/p&gt;

&lt;p&gt;Die Konfiguration von &lt;em&gt;gitosis &lt;/em&gt;erfolgt gleichfalls über ein &lt;em&gt;git&lt;/em&gt;-Repository, das zunächst ausgecheckt wird; danach kann man die Konfiguration ändern und bspw. neue Repositories und Benutzer anlegen (und im Falle eines neuen Benutzers auch dessen öffentlichen SSH-Schlüssel speichern) und die Änderungen committen. Beim Commit paßt &lt;em&gt;gitosis&lt;/em&gt; über entsprechende Hooks die Konfiguration an. Das Konfigurations-Repository kann entweder auf denselben Rechner ausgecheckt werden oder auf einen beliebigen anderen Client; auch diese Verbindungen erfolgen über (&lt;em&gt;git&lt;/em&gt;-über-)SSH, und auch dafür muß man (s)einen öffentlichen SSH-Key bei &lt;em&gt;gitosis &lt;/em&gt;hinterlegen. Ich habe mich entschlossen, dafür einen eigenen Key anzulegen; man kann aber natürlich auch einfach (s)einen bestehenden SSH-Schlüssel verwenden.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Standardmäßig sieht das Debian-Paket von &lt;em&gt;gitosis&lt;/em&gt; die Anlage der Repositories in &lt;em&gt;/srv/gitosis&lt;/em&gt; an; das paßt allerdings nicht zur Partitionierung meines Mietservers, der - historisch und aus dem Image des Anbieters bedingt - platzmäßig eher knapp kalkulierte Partitionen bietet und den gesamten restlichen Plattenplatz in &lt;em&gt;/home&lt;/em&gt; eingehängt hat. Daher möchte ich die Repositories auch in &lt;em&gt;/home/gitosis&lt;/em&gt; liegen haben.&lt;/p&gt;

&lt;h4&gt;b) Installation (der Debian-Pakete) und Inbetriebnahme&lt;br /&gt;&lt;/h4&gt;

&lt;p&gt;Zunächst sind &lt;em&gt;git&lt;/em&gt; selbst und &lt;em&gt;gitosis&lt;/em&gt; zu installieren:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;aptitude install git-core git-doc gitosis
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Danach lege ich ein Home-Verzeichnis für &lt;em&gt;gitosis&lt;/em&gt; in &lt;em&gt;/home&lt;/em&gt; an, lösche &lt;em&gt;/srv/gitosis&lt;/em&gt; und setze einen Symlink auf das Home-Verzeichnis:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir /home/gitosis
chown gitosis:gitosis /home/gitosis
rmdir /srv/gitosis/
ln -s /home/gitosis /srv/gitosis
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dann ist entweder mit &lt;em&gt;ssh-keygen&lt;/em&gt; ein neues Schlüsselpaar zu erzeugen oder der öffentliche Schlüssel eines bestehenden Schlüsselpaares in einer Datei bereitzulegen, bspw. in &lt;em&gt;git-admin_rsa.pub&lt;/em&gt;. Den verfüttert man dann an &lt;em&gt;gitosis&lt;/em&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo -H -u gitosis gitosis-init &amp;amp;lt; git-admin_rsa.pub&amp;lt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dann habe ich der Bequemlichkeit halber noch die Konfiguration des SSH-Clients angepaßt, um bei SSH-Verbindungen zu &lt;em&gt;localhost&lt;/em&gt; - was in meinem Fall nur für &lt;em&gt;git&lt;/em&gt;-über-SSH bei der Konfiguration von &lt;em&gt;gitosis&lt;/em&gt; vorkommt - direkt den richtigen Schlüssel zu benutzen, und dazu in &lt;em&gt;~/.ssh/config&lt;/em&gt; folgendes eingefügt:&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Host localhost
IdentityFile ~/.ssh/git-admin_rsa
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Zur Konfiguration und Einrichtung der Benutzer muß das Konfigurations-Repository von &lt;em&gt;gitosis&lt;/em&gt; jetzt erst einmal ausgecheckt werden (in meinem Falle geschieht das auf demselben Host, man kann aber natürlich auch von jedem anderen Host aus mit dem oben an &lt;em&gt;gitosis&lt;/em&gt; übergebenen SSH-Schlüssel auf das Repository zugreifen):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone gitosis@localhost:gitosis-admin.git gitosis-admin
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Damit wird das Repositoy in das Verzeichnis &lt;em&gt;gitosis-admin&lt;/em&gt; ausgecheckt. Dort befindet sich dann die Datei &lt;em&gt;gitosis.conf&lt;/em&gt; und das Verzeichnis &lt;em&gt;keydir&lt;/em&gt;; in ersterer werden Benutzer und Repositories angelegt, in letzterem finden sich die öffentlichen SSH-Schlüssel der Benutzer.&lt;/p&gt;

&lt;h4&gt;c) Konfiguration und Einrichtung der ersten Benutzer und Repositories&lt;/h4&gt;

&lt;p&gt;Als erstes nehme ich mir die &lt;em&gt;gitosis.conf&lt;/em&gt; vor und prüfe bzw. setze dort die globalen Einstellungen:&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[gitosis]
## To override the default ~/repositories path
# repositories = repositories

## Allow gitweb to show all known repositories. If you want gitweb,
## you need either this or a [repo foo] section for each repository
## you want visible in gitweb.
gitweb = no

## Allow git-daemon to publish all known repositories. As with gitweb,
## this can be done globally or per-repository.
daemon = no

## Logging level, one of DEBUG, INFO, WARNING, ERROR, CRITICAL
loglevel = INFO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Die Optionen sind im Prinzip selbsterklärend. Ich habe mich entschieden, den Webzugriff und den Zugriff via git-daemon nicht generell freizugeben, sondern das per Repository zu steuern.&lt;/p&gt;

&lt;p&gt;Als nächstes werden Benutzergruppen und deren Rechte festgelegt:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;### groups #####---------------
[group gitosis-admin]
writable = gitosis-admin
members = admin@admin.host.example

[group friends]
writable = repo-eins projekt/projektrepo-eins
members = me@my.host.example he@his.host.example another@another.host.example

[group myself]
writable = private projekt/projektrepo-private
members = me@my.host.example
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Zur Gruppe &amp;quot;gitosis-admin&amp;quot; gehört also der Benutzer, der über den SSH-Key &amp;quot;admin@admin.host.example&amp;quot; identifiziert wird; dieser hat Zugriff auf das Konfigurations-Repository &amp;quot;gitosis-admin&amp;quot;. Zur Gruppe &amp;quot;friends&amp;quot; gehören neben mir (&amp;quot;me@my.host.example&amp;quot;)&amp;#160; auch noch zwei andere, und diese Gruppe hat Zugriff auf zwei verschiedene Repositories; zur Gruppe &amp;quot;myself&amp;quot; gehöre nur ich mit Zugriff auf zwei weitere Repositories. Statt Lese- und Schreibzugriff (&amp;quot;writable&amp;quot;) kann auch ein bloßer Lesezugriff vergeben werden.&lt;/p&gt;

&lt;p&gt;Diese Repositories werden dann im Anschluss konfiguriert:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;### repos #####----------------
[repo repo-eins]
## Oneline description of the project, mostly for gitweb.
description = Repository Number One
## Owner of this repository. Used in gitweb list of projects.
owner = John Doe
## Allow git-daemon to publish this repository.
daemon = yes
## Allow gitweb to show this repository.
gitweb = yes

[repo projekt/projektrepo-eins]
description = Repository for our project
owner = John Doe
daemon = yes
gitweb = yes

[repo private]
description = Private repository
owner = John Doe
daemon = no
gitweb = no

[repo projekt/projektrepo-private]
description = Another repository for our project
owner = John Doe
daemon = no
gitweb = no
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Auch das sollte eigentlich selbsterklärend sein. Zu beachten ist, daß die Angaben unter &amp;quot;daemon&amp;quot; und &amp;quot;gitweb&amp;quot; nur steuern, ob gitosis eine entsprechende &amp;quot;magische&amp;quot; Datei &lt;em&gt;git-daemon-export-ok&lt;/em&gt; für &lt;em&gt;git-daemon&lt;/em&gt; anlegt bzw. das Repository in eine Projektdatei für &lt;em&gt;gitweb&lt;/em&gt; aufnimmt. Ob die entsprechenden mit &amp;quot;yes&amp;quot; gekennzeichneten Repositories dann via &lt;em&gt;gitweb &lt;/em&gt;oder &lt;em&gt;git-daemon&lt;/em&gt; auch wirklich verfügbar sind (und vor allem die mit &amp;quot;no&amp;quot; gekennzeichneten nicht!), ist eine Frage der Konfiguration dieser beiden Programme.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Nunmehr müssen für die in der &lt;em&gt;gitosis.conf&lt;/em&gt; definierten Benutzer noch jeweils deren öffentliche SSH-Key hinterlegt werden, und zwar in &lt;em&gt;keydir&lt;/em&gt;, wobei für jeden Nutzer eine Datei mit dem Namen &lt;em&gt;$nutzername.pub&lt;/em&gt; angelegt werden muß, die mindestens einen Schlüssel enthalten muß, aber auch mehrere Schlüssel enthalten darf. Der oder die Schlüssel des Nutzers &amp;quot;me@my.host.example&amp;quot; gehören also in die Datei &lt;em&gt;me@my.host.example.pub&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Schließlich müssen die Dateien mit dem Schlüsseln mittels &lt;em&gt;git add&lt;/em&gt; hinzugefügt und alle Änderungen mittes &lt;em&gt;git commit -a&lt;/em&gt; committed werden; danach wird das Repository mittels &lt;em&gt;git push&lt;/em&gt; an &lt;em&gt;gitosis&lt;/em&gt; verfüttert. Voilà!&lt;/p&gt;

&lt;h3&gt;2. git-daemon&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;git-daemon &lt;/em&gt;ist recht einfach zu installieren:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;aptitude install git-daemon-run
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;git-daemon-run&lt;/em&gt; verwendet allerdings nicht die gewohnten Scripts in &lt;em&gt;/etc/init.d&lt;/em&gt;, sondern &lt;em&gt;runit&lt;/em&gt;/&lt;em&gt;runsv&lt;/em&gt;, so dass sich ein Symlink lohnt:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ln -s /usr/bin/sv /etc/init.d/git-daemon
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Außerdem sollte &lt;em&gt;/etc/sv/git-daemon/run&lt;/em&gt; noch entsprechend konfiguriert werden:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/bin/sh
exec 2&amp;amp;gt;&amp;amp;amp;1
echo &#039;git-daemon starting.&#039;
exec chpst -ugitdaemon /usr/lib/git-core/git-daemon --verbose --enable=upload-pack --enable=upload-archive --base-path=/home/gitosis/repositories /home/gitosis/repositories
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Statt &amp;quot;-ugitdaemon&amp;quot; wäre ggf. bei neueren Versionen des &lt;em&gt;gitosis&lt;/em&gt;-Pakets in Debian &amp;quot;-ugitosis&amp;quot; zu verwenden; der Pfad &lt;em&gt;/home/gitosis/repositories&lt;/em&gt; ist (zweimal) ggf. durch den Pfad zu den in &lt;em&gt;gitosis&lt;/em&gt; angelegten Repositories zu ersetzen, im Falle des Debian-Paketes standardmäßig &lt;em&gt;/srv/gitosis&lt;/em&gt; (den Grund für meine diesbezügliche Änderung habe ich weiter oben beschrieben).&lt;/p&gt;

&lt;p&gt;Schließlich muß man sich noch entscheiden, welche Services der &lt;em&gt;git-daemon&lt;/em&gt; bieten soll. &amp;quot;upload-pack&amp;quot; erlaubt den Zugriff via &lt;em&gt;git fetch&lt;/em&gt;, &lt;em&gt;git pull&lt;/em&gt; und &lt;em&gt;git clone&lt;/em&gt;, &amp;quot;upload-archive&amp;quot; die Verwendung von &lt;em&gt;git archive&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Das sollte es dann gewesen sein.&lt;/p&gt;

&lt;h3&gt;3. gitweb&lt;/h3&gt;

&lt;p&gt;Das &lt;em&gt;gitweb&lt;/em&gt;-Paket aus Debian Lenny kann gleichfalls in wenigen Schritten installiert und konfiguriert werden; danach ist nur noch der Webserver - in meinem Fall &lt;em&gt;Apache 2.2&lt;/em&gt; - entsprechend anzupassen, wobei ich für &lt;em&gt;gitweb &lt;/em&gt;einen eigenen vhost aufgesetzt habe.&lt;/p&gt;

&lt;h4&gt;a) gitweb &lt;br /&gt;&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;aptitude install gitweb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dann kommt die &lt;em&gt;/etc/gitweb.conf&lt;/em&gt; an die Reihe:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# path to git projects (&amp;amp;lt;project&amp;amp;gt;.git)
#$projectroot = &quot;/var/cache/git&quot;;
$projectroot = &quot;/home/gitosis/repositories/&quot;;

# directory to use for temp files
$git_temp = &quot;/tmp&quot;;

# target of the home link on top of all pages
#$home_link = $my_uri || &quot;/&quot;;

# html text to include at home page
$home_text = &quot;indextext.html&quot;;

# file with project list; by default, simply scan the projectroot dir.
# $projects_list = $projectroot;

# Point to projects.list file generated by gitosis.
$projects_list = &quot;/home/gitosis/gitosis/projects.list&quot;;

# stylesheet to use
$stylesheet = &quot;/gitweb.css&quot;;

# logo to use
$logo = &quot;/git-logo.png&quot;;

# the &#039;favicon&#039;
$favicon = &quot;/git-favicon.png&quot;;

# A list of base urls where all the repositories can be cloned from.
# Easier than having per-repository cloneurl files.
@git_base_url_list = (&#039;git://git.host.example&#039;);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&amp;quot;$projectroot&amp;quot; ist hier der Pfad zu den von &lt;em&gt;gitosis &lt;/em&gt;angelegten Repositories, standardmäßig &lt;em&gt;/srv/gitosis/repositories&lt;/em&gt;; &amp;quot;$projects_list&amp;quot; umfasst die Repositories, die &lt;em&gt;gitweb &lt;/em&gt;anzeigen soll, und ist entweder ein Verzeichnis (bspw. &lt;em&gt;$projectroot&lt;/em&gt;), in dem die Repositories liegen, &lt;u&gt;oder&lt;/u&gt; eine Datei mit einer Liste der Repositories. Wenn man hier die Funktionalität von &lt;em&gt;gitosis &lt;/em&gt;nutzen will, in der &lt;em&gt;gitosis.conf&lt;/em&gt; zu steuern, welche Repositories &lt;em&gt;gitweb &lt;/em&gt;anzeigen soll, dann ist es wichtig, hier auf die von &lt;em&gt;gitosis&lt;/em&gt; erzeugte Projektliste zu verweisen, wie im obigen Beispiel geschehen! Wenn man sicherstellen will, daß &lt;em&gt;gitweb &lt;/em&gt;nicht nur die &lt;strong&gt;Anzeige&lt;/strong&gt; der Repositories auf die in der Liste gezeigten beschränkt, sondern auch nur diese Repositories überhaupt zum Abruf über das Webinterface anbietet, muß die Konfiguration hier noch um&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$strict_export = &quot;true&quot;;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ergänzt werden. Schließlich können noch allgemeine Parameter wie &amp;quot;@git_base_url_list&amp;quot; gesetzt werden.&lt;/p&gt;

&lt;h4&gt;b) apache2&amp;#160;&lt;br /&gt;&lt;/h4&gt;

&lt;p&gt;Für den Webserver konfiguriere ich, wie einleitend beschrieben, einen eigenen vhost in &lt;em&gt;/etc/apache2/sites-available/gitweb&lt;/em&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerName git.host.example
    ServerAdmin webmaster@host.example

    HeaderName HEADER

    # bogus but safe DocumentRoot
    DocumentRoot /var/cache/git

    #Alias /robots.txt /var/www/cvs.robots.txt
    Alias /gitweb.css /usr/share/gitweb/gitweb.css
    Alias /git-favicon.png /usr/share/gitweb/git-favicon.png
    Alias /git-logo.png /usr/share/gitweb/git-logo.png
    ScriptAlias / /usr/lib/cgi-bin/gitweb.cgi
&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ich füge außerdem den Benutzer &lt;em&gt;www-data&lt;/em&gt;, unter dem der Apache-Webserver läuft, noch in &lt;em&gt;/etc/group&lt;/em&gt; zur Gruppe &lt;em&gt;gitosis&lt;/em&gt; hinzu, damit er die Repositories lesen kann.&lt;/p&gt;

&lt;p&gt;Danach aktiviere ich den zuvor angelegten vhost:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;a2ensite gitweb
/etc/init.d/apache2 reload
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Jetzt sollte unter &lt;em&gt;http://git.host.example/&lt;/em&gt; das Webinterface von gitweb mit den freigegebenen - und befüllten! - Repositories auftauchen.&lt;/p&gt;

&lt;p&gt;Fertig! &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/b5b7a79d6ceb4541bc19496f9d7922a5&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 14 Jan 2010 17:41:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1528-guid.html</guid>
    <category>anleitung</category>
<category>debian</category>
<category>git</category>
<category>lenny</category>

</item>
<item>
    <title>LILO makes the difference</title>
    <link>https://netz-rettung-recht.de/archives/1442-LILO-makes-the-difference.html</link>
            <category>Bits'n'Bytes</category>
            <category>Unmut</category>
    
    <comments>https://netz-rettung-recht.de/archives/1442-LILO-makes-the-difference.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1442</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1442</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Dieser Tage war mal wieder ein Kernelupdate einzuspielen. Normalerweise mache ich das Maschine für Maschine, um bei möglicherweise auftretenden Problemen nur ein System bis zur Lösung lahmzulegen, und eigentlich nie abend, wenn ich eigentlich nur noch ins Bett gehen sollte. Dieses Mal dachte ich mir, das könne ich &amp;quot;noch eben schnell&amp;quot; erledigen - famous last words. Und weil es schnell gehen sollte, habe ich den Update-Prozess mehr oder weniger gleichzeitig gestartet und die ersten beiden Maschinen dann auch parallel rebootet. Während ich dann darauf wartete, daß sie ordnungsgemäß wieder hochkommen, hatte ich die übrigen Updates durchlaufen lassen.&lt;/p&gt;

&lt;p&gt;Nur &amp;#8230; kamen die beiden rebooteten Maschinen nicht wieder hoch. Nada. Und natürlich handelte es sich dabei um gehostete Server, und natürlich um ältere solche, die über keine remote console verfügen. Nicht, daß mir das zwingend geholfen hätte.&lt;/p&gt;

&lt;p&gt; Also hilft nur fluchen und ein Reboot in das sog. Rettungssystem, ein Minimal-Linux, das eine Untersuchung des Systems erlaubt. Und während ich noch grübelte und in den Logs nach möglichen Ursachen suchte, kam mir auch schon ein Gedanke - beides waren Altsysteme, die als Bootloader noch mit &lt;em&gt;LILO&lt;/em&gt;, nicht &lt;em&gt;grub&lt;/em&gt;, ausgestattet sind. Und ich konnte mich jedenfalls nicht bewußt erinnern, beim Upgrade irgendwelchen Output von &lt;em&gt;LILO&lt;/em&gt; gesehen zu haben &amp;#8230; Also die Partitionen ins Rettungssystem &lt;em&gt;mount&lt;/em&gt;en, in das Echtsystem &lt;em&gt;chroot&lt;/em&gt;en, &lt;em&gt;lilo&lt;/em&gt; ausführen, &lt;em&gt;unmount&lt;/em&gt;en, das Echtsystem rebooten und das beste hoffen.&lt;/p&gt;

&lt;p&gt;Und, siehe da: das war die Lösung.&lt;/p&gt;

&lt;p&gt;Jetzt frage ich mich nur: War das immer schon so, daß man bei einem Debian nach dem Kernelupdate von Hand &lt;em&gt;lilo&lt;/em&gt; ausführen mußte? Oder wurde das früher - unter Sarge oder Lenny - nicht automatisch von einem &lt;em&gt;postinstall&lt;/em&gt;-Script gemacht? *kopfkratz* Und wenn letzteres: wie stelle ich dieses Verhalten wieder her?&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/8df2f014cbd749178d79006c2ce0ae33&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Wed, 10 Jun 2009 05:30:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1442-guid.html</guid>
    <category>debian</category>
<category>lenny</category>

</item>
<item>
    <title>Aufräumen schafft Platz</title>
    <link>https://netz-rettung-recht.de/archives/1441-Aufraeumen-schafft-Platz.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1441-Aufraeumen-schafft-Platz.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1441</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1441</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1441]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-df-day.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:303 --&gt;&lt;img width=&quot;110&quot; height=&quot;80&quot; class=&quot;serendipity_image_left&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-df-day.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;/ lief voll.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1441]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-06-06-munin-xerxes-df-week.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:318 --&gt;&lt;img width=&quot;110&quot; height=&quot;82&quot; class=&quot;serendipity_image_right&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-06-06-munin-xerxes-df-week.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Aufräumen hilft.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Nach dem - inzwischen auf allen Rechnern abgeschlossenen - Upgrade auf Debian Lenny &lt;a title=&quot;Debian Lenny und Belkin Sentry Bulldog&quot; href=&quot;https://netz-rettung-recht.de/archives/1400-Debian-Lenny-und-Belkin-Sentry-Bulldog.html&quot;&gt;beklagte&lt;/a&gt; ich unter anderem ein Volllaufen des Root-Filesystems auf einer Maschine, das ich damals bei der Einrichtung etwas arg knapp bemessen hatte. Mittlerweile stellte sich heraus, dass der verbliebene Platz noch nicht einmal mehr für das Einspielen von Kernel-Updates ausreichte; so geht das natürlich auf Dauer nicht.&lt;/p&gt;

&lt;p&gt;Auf der Suche nach einer Lösung stellte ich dann - glücklicherweise - fest, dass der große Platzverbrauch seine Ursache vor allem darin hatte, dass von allen jemals aktiv gewesen Kernel noch die zugehörigen Module auf der Platte lagen, insgesamt vier Verzeichnisse voll. Nach Beseitigung eines dieser Modul-Verzeichnisse (zugehörig zu einem schon weggeputzten Kernel - sah es mit dem Platz dann schon viel, viel besser aus, und auch das Kernel-Update ließ sich brav installieren.&lt;/p&gt;

&lt;p&gt;So soll es sein. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 08 Jun 2009 05:25:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1441-guid.html</guid>
    <category>debian</category>
<category>lenny</category>

</item>
<item>
    <title>Munin-Plugin und BIND 9.5.1 revisited</title>
    <link>https://netz-rettung-recht.de/archives/1422-Munin-Plugin-und-BIND-9.5.1-revisited.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1422-Munin-Plugin-und-BIND-9.5.1-revisited.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1422</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1422</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Ich hatte &lt;a href=&quot;https://netz-rettung-recht.de/archives/1401-Debian-Lenny-und-Munin.html&quot; title=&quot;Debian Lenny und Munin&quot;&gt;bereits geschildert&lt;/a&gt;, daß das Munin-Plugin für BIND nicht mit dem Format der Statistikdatei von BIND 9.5.x umgehen kann, und auch eine Lösung vorgeschlagen, die bei mir dafür gesorgt hatte, daß die Lücke in den Munin-Daten für BIND sehr schmal blieb. Leider mußte ich jetzt - nachdem ich, bedingt durch Zeitmangel, erst nach&amp;#160;längerer Zeit wieder einmal einen Blick auf diese spezielle Grafik werfen konnte - feststellen, daß sich ein neues, bald zwei Wochen messendes Loch aufgetan hat. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Der Grund ist einfach: BIND 9.5.1 schreibt die Statistikdatei nicht immer wieder neu, sondern hängt die neuen Informationen am Ende an. So wird die Datei immer länger; hier waren es jetzt &amp;gt; 33&amp;#160;MB. Und da das Munin-Plugin die Datei schlicht zeilenweise liest und dabei auf das (letzte) Auftreten bestimmter Schlüsselbegriffe achtet, um die entsprechende Zeile dann auszuwerten, dauert das ab einer gewissen Dateigröße einfach so lange, daß dabei ein Timeout des entsprechenden Plugins entsteht. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/normal.png&quot; alt=&quot;:-|&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Weiß jemand zufällig, ob man BIND 9.5.1 beibringen kann, die Statistiken wie früher immer neu zu dumpen, statt sie an die alte Datei anzuhängen? Sonst wird sich wohl ein Cronjob der Sache annehmen müssen, der die Datei rotiert - oder regelmäßig löscht.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 18 May 2009 05:40:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1422-guid.html</guid>
    <category>debian</category>
<category>lenny</category>
<category>Munin</category>

</item>
<item>
    <title>INN und SSL/TLS (Debian Lenny)</title>
    <link>https://netz-rettung-recht.de/archives/1411-INN-und-SSLTLS-Debian-Lenny.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1411-INN-und-SSLTLS-Debian-Lenny.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1411</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1411</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Das Internet ist schon lange kein friedlicher Ort mehr, an dem jeder jedem trauen kann - und deshalb wurden die ursprünglichen, unverschlüsselten Kommunikationsprotokolle schon lange durch kryptograhpisch abgesicherte Variationen ersetzt. Telnet verwendet heute wohl niemand mehr offen im Netz, stattdessen gibt es SSH; auch im Mailverkehr pflegt man - hoffentlich - zumindest das Paßwort beim Abruf über POP3 via APOP und beim Versand via SMTP über eine SMTP-Aut-Variante mit Verschlüsselung zu sichern, wenn man nicht ohnehin die ganze Kommunikation SSL-verschlüsselt, und auch diejenigen, die FTP noch nicht durch SCP/SFTP ersetzt haben, nutzen hoffentlich wenigstens SSL, um die Paßwortübertragung zu verschlüsseln.&lt;/p&gt;

&lt;p&gt;So weit, so gut, aber schon vor einer ganzen Weile fiel mir auf, daß diese Regel für Netnews (NNTP) offenbar nicht gilt (und für UUCP oft auch nicht &amp;#8230;); denn zu seinem oder seinen Newsserver(n) verbindet man sich oft genug noch unverschlüsselt, obwohl auch dort ein Paßwort übertragen wird. So ging es zumindest mir, und ich habe mich am vergangenen Wochenende entschlossen, dagegen etwas zu unternehmen und auch die Verbindung zumindest zu meinem eigenen Newsserver zu verschlüsseln.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Das ist - mit dem INN 2.4.5-Paket aus Debian Lenny - eigentlich ganz einfach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ein SSL/TLS-fähiger &lt;em&gt;nnrpd&lt;/em&gt; ist bereits vorhanden (&lt;em&gt;nnrpd-ssl&lt;/em&gt;). Wer nicht das vorgenannte Paket verwendet, muß den INN (oder zumindest den &lt;em&gt;nnrpd&lt;/em&gt;) ggf. mit &amp;quot;&lt;em&gt;configure &amp;#8212;with-openssl&lt;/em&gt;&amp;quot; noch einmal kompilieren.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schlüssel muß man sich erzeugen, sofern noch nicht vorhanden. Vorhandene Zertifikate bzw. Schlüssel sollte man vielleicht am einfachsten kopieren; standardmäßig werden sie in &lt;em&gt;/etc/news &lt;/em&gt;gesucht. Das ist verhandelbar respektive konfigurierbar, aber das Zertifikat und der Schlüssel müssen dem User &lt;em&gt;news &lt;/em&gt;gehören und die Rechte &lt;em&gt;600&amp;#160;&lt;/em&gt;aufweisen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die Konfigurationsdatei &lt;em&gt;/etc/news/sasl.conf&lt;/em&gt; muß editiert (oder ggf. angelegt) werden, um die korrekten Pfade zum Zertifikat und dem privaten Schlüssel des Servers aufzunehmen. &amp;quot;&lt;em&gt;tls_cert_file&lt;/em&gt;&amp;quot; und &amp;quot;&lt;em&gt;tls_key_file&lt;/em&gt;&amp;quot; sind die relevanten Parameter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Danach muß der &lt;em&gt;nnrpd-ssl&lt;/em&gt; nur noch veranlasst werden, auf Port 563 (NNTPS) zu lauschen. Das kann man u.a. über den &lt;em&gt;(x)inetd&lt;/em&gt; erreichen, indem man bspw. folgende Konfigurationsdatei in &lt;em&gt;/etc/xinet.d/&lt;/em&gt; einwirft:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;    service nntps
    {
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = news
       group           = news
       server          = /usr/lib/news/bin/nnrpd-ssl
       server_args     = -S -p 563
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Voraussetzung dafür ist, daß die &lt;em&gt;/etc/services&lt;/em&gt; den Service &amp;quot;nntps&amp;quot; kennt.&lt;/p&gt;

&lt;p&gt;Voila. Wer mag, kann auch noch eine CA daran anflanschen und bspw. Nutzer statt via Paßwort auch via Zertifikat authentifizieren, indem er die &lt;em&gt;readers.conf&lt;/em&gt; entsprechend anpaßt, aber daran habe ich keinen Bedarf; mir genügt die Verschlüsselung der Verbindung zwischen Server und Client.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;(Danke an &lt;a title=&quot;Viktor Kafke&quot; href=&quot;http://www.kafke.de/&quot;&gt;Viktor Kafke&lt;/a&gt; für die entsprechenden Tips.)&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/9752596d04a948f980e126fced5adff6&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Mon, 27 Apr 2009 18:55:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1411-guid.html</guid>
    <category>anleitung</category>
<category>debian</category>
<category>inn</category>
<category>lenny</category>
<category>usenet</category>

</item>
<item>
    <title>Debian Lenny: erste Erfahrungen</title>
    <link>https://netz-rettung-recht.de/archives/1402-Debian-Lenny-erste-Erfahrungen.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1402-Debian-Lenny-erste-Erfahrungen.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1402</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1402</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;div style=&quot;width: 110px;&quot; class=&quot;serendipity_imageComment_left&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a   rel=&quot;lightbox[1402]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-haystack-df.png&quot; class=&quot;serendipity_image_link&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:309 --&gt;&lt;img height=&quot;76&quot; width=&quot;110&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-haystack-df.serendipityThumb.png&quot; class=&quot;serendipity_image_right&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Platzverbrauch auf / gestiegen.&lt;/div&gt; 
&lt;/div&gt;

&lt;div style=&quot;width: 110px;&quot; class=&quot;serendipity_imageComment_right&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a   rel=&quot;lightbox[1402]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-greenmeadow-memory.png&quot; class=&quot;serendipity_image_link&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:308 --&gt;&lt;img height=&quot;92&quot; width=&quot;110&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-greenmeadow-memory.serendipityThumb.png&quot; class=&quot;serendipity_image_left&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Speicherauslastung unter dem Strich unverändert.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Nachdem ich in den letzten Tagen einige Maschinen - heimische und Mietserver, letztere mit und ohne serielle Konsole - von Debian Etch auf Lenny hochgezogen haben, sind mir dabei einige Gemeinsamkeiten aufgefallen. Zunächst vielleicht das wichtigste: die in den &lt;a href=&quot;http://www.debian.org/releases/lenny/i386/release-notes/ch-upgrading.en.html&quot; title=&quot;Release Notes for Debian GNU/Linux 5.0 (lenny), Chapter 4: Upgrading&quot;&gt;Release Notes&lt;/a&gt; angesprochenen Probleme mit neu nummerierten Devices oder gar Problemen beim Auffinden des Root-Filesystems beim Reboot (&lt;span class=&quot;section&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.debian.org/releases/lenny/i386/release-notes/ch-upgrading.en.html#device-reorder&quot; title=&quot;302 Found&quot;&gt;Device enumeration reordering&lt;/a&gt;, &lt;span class=&quot;section&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.debian.org/releases/lenny/i386/release-notes/ch-upgrading.en.html#boot-hangs&quot; title=&quot;302 Found&quot;&gt;System boot hangs on &lt;code class=&quot;literal&quot;&gt;Waiting for root file
  system&lt;/code&gt;&lt;/a&gt;) sind bei mir glücklicherweise in keinem Fall aufgetreten; das verlief vielmehr alles durchaus problemlos, sei es mit &lt;em&gt;LILO&lt;/em&gt; als Bootloader (ggf. an Verkleinerung der RAM-Disk denken, &lt;span class=&quot;section&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.debian.org/releases/lenny/i386/release-notes/ch-upgrading.en.html#prepare-initramfs&quot; title=&quot;302 Found&quot;&gt;Prepare initramfs for &lt;acronym title=&quot;LInux LOader&quot;&gt;LILO&lt;/acronym&gt;&lt;/a&gt;!) oder mit &lt;em&gt;grub&lt;/em&gt;. Das hat mich besonders erleichtert, weil, wie gesagt, nicht alle entfernten Maschinen über eine serielle Konsole und damit über die Möglichkeit eines einfachen Zugriffs bei Bootproblemen verfügen.&lt;/p&gt;

&lt;p&gt;Auch ansonsten verliefen die Upgrades an und für sich - bei der in den Release Notes empfohlenen Vorgehensweise - erfreulich unproblematisch. Das gehört auch zu den Dingen, die ich an Debian besonders schätze: der Upgrade-Prozeß ist in der Regel schmerzlos, gut dokumentiert und getestet. Hilfreich insbesondere, wenn man sich in den eher zentralen und maschinennahen Bereichen nicht so besonders auskennt und/oder keinen unmittelbaren Zugriff auf das System hat.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1402]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-flock-entropy.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:306 --&gt;&lt;img height=&quot;60&quot; width=&quot;110&quot; class=&quot;serendipity_image_left&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-flock-entropy.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Mehr Entropie &amp;#8230;&lt;/div&gt; 
&lt;/div&gt;

&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1402]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-greenmeadow-entropy.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:307 --&gt;&lt;img height=&quot;60&quot; width=&quot;110&quot; class=&quot;serendipity_image_right&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-greenmeadow-entropy.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;&amp;#8230; zumindest manchmal.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Schon allein ein Blick auf Munin zeigt aber einige Veränderungen, die sich aus den in den Beitrag eingestreuten Graphiken ergeben. Dass der Platzverbrauch im Rootverzeichnis - genauer wohl in &lt;em&gt;/libs&lt;/em&gt; - gestiegen ist, hatte ich schon vorgestern nach dem Update der ersten Maschine &lt;a href=&quot;https://netz-rettung-recht.de/archives/1400-Debian-Lenny-und-Belkin-Sentry-Bulldog.html&quot; title=&quot;Debian Lenny und Belkin Sentry Bulldog&quot;&gt;berichtet&lt;/a&gt;. Das ist aber natürlich nicht die einzige Veränderung - es gibt auch positives zu berichten. So hatte ich zuerst den Eindruck gewonnen, daß die Speicherauslastung zurückgegangen ist, nicht nur, soweit sich die Buffer nach dem Reboot erst einmal wieder füllen müssen, sondern auch, soweit der von Applikationen in Anspruch genommene Speicher betroffen ist. Das scheint mir aber ein Irrtum gewesen zu sein; mit der Zeit steuert die Auslastung wieder dem bisherigen Wert zu. Was sich aber definitiv direkt um Größenordnungen erhöht und insoweit verbessert hat, ist die zur Verfügung stehende Entropie, wichtig für die Erzeugung von Zufallswerten, insbesondere auch im Zusammenhang mit der Verschlüsselung. Auf den meisten Maschinen ist die Erhöhung eine generelle, auf einer Maschine ist sie zumindest eine temporäre. Zumindest auf einer Maschine hat sich auch die Anzahl der MySQL-Queries spürbar verringert; das erscheint mir aber eher zufällig zu sein (oder steckt vielleicht irgendwo im neuen INN drin - denn der dürfte auf dieser Maschine für die SQL-Queries in erster Linie verantwortlich sein).&lt;/p&gt;

&lt;div style=&quot;width: 110px;&quot; class=&quot;serendipity_imageComment_right&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a   rel=&quot;lightbox[1402]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-haystack-mysql_queries.png&quot; class=&quot;serendipity_image_link&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:310 --&gt;&lt;img height=&quot;76&quot; width=&quot;110&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-19-haystack-mysql_queries.serendipityThumb.png&quot; class=&quot;serendipity_image_right&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Deutlich weniger MySQL-Queries.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Ansonsten finden sich die meisten Veränderungen, wie in den Release Notes schon angekündigt, rund um den Apache herum: die Konfigurationsdatei wurde deutlich entschlackt und die Konfiguration von Modulen in die entsprechenden Module - in &lt;em&gt;mods-available/&lt;/em&gt; - verschoben, &lt;em&gt;phpMyAdmin&lt;/em&gt; wird nicht mehr über einen Symlink, sondern direkt über einen Alias aus der Serverkonfiguration (in &lt;em&gt;conf.d/phpmyadmin.conf&lt;/em&gt;, ein Symlin auf &lt;em&gt;/etc/phpmyadmin/apache.conf&lt;/em&gt;) eingebunden, und &lt;em&gt;mod\_suphp&lt;/em&gt; muß auf einen anderen MIME-Type reagieren &lt;em&gt;(application/x-httpd-php&lt;/em&gt; statt &lt;em&gt;x-httpd-php&lt;/em&gt;) und wird per default für &lt;em&gt;/usr/share&lt;/em&gt;, wo die in Debian gepackageten Webapplikationen liegen, deaktiviert (in &lt;em&gt;mods-available/suphp.conf&lt;/em&gt;). Das erfordert ggf. einige Nacharbeit. Hat man zum Beispiel bisher den https-Zugriff auf &lt;em&gt;phpMyAdmin &lt;/em&gt;dadurch erzwungen, daß das &lt;em&gt;DocumentRoot&lt;/em&gt; für den normalen, unverschlüsselten Zugriff auf den Server nicht auf &lt;em&gt;/var/www/&lt;/em&gt; zeigt, sondern auf ein anderes Verzeichnis, so daß &lt;em&gt;phpMyAdmin&lt;/em&gt; nur beim Aufruf per https gefunden werden konnte, hilft das jetzt nicht mehr, denn per Alias-Direktive wird es immer eingebunden. Hier kann man stattdessen an der passenden Stelle ein &lt;em&gt;SSLRequireSSL&lt;/em&gt; in &lt;em&gt;/etc/phpmyadmin/apache.conf &lt;/em&gt;einsetzen. Wenn man auch die Webapplikationen (weiterhin) nicht unter &lt;em&gt;mod\_php&lt;/em&gt;, sondern unter &lt;em&gt;mod\_suphp&lt;/em&gt; laufen lassen will (vielleicht schon deshalb, weil man mod\_php gar nicht installiert hat), dann sollte man die entsprechenden Änderungen in &lt;em&gt;mods-available/suphp.conf&lt;/em&gt; auskommentieren.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Schließlich beschwerte sich &lt;em&gt;pam\_env&lt;/em&gt; bei mir seit dem Upgrade, daß es &lt;em&gt;/etc/default/locale&lt;/em&gt; nicht finden könne. Ein Anlegen der Datei beseitigt diese Fehlermeldungen aus dem Logfile.&lt;/p&gt;

&lt;p&gt;Eine Sache ist mir allerdings noch etwas schleierhaft, und zwar hatte ich zumindest auf einer Maschine das Problem, das php-cgi ab und an segfaultet:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Apr 16 19:50:37 machine kernel: [113175.233973] php-cgi[2618]: segfault at b6d62eae ip b638e3cf sp b6b940b8 error 4 in libgcc\_s.so.1[b6387000+c000]
Apr 17 01:25:27 machine kernel: [134723.984243] php-cgi[31344]: segfault at b6c94eae ip b62c03cf sp b6ac60b8 error 4 in libgcc\_s.so.1[b62b9000+c000]
Apr 17 18:08:37 machine kernel: [199692.119127] php-cgi[21780]: segfault at b6d2be90 ip b6d2be90 sp b6b5d3ac error 4 in librt-2.7.so[b771f000+7000]
Apr 17 18:14:32 machine kernel: [200072.558515] php-cgi[22441]: segfault at b6cd9e90 ip b6cd9e90 sp b6b0b3ac error 4 in libtasn1.so.3.0.15[b759d000+f000] 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Das tut es eben nicht immer, nur manchmal, vorher nicht und seitdem auch nicht mehr. Google hat mir eine entsprechende Anfrage eines Nutzers auf der &lt;a href=&quot;http://lists.debian.org/debian-user/2009/02/msg01717.html&quot; title=&quot;php-cgi segfault problem&quot;&gt;Debian-User-Mailingliste&lt;/a&gt; aus dem Februar präsentiert, die allerdings bisher AFAIS ohne Antwort geblieben ist; dort scheinen mir dieselben Symptome dargestellt zu sein. Fällt jemand etwas dazu ein?&lt;br /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/375f52c991394cccb780bbb2a0f43628&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Fri, 17 Apr 2009 18:12:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1402-guid.html</guid>
    <category>debian</category>
<category>lenny</category>

</item>
<item>
    <title>Apache 2.x, php-cgi, mod_suphp und &quot;No input file specified!&quot;</title>
    <link>https://netz-rettung-recht.de/archives/1403-Apache-2.x,-php-cgi,-mod_suphp-und-No-input-file-specified!.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1403-Apache-2.x,-php-cgi,-mod_suphp-und-No-input-file-specified!.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1403</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1403</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Im Zusammenhang mit dem Update einer Maschine auf Debian Lenny bin ich auf das seltsame Phänomen einer - offensichtlich von PHP erzeugten - Fehlermedlung gestoßen: der Aufruf einer bestimmten Webseite (respektive des PHP-Scripts, das diese erzeugen sollte) ergibt nur die Meldung &amp;quot;No input file specified!&amp;quot;. Google führt einen zu diversen Threads, die sich vor allem um die Konfiguration des richtigen Handlers für die Interpretation von PHP-Scripts und um hilflose Fragen von Benutzern, die eigentlich nur ein fertiges Paket installieren wollten und nun nicht mehr weiter wissen, drehen. Erst ein alter Blogeintrag in &lt;a href=&quot;http://blog.vodkamelone.de/archives/40-No-input-file-specified-reloaded-oder-komische-Fehlermeldungen-und-noch-komischere-Ursachen.html&quot; title=&quot;&amp;quot;No input file specified&amp;quot; reloaded oder komische Fehlermeldungen und noch komischere Ursachen  - ixs&#039; Vodkamelone&quot;&gt;ixs&amp;#8217; Vodkamelone&lt;/a&gt; (nein, das hat nichts mit einem Kamel Nr. Eins zu tun!) von 2005 half mir auf die Sprünge.&lt;/p&gt;

&lt;p&gt;Der Grund dieser Fehlermeldung ist offenbar ein ganz seltsames Zusammenspiel der Ausführung von PHP als &lt;em&gt;mod_suphp&lt;/em&gt;, d.h. der CGI-Version von PHP in der Weise, daß Scripts unter den Rechten des jeweiligen Benutzers ausgeführt werden, mit der Vergabe von Datei- und Verzeichnisrechten. Die oben genannten Fehlermeldung tritt demnach genau dann auf, wenn zwar der Webserver auf die Datei bzw. ihr Verzeichnis zugreifen, sie also &amp;quot;finden&amp;quot; kann, der Benutzer selbst aber nicht. Dann findet der Webserver - unter der UID &lt;em&gt;www-data&lt;/em&gt; - das Script, erkennt es, ruft den Handler auf, der als suid root installiert ist, sich Root-Rechte verschafft, damit auf die UID des Benutzers wechselt und dann mit diesen Rechten den PHP-Interpreter aufruft, um ihn das Script ausführen zu lassen. Dieser PHP-Prozess, der jetzt aber im Kontext des Benutzers läuft, kann dann selbst auf das entsprechende Verzeichnis nicht mehr zugreifen, das Script also auch nicht ausführen, und reagiert dann mit der obigen Fehlermeldung, denn er findet ja keine Datei, die er ausführen könnte.&lt;/p&gt;

&lt;p&gt;Vielleicht hilfts ja jemanden, wenn ich ixs&amp;#8217; Analyse her noch einmal wiedergebe und verlinke. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/d2c9ab8906a6430ab9a4e3666d35e65c&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Fri, 17 Apr 2009 15:03:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1403-guid.html</guid>
    <category>Apache</category>
<category>Debian</category>
<category>Lenny</category>
<category>PHP</category>

</item>
<item>
    <title>Debian Lenny und Munin</title>
    <link>https://netz-rettung-recht.de/archives/1401-Debian-Lenny-und-Munin.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1401-Debian-Lenny-und-Munin.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1401</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1401</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Beim Upgrade eines Systems, auf dem ein Munin-Client läuft, von Debian Etch auf Debian Lenny sind ggf. einige Handgriffe nötig, damit Munin weiterhin ordnungsgemäß funktioniert.&lt;/p&gt;

&lt;p&gt;Zum einen muß ggf. für die Apache-Statistiken der Konfigurationseintrag für &lt;em&gt;mod\_status&lt;/em&gt; (wieder) ergänzt werden, weil er von der &lt;em&gt;apache2.conf&lt;/em&gt; in die Modulkonfiguration in &lt;em&gt;mods-available/status.conf&lt;/em&gt; umgezogen ist. &lt;em&gt;&amp;quot;Allow from localhost 127.0.0.1&amp;quot;&lt;/em&gt; sollte sich dort finden, und ggf. &lt;em&gt;&amp;quot;ExtendedStatus On&amp;quot;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Problematischer ist das Update von BIND auf Version 9.5.1; im Debian-Paket gibt es zwar ohnehin kein Plugin für den Nameserver, aber wer bisher das &lt;em&gt;bind\_&lt;/em&gt;-Plugin von &lt;a title=&quot;MuninExchange&quot; href=&quot;http://muninexchange.projects.linpro.no/&quot;&gt;MuninExchange&lt;/a&gt; verwendet hat, stößt auf das Problem, das dieses nicht mit BIND 9.5.x kompatibel ist. Der Grund dafür liegt in dem unterschiedlichen Format der von BIND erzeugten Statistikdatei. Die neue Version ist da viel ausführlicher, hat aber eben auch ein ganz anderes Format.&lt;/p&gt;

&lt;p&gt;Daher habe ich das Plugin quick&amp;#8217;n&amp;#8217;dirty auf das neue Format umgeschrieben. Ob es überhaupt noch möglich ist, die Statistiken nur für bestimmte Domains zu sammeln, wie es das &lt;em&gt;bind\_&lt;/em&gt;-Plugin anbietet, weiß ich nicht; dieses Feature habe ich nicht benutzt. Jedenfalls kann man mit dem &amp;quot;neuen&amp;quot; Plugin nahtlos an die alten Munin-Graphiken anschließen; daher sammelt es auch nur (genau) die Daten, die auch das alte Plugin angeboten hat, auch wenn das neue Statistik-Format ggf. weitergehende Informationen bereit hält (mit einer Ausnahme: die Referrals scheinen nicht mehr geloggt zu werden). Meine Lösung ist nicht von der Perfektion weit entfernt, schon deshalb, weil sie teilweise Werte etwas willkürlich auf die alten Kategorien mappt (bspw. bei &amp;quot;failures&amp;quot;), aber es tut, und wie meine Graphen zeigen, sind die Werte von der Größenordnung her vergleichbar mit den früher erfassten. Dass BIND 9.5.x die Statistikdatei im übrigen nicht - wie offensichtlich früher der Fall - überschreibt, sondern die neuen Werte jeweils anhängt, stört gleichfalls nicht, weil das Plugin immer nur den letzten Match auswertet.&lt;/p&gt;

&lt;p&gt;Wenn jemand Interesse daran hat - oder sich um eine Verbesserung kümmern möchte, für die mir momentan die Zeit fehlt, kann er sich das Plugin &lt;a title=&quot;Munin-Plugin bind95&quot; href=&quot;http://playground.th-h.de/kram/bind95&quot;&gt;bind95&lt;/a&gt; gerne herunterladen; Kommentare sind willkommen.&lt;/p&gt;

&lt;p&gt;Wer seine bisherigen Munin-Graphen nahtlos weiterführen will, muß dafür sorgen, daß der symbolische Link - oder die Datei - in &lt;em&gt;/etc/munin/plugins/&lt;/em&gt; denselben Namen (&amp;quot;&lt;em&gt;bind\_&lt;/em&gt;&amp;quot;) wie bisher trägt, oder die Datensammlungen in &lt;em&gt;/var/lib/munin/&lt;strong&gt;$DOMAIN&lt;/strong&gt;/&lt;/em&gt; entsprechend umbennen, d.h. von &lt;em&gt;/var/lib/munin/&lt;strong&gt;$DOMAIN&lt;/strong&gt;/&lt;strong&gt;$HOST&lt;/strong&gt;-bind\_-\*.rrd &lt;/em&gt;nach &lt;em&gt;/var/lib/munin/&lt;strong&gt;$DOMAIN&lt;/strong&gt;/&lt;strong&gt;$HOST&lt;/strong&gt;-bind95-\*.rrd&lt;/em&gt;. Und, wie immer: ein Backup schadet nicht &amp;#8230;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/b6e34d7907554892834232c408aa16b2&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 18:33:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1401-guid.html</guid>
    <category>anleitung</category>
<category>debian</category>
<category>lenny</category>
<category>munin</category>

</item>
<item>
    <title>Debian Lenny und Belkin Sentry Bulldog</title>
    <link>https://netz-rettung-recht.de/archives/1400-Debian-Lenny-und-Belkin-Sentry-Bulldog.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1400-Debian-Lenny-und-Belkin-Sentry-Bulldog.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1400</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1400</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1400]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-df-day.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:303 --&gt;&lt;img height=&quot;80&quot; width=&quot;110&quot; class=&quot;serendipity_image_right&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-df-day.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;/ läuft voll.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Das Upgrade meines heimischen Servers von Debian Etch auf Debian Lenny hat im großen und ganzen gut funktioniert; neben dem unvermeidlichen Abgleich geänderter Konfigurationsdateien (&amp;quot;nehme ich die neuen Defaults und Kommentare in meine bestehende Datei, oder übernehme ich die Datei und ziehe die lokalen Änderungen nach?&amp;quot;) ergaben sich nur einige Kleinigkeiten (der selbst kompilierte Exim wollte nach Entfernen einiger &amp;quot;obsolote&amp;quot; Libraries neu kompiliert werden; &lt;em&gt;locate&lt;/em&gt; war plötzlich verschwunden; die Apache-Konfiguration muß angepaßt werden), wenn man einmal davon absieht, daß &lt;em&gt;/lib&lt;/em&gt; offenbar deutlich gewachsen ist, so daß es sich nun rächt, daß ich damals beim Partitionieren mit dem Platz für &lt;em&gt;/&lt;/em&gt; etwas arg sparsam war. Daran wird sich allerdings, so fürchte ich, ohne weiteres nichts tun lassen.&lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1400]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-cpu-day.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:302 --&gt;&lt;img height=&quot;75&quot; width=&quot;110&quot; class=&quot;serendipity_image_center&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-cpu-day.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Erhöhte Auslastung des Prozessors.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;Darüber hinaus stellte sich - ebenfalls &lt;a title=&quot;Servermonitoring mit Munin&quot; href=&quot;archives/1374-Servermonitoring-mit-Munin.html&quot;&gt;Munin&lt;/a&gt; sei Dank - bei genauerer Betrachtung aber auch heraus, daß sich die Systemauslastung spürbar erhöht hatte. Außerdem war die Anzahl der Timer-Interrupts geradezu explodiert. Nun, es hätte ja sein können, daß das einfach eine Folge des Upgrades ist - andere Software, mehr Software, wer weiß? Eine nähere Untersuchung der Angelegenheit ergab dann aber, daß der mutmaßliche Verursacher mit hoher Prozessorauslastung in &lt;em&gt;top&lt;/em&gt; der Task &lt;em&gt;upsd&lt;/em&gt; war, der für die Ansteuerung der USV sorgt (wobei Ansteuerung wohl etwas übertrieben ist; im wesentlichen soll er eine Handvoll Signale auswerten und loggen, bspw. &amp;quot;zu heiß&amp;quot;, &amp;quot;zu kalt&amp;quot;, &amp;quot;Batterie wird alt&amp;quot;, &amp;quot;Störung&amp;quot; oder eben vor allem &amp;quot;Netzausfall&amp;quot; und &amp;quot;Batterieladung niedrig&amp;quot;, und im letzteren Fall das System herunterfahren, was er in jüngerer Vergangenheit auch schon einmal erfolgreich &lt;a href=&quot;https://netz-rettung-recht.de/archives/1367-Dinge,-die-man-nicht-sehen-moechte.html&quot; title=&quot;Dinge, die man nicht sehen möchte&quot;&gt;getan&lt;/a&gt; hat).&lt;br /&gt;&lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1400]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-interrupts-day.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:304 --&gt;&lt;img height=&quot;61&quot; width=&quot;110&quot; class=&quot;serendipity_image_left&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-interrupts-day.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Steiler Anstieg ist schon fast untertrieben.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;upsd&lt;/em&gt; gehört zum &lt;strong&gt;Belkin Sentry Bulldog&lt;/strong&gt;, einer vom Hersteller der USV ausgelieferten Software, die daneben auch noch den Netzwerkbetrieb erlaubt, insbesondere die Abfrage des Daemons über das Netz von einem entfernten Client aus und theoretisch auch eine Weboberfläche, die allerdings bestenfalls minimalistisch gehalten ist. Ich hatte damals bei Installation der USV mit einigem Aufwand eine alte Linux-Version für Redhat installiert und angepaßt, so daß sie lauffähig war, die ihren Dienst bis heute problemlos versehen hat. Ganz offensichtlich kann sie sich aber an die neuen Zeiten nicht so recht gewöhnen; also ist Abhilfe geboten, denn mit einer solch unnötig hohen Last wollte ich das System dann doch nicht auf Dauer laufen lassen.&lt;/p&gt;

&lt;p&gt;Eine aktuelle Version des Herstellers war nicht in Sicht, aber wie man schon an den eingestellten Graphiken sieht, habe ich eine andere Lösung gefunden, und die heißt &lt;a title=&quot;Network UPS Tools&quot; href=&quot;http://www.networkupstools.org/&quot;&gt;&lt;em&gt;nut&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 103px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot;  rel=&quot;lightbox[1400]&quot; href=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-irqstats-day.png&quot; title=&quot;&quot;&gt;&lt;!-- s9ymdb:305 --&gt;&lt;img height=&quot;110&quot; width=&quot;103&quot; class=&quot;serendipity_image_right&quot; src=&quot;https://netz-rettung-recht.de/uploads/2009-04-15-xerxes-irqstats-day.serendipityThumb.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Viele bunte Sm^WInterrupts.&lt;/div&gt; 
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;nut &lt;/em&gt;ist sozusagen die universelle Variante der Bulldogge: ein Daemon, der mit vielen verschiedenen USV sprechen kann, plus Client zur Auswertung und Steuerung des Inputs, plus optional ein Webinterface - und vor allem für Debian paketiert.&lt;/p&gt;

&lt;p&gt;Die Installation und Konfiguration erwies sich anhand eines &lt;a title=&quot;Monitoring a UPS with nut on Debian or Ubuntu Liinux&quot; href=&quot;http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/&quot;&gt;Tutorials&lt;/a&gt; als recht einfach, wenn auch für meinen Geschmack unnötig kompliziert - denn der Autor (oder der Debian Maintainer) liefert keine Konfigurationsdateien mit, noch nicht einmal in Form komplett auskommentierter Rohfassungen, die man vor einem ersten Start erst bearbeiten muß, sondern nur Samples, die in &lt;em&gt;/usr/share/doc/nut/examples/&lt;/em&gt; liegen und sinnvollerweise erst einmal ins Konfigurationsverzeichnis kopiert, umbenannt und dann editiert werden müssen. Das ginge m.E. auch einfacher. Mit der mitgelieferten Doku und dem genannten Tutorial lassen sich aber alle nötigen Schritte einfach nachvollziehen (von einem Fehler bei der Beschreibung der Freigabe des Zugriffs auf die serielle Schnittstelle abgesehen; dort steht im Tutorial &lt;em&gt;udevadm control trigger&lt;/em&gt;, richtig wäre aber &lt;em&gt;udevadm trigger&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Einige Tests später läuft der Daemon dann fröhlich vor sich hin, versteht sich auch mit der USV gut, und die Weboberfläche sieht richtig schick und elegant aus. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt; Da ist es auch zu verschmerzen, daß der Belkin-Client sich natürlich nicht mehr mit dem Server verbinden kann. Mit &amp;quot;mal eben vom Windows-Desktop aus nach der USV schauen&amp;quot; ist&amp;#8217;s also Essig, genauso mit der dort mitgeführten Ereignis-Dokumentation und diversen Auswertungen, Listen und Graphiken, die - ehrlich gesagt - aber ohnehin nur begrenzten Wert hatten. Die positive Wirkung auf die Systembelastung läßt sich jedenfalls aus den eingestellten Graphiken leicht ablesen.&lt;/p&gt;

&lt;p&gt;Bleibt jetzt nur noch abzuwarten, ob im Ernstfall auch der Shutdown funktioniert - aber das festzustellen bleibt uns hoffentlich noch längere Zeit erspart. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/e76ed34deef748279095b481850a9432&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Wed, 15 Apr 2009 18:27:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1400-guid.html</guid>
    <category>debian</category>
<category>lenny</category>

</item>
<item>
    <title>Debian Lenny</title>
    <link>https://netz-rettung-recht.de/archives/1399-Debian-Lenny.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1399-Debian-Lenny.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1399</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1399</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;blockquote&gt; 
&lt;p&gt;root@xerxes:~# cat /etc/debian_version &lt;br /&gt;5.0.1&lt;/p&gt; 
&lt;/blockquote&gt;

&lt;p&gt;One done, (at least) four to go.&lt;br /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Tue, 14 Apr 2009 20:30:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1399-guid.html</guid>
    <category>Debian</category>
<category>Lenny</category>

</item>

</channel>
</rss>
