Dienste rekonfigurieren für und mit ISPConfig

Der eine oder andere weiß vielleicht, dass ich seit längerem auf ISPConfig als Hosting-Panel setze und damit sehr zufrieden bin. Es frisst meine Ressourcen nicht unnötig auf (bei meinen Servern ist jedenfalls kaum zu spüren, dass da was läuft) und fällt im Grunde genommen überhaupt nicht auf, wenn man (wie ich die meiste Zeit) mit der Konsole arbeitet.

Da der eine oder andere eben vielleicht weiß, dass ich ISPConfig einsetze, werden mir hin und wieder auch Fragen diesbezüglich gestellt. Die meisten Antworten liegen auf der Hand bzw. sind in 1-3 Minuten dank Google zu finden, manche aber auch nicht. So wurde ich letztens gefragt, was man denn tun kann, wenn man, beispielsweise durch ein Dist-Upgrade aus versehen sämtliche Konfigurationsdateien geändert oder zusammengeführt hat und nun irgendwie nichts mehr so richtig läuft.

ISPConfig bietet nämlich verdammt viele Einstellungsmöglichkeiten, man kann so ziemlich alles resyncen, Systemeinstellungen in der Weboberfläche vornehmen und so weiter. Nur eine Option zum rekonfigurieren der Dienste habe ich bislang nicht gefunden. Bei der Installation werden die Konfigurationen so angepasst, dass die einzelnen Dienste möglichst problemlos mit ISPConfig zusammenarbeiten. Werden diese Konfigurationsdateien falsch geändert oder überschrieben, funktioniert plötzlich z.B. der Mailserver nicht mehr so, wie es vorgesehen ist. Natürlich sollte man die Konfigurationsdateien regelmäßig und insbesondere vor größeren Änderungen am System sichern, aber im Zweifelsfall hat das benötigte Backup einen Fehler und/oder das Backupsystem ist ganz ausgefallen. Oder man hat einfach keins.

Obwohl es anscheinend keine offizielle Möglichkeit gibt, die Services für ISPConfig zu rekonfigurieren, hat man in einem solchen Fall Glück und kann ein manuelles Update durchführen (was natürlich mit Vorsicht zu genießen ist). Das mitgelieferte Shellscript für das Update funktioniert nicht, wenn schon die aktuellste Version installiert ist, ISPConfig muss also tatsächlich heruntergeladen und über die update.php aktualisiert werden:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install
php -q update.php

Das Script fragt, ob ein Backup gemacht werden soll, was wir natürlich bejahen, danach ob die Berechtigungen in der master database neu gesetzt werden sollen, was wir verneinen (wir wollen das bestehende System ja nicht ändern). Dann kommt schon der Punkt, den wir brauchen: Der Updater fragt uns, ob wir die Dienste rekonfigurieren wollen, was wir natürlich wollen:

Reconfigure Services? (yes,no) [yes]:

Configuring Postfix
Configuring Mailman
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Apps vhost
Configuring Database
Configuring Bastille Firewall
Updating ISPConfig

Den Port belassen wir wie vorgefunden, ebenso das Zertifikat, Crontab können wir rekonfigurieren. Danach startet ISPConfig die Services neu und alles sollte wieder laufen, wie es soll.

Wieso Copy & Paste böse sein kann

Tutorials sind toll. Wenn man etwas kompliziertes noch nicht gemacht hat, schaut man schnell man bei Google, ob jemand anders das nicht vielleicht schon mal gemacht und darüber geschrieben hat. Meistens werden in solchen Tutorials dann auch gleich die entsprechenden Befehle und Zeilen zum Kopieren und Einfügen mitgeliefert, was dem Suchenden natürlich eine Menge Arbeit spart.

Gut, der Lerneffekt bleibt dabei etwas auf der Strecke, aber manchmal möchte man etwas ja auch gar nicht können, sondern nur erledigen. Das ist ja auch okay.

Es gibt aber ein viel größeres Problem (auf das ich gerade erst stieß): Nicht immer ist das, was man sichtbar markiert auch das, was man kopiert. Wir wollen beispielsweise in ein Verzeichnis wechseln, das ich hier freundlicherweise gleich zum kopieren anbiete und das deshalb selbstverständlich nicht abgetippt wird:

