Page 1 of 1

Roundcube & 2FA

Posted: Tue 3. May 2022, 12:26
by Jolinar
Da ich heute in die Verlegenheit gekommen bin, jemandem bei der Installation eines 2FA Plugins in Roundcube zur Hand zu gehen, mache ich schnell hier in der Bastelecke einen Beitrag dazu.

System: Debian 11/KVM KH aktuell

Um nicht unnötig am CLI arbeiten zu müssen, hab ich alles in ein Shellscript gepackt. Es ist vllt nicht das schönste Script, aber es funktioniert:

Code: Select all

#!/bin/bash
#
# Basis:	Keyhelp mit standardmäßiger Roundcube Installation
# Zweck:	Einpflegen benutzerdefinierter Roundcube Plugins, da 
# 		solche Plugins (aktuell) nicht updatefest sind
# Hinweis:	Die verwendeten Plugins müssen im Keyhelp Panel unter
#		Konfiguration >> Webmail >> Plugins eingetragen sein
#
#
workdir="/usr/src/workdir";
#
# 2FA-Plugin
# ----------
#
# Quelle:	https://github.com/alexandregz/twofactor_gauthenticator
#
plugindir="/home/keyhelp/www/roundcube/plugins/twofactor_gauthenticator";
if ! [ -d "$plugindir" ]; then
	if [ -d "$workdir" ]; then
		rm -r $workdir;
		mkdir $workdir;
		cd $workdir;
	fi
	wget https://github.com/alexandregz/twofactor_gauthenticator/archive/refs/heads/master.zip
	rc="$?"
	if [ "$rc" == 0 ]; then
		unzip master.zip
		mv twofactor_gauthenticator-master $plugindir
		chown -R keyhelp:keyhelp $plugindir
		find $plugindir \( -type d -exec chmod 755 {} + \) -o \( -type f -exec chmod 644 {} + \)
	else
		echo "wget Error: $rc" | mailx -s CronError_rc_plugins hostmaster@domain.tld
	fi
fi
jetzt noch einen entsprechenden Cron einrichten und einmalig im Panel unter Konfiguration >> Webmail >> Plugins den Namen des Plugins eintragen. Das wars auch schon :mrgreen:

Das Script prüft beim Aufruf, ob das Verzeichnis mit dem Plugin im Roundcube Pluginordner vorhanden ist. Wird das Verzeichnis nicht gefunden, wird das Plugin von Github heruntergeladen, an die richtige Stelle kopiert und die Eigentümer- und Zugriffsrechte korrekt gesetzt.
Dieses Vorgehen ist nötig, da Keyhelp beim Update von Roundcube den Pluginordner neu schreibt.

Falls ich was vergessen haben sollte oder jemand Verbesserungs-/Optimierungsbedarf sieht, arbeite ich das gern noch ein.

Achja: Ich hab das Plugin natürlich getestet, zumindest bei mir und zwei weiteren Systemen tut es das, was es soll (Getestet mit dem G**gle Authentifikator). 8-)

BTW:
Perfekt wäre es natürlich, wenn das 2FA Plugin standardmäßig in Keyhelp Roundcube integriert werden könnte...Der Mehrwert bei der Sicherheit dürfte den zusätzlichen Aufwand bestimmt wert sein... :geek:

Edit:
Ich hab im Script noch eine Returncode Prüfung für den wget Befehl eingebaut. Im Fehlerfall schickt das Script eine Mail raus, Mailadresse muß natürlich noch angepaßt werden. Um mailx verwenden zu können, muß vorher das Paket mailutils installiert sein (apt install mailutils).

Re: Roundcube & 2FA

Posted: Tue 3. May 2022, 13:01
by space2place
Danke dafür Jolinar

Re: Roundcube & 2FA

Posted: Sat 13. Aug 2022, 11:35
by Ralph
sehr cool, Danke!

Re: Roundcube & 2FA

Posted: Tue 22. Aug 2023, 13:01
by Jolinar
Verbesserte und erweiterte Version des Scripts hier -> Roundcube & benutzerdefinierte Plugins :mrgreen: :geek: :ugeek: