Archiv für Juni 2008

Falsche Fahne live auf ARD

…sogar Spiegel Online hat drüber berichtet http://www.spiegel.de/kultur/gesellschaft/0,1518,562840,00.html *freu*

Selbstsigniertes SSL-Zertifikat erstellen

Weil ich die genauen Parameter jedes Mal vergesse und openssl zu viele hat statt schnell nachschlagen zu können… Creating a self-signed SSL-certificate.

openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.crt -keyout /etc/apache2/ssl/apache.key

Die Direktiven um sie in Apache festzulegen sind SSLCertificateFile (für apache.crt) und SSLCertificateKeyFile (für apache.key).

PHP, SuExec und mod_fcgid (FastCGI) unter Debian

Um in einer Shared Hosting Umgebung sicherzustellen, dass die unterschiedlichen Benutzer nicht gegenseitig auf ihre Dateien zugreifen können muss beachtet werden, dass PHP- bzw. generell CGI-Scripte im Kontext des Benutzers ausgeführt werden, und nicht alle unter der ID des Webservers (www-data) laufen. Eine Möglichkeit dafür stellt SuExec bereit, was in der apache2-Standardinstallation von Debian bereits enthalten ist.
Die folgende Schrittfolge habe ich auf einem frischen absolut minimalistischen Debian Etch getestet (ca. 390 MB nach der Installation der hier beschriebenen Pakete) .

Nötiges Zeugs installieren und SuExec-Modul aktivieren

aptitude install php5-cgi apache2 libapache2-mod-fcgid
a2enmod suexec

(nicht libapache2-mod-fastcgi, das ginge wohl auch, wird aber etwas anders konfiguriert)

User anlegen:

useradd --create-home --home-dir /var/www/user1 user1
passwd user1

Apache VirtualHost-Config für user1 einrichten:

vi /etc/apache2/sites-available/testvhost

Inhalt:

<virtualhost *>
        ServerName testvhost
        DocumentRoot /var/www/user1/htdocs/testvhost
        SuexecUserGroup user1 user1
        <directory /var/www/user1/htdocs/testvhost>
                Options +ExecCGI
                AddHandler fcgid-script .php
                FCGIWrapper /var/www/user1/php5-cgi .php
        </directory>
</virtualhost>

Site aktivieren:

a2ensite testvhost

Wrapper-Script erstellen:

echo '#!/bin/sh' > /var/www/user1/php5-cgi
echo 'exec /usr/bin/php5-cgi "$@"' >> /var/www/user1/php5-cgi
chown user1:user1 /var/www/user1/php5-cgi
chmod 0700 /var/www/user1/php5-cgi

Apache neustarten:

/etc/init.d/apache2 restart

als user1 einloggen

mkdir -p ~/htdocs/testvhost
echo "< ? passthru('id'); phpinfo(); ?>“ > ~/htdocs/testvhost/index.php

im Browser Testen – http://testvhost/

Statt testvhost muss natürlich überall der entsprechende Domainname eingetragen werden, oder testvhost mit der entsprechenden IP des Servers in die /etc/hosts.

Hinweise:

  • Das Document Root des Users ist nicht ohne grund in /var/www. – SuExec ist standardmäßig so kompiliert, dass nur Scripte ausgeführt werden können, die sich dort befinden.
  • Es darf kein mod_php mehr aktiv sein.
  • Da das Wrapper-Script dem User gehört (gehören muss), ist es ihm möglich darüber beliebige Programme als CGI-Script zu starten.
  • Um gegenseitiges Lesen von Dateien zu verhindern müssen noch andere Maßnahmen vorgenommen werden. Beispielsweise sollten die Dateien der User maximal die Berechtigungen 0770 haben (dafür wäre eine Umstellung der umask auf 027 oder so ähnlich sinnvoll). Damit Apache dann noch die Dateien lesen kann, sollte der www-data Benutzer in der Gruppe des Users sein.
  • Andere Parameter zum optimieren von mod_fcgid sind hier dokumentiert: http://fastcgi.coremail.cn/doc.htm

Festplatten mit dd und netcat übers Netzwerk spiegeln

  • auf beiden Rechnern z.B. Knoppix booten
  • auf Zielrechner: netcat -l -p 9000 | dd of=/dev/sda
  • auf Quellrechner: dd if=/dev/hda | netcat 192.168.1.151 9000

IP-Adresse muss entsprechend an die reale des Zielrechners angepasst werden.
Anmerkung: Das Verfahren sollte natürlich nur in vertrauenswürdigen Umgebungen eingesetzt werden, da keine Authentifizierung stattfindet. Alternativ wäre wohl SSH sinnvoll.

pls-Playlists direkt mit mplayer abspielen

Ein kleines Script

#!/bin/bash
mplayer `wget $1 -O - --quiet | grep http | cut -d"=" -f2`

Kann dann mit URL zu einer Playlist (z.B. von Livestreams) als Parameter aufgerufen werden.
Auf die richtige Schreibweise mit den Backticks (`) achten.

…oder direkt mplayer -playlist (URL)

Ping: Übertragung fehlgeschlagen. Fehlercode 65

oder „Ping: transmit failed, error code 65″ … In der Supportdatenbank des Herstellers des entsprechenden (sogenannten) Betriebssystems ist vermerkt, dass Zone Alarm den Fehler hervorrufen kann. Interessanterweise trifft dies auch zu, wenn Zone Alarm selbst garnicht gestartet ist. Dass es installiert ist reicht schon aus. Abhilfe ist also es wirklich mit dem Uninstaller zu deinstallieren (oder vermutlich es richtig zu konfigurieren). Ich vermute, dass bei der Installation das System erstmal so verstellt wird, dass (fast) alles geblockt wird und erst wenn ZA gestartet und richtig konfiguriert ist Pakete durchgelassen werden.
Bemerkenswert ist noch, dass diese Konfiguration offenbar zur Filterung von ICMP und TCP führt, nicht jedoch von UDP-Paketen. Daher funktionieren einige Dienste wie DNS und Filesharing-Protokolle – Ping und HTTP etc. jedoch nicht.