cd /
ls > ~/rootverzeichnis.txt cd
/etc/dkms/template-dkms-mkdeb/debian

Sieht ja an sich super aus, oder? Das Problem dabei: Kopiert ihr diesen Befehl ins Terminal, habt ihr schon ins Root-Verzeichnis gewechselt, alle dort liegenden Dateien und Ordner aufgelistet und die Liste in der Datei rootverzeichnis.txt in eurem Home-Ordner abgelegt. Kopiert habt ihr folgendes:

cd /
ls > ~/rootverzeichnis.txt
cd /etc/dkms/template-dkms-mkdeb/debian

Da gehen natürlich noch ganz andere Dinge. Bei einem Tutorial zum Bearbeiten der /etc/fstab fällt es zum Beispiel nicht auf, wenn der Nutzer sich vorher mit sudo su Root-Rechte geben muss. Wie funktioniert das ganze? Ganz einfach: Alles zwischen dem ersten cd und dem Pfad wird ganz woanders angezeigt, nämlich 1000px über und 1000px links neben der Seite, außerhalb des Monitors also. Die Zeilenumbrüche sorgen dafür, dass die eingeschmuggelten Befehle auch sofort beim Einfügen ausgeführt werden:

cd /
ls > ~/rootverzeichnis.txt cd
/etc/dkms/template-dkms-mkdeb/debian

Bei Heise gibt es mehr dazu, gefunden habe ich das über einen Beitrag im Server Support Forum.

Also: Achtet darauf, von welcher Seite ihr Code kopiert. Wenn ihr der Seite nicht vertraut, haut nicht gleich das Kopiergut ins Terminal, sondern schaut es euch in einem Texteditor vorher noch einmal an. Das ganze klappt natürlich auch mit jedem anderen Betriebssystem mit Befehlszeile. Nur nutzt man die beispielsweise unter Windows weniger häufig.

Schnelleres Surfen: Einen schnellen DNS-Server finden mit Namebench

Für gewöhnlich läuft das ja so: Der Provider teilt mit, wann die DSL-Leitung geschaltet ist, schickt dem Kunden einen Router, der angestöpselt werden muss, der Kunde tut wie im geheißen und alles funktioniert. Und er surfte glücklich bis an sein Lebensende.

Oftmals könnte man aber noch viel glücklicher surfen. Denn ein nicht gerade kleiner Teil der Ladezeit von Websites fällt oft auf die Namensauflösung, also die Anfrage bei einem DNS-Server nach der IP, auf die die gewünschte Domain weist. Quasi das Blättern im Telefonbuch des Internet.

Von diesen DNS-Servern gibt es eine ganze Menge. Einige schnelle, sehr viele mittelmäßige und viele langsame. Legt man den zu nutzenden Nameserver nicht selbst fest, tut das der Provider und wählt dabei oft einen selbst bereit gestellten. Dass der meistens nicht zu den schnellsten gehört, versteht sich fast von selbst, kein kleiner DSL-Provider kann so viel in solche Infrastruktur investieren, wie beispielsweise Google.

Einen schnellen DNS-Server kann man mit dem Tool „namebench“ finden. Es fragt eine große Liste an DNS-Servern ab und misst die Antwortzeit. Dabei vergleicht es die Ergebnisse mit denen der aktuell genutzten oder frei wählbaren DNS-Server.

Namebench mit grafischer Oberfläche
Namebench mit grafischer Oberfläche

Namebench prüft auf Wunsch auch auf die Zensurfreiheit der Server. Das Ergebnis wird auf einer lokal gespeicherten HTML-Seite ausgegeben und im Standardbrowser aufgerufen. Hier wird der schnellste DNS-Server angezeigt und ein Konfigurationsvorschlag gegeben.

Die aufbereiteten Ergebnisse von Namebench
Die aufbereiteten Ergebnisse von Namebench

Die so ermittelten Nameserver können nun zum Beispiel in der Fritz!Box hinterlegt werden, sodass alle Standardanfragen nicht mehr an den DNS-Server des Providers, sondern eben an den schnellsten gehen.

DNS-Server-Einstellungen der Fritz!Box
DNS-Server-Einstellungen der Fritz!Box

