Inhaltsverzeichnis

Allgemein

Roundcube ist ein fortschrittlicher Webmailer. Er ist im Prinzip ein IMAP-Mailclient der im Browser läuft.

Wichtig: Diese Anleitung ist ein Teil von Mailserver einrichten und setzt voraus, dass bereits ein Mailserver auf OpenSMTPd und Dovecot2 installiert und konfiguriert wurden! Soll roundcube zur Verwaltung von Sieve-Regeln verwendet werden muss ebenfalls Sieve in Dovecot aktivieren durchgeführt worden sein.

Die Folgende Anleitung setzt auf SQLite3 als Datenbankbackend um kein extra Datenbankmanager laufen zu lassen. In der Standardkonfiguration setzt roundcube auf MySQL als Datenbankbackend.

Webserver installieren

Da Roundcube ein Webclient ist benötigt man um ihn zu betreiben natürlich zunächst einen Webserver. Im Weiteren wird die Installation zusammen mit dem Webserver nginx angenommen. Die Installation des nginx Webservers wird im Artikel Webserver nginx installieren beschrieben. Des weiteren muss php mit FastCGI installiert und nginx um FastCGI erweitert werden.

Installation

Zur Installation wird der Port mail/roundcube installiert und als Option SQLite für das Datenbankbackend gewählt.

+(*) SQLITE  Use SQLite backend

Alle anderen Ports können mit Standardeinstellungen installiert werden.

Weitere Pakete installieren

Zusätzlich werden noch die folgenden optionalen Pakete installiert.

Roundcube wurde nun unter /usr/local/www/roundcube installiert. Nun werden noch die Dateirechte angepasst:

# chown -R www:www /usr/local/www/roundcube/*

nginx konfigurieren

Da der E-Mailzugang etwas recht persönliches ist sollte auch der Zugang zu Roundcube ausschliesslich verschlüsselt erfolgen. Demnach wird zunächst ein OpenSSL-Zertifikat angelegt wie in OpenSSL Zertifikat erstellen beschrieben. Anschliessend wird der bereits installierte nginx so konfiguriert, dass unverschlüsselte Anfragen auf Port 80 automatisch auf HTTPS umgeleitet werden. Hierzu wird die /usr/local/etc/nginx/nginx.conf wie folgt angepasst.

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;

    server { # Server auf Port 80 (HTTP) leitet an https: weiter. SSL erzwingen.
        listen 80;
        server_name example.com; # Hier richtigen Servernamen eintragen
        return 301 https://$server_name$request_uri;  # enforce
    }

    server { # Server an Port 443 ruer SSL-verschluesselte Verbindungen
        listen 443 ssl;
        server_name example.com; # Hier richtigen Servernamen eintragen
        
        # Zertifikat und Schluessel fuer die verschluesselte Verbindung
        ssl_certificate     /etc/opensslcerts/official-mail.crt;
        ssl_certificate_key /etc/opensslcerts/official-mail.key;

        root /usr/local/www/roundcube;
        index index.php index.html;
        
        # Fehlercodes umleiten
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx;
        }

        # kein Zugriff auf die Verzeichnisse
        location ~ ^/(bin|SQL|config)/ {
            deny all;
        }

        # keine versteckten Dateien
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
        
        # PHP-Scripte per FastCGI aufrufen
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass unix:/var/run/php-fpm.sock;
        }
    }
}

Verzeichnis für die SQLite-Datenbank anlegen

Soll die Datenbank für Roundcube z.B. im Verzeichnis /var/db/roundcube angelegt werden muss dieses zunächst erzeugt und mit den entsprechenden Rechten versehen werden.

# mkdir -p /var/db/roundcube
# chown www:www /var/db/roundcube

Basiskonfiguration von Roundcube

Nun sollte Roundcube grundsätzlich von aussen erreichbar sein. Somit kann nun die grundlegende Konfiguration per Browser erfolgen. Um den Installer zu starten wird die folgende URL aufgerufen https://example.com/installer. Im Browser erfolgt nun die Konfiguration von Roundcube.

Um die Installation mittels einer SQLite-Datenbank durchzuführen müssen im Bereich Database setup die folgenden Felder geleert werden:

In das Feld Database name (use absolute path and filename for sqlite) wird nun noch ein absoluter Pfad zur Datenbank eingetragen. Der Pfad sollte nicht im Roundcube-Verzeichnis liegen, Eine Empfehlung wäre /var/db/roundcube/roundcube.db.

Unter IMAP settings wird als default_host der IMAP-Server hinterlegt (z.B. ssl:mail.example.com). Ebenso wird der smtp_server unter SMTP Settings eingetragen (z.B. ssl:mail.example.com) und der Port unter smtp_port auf 465 gesetzt um ausschliesslich den verschlüsselten Zugang zu verwenden. Zusätzlich sollte Use the current IMAP username and password for SMTP authentication angehakt werden um nicht extra das SMTP-Kennwort speichern zu müssen.

Konfiguration setzen

Nach Abschluss des Installationsdialogs wird die fertige Konfiguration angezeigt. Diese wird komplett kopiert und in der Datei /usr/local/www/roundcube/config/config.inc.php gespeichert.

Konfiguration schützen

Um die Konfiguration zu schützen sollte der installer Ordner im Roundcube-Verzeichnis gelöscht werden.

Um die SQLite-Datenbank sollte noch mit den richtigen Zugriffsrechten versehen werden:

# chmod 640 /var/db/roundcube/roundcube.db

Weitere Schritte

Um mittels Roundcube in der Lage zu sein Sieve-Regeln zur Mailfilterung sehr einfach zu definieren kann man zum Abschluss noch Roundcube um managesieve-Plugin erweitern.