Category Archives: Hosting

postfix policyd 1.80 und mysql ndb cluster als backend patch

Wer den postfix-policyd auf einem Mailserver Cluster einsetzen möchte, der bekommt zumindest mit einer Mysql-Cluster-Datenbank als Backend Probleme, denn NDBCluster unterstüzt kein “Insert delayed” Syntax.

Deshalb hier ein kleiner Patch, der den aktuellen source von debian lenny (postfix-policyd-1.80) patched, damit postfix-policyd keine delayed inserts mehr macht und einwandfrei mit Mysql-NDB-Cluster funktioniert.

postfix-policyd-1.80_mysqlndb.patch

Installiert wird das Ganze mit:

apt-get source postfix-policyd

wget https://www.netz-guru.de/wp-content/uploads/2009/08/postfix-policyd-1.80_mysqlndb.patch.txt

patch -p0 <postfix-policyd-1.80_mysqlndb.patch.txt

cd postfix-policyd-1.80

dpkg-buildpackage  -uc -b

Internet Zensur und Internet Sperren des DNS in Deutschland umgehen

Am Freitag, den 17.04.2009 war es dann soweit. Die fünf größten Internet-Provider in Deutschland (www.t-online.de, www.arcor.de / www.vodafone.de, www.alice.de, www.kabel-deutschland.de und www.o2online.de / www.telefonica.de) haben einen Vertrag mit dem BKA unterzeichnet, in dem sie sich dazu bereit erklären, vom BKA gelieferte Listen von Domains über DNS-basierte Filter zu sperren.

Abgesehen davon, dass die Sperren an sich schon fraglich sind, da die Sperren gegen Artikel 5 GG verstossen, in dem es ausdrücklich heisst:

“(1) Jeder hat das Recht, seine Meinung in Wort, Schrift und Bild frei zu äußern und zu verbreiten und sich aus allgemein zugänglichen Quellen ungehindert zu unterrichten. Die Pressefreiheit und die Freiheit der Berichterstattung durch Rundfunk und Film werden gewährleistet. Eine Zensur findet nicht statt.

haben die Sperren auch nicht die Wirkung, Kinderpornographie zu unterbinden, Kindesmisshandlungen oder Vergewaltigung zu verhindern, oder in sonst irgend einer Weise etwas auszurichten, außer dem BKA die Möglichkeit zu geben, willkürlich Seiten im Internet zu filtern. Willkürlich deshalb, weil diese Filterlisten “geheim” gehalten werden sollen, und weil es keine Möglichkeit der Kontrolle durch die Öffentlichkeit gibt. So können ebenfalls Webseiten unliebsamer Kritiker oder politischer Gegner gefiltert werden, ohne dass hierbei eine regulierende Instanz notfalls einschreiten könnte. Außerdem stellt sich die Frage, ob es nicht an sich schon strafbar ist, dass das BKA eine solche Liste weitergibt.

Was einem auch zu Denken geben sollte ist der Umstand, dass wenn eben eine solche Liste existiert auf der Webseiten erfasst sind, welche strafrechtlich relevantes Material verbreiten, warum denn dann die Strafverfolgungsbehörden nicht einfach die Provider anschreiben, in letzter Instanz die Server beschlagnahmen und den Geldfluss zu den eigentlichen Tätern zurückverfolgen.

Weiterhin ist es problematisch, über das DNS zu filtern, wenn man sich folgendes Szenario einmal vorstellt:

Angenommen, man möchte einen Konkurrenten im Internet ausschalten – man bräuchte nur einige anfällige Nameserver mittels DNS-Cache Poisoning mit IP-Adressen von Webseiten füttern, welche strafrechtlich relevantes Material anbieten und dann entweder abwarten, bis die Domain des Konkurrenten auf der Sperrliste des BKA landet, oder eben selbst nachhelfen, in dem man anonym die entsprechende Seite meldet.

Abgesehen davon ist es ein leichtes, die DNS Sperren der Provider zu umgehen:

  • Man suche sich im Internet Nameserver, welcher keiner Zensur unterliegen, z.b. die Nameserver von OpenDNS (208.67.222.222 und 208.67.220.220)
  • Man trage die Nameserver in die Netzwerkeinstellungen seines lokalen Rechners oder Router ein. (Bei Windows XP: Start -> Einstellungene -> Netzwerkverbindungen -> Lanverbindung -> rechtsklick Eigenschaften -> Internetprotokoll (TCP/IP) -> Folgende DNS Server verwenden)
  • Alternativ dazu, VPNs oder Anonymizer wie the onio router (TOR),  JAP, oder eine Kombination von beidem.