Namebench gibt es kompiliert für Mac OS X und Windows, sowie als Quellcode, welcher mit Python ausgeführt werden kann. Optional kann auch die oben gezeigte grafische Oberfläche genutzt werden, hierfür ist noch python-tk beziehungsweise Tkinter erforderlich. Das Programm kann über die Projekt-Website heruntergeladen werden.

Outlook/Hotmail und die Spambekämpfung

Microsoft hat mit Outlook.com einen tollen neuen Maildienst (seines Zeichens Nachfolger von Hotmail) auf den Markt gebracht. Ich habe ihn in der Werbung gesehen und fand das Konzept eigentlich ganz ansprechend.

Als Betreiber eines Mailservers habe ich natürlich gleich mal ein Konto dort angelegt und versucht, Mails hin und her zu schicken (sollte man tun, um eventuelle Fehler oder Blacklisteinträge festzustellen) und war ein wenig verwundert über das Ergebnis. Die Mail ging bei meinem Server raus und wurde kommentarlos vom Outlook-Server angenommen. Nur bei meinem Postfach kam sie nie an. Okay, dachte ich, ich hab das Postfach ja gerade erst erstellt, probierste es morgen noch mal.

Also heute nach Rücksprache mit ein paar Leuten aus dem IRC das gleiche Spiel mit gleichem Ergebnis: Mail versendet, Mail angenommen, Mail nicht ans Postfach zugestellt. Keine Fehlermeldung an den Server, kein Bounce, nichts. Von Senderseite ist nicht ersichtlich, dass die Mail nicht korrekt zugestellt wurde:

root@s3:~# telnet mx3.hotmail.com 25
Trying 65.54.188.126...
Trying 65.55.37.72...
Connected to mx3.hotmail.com.
Escape character is '^]'.
220 COL0-MC1-F24.Col0.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.microsoft.com/en-us/anti-spam.mspx. Sun, 10 Mar 2013 05:38:46 -0700
helo s3.wemaflo.de
250 COL0-MC1-F24.Col0.hotmail.com (3.17.0.78) Hello [84.200.83.55]
mail from:wemaflo@wemaflo.net
250 wemaflo@wemaflo.net....Sender OK
rcpt to:florian_mai@outlook.com
250 florian_mai@outlook.com
data
354 Start mail input; end with <CRLF>.<CRLF>
Subject: Testmail an Outlook
Hier ein wenig random Text
.
250 <COL0-MC1-F247v6iuRf002585a0@COL0-MC1-F24.Col0.hotmail.com> Queued mail for delivery
quit
221 COL0-MC1-F24.Col0.hotmail.com Service closing transmission channel
Connection closed by foreign host.

Tolle Sache.

Wer ein Postfach bei Outlook.com anlegt

  • hat eine schöne Oberfläche mit tollen Features
  • weiß nicht, ob die Mails, die er in seinem Posteingang sieht auch alle Mails sind, die erfolgreich an ihn versendet wurden

Wer eine Mail an ein Postfach bei Outlook.com sendet

  • sieht, dass die Mail vom Server angenommen und in die Warteschlange für die Zustellung ins Postfach geleitet wurde
  • geht, da er keine Fehlermeldung vom Outlook-Server bekam, davon aus, dass die Mail korrekt zugestellt wurde
  • bekommt keinerlei Rückmeldung, wenn das nicht der Fall ist

Zusammenfassend sage ich da: Ein Mailsystem, das Mails annimmt und dem Sender suggeriert, dass die Zustellung erfolgreich war, die Mail aber nicht zustellt, sondern einfach verschwinden lässt, ist irgendwie verdammt nutzlos.

Ich kenne keinen einzigen weiteren Dienst, der das so handhabt. Ist eine IP auf einer Blacklist, oder kann die Mail aus sonst einem Grund nicht zugestellt werden, hat der empfangende Server das mitzuteilen. Entweder durch eine Bounce-Mail oder eben durch eine direkte Antwort an den sendenden Server. Hier ein Beispiel von AOL:
mailin-02.mx.aol.com[11.22.33.44] refused to talk to me: 554- (RTR:BL)
http://postmaster.info.aol.com/errors/554rtrbl.html 554 Connecting IP:
55.66.77.88

Das ganze erinnert mich an etwas, was ich bei 1337core las: iCloud filtert Mails recht intransparent und entfernt sie ebenfalls einfach ohne Nachricht an Sender oder Empfänger.