Categorie: Debian

ISPConfig: 2-Factor-Verificatie in Roundcube Webmail

Om een aantal websites en mailboxen te beheren draai ik op mijn VPS ISPConfig. Tijdens het installatieproces van ISPConfig werd Roundcube Webmail geïnstalleerd. RoundCube is een webgebaseerde IMAP-client, geschreven in PHP. Hier kan op ingelogd worden met het e-mailadres en het bijbehorende wachtwoord, zodat er op een gebruiksvriendelijke manier van e-mail gebruik gemaakt kan worden.

Roundcube banner

Alhoewel er reeds brute force beveiliging is geïmplementeerd vond ik het verstandig om 2-Factor-Authenticatie toe te voegen. Dit is een veelgebruikte beveiligingslaag om ongeautoriseerde toegang tegen te gaan.

2-Factor-Authenticatie kan redelijk eenvoudig aan Roundcube toegevoegd worden. Via https://plugins.roundcube.net kunnen diverse plugins gevonden worden waaronder Two Factor gAuthenticator van Alexandre Espinosa Menor.

De plugin is te vinden via https://plugins.roundcube.net/packages/alexandregz/twofactor_gauthenticator en wordt onderhouden op https://github.com/alexandregz/twofactor_gauthenticator.

Het README bestand bevat generieke aanwijzingen voor installatie. Deze aanwijzingen zijn echter te beknopt voor Debian.

Ik heb de plugin als volgt geïnstalleerd.

  1. Download de plugin naar een “tijdelijke” directory.
    Ik gebruik de volgende locatie; maar plaats de kopie op een locatie naar keuze:
    /mnt/storage/s1.install/roundcube/plugins

    $ sudo su
    [sudo] password for main: 
    
    # mkdir /mnt/storage/s1.install/roundcube/plugins
    # cd /mnt/storage/s1.install/roundcube/plugins
    # git clone https://github.com/alexandregz/twofactor_gauthenticator.git
    
    # cd twofactor_gauthenticator/
    # cp config.inc.php.dist config.inc.php
    # nano config.inc.php
    
  2. Pas vervolgens config.inc.php naar wens aan. Ik heb het config-bestand als volgt aangepast. Ik heb hiervoor “nano” gebruikt.  
    ?php
    // if true ALL users must have 2-steps active
    $rcmail_config['force_enrollment_users'] = false;
    
    // whitelist, CIDR format available
    // NOTE: we need to use .0 IP to define LAN because the class CIDR have a issue about that (we can't use 129.168.1.2/24, for example)
    $rcmail_config['whitelist'] = array('127.0.0.1', '::1');
    
    // Admin can disable saving devices for all users (paranoid mode)
    // Default: allow saving devices (true)
    $rcmail_config['allow_save_device_30days'] = true;
    
    // Make the 2-step field a masked password input type
    // Default: form field will be text (false)
    $rcmail_config['twofactor_formfield_as_password'] = false;
  3. Kopieer daarna de map “twofactor_gauthenticator” naar “/usr/share/roundcube/plugins”. Ik heb hiervoor “mc” gebruikt.
  4. Maak vervolgens een symbolic link aan van “/usr/share/roundcube/plugins/twofactor_gauthenticator naar “/var/lib/roundcube/plugins/twofactor_gauthenticator. Ik heb hiervoor “mc” gebruikt [menu-optie: “File” > “Symlink”].
  5. Schakel vervolgens de plugin in door deze toe te voegen aan het configuratiebestand “/etc/roundcube/config.inc.php”. Ik heb dit bestand met “nano” aangepast.Denk hierbij om de komma achter iedere toegevoegde plugin; plaats echter geen komma achter de laatste plugin binnen de array!
     
     

Wanneer alles goed is gegaan, dan kan twee-factor-verificatie ingeschakeld worden.

Volg de stappen op [ https://github.com/alexandregz/twofactor_gauthenticator ] onder “Configuration” om twee-factor-verificatie in te schakelen.

Ik heb de optie “Activeren” aangevinkt en daarna op “Fill all fields” of “Alle velden instellen” geklikt. Vervolgens heb ik de QR code gescand en de code van de authenticator overgenomen in het veld “Check code”. Vervolgens heb ik op “Check code” geklikt en was twee-factor-verificatie een feit.

Opmerking: de vertaling “2-staps verificatie” is discutabel. In dit geval zou twee-factor-verificatie misschien beter zijn; alhoewel beveiligingsprofessionals steeds vaker pas van twee-factor-verificatie spreken wanneer er ook biometrie wordt toegepast.

Debian: KPN Interactive TV in Chromium

Een aantal jaren terug ben ik overgestapt van Windows naar Debian GNU/Linux. Ik keek regelmatig even TV op mijn laptop via https://interactievetv.nl. Helaas bleek dat dit niet werkte in Chromium onder Linux.

Debian is conservatief met software pakketten en terughoudend met propriëtaire codecs. Debian doet dit om een stabiele en vrije omgeving aan te kunnen bieden. Dit betekend dat je voor bepaalde nieuwere softwareversies en propriëtaire pakketten een alternatieve software repository moet gebruiken. Zo vond ik op http://www.deb-multimedia.org recente audio en video codecs. Hiermee kon ik de reeds geinstalleerde video en audio codecs bijwerken naar meer recente versies en ook propriëtaire codecs toevoegen.

De pakketten kunnen via apt geïnstalleerd worden. Hiervoor moet de deb-multimedia repository toegevoerd worden aan de apt sources.

$ sudo su
# nano /etc/apt/sources.list

Voeg de volgende regels toe onderaan sources.list.

# deb-multimedia.org
  deb http://www.deb-multimedia.org buster main non-free

Tijdens het uitvoeren van het commando “apt update” werd duidelijk dat de handtekening van deze nieuwe repository nog toegevoerd moet worden. Op deb-multimedia.org vond ik de volgende stappen om dat te doen.

# apt-get update
# apt-get update -oAcquire::AllowInsecureRepositories=true
# apt-get install deb-multimedia-keyring

Vervolgens kon ik de gewenste packages installeren.

# apt update
# apt upgrade
# apt dist-upgrade
# apt autoremove
# apt install ffmpeg

Hierna kon ik weer TV kijken op mijn laptop in Chrome onder Debian GNU/Linux.

Schermafdruk: KPN Interactieve TV.
Beeldmateriaal © NOS.
Toestemming verleend om materiaal te gebruiken door NOS op 25-07-2019.