Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    [solved] How configure 2Factor whitelist?

    Kopano WebApp
    4
    13
    5649
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • boospy
      boospy last edited by

      I thought so already. Is ok :)

      1 Reply Last reply Reply Quote 0
      • marty
        marty Kopano (Inactive) last edited by

        @boospy

        The plugin creator should check if a client is DeskApp or not.
        We have a Boolean in WebApp called: isDeskApp that can be used.
        https://stash.kopano.io/projects/KW/repos/kopano-webapp/browse/client/zarafa/Zarafa.js#73

        You can add it in (probably) the Zarafa.onReady block https://bitbucket.org/normanth/google2fa/src/225cf6542116f0f51854881431ddf486d5f06136/js/Google2FAPlugin.js#lines-47

        So it will only register the plugin for clients that are not DeskApp.

        https://documentation.kopano.io/deskapp_admin_manual
        http://documentation.kopano.io/webapp_smime_manual
        https://documentation.kopano.io/webapp_admin_manual

        1 Reply Last reply Reply Quote 0
        • boospy
          boospy last edited by

          Ah ok. That would probably have to program someone.

          1 Reply Last reply Reply Quote 0
          • marty
            marty Kopano (Inactive) last edited by

            @boospy Contact the plugin maintainer for that.

            https://documentation.kopano.io/deskapp_admin_manual
            http://documentation.kopano.io/webapp_smime_manual
            https://documentation.kopano.io/webapp_admin_manual

            1 Reply Last reply Reply Quote 0
            • boospy
              boospy last edited by

              feature-request.png

              1 Reply Last reply Reply Quote 0
              • norman
                norman last edited by norman

                Hi,

                I am the developer of Google2FA.

                The two-factor authentication runs during the login process. At this time, the JavaScript part of the WebApp is not loaded. Therefore it is not possible to use the variable isDeskApp. I was not able to detect the use of the DeskApp based on the server variables (gobal PHP variable $_SERVER - f.e. $_SERVER[HTTP_USER_AGENT]). I would be very happy about any ideas.

                Some infos in german:

                In der Tat ist es aktuell nur möglich die DeskApp mit aktivierter Zwei-Faktor Authentifizierung (Plugin Google2FA) zu nutzen, wenn man die Whitelist konfiguriert und dann aus dem konfigurierten IP-Bereich heraus auf den Server zugreift.

                Bei der privaten Nutzung hat man in der Regel keine feste IP-Adresse und der Server steht außerhalb des lokalen Netzes. Hier hat man die Möglichkeit DynDNS zu nutzen (https://de.wikipedia.org/wiki/Dynamisches_DNS). Bei der Whitelist ist zu beachten, ob IPv4 oder IPv6 verwendet wird - im Zweifel fügt man beide Varianten hinzu:

                define('PLUGIN_GOOGLE2FA_WHITELIST', gethostbyname('hier.dns.eintragen') . "," . dns_get_record('hier.dns.eintragen', DNS_AAAA)[0]["ipv6"] . "/64");
                

                Eine Verwendung der Variablen isDeskApp ist nach meinem Verständnis nicht möglich, denn während des Login-Prozesses, wenn die Prüfung der Zwei-Faktor Authentifizierung läuft, ist der Javascript-Teil der WebApp noch nicht geladen. Zudem würde eine Nicht-Registrierung des Plugins bei der Verwendung der DeskApp dafür sorgen, dass man über die DeskApp die Zwei-Faktor Authentifizierung nicht mehr konfigurieren kann.

                Anhand der Servervariablen beim Login ist es mir bisher nicht gelungen zu erkennen, ob die DeskApp als Browser verwendet wird - zum Beispiel mit Hilfe von $_SERVER[HTTP_USER_AGENT].

                    [HTTPS] => on
                    [SSL_TLS_SNI] => www.hierdieurl.de
                    [HTTP_HOST] => www.hierdieurl.de
                    [HTTP_CONNECTION] => keep-alive
                    [HTTP_CACHE_CONTROL] => max-age=0
                    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
                    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
                    [HTTP_SEC_FETCH_MODE] => navigate
                    [HTTP_SEC_FETCH_USER] => ?1
                    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/ *;q=0.8,application/signed-exchange;v=b3
                    [HTTP_SEC_FETCH_SITE] => same-origin
                    [HTTP_REFERER] => https://www.hierdieurl.de/webapp/
                    [HTTP_ACCEPT_ENCODING] => gzip, deflate, br
                    [HTTP_ACCEPT_LANGUAGE] => de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
                    [HTTP_COOKIE] => encryption-store-key=b3e843dc510c49731ed437e106ac3859; KOPANO_WEBAPP=fbmb9j08r457sifi4i2e9bqth3
                    [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                    [SERVER_SIGNATURE] => <address>Apache/2.4.10 (Debian) Server at www.hierdieurl.de Port 443</address>
                    [SERVER_SOFTWARE] => Apache/2.4.10 (Debian)
                    [SERVER_NAME] => www.hierdieurl.de
                    [SERVER_ADDR] => 83.169.xxx.xxx
                    [SERVER_PORT] => 443
                    [REMOTE_ADDR] => 84.191.yyy.yyy
                    [DOCUMENT_ROOT] => /var/www/html/wordpress.hierdieurl.de
                    [REQUEST_SCHEME] => https
                    [CONTEXT_PREFIX] => /webapp
                    [CONTEXT_DOCUMENT_ROOT] => /usr/share/kopano-webapp
                    [SERVER_ADMIN] => norman@hierdieurl.de
                    [SCRIPT_FILENAME] => /usr/share/kopano-webapp/index.php
                    [REMOTE_PORT] => 56374
                    [GATEWAY_INTERFACE] => CGI/1.1
                    [SERVER_PROTOCOL] => HTTP/1.1
                    [REQUEST_METHOD] => GET
                    [QUERY_STRING] => 
                    [REQUEST_URI] => /webapp/
                    [SCRIPT_NAME] => /webapp/index.php
                    [PHP_SELF] => /webapp/index.php
                    [REQUEST_TIME_FLOAT] => 1571248933.149
                    [REQUEST_TIME] => 1571248933
                

                Vielleicht hat jemand noch eine Idee hierzu…

                Gruß, Norman

                marty 1 Reply Last reply Reply Quote 0
                • marty
                  marty Kopano (Inactive) @norman last edited by

                  @norman

                  Does this change help? https://stash.kopano.io/projects/KD/repos/kopano-deskapp/browse/src/package.json#59

                  https://documentation.kopano.io/deskapp_admin_manual
                  http://documentation.kopano.io/webapp_smime_manual
                  https://documentation.kopano.io/webapp_admin_manual

                  1 Reply Last reply Reply Quote 0
                  • norman
                    norman last edited by norman

                    Thanks marty!!! A very good hint!!! That’s exactly the change I needed…

                    With a new DeskApp version (DeskApp version newer than 2019-05-21, f.e. version 2.4.5) and a change in Google2FA plugin, the two-factor authentication can be disabled when the DeskApp client is used. A first test was successful.

                    php/plugin.google2fa.php:56ff additional code:

                    if (strpos($_SERVER[HTTP_USER_AGENT], " KopanoDeskapp/") !== false)
                       break;
                    

                    In the Google2FA configuration file I will create an option to activate this function.
                    Of course, the activation poses a risk as it offers the opportunity to bypass the two-factor authentication.

                    I will create a new Google2FA version in the next days.

                    Thanks, Norman

                    1 Reply Last reply Reply Quote 0
                    • norman
                      norman last edited by

                      The new Google2FA version is available:

                      • Port configuration for MySQL
                      • Function to use DeskApp without two-factor authentication
                      • Fix problem with using trusted proxies

                      https://www.familiethimm.de/google2fa-kopano-zarafa-2-faktor-authentifizierung-2fa-google-authenticator/download-installation/

                      1 Reply Last reply Reply Quote 1
                      • marty
                        marty Kopano (Inactive) last edited by

                        @norman If you like, you could also make a PR for DeskApp for support for your plugin support.

                        https://documentation.kopano.io/deskapp_admin_manual
                        http://documentation.kopano.io/webapp_smime_manual
                        https://documentation.kopano.io/webapp_admin_manual

                        1 Reply Last reply Reply Quote 0
                        • boospy
                          boospy last edited by

                          @norman Really, really nice! So fast, and works like a charm.

                          Good work! Thank very much.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post