Bei einem reinen DNS Filter reicht es aus, Nameserver zu verwenden, die eben nicht gefiltert werden und keiner Blacklist unterliegen. Gefilterte IPs aus dem Ausland kann man meist mittels einem VPN oder Anonymizern wie TOR erreichen, wenn der Endpunkt der Verbindung eben nicht mehr gefiltert wird.

Das war es schon – ich würde fast sagen, jeder halbwegs intelligente Mensch schafft es innerhalb von weniger als 10 Minuten die Nameserver zu ändern. Das Filtern an sich geht völlig am Problem des Kindsmissbrauchs vorbei und ist in meinen Augen einfach nur ein trojanisches Pferd um die Gesellschaft langsam an Internetfilter zu gewöhnen und kritisch Denkende oder der Politik Unliebsame aus dem Netz zu verbannen, damit diese keinen weiteren “Schaden” anrichten können. Weitere heiße Luft von diversen Politikern (und entsprechende Kommentare von denkenden Individuen) kann man hier finden:

Alles in allem finde ich es mehr und mehr befremdlich, was in diesem Land so alles geschieht. Auf der einen Seite wird nach mehr Datenschutz und Datensicherheit gerufen (man denke an die zig Affairen Lidl, T-Com, Müller, etc..) – auf der anderen Seite werden Filterlisten etabliert um die User von angeblicher Kinderpornographie abzuhalten. Offensichtlich haben wir keine wichtigeren Probleme – die Umwelt, die Umverteilung von Ressourcen, Krankheiten, Energiegewinnung sind eben nicht so wichtig wie den Bürger unter Kontrolle zu halten…

Die fraglichen Testmethoden von Internet Intern

wieder mal ein VServer Test

vlinux.biz wurde in der aktuellen Ausgabe 02/2009 von Internet Intern getestet. Abgesehen davon, dass vlinux.biz vom Preis/Leistungsverhältnis gegenüber den anderen getesteten VServer-Anbietern gar nicht berücksichtig wurde, möchte ich hier doch mal meinen Unmut über die Testpraktiken von Internet Intern loswerden.

Testmethoden oder so was Ähnliches…

Webserver Stress Tool wurde als Last-Test für den vorinstallierten apache2 verwendet. Dabei hat Internet Intern festgestellt, dass von in etwa 18.000 Tests ca. 10.000 Fehler aufgetreten sind – dies ist nicht verwunderlich, hat der von Debian vorinstallierte apache2 als Standard nur 2 Serverprozesse gestartet, sowie ein Connection-Limit von 150 Maxclients gesetzt. Dass hierbei dann natürlich so viele Fehler auftreten, ist nicht verwunderlich – wurde aber von Internet Intern in keinster Weise erwähnt – wundert mich aber jetzt nicht wirklich, denn es hat nicht ein einziger Login via SSH von den Internet Intern Testern stattgefunden. Bei Max-Clients von 150 und 500 parallelen Test-Zugriffen bleiben eben einfach 350 davon unbeantwortet, dies entspricht exakt den von Internet Intern beobachteten Werten.

Konfigurationssoftware

Auch wurde bemängelt, dass vlinux.biz seinen Kunden keine Konfigurations-Software wie Plesk oder cPanel aufzwängen will – hier ist die Philosophie von vlinux.biz so, dass der Kunde selbst entscheiden soll und darf, welche und ob er überhaupt eine Konfigurationssoftware eingesetzt werden soll. Dies als Nachteil auszulegen und darauf rumzureiten, dass Plesk der Quasistandard für VServer-Management sei, ist einfach frei erfunden – schliesslich will nicht jeder VServer Kunde Massenwebhosting mit dem VServer betreiben. Viele Kunden installieren Gameserver oder Teamspeak-Server auf dem VServer, oder nutzen diesen als SVN-Server. Offensichtlich ist man aber bei Internet Intern in dieser Hinsicht nicht in der Lage, über den Tellerrand hinausszuschauen. Auch bietet vlinux.biz als einziger der getesten Anbieter mehr als 15 GB Space, nämlich stattliche 40GB RAID1 Space, und garantiert eine 100MBit Anbindung.

