Roundcube & 2FA

Für Modifikationen in und um KeyHelp / For modifications in and around KeyHelp
Post Reply
User avatar
Jolinar
Community Moderator
Posts: 2177
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Roundcube & 2FA

Post 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).
Last edited by Jolinar on Tue 3. May 2022, 16:20, edited 2 times in total.
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)
___
Ich verwende in meinen Beiträgen zwei verschiedene Schriftfarben:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe
  • In dieser Farbe schreibe ich als Mitglied der Community und teile meine private Meinung und persönlichen Ansichten mit
User avatar
space2place
Posts: 375
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Roundcube & 2FA

Post by space2place »

Danke dafür Jolinar
Post Reply