Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Published by Scroll Versions from space DA and version BM-3.5
Sv translation
languagefr

Présentation

Le présent document a pour but de décrire la procédure de déploiement d'un serveur de type Edge BlueMind comme relai postfix et proxy.

Principe

  • BlueMind est installé sur le serveur principal
  • le rôle bm-edge-role est installé sur le serveur dit "Edge"
  • le serveur web nginx du serveur edge est configuré comme relai proxy servant le serveur principal
Volet

Sur cette page :

Sommaire

En rapport :

Diagramme Gliffy
namebm-edge-role-principe

Procédure de déploiement

  1. Installer BlueMind sur le serveur principal en suivant la procédure habituelle

    Remarque

    L'espace de stockage des backups de BlueMind doit être accessible sur ce nouveau serveur sous /var/backups/bluemind

  2. installer la souscription sur le serveur secondaire en tant que fichier

    Info

    Rappel : le fichier texte correspondant à la souscription peut être installé manuellement sur un serveur

    • pour Ubuntu / Debian en tant que /etc/apt/sources.list.d/bm.list
    • pour RedHat / CentOS en tant que /etc/yum.repos.d/bm.repo
  3. installer le paquet bm-edge-role sur le serveur edge :

    Tabs group
    borderall-sides
    navcolornavy
    Debian/UbuntuRedHat/CentOS
  4. ajouter le rôle de relai smtp au serveur edge dans le panneau d'administration du serveur principal :
    • se connecter à BlueMind sur le serveur principal avec l'utilisateur admin0@global.virt
    • naviguer dans Gestion du système > Serveurs de l'application
    • cliquer sur le bouton Nouveau > Serveur
    • remplir les informations du nouveau serveur et cliquer sur Créer

      cliquer sur "Créer & éditer" ou sur "Créer" puis, une fois de retour à la liste des serveurs, cliquer sur la ligne correspondant à celui-ci
    • dans l'onglet Rôles du serveur, cocher la case Relai de messagerie puis cliquer sur le bouton Enregistrer
    • dans la liste des serveurs, le serveur edge apparaît bien avec le tag lié au relai de messagerie mail/smtp-edge
  5. configurer le domaine pour utiliser ce serveur comme relai de messagerie
    • toujours en tant qu'utilisateur admin0@global.virt, naviguer dans Gestion du Système > Domaines supervisés
    • cliquer sur la ligne correspondant au domaine à configurer
    • dans l'onglet Messagerie, sélectionner le serveur edge comme Relai de messagerie puis cliquer sur Enregistrer :
  6. configurer le serveur pour envoyer les mails sortant à travers le relai :
    • toujours en tant que l'utilisateur admin0@global.virt, naviguer dans Gestion du Système > Configuration Système
    • dans l'onglet Messagerie, remplir le champ Relai avec l'adresse IP ou le nom d'hôte du serveur edge puis cliquer sur Enregistrer :

Nginx

