Power-Server

Aus Debacher-Wiki
Wechseln zu: Navigation, Suche

Nachdem die Preise für einfache Rootserver stark gesunken sind habe ich mir einen Strato PowerServer S zugelegt (Dezember 2007), der in den nächsten Wochen meinen Vserver ersetzen soll.

Das Gerät wird mit verschiedenen Betriebssystem-Versionen angeboten, einige mit Adminstrationsoberfläche. Nach den bisherigen Erfahrungen mit diesen Systemen habe ich mich für eine Neuinstallation des Rechners mit openSUSE 10.3 entschieden. Vom Auftrag bis zur Durchführung der Neuinstallation hat es mehrere Stunden gedauert. Das System war dann erst einmal sehr minimal. Es sind kaum Dienste vorinstalliert, also kaum ein Risiko. Gewundert habe ich mich darüber, dass Exim als Mailsystem eingerichtet war, das habe ich gelöscht und durch Postfix ersetzt.

Die Konfiguration nehme ich analog zu den Root-Server Seiten vor und dokumentiere hier nur die Unterschiede:

Inhaltsverzeichnis

Virtuelle Mail

Etwas Probleme hatte ich mit dem Einrichten von Postfixadmin gemäß Root-Server#Mail_mit_Postfix_und_virtuellen_Benutzern. Ich bekam immer Fehlermeldungen der Art:

PHP Warning:  mysql_real_escape_string(): Access denied for user 'wwwrun'@'localhost' (using password: NO) in /srv/www/htdocs/postfixadmin/functions.inc.php on line 131

Ursache war, dass der User wwwrun lokalen Zugriff auf das MySQL benötigt, um mysql_real_escape_string() aufrufen zu dürfen. Es war nur ein Benutzer wwwrun mit Zugriff über "%", eigentlich also allen Rechnern, vorhanden.

Es ist schon komisch, dass die Angabe alle Rechner den lokalen Rechner nicht einschließt, aber ähnliche Probleme hatte ich bei MySQL bereits vorher schon erlebt.

Nach dem Anlegen eines Benutzers wwwrun mit Zugriff über "localhost" funktionierte postfixadmin jedenfalls wie beschrieben.

Postfix

In der Beschreibung fehlt noch der Hinweis, dass man in der /etc/sysconfig/postfix den Schalter:

POSTFIX_SMTP_AUTH_SERVER="yes"

setzen muss.

SASL

Hier gibt es ein paar kleine Änderungen. Mittels

cp /etc/sasl2/smtpd.conf /usr/lib/sasl2/

muss die smtp.conf an die richtige Stelle kopiert werden.

SuSEconfig gibt nach der Konfiguration immer folgende Fehlermeldung aus:

       *** WARNING ***
You are using saslauthd as pwcheck_method in /usr/lib/sasl2/smtpd.conf,
but saslauthd is not running.
       *** WARNING ***

Das scheint aber ein Fehler in SuSEconfig zu sein. Postfix startet jedenfalls problemlos, wenn der saslauthd läuft.

Dovecot

Hier gibt es recht massive Änderungen seit die Version 1.0.X verfügbar ist. Die Konfiguration wurde gegenüber 0.99 deutlich verändert. Hilfreich bei meinen Experimenten war die Seite http://workaround.org/articles/ispmail-etch/#step-5-deliver-emails-through-the-dovecot-lda

Die Angabe einer mail_location hat anscheinend nur für die Systembenutzer eine Funktion, nicht für die virtuellen Benutzer. Insofern kann es unterbleiben hier überhaupt eine Angabe zu machen, dann sucht Dovecot für die Systembenutzer den richtigen Ort heraus.

In der Datei /etc/dovecot/dovecot.conf sind dann die folgenden Ergänzungen notwendig:

protocols = imap pop3 imaps pops

nur dann, wenn die Zertifikate erzeugt wurden, sonst die einfach Version:

protocols = imap pop3
disable_plaintext_auth = no
mail_extra_groups = postfix
first_valid_uid = 207
verbose_proctitle = yes
protocol pop3 {
 ...
 pop3_uidl_format = %08Xu%08Xv
 ...
}
auth default {
  ...
  passdb sql {
   args = /etc/dovecot/dovecot-mysql.conf
  }
  ...
  userdb sql {
     args = /etc/dovecot/dovecot-mysql.conf
  }
  ...
}

Die Datei /etc/dovecot/dovecot-mysql.conf besitzt folgenden Inhalt:

# Database driver: mysql, pgsql
driver = mysql 

# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT.
default_pass_scheme = CRYPT

# Database options
#db_unix_socket = /var/lib/mysql/mysql.sock

connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=dovecot password=assword

password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT concat('maildir:/var/vmail/',maildir) as mail, 207 AS uid, 207 AS gid FROM mailbox WHERE username = '%u' AND active = '1'

Horde/imp

Bei openSUSE 10.3 sind zwar horde und imp dabei, die Installation ist aber trotzdem nicht ganz trivial. Eine sinnvolle Beschreibung habe ich unter http://www.linux-tip.net/cms/content/view/332/26/ gefunden.

Die Schritte im Einzelnen (ggf. erst in der create.mysql.sql dass Passwort ändern):

/srv/www/htdocs/horde/scripts/sql
mysql --user=root --password=<password> < create.mysql.sql

Zur Kontrolle, ob die Datenbank und der Benutzer angelegt wurden:

mysqlshow --user=horde --password=horde horde

Dann fehlten noch einige Pakete, wie der Aufruf von:

http://mein.server.de/horde/test.php

zeigte. Die werden der Reihe nach zusätzlich installiert:

pecl install fileinfo
pecl install memcache

dann /etc/php5/apache2/php.ini editieren und am Ende

pecl install fileinfo
pecl install memcache

in der Datei ergänzen und den Apache neu starten.

Weiter geht es mit:

pear install Net_SMTP
pear install HTTP_Request
pear install Services_Weather
pear install Cache
pear install SOAP

Normalerweise bekommt man nur Pakete mit dem Zustand stable, das nächste Paket gilt als beta, also ein kleiner Umweg:

pear config-set preferred_state beta
pear install -a XML_Serializer
pear config-set preferred_state stable


Nun zur Konfiguration: Unter http://mein.server.de/horde/ bekommt man Zugriff auf die Konfiguration von Horde und imp. Ich habe dort möglichst wenig verändert, hauptsächlich unter Database die Daten für die angelegte Datenbank eingetragen und unter Authentication auf imap eingestellt. Auf alle Fälle muss man nach dem Speichern noch einige Änderungen direkt an der Konsole vornehmen:

/srv/www/htdocs/horde/imp/config

und dort die Datei servers.php bearbeiten, es langt der erste nicht auskommentierte Bereich:

$servers['_prompt'] = array(
   'name' => _("Choose a mail server:")
);

/* Example configurations: */

$servers['imap'] = array(
   'name' => 'IMAP Server',
   'server' => 'localhost',
   'hordeauth' => full,
   'protocol' => 'imap/notls',
   'port' => 143,
   'maildomain' => 'localhost',
   'smtphost' => 'localhost',
   'smtpport' => 25,
   'realm' => ,
   'preferred' => ,
);

Ich habe hier bei allen Serverangaben localhost eingetragen. Die Angabe full hinter hordeauth bewirkt, dass keine doppelte Anmeldung notwendig ist. Bei Horde habe ich ebenfalls imap/notls eingestellt, dann werden die Anmeldedaten von Horde auch für imp übernommen.

Meine Werkzeuge