Fazit

Insgesamt kann man den Test von Internet Intern einfach nur als Zeitverschwendung betrachten – auf essentielle Dinge wie maximal verfügbares RAM, Anzahl der Kunden pro Host-System, etc. muss man in diesem Testbericht verzichten. Auch habe ich in den Logs des Test-Servers festgestellt, dass nicht ein einzier Login via SSH von Internet Intern erfolgt ist – vielleicht hatten die Tester auch überhaupt keine Lust, den Test wirklich aussagekräftig zu gestalten. Einfach nur enttäuschend. Ich kann die Internet Intern deshalb nicht empfehlen – kauft lieber die iX oder c’t, die wissen wenigstens wie man aussagekräftig testet…

Verteiltes Dateisystem GlusterFS

Durch den Post vom vom 12.01.2009 / https://www.netz-guru.de/2009/01/12/die-ultimative-e-mail-losung-the-ultimate-e-mail-solution/ und die Kommentare darauf angeregt, habe ich versucht das gleiche Setup auch ohne dbmail zu versuchen. Sirko hatte in seinem Kommentar erwähnt, dass man mit einem verteilten Filesystem auch so einen Mailcluster betreiben kann. Bis zu diesem Zeitpunkt war mir eigentlich nur DRBD als einziges Filesystem bekannt, welches maximal 2 Nodes zu einer Art Netzwerk-RAID1 verbindet.

Gänzlich unbekannt war mir bis heute jedoch GlusterFS, welches ebenfalls ein verteiltes Filesystem über das fuse-Modul bereitstellt. Hier hat man jedoch keine Limitierung auf max. 2 Nodes. GlusterFS bietet Automatic File Replication auch über mehr als 2 Nodes. Weiterhin kann man mit Unify mehrere RAID1-Knoten zu einem einzigen FS zusammenfassen. GlusterFS bietet noch mehr Möglichkeiten, hier mal ein Überblick:

Mit einem Setup wie unter “Distributed Replicated Storage” beschrieben, lässt sich so ein gemeinsammes /var/spool für die Mailserver generieren. Die Konfiguration der Server kann man dann entweder in einer Datenbank oder LDAP ablegen, oder man verwendet die vom MTA vorgegebenen Konfig-Files, diese kann man auch auf einem verteiltem Filesystem speichern.

Den Source für GlusterFS kann man sich hier downloaden:

http://europe.gluster.org/glusterfs/2.0/LATEST/

Die Entwickler empfehlen ausserdem ein gepatchtes fuse-Kernel-Modul, welches GlusterFS erheblich beschleunigen soll:

http://europe.gluster.org/glusterfs/fuse/

Das Setup an sich ist relativ einfach. Unter Debian Etch fuse-Source entpacken, ./configure –enable-kernel-module –prefix=/usr  && make && make install && ldconfig

Dann glusterfs entpacken und ./configure –with-fuse=/usr/src/pfadzufuser &&  make && make install

Konfigurationsbeispiele gibt es unter www.gluster.org. Es sind auch kombinierte AFR,Stripe,Unify Filesysteme möglich, allerdings ist das Setup dann etwas komplizierter.

Weiterhin bietet GlusterFS neben normalem TCP/IP  auch direkte Verbindung über Infini-Band an. Auch redundante Verbindungen zur Storage werden unterstützt. Die Maximale Größe des Filesystems kann bis zu mehrere Petabytes betragen.

Möchte man viele kleine Dateien in glusterfs speichern, so kann glusterfs diese im DBD Berkeley DB Format speichern.

GlusterFS ist unter der GNU GPL v3 lizenziert.

Weitere Infos zu GlusterFS gibts auch bei der Wikipedia.

Die ultimative E-Mail Lösung – The ultimate E-Mail Solution

Es war einmal ein Mailserver…