Configuration de l'accès web

  1. Se connecter en tant que root sur le serveur edge
  2. naviguer jusqu'au dossier /etc/nginx/sites-available

    Bloc de code
    bm35-edge.bluemind.loc:~# cd /etc/nginx/sites-available
  3. créer un fichier de configuration bm-proxy et l'éditer, par exemple avec vim :

    Bloc de code
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# vim bm-proxy
  4. ajouter les lignes suivantes :

    Bloc de code
    server {
      listen 80;
      # <url_externe_bluemind> désigne l'url externe à laquelle les utilisateurs se connectent
      server_name <url_externe_bluemind>;
    
      location / {
    	return 301 https://<url_externe_bluemind>$request_uri;
      }
    }
    
    server {
      listen 443;
      server_name <url_externe_bluemind>;
    
      ssl on;
      ssl_certificate /etc/ssl/certs/bm_cert.pem;
      ssl_certificate_key /etc/ssl/certs/bm_cert.pem;
      ssl_session_timeout 5m;
      ssl_prefer_server_ciphers on;
    
      ssl_protocols TLSv1.2;
      ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA';
      add_header Strict-Transport-Security max-age=15768000; # six months
    
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
     location / {
    	# <srv_interne> est le serveur BlueMind principal
        proxy_pass https://<srv_interne>;
      }
    
      location /webmail/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>/webmail/;
      }
    
      location /Microsoft-Server-ActiveSync {
        proxy_pass https://<srv_interne>/Microsoft-Server-ActiveSync;
        proxy_read_timeout 1200s;
        proxy_headers_hash_bucket_size 128;
        proxy_headers_hash_max_size 2048;
        client_max_body_size 10m;
        proxy_pass_header Server;
      } 
    
      location /eventbus {
        proxy_pass https://<srv_interne>;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
      }
    
      location /api/filehosting/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>$request_uri;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    
      location /api/attachment/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>$request_uri;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    
      location /fh/ {
        proxy_pass https://<srv_interne>/fh/;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    }
    
  5. sauvegarder le fichier et quitter l'éditeur
  6. exécuter les commandes suivantes pour mettre en place la configuration :

    Bloc de code
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# ln -s /etc/nginx/sites-available/bm-proxy /etc/nginx/sites-enabled/
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# rm /etc/nginx/sites-enabled/default
  7. recharger la configuration du serveur nginx :

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Configuration de la messagerie

  1. Sur le serveur edge, copier le fichier de configuration du serveur principal situé à l'emplacement /etc/nginx/global.d/bm-proxy-mail.conf. Il est possible pour cela d'utiliser scp :

    Bloc de code
    bm35-edge.bluemind.loc:~# scp root@srv1.bluemind.loc:/etc/nginx/global.d/bm-mail-proxy.conf /etc/nginx/global.d/
  2. éditer le fichier /etc/nginx/global.d/bm-mail-proxy.conf sur le serveur edge et remplacer l'adresse IP de la ligne auth_http par l'adresse IP du serveur principal

  3. recharger la configuration nginx :

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Configuration XMPP

Pour que le serveur prenne en charge la gestion du flux XMPP :

  1. créer le fichier /etc/nginx/global.d/bm-xmpp-proxy.conf avec le contenu suivant :

    Bloc de code
    stream {
        upstream backend_xmpp {
            least_conn;
    
                    server 1.2.3.4:5222;
                    server 1.2.3.5:5222 backup;
        }
    
        server {
            listen 5222;
            proxy_pass backend_xmpp ;
        }
    }

    en remplaçant 1.2.3.4 par l'adresse IP du serveur principal, ou du serveur ayant le rôle XMPP s'il y a lieu

  2. Recharger la configuration nginx :

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Proxy Apache

Il est aussi possible d'utiliser Apache comme proxy à la place de Nginx. Pour cela, il faudra utiliser une version >=2.4 d'Apache et activer les modules suivant :

  • mod_ssl
  • mod_proxy et mod_proxy_wstunnel
  • mod_rewrite

Exemple de VirtualHost pour Apache :

Bloc de code
<VirtualHost *:80>
        Redirect / https://<url_externe_bluemind>/
</VirtualHost>

<VirtualHost *:443>
        SSLEngine On

        SSLCertificateFile     "/etc/ssl/certs/bm_cert.pem"
        SSLCertificateKeyFile  "/etc/ssl/certs/bm_cert.pem"

        SSLProxyEngine On
        SSLProxyCheckPeerCN Off
        SSLProxyCheckPeerName Off
        SSLProxyVerify none

        # Websocket proxy
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* wss://<srv_interne>%{REQUEST_URI} [P]

        ProxyPreserveHost On
        <Location />
                ProxyPass https://<srv_interne>/
                ProxyPassReverse https://<srv_interne>/
        </Location>
</VirtualHost>


Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Sv translation
languageen

Introduction

This page describes the roll-out procedure for a BlueMind Edge server as a postfix and proxy relay.

Postulate

  • BlueMind is installed on the main server
  • the role bm-edge-role is installed on the so-called "Edge" server 
  • the Edge server's nginx web server is set up as a proxy relay that serves as a main server
Volet

On this page:

Sommaire

Related:

Diagramme Gliffy
namebm-edge-role-principe

Roll-out procedure

  1. Install BlueMind on the main server following the usual procedure


    Remarque

    The storage space for BlueMind backups must be accessible on this new server at /var/backups/bluemind

  2. Install the subscription on the secondary server as a file

    Info

    Reminder: the text file for the subscription can be installed manually on a server

    • for Ubuntu / Debian as /etc/apt/sources.list.d/bm.list
    • for RedHat / CentOS as /etc/yum.repos.d/bm.repo
  3. Installer the package bm-edge-role on the edge server:

    Tabs group
    borderall-sides
    navcolornavy
    Debian/UbuntuRedHat/CentOS
  4. Add the smtp relay role to the edge server in the main server's admin panel:
    • log into BlueMind on the main server as admin0@global.virt
    • browse to System management > Application servers
    • click New > Host
    • fill in the information for the new server:

    • click "Create & edit" or "Create" then click the corresponding row to edit it
    • in the Server roles tab, check the Mail relay box then click Save:
    • back in the servers list, the server is shown with the mail relay tag mail/smtp-edge:
  5. Set up the domain so that the edge server is used as a mail relay:
    • still signed in as admin0@global.virt, browse to System management > Manage domains
    • click the row for the domain you want to configure
    • in the Mail system tab, select the edge server you have created as mail server and click Save:
  6. Set up the server to send outgoing messages through the relay:
    • still signed in as admin0@global.virt, browse to System Management > System Configuration
    • in the Mail tab, fill in the Relay host field with the IP address or the edge server's host name and click Save:


Nginx

Setting up web access

  1. Log in as root in the edge server
  2. Browse to the folder /etc/nginx/sites-available:

    Bloc de code
    bm35-edge.bluemind.loc:~# cd /etc/nginx/sites-available
  3. Create a configuration file bm-proxy and edit it, e.g. using vim:

    Bloc de code
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# vim bm-proxy
  4. Add the following command lines:

    Bloc de code
    server {
      listen 80;
      # <url_externe_bluemind> is the external url users use connect to
      server_name <url_externe_bluemind>;
    
      location / {
    	return 301 https://<url_externe_bluemind>$request_uri;
      }
    }
    
    server {
      listen 443;
      server_name <url_externe_bluemind>;
    
      ssl on;
      ssl_certificate /etc/ssl/certs/bm_cert.pem;
      ssl_certificate_key /etc/ssl/certs/bm_cert.pem;
      ssl_session_timeout 5m;
      ssl_prefer_server_ciphers on;
    
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA';
      add_header Strict-Transport-Security max-age=15768000; # six months
    
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
     location / {
    	# <srv_interne> is the main BlueMind server
        proxy_pass https://<srv_interne>;
      }
    
      location /webmail/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>/webmail/;
      }
    
      location /Microsoft-Server-ActiveSync {
        proxy_pass https://<srv_interne>/Microsoft-Server-ActiveSync;
        proxy_read_timeout 1200s;
        proxy_headers_hash_bucket_size 128;
        proxy_headers_hash_max_size 2048;
        client_max_body_size 10m;
        proxy_pass_header Server;
      } 
    
      location /eventbus {
        proxy_pass https://<srv_interne>;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
      }
    
      location /api/filehosting/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>$request_uri;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    
      location /api/attachment/ {
        client_max_body_size 0m;
        proxy_pass https://<srv_interne>$request_uri;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    
      location /fh/ {
        proxy_pass https://<srv_interne>/fh/;
        proxy_http_version 1.1;
        proxy_buffering off;
      }
    }
    
  5. Save file and exit the editor
  6. Run the following commands to set up the configuration:

    Bloc de code
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# ln -s /etc/nginx/sites-available/bm-proxy /etc/nginx/sites-enabled/
    bm35-edge.bluemind.loc:/etc/nginx/sites-available# rm /etc/nginx/sites-enabled/default
  7. Reload the nginx server configuration:

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Setting up the mail service

  1. On the edge server, copy the main server's configuration file located at /etc/nginx/global.d/bm-proxy-mail.conf. You can use scp to do this:

    Bloc de code
    bm35-edge.bluemind.loc:~# scp root@srv1.bluemind.loc:/etc/nginx/global.d/bm-mail-proxy.conf /etc/nginx/global.d/
  2. Edit the file /etc/nginx/global.d/bm-mail-proxy.conf on the relay server and replace the IP address in the line auth_http by the main server's IP address

  3. Reload the nginx configuration:

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Setting up XMPP

For the server to manage the XMPP flow:

  1. create a file /etc/nginx/global.d/bm-xmpp-proxy.conf with the following contents:

    Bloc de code
    stream {
        upstream backend_xmpp {
            least_conn;
    
                    server 1.2.3.4:5222;
                    server 1.2.3.5:5222 backup;
        }
    
        server {
            listen 5222;
            proxy_pass backend_xmpp ;
        }
    }

    and replacing 1.2.3.4 by the main server's IP address or the server with the XMPP role if appropriate

  2. Reload the nginx configuration:

    Tabs group
    borderall-sides
    navcolornavy
    BlueMind 3.5.xBlueMind 3.0.x

Apache

You can also use Apache as a proxy instead of Nginx. To do this, you need a version of Apache equal to or above 2.4 and enable the following modules:

  • mod_ssl
  • mod_proxy and mod_proxy_wstunnel
  • mod_rewrite

VirtualHost example for Apache:

Bloc de code
<VirtualHost *:80>
        Redirect / https://<url_externe_bluemind>/
</VirtualHost>

<VirtualHost *:443>
        SSLEngine On

        SSLCertificateFile     "/etc/ssl/certs/bm_cert.pem"
        SSLCertificateKeyFile  "/etc/ssl/certs/bm_cert.pem"

        SSLProxyEngine On
        SSLProxyCheckPeerCN Off
        SSLProxyCheckPeerName Off
        SSLProxyVerify none

        # Websocket proxy
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* wss://<srv_interne>%{REQUEST_URI} [P]

        ProxyPreserveHost On
        <Location />
                ProxyPass https://<srv_interne>/
                ProxyPassReverse https://<srv_interne>/
        </Location>
</VirtualHost>