Startseite : "Dachboden" : Alte Infotexte : 1&1-Rootserver

1&1-Rootserver

Dieser Text ist überholt und wird nicht mehr gepflegt.

Die neueren sog. "Rootserver", die 1&1 im Juni 2004 mit Suse 9.0 oder 9.1 und Confixx 3.0 bzw. 3.02 ausliefert, scheinen doch noch einige konfigurationsmäßige Schwächen zu haben, insbesondere, wenn es um das Monstrum Confixx und seine Einbindung geht.

Einige Unschönheiten, ja vielleicht sogar Bugs und auch Konfigurationsvorschläge will ich hier sammeln.

Kommentare oder Verbsserungen dazu? Gerne!

mySQL-Zugriff für Confixx fehlt

Es scheint ein Problem bei den Zugriffsrechten für Confixx auf die mySQL-Datenbank zu geben, das sich unter anderem in der Fehlermeldung

#2127: Access denied for user: 'root@localhost ' (Using password: NO) 

in der Confixx-Weboberfläche (Administrator) äußert.

Ausgelöst wird das Problem offenbar beim Versuch, ein Backup einer Kunden-mySQL-Datenbank über die Restore-Funktion von Confixx wieder einzuspielen. Die Folge ist, dass die in Confixx vorgenommenen Änderungen vom Counterscript nicht mehr in das System übernommen werden, aber offenbar in der Confixx-Datenbank als "erledigt" abgehakt werden. Das hat dann die unschöne Folge, dass bspw. Domains in der Confixx-Oberfläche existieren, die entsprechenden vhosts für den Webserver aber nicht angelegt werden.

Abhilfe: In /root/confixx/confixx_main.conf

$mysqlUserServer = 'localhost';
$mysqlUserUser = 'root';
$mysqlUserPw = 'meinpasswort'

setzen. Die übrigen Variablen wie $dbServer, $dbUser usw. werden dabei nicht verändert. Als meinpasswort ist das mySQL-root-Passwort einzusetzen, nicht etwa das Root-Passwort des Servers! Das mySQL-root-Passwort findet man in /root/.my.cnf.

.shtml-Dateien werden nicht geparst

Im Auslieferungszustand werden, egal ob in Confixx SSI für diesen Kunden aktiviert ist oder nicht, .shtml-Datein nicht geparst, sondern als Text ausgeliefert.

Abhilfe: In /etc/apache2/mod_mime-defaults.conf vor den Zeilen

# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml

das Kommentarzeichen "#" entfernen.

Confixx-Oberfläche erscheint statt nichtexistenten (Sub-)Domains

Wenn für eine Subdomain oder Domain zwar ein DNS-Eintrag (A- Record) existiert, der auf die IP des Servers zeigt, aber die Domain in Confixx nicht eingerichtet ist, erscheint im Auslieferungszustand stattdessen der Login-Bildschirm für Confixx, was man ziemlich sicher nicht haben möchte.

Ursache dafür ist, dass der Apache immer dann, wenn er eine bestimmte Domain als VirtualHost nicht findet, auf die für den ersten VirtualHost konfigurierten Daten zugreift. Confixx sieht das auch vor, "versteckt" allerdings dummerweise diesen Eintrag in /etc/apache2/confixx_vhost.conf und übersieht dabei, dass in /etc/apache2/confixx_mhost.conf auch bereits VirtualHost-Einträge vorkommen und letztere Datei als erste ausgeführt wird.

