Dieses Tutorial zeigt die Installation des neuesten RoundCube-Webmailers auf Debian 8. Roundcube ist ein einfach zu bedienender Webmail-Client mit IMAP- und SMTP-Unterstützung, der mit Plugins erweitert werden kann. Unter Debian 7 war RoundCube als .deb-Paket verfügbar, es war nicht die neueste Version, aber zumindest war es einfach mit apt zu installieren. Für die aktuelle Debian-Version ist kein RoundCube-Paket mehr verfügbar, daher beschreibe ich hier die Installation aus den Quellen. Dieses Tutorial enthält ein optionales Kapitel, das die Schritte zum Verbinden von RoundCube mit dem ISPConfig 3 Hosting Control Panel beschreibt.
Voraussetzungen
- Betriebssystem Debian 8.
- Apache-Webserver mit installiertem mod_php. Wenn noch kein Apache installiert ist, werfen Sie einen Blick auf unsere LAMP-Anleitung oder die Einrichtung eines perfekten Servers, um eine geeignete Umgebung zu installieren.
- Ein E-Mail-Server (SMTP + IMAP), mit dem sich Roundcube verbinden soll. Dies kann der lokale Server sein (z. B. wenn Sie eines der perfekten Server-Setups verwenden) oder ein Remote-Server.
- Der Server-Hostname, den ich in diesem Tutorial verwenden werde, ist server1.example.com mit der IP-Adresse 192.168.1.100. Bitte ersetzen Sie diese durch die IP und den Hostnamen Ihres Servers.
RoundCube-Installation
Ich werde RoundCube in das Verzeichnis /opt/roundcube installieren, um sicherzustellen, dass diese Installation nicht mit irgendwelchen Debian-Systempaketen kollidiert. Der erste Schritt besteht darin, wget zu installieren, das Verzeichnis /opt/roundcube zu erstellen und die neueste RoundCube-Version mit wget in dieses Verzeichnis herunterzuladen. Die aktuelle RoundCube-Version ist zum Zeitpunkt, als ich dieses Tutorial schreibe, 1.1.3. Schauen Sie auf der RoundCube-Website nach, ob es eine neuere Version gibt, die Sie verwenden können.
Melden Sie sich als Root-Benutzer auf der Shell Ihres Servers an und installieren Sie dann wget und den Nano-Editor:
apt-get install wget nano
Erstellen Sie das Verzeichnis und geben Sie es mit dem "cd"-Befehl ein:
mkdir /opt/roundcube
cd /opt/roundcube
Laden Sie die RoundCube tar.gz-Datei herunter und entpacken Sie sie:
wget https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.1.3/roundcubemail-1.1.3-complete.tar.gz
tar xfz roundcubemail-1.1.3-complete.tar.gz
Die RoundCube-Dateien befinden sich nun im Ordner /opt/roundcube/roundcubemail-1.1.3. Der nächste Schritt besteht darin, sie um ein Verzeichnis nach oben nach /opt/roundcube zu verschieben.
mv roundcubemail-1.1.3/* .
mv roundcubemail-1.1.3/.htaccess .
Der Punkt am Ende der beiden Befehle ist erforderlich und Teil des Befehls, nicht verpassen! Löschen Sie das leere Verzeichnis und die tar.gz-Datei.
rmdir roundcubemail-1.1.3
rm roundcubemail-1.1.3-complete.tar.gz
Und ändern Sie den Besitzer aller Dateien auf den Benutzer, unter dem der Apache-Server läuft.
chown -R www-data:www-data /opt/roundcube
Installieren Sie die RoundCube-Datenbank
Roundcube benötigt eine Datenbank, um Postfacheinstellungen, Kontakte usw. zu speichern. Ich werde hier MySQL (oder MariaDB) als Datenbank-Backend verwenden. Wir erstellen nun eine Datenbank mit dem Namen „roundcubemail“ und einen Benutzer mit dem Namen „roundcube“ in MySQL.
Melden Sie sich mit dem folgenden Befehl beim MySQL-Server an:
mysql --defaults-file=/etc/mysql/debian.cnf
Führen Sie dann die folgenden Befehle in der MySQl-Datenbank-Shell aus, um die Datenbank und den Datenbankbenutzer zu erstellen. Ersetzen Sie das Wort "secretpassword" in den folgenden Befehlen durch ein Passwort Ihrer Wahl.
CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO [email protected] IDENTIFIED BY 'secretpassword';
flush privileges;
quit
Jetzt importieren wir die RoundCube-Tabellen aus der Datei mysql.initial.sql in unsere neue Datenbank.
Führen Sie den folgenden Befehl auf der Linux-Shell aus:
mysql --defaults-file=/etc/mysql/debian.cnf roundcubemail < /opt/roundcube/SQL/mysql.initial.sql
Konfigurieren Sie RoundCube und Apache
In diesem Schritt konfigurieren wir die Datenbankdetails in RoundCube und fügen eine RoundCube-Konfigurationsdatei in Apache hinzu.
Ich beginne mit der Datenbankkonfiguration in RoundCube. Führen Sie die folgenden Befehle aus, um eine neue config.inc.php-Datei basierend auf der Beispielkonfigurationsdatei zu erstellen, und öffnen Sie sie im Nano-Editor.
cd /opt/roundcube/config
cp -pf config.inc.php.sample config.inc.php
nano config.inc.php
Suchen Sie die Datenbankkonfigurationszeile, die mit $config['db_dsnw'] beginnt, und ersetzen Sie sie durch die folgende Zeile:
$config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcubemail';
Das Wort "secretpassword" muss durch das von Ihnen gewählte Passwort für die Datenbank ersetzt werden.
Suchen Sie als nächstes nach der Zeile "smtp_server" und geben Sie hier den Hostnamen Ihres SMTP-Servers ein. In meinem Fall ist der Mailserver der lokale Server, also setze ich den Server auf „localhost“.
$config['smtp_server'] = 'localhost';
Jetzt ist es an der Zeit, Apache zu konfigurieren. Ich erstelle eine neue Konfigurationsdatei roundcube.conf im Ordner /etc/apache2/conf-available/.
nano /etc/apache2/conf-available/roundcube.conf
Fügen Sie dieser Datei die folgenden Zeilen hinzu und speichern Sie sie.
Alias /roundcube /opt/roundcube
Alias /webmail /opt/roundcube
<Directory /opt/roundcube>
Options +FollowSymLinks
# AddDefaultCharset UTF-8
AddType text/x-component .htc
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag display_errors Off
php_flag log_errors On
# php_value error_log logs/errors
php_value upload_max_filesize 10M
php_value post_max_size 12M
php_value memory_limit 64M
php_flag zlib.output_compression Off
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag zend.ze1_compatibility_mode Off
php_flag suhosin.session.encrypt Off
#php_value session.cookie_path /
php_flag session.auto_start Off
php_value session.gc_maxlifetime 21600
php_value session.gc_divisor 500
php_value session.gc_probability 1
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
# security rules:
# - deny access to files not containing a dot or starting with a dot
# in all locations except installer directory
RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
# - deny access to some locations
RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
# - deny access to some documentation files
RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</IfModule>
FileETag MTime Size
<IfModule mod_autoindex.c>
Options -Indexes
</ifModule>
AllowOverride None
Require all granted
</Directory>
<Directory /opt/roundcube/plugins/enigma/home>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /opt/roundcube/config>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /opt/roundcube/temp>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /opt/roundcube/logs>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>
Die 2 Alias-Zeilen in den ersten beiden Zeilen machen RoundCube als /roundcube und /webmail auf Ihrem Server verfügbar.
Aktivieren Sie die Konfiguration und laden Sie Apache neu:
a2enconf roundcube
service apache2 reload
RoundCube ist jetzt vollständig auf Ihrem Server installiert und Sie können es über die Server-IP und den Hostnamen über die Aliase /roundcube und /webmail erreichen. Die IP meines Servers ist 192.168.1.100; Dafür kann ich RoundCube mit http://192.168.1.100/webmail
öffnen
Installation des ISPConfig RoundCube-Plugins (optional)
Wenn auf Ihrem Server iSPConfig 3 installiert ist, wird dringend empfohlen, das ISPConfig RoundCube-Plugin zu installieren. Dadurch können Ihre E-Mail-Benutzer ihre Autoresponder, E-Mail-Filter und andere Postfacheinstellungen in RoundCube verwalten.
Das ISPConfig 3 RoundCube-Plugin ist über die ISPConfig-Remote-API mit ISPConfig 3 verbunden. Um diese API zu verwenden, benötigen wir einen Remote-Benutzer.
Melden Sie sich bei ISPConfig als „admin“-Benutzer an.
Gehen Sie zum Erstellen eines solchen Benutzers zu System > Benutzerverwaltung > Remote-Benutzer und klicken Sie auf die Schaltfläche "Neuen Benutzer hinzufügen":
Geben Sie einen Benutzernamen und ein Kennwort für den neuen Remote-Benutzer ein. Ich wähle den Benutzernamen "roundcube" und das Passwort "!fdWEacBOG1d".
Das Remote-Benutzer-Setup ermöglicht eine feinkörnige Zugriffskontrolle; Folgende Funktionen müssen aktiviert sein:
- Serverfunktionen
- Client-Funktionen
- Mail-Benutzerfunktionen
- Mail-Alias-Funktionen
- Mail-Spamfilter-Benutzerfunktionen
- Mail-Spamfilter-Richtlinienfunktionen
- Mail-Fetchmail-Funktionen
- Whitelist-Funktionen für Mail-Spamfilter
- Blacklist-Funktionen für Mail-Spamfilter
- Filterfunktionen für E-Mail-Benutzer
Klicken Sie abschließend auf Speichern.
Die nächsten Schritte wurden auf der Shell Ihres Servers durchgeführt. Melden Sie sich als Root-Benutzer an.
Wir werden nun das ISPConfig-SSL-Zertifikat in den SSL-Zertifikatspeicher von Debian installieren.
cp /usr/local/ispconfig/interface/ssl/ispserver.crt /usr/local/share/ca-certificates/
update-ca-certificates
Öffnen Sie die Datei /etc/php5/cgi/php.ini
nano /etc/php5/apache2/php.ini
Scrollen Sie nach unten, bis Sie den Abschnitt [openssl] der Datei sehen, und fügen Sie dort die folgende Zeile hinzu:
openssl.cafile=/etc/ssl/certs/ca-certificates.crt
Starten Sie dann Apache neu.
service apache2 restart
Um das Addon herunterzuladen, installieren Sie zuerst den Git-Client.
apt-get install git
Holen Sie sich die neueste Version des RoundCube ISPConfig-Plugins:
cd /tmp
git clone https://github.com/w2c/ispconfig3_roundcube.git
cd /tmp/ispconfig3_roundcube/
Und verschieben Sie das Plugin in das Roundcube-Plugin-Verzeichnis.
mv ispconfig3_* /opt/roundcube/plugins
cd /opt/roundcube/plugins
Erstellen Sie eine neue config.inc.php-Datei für das Plugin basierend auf der Beispielkonfiguration und öffnen Sie die Datei im Nano-Editor.
mv ispconfig3_account/config/config.inc.php.dist ispconfig3_account/config/config.inc.php
nano ispconfig3_account/config/config.inc.php
Geben Sie die Details des entfernten Benutzers ein und speichern Sie die Datei.
<?php
$rcmail_config['identity_limit'] = false;
$rcmail_config['remote_soap_user'] = 'roundcube';
$rcmail_config['remote_soap_pass'] = '!fdWEacBOG1d';
$rcmail_config['soap_url'] = 'https://server1.example.com:8080/remote/';
?>
Ersetzen Sie server1.example.com mit dem Hostnamen des Servers. Wenn SSL (HTTPS) für die Remote-API-Verbindung verwendet wird, ist es wichtig, dass der Hostname in der RoundCube-Konfiguration mit dem Hostnamen des SSL-Zertifikats der ISPConfig-Schnittstelle übereinstimmt. Sie können den Hostnamen des ISPConfig-SSL-Zertifikats mit dem folgenden Befehl überprüfen:
openssl x509 -in /usr/local/share/ca-certificates/ispserver.crt -text -noout | grep Subject:
Das Ergebnis ist in meinem Fall:
Subject: C=DE, ST=Niedersachsen, L=Lueneburg, O=ISPConfig UG, OU=IT, CN=server1.example.com/[email protected]
Der Hostname "server1.example.com" in der Plugin-Konfigurationsdatei stimmt also mit dem Hostnamen im SSL-Zertifikat überein.
Jetzt aktivieren wir die neuen Plugins in RoundCube. Öffnen Sie die Konfigurationsdatei in einem Editor:
nano /opt/roundcube/config/config.inc.php
und fügen Sie am Ende der Datei die folgende Zeile hinzu:
$rcmail_config['plugins'] = array("jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");
Jetzt können Sie sich bei RoundCube anmelden, die neuen Optionen finden Sie unter Einstellungen> Konto .
Allgemeines Konto.
E-Mail-Filter einrichten.
Fetchmail-Setup.
Links
- Debian
- Rundwürfel
- Roundcube ISPConfig-Plugin