Wenn man Administrator eines produktiv genutzten Mailservers ist, macht man sich schon ab und zu mal Gedanken, wie man die Probleme, welche beim Betrieb des Servers auftreten oder auftreten könnten, mit möglichst wenig Aufwand – jetzt im Sinne von möglichst wenig Aufwand in der Zukunft – lösen kann. Ich betreibe einen kostenlosen E-Mail Dienst mit derzeit ca. 12.000 Usern. Seit 1998 hat sich das Setup des Mailservers eigentlich kaum geändert. Damals war sendmail noch das Nonplusultra, man war stolz dass SMTP-Auth und diverse Workarounds wie POP-Before-SMTP etc funktionierten, und im Allgemeinen gab es auch weniger SPAM. Zu dieser Zeit hatte quickemail.de ca. 500 User und die Welt der Flat-File Konfiguration war noch in Ordnung.

Irgendwann reicht das jedoch nicht mehr aus – Flat-Files werden schnell unübersichtlich und es musste eine Lösung her, um zumindest die E-Mail Accounts und User zu verwalten. Eine mySQL Datenbank war schnell aufgesetzt und mit ein paar Scripts und Cronjobs wuchs die Userbase dann immer weiter an. Da gingen dann aber auch die Probleme los.

SPAM von Botnets == DDOS?

Wenn man mehrere tausend User auf einer physikalischen Maschine hat, bringt das diverse Probleme mit sich. Zum einen braucht man ständig größere Festplatten, zum anderen natürlich auch mehr CPU und RAM. Das lässt sich eigentlich auf normaler Hardware noch relativ einfach erweitern. Problematisch wird das ganze dann, wenn man distributed SPAM von diversen Botnets abbekommt. Nicht nur der Mailserver an sich ist hier dann überfordert – bei jedem Connect wird ein nslookup durchgeführt, was sich auch wieder mit erhöhter Last auf den Nameservern auswirkt. Irgendwann ist dann jedoch Schluss – bei 200 gleichzeitigen Connects und einer Load von >100 kann es schon mal ein paar Minuten dauern, bis man diverse Services gestoppt hat um zumindest die Maschine wieder administrieren zu können.

SPOFs am laufenden Band

Eine einzelne Maschine zu verwenden ist natürlich auch nicht gerade von Vorteil. Fällt die Hardware aus, oder sind die Platten voll, steht die Maschine und nichts geht mehr. Klar kann man solche Ausfälle durch gutes Monitoring minimieren, spätestens jedoch beim nächsten Upgrade steht der Dienst erst mal wieder.

Wie man diese Probleme in den Griff bekommt?

Nun, wenn man nicht gerade im Lotto gewonnen hat, braucht man hier eine günstige Lösung die dennoch gut skaliert und fehlertolerant ist, also die Mails an sich redundant speichert, sowie mehrere Server zur Verfügung stellt um bei einem ausgefallenen System dennoch den Dienst aufrecht erhalten zu können. Das gestaltet sich jedoch gar nicht so einfach. Alleine dafür zu sorgen, dass die Daten auf allen Maschinen synchron sind, ist eine Herausforderung.

Es gibt diverse Lösungen mit NAS oder DRBD, proprietäre Lösungen von diversen Herstellern, Backup-Mailserver, etc – aber eine wirkliche günstige Alternative die mit normaler x86er Hardware auskommt, und bei der man nicht Tausende Euro Lizenzgebühren zahlen muss, hatte ich bisher noch nicht gefunden.

Deshalb habe ich mich mal eine Woche intensiv damit beschäftigt, das Mailproblem, zumindest für mich, ein für alle mal zu Lösen.

Continue reading Die ultimative E-Mail Lösung – The ultimate E-Mail Solution

Warum es ein No-No ist, bei produktiven Server _kein_ RAID zu verwenden

Der Grund warum ich diesen Post schreibe ist folgender: Ein Kunde ordert einen Root-Server bei uns. Soweit so gut. Das System ist recht flott, hat zwei identische Platten drin und wird von uns mit frisch installiertem Gentoo ausgeliefert.

Natürlich richten wir solche Server, sofern kein Hardware RAID integriert ist, mit Software RAID1 mit dem Linux md-device Driver ein. Dies hat den Vorteil, dass zum einen die Swap-Partition auf einem RAID1 Device läuft und somit das System nicht abstürzt, wenn die Swap-Partition defekte Blöcke aufweisst, zum anderen hat es den Vorteil, dass man generell vor dem Ausfall einer Disk und dem einhergehenden Datenverlust gefeit ist.
Continue reading Warum es ein No-No ist, bei produktiven Server _kein_ RAID zu verwenden

