===== 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 installieren | php mit FastCGI]] installiert und [[nginx um FastCGI erweitern | 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. * sysutils/php5-fileinfo * security/php5-openssl * security/php5-mcrypt * graphics/php5-exif 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: * Database server (omit for sqlite) * Database user name (needs write permissions)(omit for sqlite) * Database password (omit for sqlite) 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]].