Zur Abhilfe fügt man daher in /etc/apache2/confixx_mhost.conf ganz am Anfang (oder in /etc/apache/httpd.conf vor dem include-Befehl, mit dem /etc/apache2/confixx_mhost.conf eingebunden wird, folgendes hinzu:

NameVirtualHost 123.321.123.321:80
<VirtualHost 123.321.123.321:80>
DocumentRoot /srv/www/confixx/html/gesperrt
  php_admin_value open_basedir /srv/www/confixx/html/gesperrt
  php_admin_value file_uploads 0
</VirtualHost>

Für SSL will man das dann genauso handhaben; damit https:// für Confixx aber noch funktioniert, fügt man folgenden Block an derselben Stelle wie oben ein:

NameVirtualHost 123.321.123.321:443
<VirtualHost 123.321.123.321:443>
DocumentRoot /srv/www/confixx/html/gesperrt
        SSLEngine on
        SSLCipherSuite (usw., wie in dem Abschnitt für Confixx)
        SSLCertificateFile (usw., wie in dem Abschnitt für Confixx)
        SSLCertificateKeyFile (usw., wie in dem Abschnitt für Confixx)

        SetEnvIf User-Agent ".*MSIE.*" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
</VirtualHost>

123.321.123.321 ist natürlich jeweils durch die richtige IP zu ersetzen. Danach mittels /etc/init.d/apache2 reload den Webserver neu starten.

Wichtig: Änderungen in /etc/apache2/confixx_vhost.conf sind sinnlos, weil diese Datei von Confixx bei jeder Änderung, die den Webserver betrifft, neu generiert wird!

Falls nunmehr statt der Confixx-Oberfläche eine Fehlermeldung generiert wird, findet sich eine Lösung direkt im folgenden Abschnitt.

Fehlermeldungen statt "Gesperrt!"-Seite

Falls Confixx bei gesperrten oder nicht-existen (Sub-)Domains statt einer Fehlerseite PHP-Fehlermeldungen ausspuckt, so liegt die Ursache in der Datei /srv/www/confixx/html/gesperrt/index.php.

Zur Abhilfe kann man diese durch eine einfachere, funktionierende Variante ersetzen:

<?
####### Confixx(R) 2.0 Professional
### Copyright Yippi-Yeah! E-Business GmbH 2001-2003
####### http://www.confixx.de - info@yippi-yeah.com
# include("../settings.inc.php");
if (!isset($HTTP_HOST)) $domain = $_SERVER["HTTP_HOST"]; else $domain = $HTTP_HOST;
?>
<HTML>
<HEAD>
<META content="text/html; charset=<? echo $lang_html_charset; ?>" http-equiv=Content-Type>
<LINK href="<?=$strSkinName?>/style.css" rel=stylesheet type=text/css>
</HEAD>

<BODY bgColor=#ffffff bottomMargin=0 leftMargin=0 topMargin=0 MARGINHEIGHT="0" MARGINWIDTH="0">
<table class="tblbgcolor" align="left" border="0" cellpadding="3" cellspacing="0" bordercolorlight="#CCCCCC" bordercolordark="#FFFFF
F">
<tr>
    <TD vAlign=top><p>  </p></TD>
    <TD valign="top"> 
      <P align="center"> </P>
      <P align="center"><img src="logogross.gif" width="382" height="101"></P>
      <P align="center">The domain "<? echo $domain; ?>" is not available.</P>
      </TD>
  </TR>
</TABLE>
</BODY>
</HTML>

Natürlich ist hier auch ansonsten der Phantasie Spielraum gelassen.

Spamfilter lässt sich nicht abschalten

Zwar lässt sich der Spamfilter im Reseller-Menü von Confixx für einzelne Kunden deaktivieren; das führt aber leider nicht dazu, dass diese Kunden ihre Mail ungefiltert erhalten, sondern nimmt ihnen nur die Möglichkeit, Einstellungen des Spamfilters zu ändern. Die Ursache liegt hier in der Implementation in Confixx: es wird einfach in /etc/mail/spamassassin/local.cf eine Reihe von all_spam_to- Wildcard-Einträge vorgenommen:

[...]
all_spam_to                     *@domain-eins.example
all_spam_to                     *@www.domain-eins.example
all_spam_to                     *@sub.domain-eins.example
all_spam_to                     *@www.sub.domain-eins.example
[...]

So weit, so gut - leider wird die Mail am Ende ja ggf. in ein Postfach ausgeliefert, und dieses Postfach heisst dann webXpY@localhost - und das wird von obigen Ausdrücken natürlich genau nicht erfaßt. Abhilfe dafür ist mir bislang nicht eingefallen, für Vorschläge habe ich ein offenes Ohr.

Es bleibt natürlich als vorübegehende Abhilfe immer noch die "Holzhammermethode", SpamAssassin ganz abzustellen. Am einfachsten dürfte es sein, in /etc/procmailrc folgende Zeilen auszukommentieren:

:0fw
* < 256000
| /usr/bin/spamc -f

vhost im access-Log des Webservers mitloggen

Normalerweise wird von Confixx im access-Log des Webservers nicht mitgeloggt, für welchen vhost der Zugriff war; das kann sich recht störend auswirken. Zwar ist in der Definition in /etc/apache2/confixx_vhost.conf der Vhost vorgesehen, gefolgt von einem besonderen Trenner:

LogFormat "%V:#:%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx
CustomLog |/root/confixx/pipelog.pl confixx

Jedoch wird diese Information offensichtlich von pipelog.pl nicht nur ausgewertet, sondern auch abgeschnitten.

Als Abhilfe bietet es sich daher an, ein anderes LogFormat zu definieren. Dazu bindet man eine eigene Konfigurations- Datei, die bspw. special.conf heißen kann, nach der confixx_vhost.conf (die wiederum von der confixx_mhost.conf eingebunden wird) ein, also entweder ganz am Ende der confixx_mhost.conf oder der httpd.conf. In diese special.conf kommt dann bspw. folgendes:

LogFormat "%V:#:%V %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx

Das ergänzt den vhost für die einzelnen access-Logs der Nutzer.

Alternativ oder zusätzlich kann man das auch für das Gesamt-acces-Log des Servers ergänzen, das sich in /var/log/apache2/access_log findet. Dazu wird in /etc/apache2/mod_log_config.conf an passender Stelle ergänzt:

LogFormat "%V %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" special_vhost

Aktiviert wird das dann in /etc/sysconfig/apache2, indem die Zeile mit APACHE_ACCESS_LOG folgendermaßen gesetzt wird:

APACHE_ACCESS_LOG="/var/log/apache2/access_log special_vhost"

Weiterführende Links

Lizenz

Creative Commons-Lizenzvertrag Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert; er darf unter Namensnennung des Autors nicht-kommerziell weitergegeben und auch bearbeitet werden, soweit das neue Werk gleichfalls wieder dieser Creative-Commons-Lizenz unterliegt. Die Einzelheiten ergeben sich aus dem Lizenzvertrag.