www-hoster.de jetzt mit E-Mail Push Dienst

seit gestern bietet http://www-hoster.de jetzt seine E-Mail Services auch als E-Mail Push Dienst an. So kann man nun mit seinem Smart Phone den E-Mail Push Dienst nutzen und bekommt somit neue E-Mails direkt von www-hoster.de auf sein Phone gepusht. Der Hoster erhebt für die zusätzliche Leistung keine weiteren Kosten und hat auch bestehende Pakete für diesen Dienst upgegraded.

vd-server.de und Korypet stellt Service ein

Wie ich heute erfahren habe, stellt vd-Server.de und Korypet seine Services ein.

Allen Kunden, die bisher noch keinen neuen Provider gefunden haben, kann ich nur sagen, dass www.smart-weblications.de ähnliche Produkte zu günstigen Preisen anbietet.

Soweit ich mitbekommen habe, werden die Services eingestellt, weil es dem Geschäftsführer aus gesundheitlichen Gründen nicht mehr möglich ist, die Dienste aufrecht zuerhalten.

apache2, virtualdocumentroot und Logfiles in verschiedene Files

Wieder mal ein spezifisches Problem:

Wer mit apache2 einfaches Massenhosting betreiben will, der will nicht für jeden Virtualhost einen VirtualHost-Container in seiner Apache Konfiguration anlegen, denn ab ca. 500 Domains als VHostContainer wird zum einen die Konfiguration sehr unübersichtlich und ausserdem wird der Indianer dadurch langsamer, aufgrund von vielen offenen Filehandles. Muss man ja auch nicht, schliesslich gibt es das vhost_alias Modul, mit welchem man ein VirtualDocumentRoot konfigurieren kann, dass dann das DocumentRoot anhand des übermittelten ServerName oder HTTP-Host Headers auswertet.

In der Apache Konfiguration sieht das dann z.B. so aus:

<VirtualHost *>
UseCanonicalName Off
Options Indexes Includes FollowSymLinks MultiViews
VirtualDocumentRoot /domains/%0/www
VirtualScriptAlias /domains/%0/cgi-bin/
CustomLog access_log vcommon
<Directory /domains/%0/www>
AllowOverride All
</Directory>
</VirtualHost>

Das Problem ist nun, dass alle Logs in ein einziges File “access_log” geloggt werden, und es schwierig ist, hier für die einzelnen gehosteten Domains Statistiken zu erzeugen etc.

Man kann nun aber um dieses Problem zu umgehen Folgendes tun:
Man erzeugt in /etc/apache2 ein Script welches die Ausgabe des Logfiles aufteilt und in mehrere Dateien speichert:


#!/usr/bin/php
<?php

$path = “/var/log/apache2”;
$fh_timeout = 30; // 30 sek.

$fd = fopen(“php://stdin”, “r”);

while(!feof($fd)) {

$row = fgets($fd);

list($vhost,$h,$l,$u,$t,$r,$s,$b,$referrer,$ua) = explode(“;”,$row,10);

if (!${$vhost}) { ${$vhost} = fopen($path.“/”.$vhost.“_access.log”,“a+”); }
$lastwrite[$vhost] = time();
fputs (${$vhost},“$h $l $u $t $r $s $b $referrer $ua”);

foreach ($lastwrite as $vhost => $time) {
if ((
time() – ($time+30)) >=0) {
fclose(${$vhost});
unset(${
$vhost});
unset(
$lastwrite[$vhost]);
}
}
}
?>

Nun müssen wir in der apache2 Konfiguration noch das Logformat ändern und die Ausgabe des Logfiles an unser Script durchpipen:

LogFormat "%V;%h;%l;%u;%t;\"%r\";%>s;%b;\"%{Referer}i\";\"%{User-agent}i\"" vcommon
CustomLog "|/etc/apache2/splitlogs.php" vcommon

Dann Apache einmal neu starten und künftig werden pro Host separate Logfiles erstellt.

Edit: Fast hätte ich es vergessen! Das Script braucht natuerlich eXecutable-Flag also am besten chmod 755 /etc/apache2/splitlogs.php ausführen!