Neuer Artikel verfügbar!
Roundcube 1.4.10 ganz einfach neben Ihrer bestehenden Nextcloud installieren? Abgesichert mit einem zweiten Faktor (2FA) und der bereits für Nextcloud eingerichteten fail2ban-Software? Zudem carddav für die Integration Ihrer Nextcloud Kontakte nutzen? Kein Problem! Folgen Sie dieser Anleitung und passen dabei bitte einfach die roten Werte entsprechend Ihrer Umgebung an.
Installieren Sie ein php-Modul und sichern die bestehende Nextcloud vHost-Datei:
sudo -s apt install php-pear unzip -y && service php7.4-fpm restart && service nginx stop cp /etc/nginx/conf.d/nextcloud.conf /etc/nginx/conf.d/nextcloud.conf.bak
Passen Sie die vHost-Datei /etc/nginx/conf.d/nextcloud.conf an, ergänzen Sie die roten Zeilen:
... location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ^~ /emails/ { client_max_body_size 1024M; proxy_buffering off; proxy_connect_timeout 3600; proxy_max_temp_file_size 1024M; proxy_pass http://127.0.0.1:83; proxy_redirect off; proxy_request_buffering off; proxy_read_timeout 3600; proxy_send_timeout 3600; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; send_timeout 3600; } client_max_body_size 10240M; location / { ...
Erzeugen Sie die neue vHost-Datei für Roundcube:
nano /etc/nginx/conf.d/roundcube.conf:
Kopieren Sie alle nachfolgenden Zeilen hinein:
server { server_name 127.0.0.1; listen 127.0.0.1:83 default_server; include /etc/nginx/proxy.conf; root /var/www/; client_max_body_size 1024M; access_log /var/log/nginx/roundcube.access.log; error_log /var/log/nginx/roundcube.error.log warn; charset utf-8; location ^~ /emails { index index.php; location ~ ^/favicon.ico$ { root /var/www/emails/skins/default/images; log_not_found off; access_log off; expires max; } location ~ ^/emails/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/emails/(bin|SQL|config|temp|logs)/ { deny all; } location ~ /emails/\.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; include php_optimization.conf; fastcgi_index index.php; try_files $uri =404; } location ~ /emails/\.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } } }
Überprüfen Sie die Webserverkonfiguration durch:
nginx -t
und starten dann den Webserver neu:
service nginx restart
Wechseln Sie in das Arbeitsverzeichnis und laden die Roundcubesoftware herunter um mit der Installation beginnen zu können (alternativ: Download und Installation Roundcube):
cd /usr/local/src wget https://github.com/roundcube/roundcubemail/releases/download/1.4.10/roundcubemail-1.4.10-complete.tar.gz tar xfz roundcubemail-1.4.10-complete.tar.gz && mv roundcubemail-1.4.10 emails mv emails /var/www/ && chown -R www-data:www-data /var/www/
Erzeugen Sie die Roundcubedatenbank:
mysql -h localhost -uroot -p -e "CREATE DATABASE emails CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES on emails.* to nextcloud@localhost; FLUSH privileges"
Rufen Sie Roundcube in Ihrem Browser auf (https://your.dedyn.io/emails/installer/) und führen alle Installationsschritte durch. Im Anschluß an die Installation wird das „installer“-Verzeichnis /var/www/emails/installer aus Sicherheitsgründen gelöscht und der Webserver neu gestartet:
rm -R /var/www/emails/installer && service nginx restart
Wenn Sie PGP für die Mailverschlüsselung und Mailentschlüsselung nutzen wollen, so sind weitere Schritte notwendig:
sudo -u www-data mkdir -p /var/www/emails/KEYS
sudo -u www-data cp /var/www/emails/plugins/enigma/config.inc.php.dist /var/www/emails/plugins/enigma/config.inc.php
Passen Sie die enigma-Konfiguration an:
sudo -u www-data vi /var/www/emails/plugins/enigma/config.inc.php
Setzen SIe den Wert für das homedir auf KEYS
$config['enigma_pgp_homedir'] = "KEYS";
Roundcube ist nun vollständig unter /var/www/emails installiert, so dass wir das System härten können.
cd /var/www/emails/plugins
Laden Sie die Zwei-Faktor-App (TOTP) von github herunter:
git clone https://github.com/alexandregz/twofactor_gauthenticator.git
Melden Sie sich von Roundcube ab und bearbeiten die Konfiguration um TOTP zu aktivieren:
sudo -u www-data vi ../config/config.inc.php
Fügen Sie ‚twofactor_gauthenticator‚ in das Plugins-Array hinzu:
$config['plugins'] = array('enigma', 'twofactor_gauthenticator', 'markasjunk', 'newmail_notifier', 'zipdownload');
Melden Sie sich in Roundcube anund aktivieren den zweiten Faktor:
Sie können ein neues Secret generieren oder aber auch das bestehende Secret Ihrer Nextcloud verwenden. Nach der Validierung des Codes können Sie sich nun mit Ihren Benutzerdaten und dem zweiten Faktor anmelden. Um nachfolgend Fail2Ban einzurichten melden Sie sich erneut von Roundcube ab und wechseln in das Plugins Verzeihnis:
cd /var/www/emails/plugins
Laden Sie das fail2ban-plugin herunter und entpacken es dann:
wget https://github.com/mattrude/rc-plugin-fail2ban/archive/1.3.zip unzip 1.3 && rm 1.3.zip
Benennen Sie das Plugin um und setzen die korrekten Berechtigungen:
mv rc-plugin-fail2ban-1.3 fail2ban && chown -R www-data:www-data /var/www/emails
Erstellen Sie nun die fail2ban-Konfigurationen für Roundcube:
nano /etc/fail2ban/jail.d/roundcube.local
Kopieren Sie alle Zeilen in diese Datei:
[roundcube] backend = auto enabled = true port = 80,443 protocol = tcp filter = roundcube maxretry = 5 bantime = 1800 findtime = 36000 logpath = /var/www/emails/logs/errors.log
Erstellen Sie nun die Filterdatei:
nano /etc/fail2ban/filter.d/roundcube.conf
Kopieren Sie alle Zeilen hinein:
[Definition] failregex = IMAP Error: Login failed for .* from <HOST> ignoreregex =
Melden Sie sich von Roundcube ab und aktivieren fail2ban in der Konfigurationsdatei:
sudo -u www-data nano ../config/config.inc.php
Fügen Sie ‚fail2ban‚ in das plugins-Array hinzu:
$config['plugins'] = array('enigma', 'fail2ban', 'twofactor_gauthenticator', 'markasjunk', 'newmail_notifier', 'zipdownload');
Erstellen Sie die Logdatei und starten dann fail2ban neu:
sudo -u www-data touch /var/www/emails/logs/errors.log && service fail2ban restart
Überprüfen Sie nun die erweiterte fail2ban-Überwachung:
fail2ban-client status nextcloud && fail2ban-client status roundcube
Melden Sie sich bewußt falsch an und überprüfen dann die fail2ban-Statistik erneut:
fail2ban-client status nextcloud && fail2ban-client status roundcube
Wenn Sie den fehlerhaften Anmeldeversuch protokolliert finden, dann funktioniert fail2ban wie erwünscht. Nun aktivieren wir noch die Nextcloud-Kontakte in Roundcube mittels des carddav-Plugins. Melden Sie sich von Roundcube ab und arbeiten die nächsten Zeilen ab:
cd /var/www/emails/plugins/ wget https://github.com/mstilkerich/rcmcarddav/archive/v4.0.4.zip unzip v4.0.4.zip rm -f v4.0.4.zip mv rcmcarddav-4.0.4 carddav cp -p /var/www/emails/plugins/carddav/config.inc.php.dist /var/www/emails/plugins/carddav/config.inc.php chown -R www-data:www-data /var/www/
Laden Sie alle benötigten Dateien nach:
curl -sS https://getcomposer.org/installer | php php7.4 composer.phar update && php7.4 composer.phar install
Bearbeiten Sie die carddav-Konfigurationsdatei, indem Sie die roten Werte setzen und die führenden ‚//‘ (sofern vorhanden) an den drei Zeilen entfernen:
chown -R www-data:www-data /var/www/ sudo -u www-data vi config.inc.php
... $prefs['_GLOBAL']['hide_preferences'] = false; ... $prefs['_GLOBAL']['pwstore_scheme'] = 'encrypted'; ... $prefs['_GLOBAL']['suppress_version_warning'] = false; ...
Speichern Sie die Änderungen und fügen dann abschließend das carddav-Plugin zur Roundcube-Konffiguration hinzu:
sudo -u www-data vi ../../config/config.inc.php
Fügen Sie ‚carddav‚ hinzu:
$config['plugins'] = array('carddav', 'enigma', 'fail2ban', 'twofactor_gauthenticator', 'markasjunk', 'newmail_notifier', 'zipdownload');
Speichern Sie die Datei und melden sich erneut bei Roundcube an. Konfigurieren Sie das Plugin gemäß ihrer Nextcloud – die carddav-URL sieht bspw. wie folgt aus:
https://YOUR.DEDYN.IO/remote.php/dav/addressbooks/users/YourUser/contacts/
Die Installation der Roundcube-Anwendung wurde erfolgreich abgeschlossen und so wünsche ich Ihnen viel Spaß mit Ihren Emails und Daten in Ihrer privaten Cloud, erweitert um Roundcube. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!