Reverse proxy ActiveSync pour Serveur Microsoft Exchange

De NCad Wiki
Aller à la navigation Aller à la recherche

Serveur Web

Installation d'Apache2 Paramétrage courant

Certificats SSL Web | .htaccess | Authentification par carte à puce | Certificats Let's Encrypt


Archives : Ancien article sur Apache2 | Module Whois | ProFTPd


Note de version

Cet article est en cours de rédaction.

Prérequis

  • Disposer d'un PC qui sera dédié à cette fonction.
  • Disposer d'une adresse IPv4 publique fixe dédiée pour cet équipement.

Installation du système d’exploitation Debian Bullseye

  • Adapter les élément en rouge à votre configuration.
  1. Depuis le menu Debian GNU/Linux installer menu (BIOS mode) sélectionner le mode Install puis taper sur Entrée.
  2. Depuis la liste des Languages, sélectionner French – Français puis taper sur Entrée.
  3. Depuis la liste des Pays (territoire ou région), sélectionner France puis taper sur Entrée.
  4. Depuis la liste des Disposition de clavier à utiliser, sélectionner Français puis taper sur Entrée.
  5. Si la configuration réseau via DHCP ne fonctionne pas :
    1. Au message La configuration automatique a échoué taper sur Entrée.
    2. Depuis la liste Méthode pour la configuration du réseau, sélectionner Configurer vous-même le réseau puis taper sur Entrée.
    3. Dans le champ Adresse IP, saisir 192.168.1.10 puis taper sur Entrée.
    4. Dans le champ Valeur du masque-réseau, saisir 255.255.255.0 puis taper sur Entrée.
    5. Dans le champ Passerelle, saisir 192.168.1.1 puis taper sur Entrée.
    6. Dans le champ Adresses des serveurs de noms, saisir 192.168.1.1 puis taper sur Entrée.
  6. Dans le champ Nom de machine, saisir SRVPROXY puis taper sur Entrée.
  7. Dans le champ Domaine, saisir ncad.fr puis taper sur Entrée.
  8. Dans le champ Mot de passe du superutilisateur (‘root’), saisir <MDP_ROOT> puis taper sur Entrée.
  9. Dans le champ Confirmation du mot de passe, saisir de nouveau <MDP_ROOT> puis taper sur Entrée.
  10. Dans le champ Nom complet du nouvel utilisateur, saisir SRVPROXY puis taper sur Entrée.
  11. Dans le champ Identifiant pour le compte utilisateur, saisir de nouveau SRVPROXY puis taper sur Entrée.
  12. Dans le champ Mot de passe pour le nouvel utilisateur, saisir <MDP_LOGIN> puis taper sur Entrée.
  13. Dans le champ Confirmation du mot de passe, saisir <MDP_LOGIN> puis taper sur Entrée.
  14. Depuis la liste Méthode de partitionnement, sélectionner Assisté – utiliser tout un disque avec LVM.
  15. Depuis la liste Disque à partitionner, sélectionner SCSI1 (0,0,0) (sda) – XXX GB ATA XXX puis taper sur Entrée.
  16. Depuis la liste Schéma de partitionnement, sélectionner Partition /home séparée puis taper sur Entrée.
  17. À la question Ecrire les modifications sur les disques et configurer LVM, tabuler sur Oui puis taper sur Entrée.
  18. Depuis le champ Quantité d’espace sur le groupe de volumes pour le partitionnement assisté, saisir la valeur 10% puis taper sur Entrée.
  19. À la question Faut-il appliquer les changements sur les disques, tabuler sur Oui puis taper sur Entrée.
  20. Depuis la liste de sélection Pays du miroir de l’archive Debian, sélectionner France puis taper sur Entrée.
  21. Depuis la liste Miroir de l’archive Debian, sélectionner deb.debian.org puis taper sur Entrée.
  22. Depuis le champ Mandataire http (laisser vide si aucun), laisser vide puis taper sur Entrée.
  23. Si la machine ne parvient pas à se connecter aux serveurs de mise à jour Debian :
    1. À l’affichage de l’erreur Veuillez vérifier le miroir indiqué ou en essayer un autre, tabuler sur Revenir en arrière sur puis taper sur Entrée.
    2. À la question Faut-il continuer sans miroir sur le réseau, tabuler sur Oui puis taper sur Entrée .
  24. À la question Souhaitez-vous participer à l’étude statistique sur l’utilisation des paquets, tabuler sur Non puis taper sur Entrée.
  25. Depuis la liste des Logiciels à installer :
    1. Sélectionner utilitaires usuels du système et serveur SSH.
    2. Désélectionner environnement de bureau Debian et …GNOME puis tabuler sur Continuer et taper sur Entrée.
  26. À la question Installer le programme de démarrage GRUB sur le disque principal, tabuler sur Oui puis taper sur Entrée.
  27. Depuis la liste Périphérique où sera installé le programme de démarrage, tabuler sur /dev/sda (ata-XXX_XXXXXXXXXXXXXXXX) puis taper sur Entrée.
  28. À l’affichage de la fenêtre Installation terminée, retirez le support d’installation UBS puis taper sur Continuer pour redémarrer l’équipement.

Installation de base

Cette section est nécessaire uniquement si vous avez rencontré des problèmes de connexion réseau tel que décrit au point 23 de la section précédente.

Avant de poursuivre, vérifier sur votre pare-feu que la machine est autorisée à sortir sur Internet.

  1. À l’invite de commande, saisir le login SRVPROXY puis le mot de passe associé. Taper sur Entrée pour valider.
  2. Une fois connecter, basculer sur le compte root à l’aide de la commande :
    su -
  3. Pour récupérer l’adresse IP locale de l’équipement, saisir la commande :
    ip addr
  4. Une fois l’accès à Internet autorisé, mettre à jour la liste des paquets depuis les dépôts Debian avec la commande :
    apt-get update
  5. Procéder à la mise à jour du système d’exploitation avec la commande :
    dist-upgrade

    et répondre O si besoin.
  6. Editer le fichier de configuration /etc/apt/sources.list et y ajouter à la fin les lignes suivantes :
    deb http://deb.debian.org/debian/ bullseye main
    deb-src http://deb.debian.org/debian/ bullseye main

    deb http://deb.debian.org/debian/ bullseye-updates main
    deb-src http://deb.debian.org/debian/ bullseye-updates main
  7. Rafraîchir la liste des dépôts Debian avec la commande :
    apt-get update
  8. Puis, relancer l’installation des paquets openssh-server et vim en lançant la commande :
    apt-get install openssh-server vim sshpass zip mutt
    .

Génération du certificat auto signé pour le serveur web

  • Génération de la clé privée et enregistrement dans le fichier activesync.ncad.fr.key :
    openssl genrsa -out activesync.ncad.fr.key 2048
  • Génération de la demande de certificat :
    openssl req –new –key activesync.ncad.fr.key –out activesync.ncad.fr.csr
Generating RSA private key, 2048 bit long modulus (2 primes)
.................................................................................................................+++++
..............................+++++
e is 65537 (0x010001)
  • Une fois la clé privée générée, procéder à la génération du fichier de demande de certificat et l'enregistrer dans le fichier activesync.ncad.fr.csr :
    openssl req -new -key activesync.ncad.fr.key -out activesync.ncad.fr.csr
  • Puis, répondre au question du prompt en adaptant les éléments en rouge :
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:FRANCE
Locality Name (eg, city) []:FIGEAC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:NCAD
Organizational Unit Name (eg, section) []:Direction des Systèmes d'Information
Common Name (e.g. server FQDN or YOUR name) []:mail.ncad.fr
Email Address []:noc@ncad.fr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:***
An optional company name []:
  • Signature du certificat à l'aide du fichier de demande de certificat et de la clé privée :
    openssl x509 –req –days 3650 –in activesync.ncad.fr.csr –signkey activesync.ncad.fr.key –out activesync.ncad.fr.crt
  • Déplacement de la clé privée et du certificat dans le répertoire /etc/ssl/private/ :

mv activesync.ncad.fr.crt /etc/ssl/private/
mv activesync.ncad.fr.key /etc/ssl/private/

Installation de l’autorité de certification (AC)

L’autorité de certification est gérée avec le programme easy-rsa. Ce dernier permet l’installation de l’AC ainsi que les opérations courantes sur cette dernière.

  • Installation du paquet easy-rsa :

root@SRVPROXY:~# apt-get install easy-rsa -y

  • Création du répertoire hébergeant la configuration de l’autorité de certification :

root@SRVPROXY:~# mkdir /home/SRVPROXY/easy-rsa
root@SRVPROXY:~# ln –s /usr/share/easy-rsa/* /home/SRVPROXY/easy-rsa

  • Restriction d’accès au répertoire à l’utilisateur SRVPROXY uniquement :

root@SRVPROXY:~# chmod 700 /home/SRVPROXY -R

  • Initialisation de l’Infrastructure de Clés Publiques (ICP) :

root@SRVPROXY:~# cd /home/SRVPROXY/easy-rsa
root@SRVPROXY:~# ./easyrsa init-pki

  • Editer le fichier /home/SRVPROXY/easy-rsa/vars puis y insérer les lignes suivantes (adapter les éléments en rouge) :
set_var EASYRSA_REQ_COUNTRY    "FR"
set_var EASYRSA_REQ_PROVINCE   "OCCITANIE"
set_var EASYRSA_REQ_CITY       "FIGEAC"
set_var EASYRSA_REQ_ORG        "NCAD"
set_var EASYRSA_REQ_EMAIL      "noc@ncad.fr"
set_var EASYRSA_REQ_OU         "Direction des Systèmes d'Information"
set_var EASYRSA_ALGO           "ec"
set_var EASYRSA_DIGEST         "sha512"
  • Génération de la paire de clés root public et privé :

root@SRVPROXY:~# ./easyrsa build-ca

  • À la demande du prompt, renseigner une Passphrase secrète. Elle sera demandée pour toutes opérations sur L’Autorité de Certification (création de certificats, renouvellement, révocation).
  • À la demande d’un Common Name (CN) taper Entrée.

Intégration de l’AC au système d’exploitation

Si le certificat racine de l’AC n’est pas intégrée au système d’exploitation du client, ce dernier retournera un message d’alerte de sécurité pour tous les certificats délivrée pas l’AC.

  • Exportation du certificat publique de l’autorité de certification :

root@SRVPROXY:~# cp /home/SRVPROXY/easy-rsa/pki/ca.crt /etc/ssl/certs/

Génération d’un certificat client

Ce certificat sera à installer sur le terminal de l’utilisateur.

  • Création du répertoire spécifique pour les demandes de certificats des utilisateurs :

root@SRVPROXY:~# mkdir /home/SRVPROXY/clients-csr

  • Génération de la clé privée pour l’utilisateur CACHELN :

root@SRVPROXY:~# cd /home/SRVPROXY/clients-csr
root@SRVPROXY:~# openssl genrsa -out CACHELN_19052022.key

  • Génération de la demande de certificat pour l’utilisateur CACHELN (adapter les éléments en rouge) :

root@SRVPROXY:~# openssl req –new –key CACHELN_19052022.key –out CACHELN_19052022.req
Country Name (2 letter code) [XX]:FR
State or Province Name (full name) []:OCCITANIE
Locality Name (eg, city) [Default City]:FIGEAC
Organization Name (eg, company) [Default Company Ltd]:NCAD
Organizational Unit Name (eg, section) []:Direction des Systèmes d'Information
Common Name (eg, your name or your server's hostname) []:CACHELN
Email Address []:cach3ln@ncad.fr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:<NE_RIEN_SAISIR>
An optional company name []:<NE_RIEN_SAISIR>

  • Importation de la demande de signature par l’autorité de certification :

root@SRVPROXY:~# cd ../easy-rsa
root@SRVPROXY:~# ./easyrsa import-req ../clients-csr/CACHELN_19052022.req CACHELN_19052022

  • Signature du certificat (la saisie de la Passphrase de l’AC sera requise) :

root@SRVPROXY:~# ./easyrsa sign-req client CACHELN_19052022

  • Exportation du certificat de l’utilisateur au format p12 (format exploitable par les terminaux utilisateurs) :

root@SRVPROXY:~# openssl pkcs12 -export -out pki/private/CACHELN_19052022.p12 -in pki/issued/CACHELN_19052022.crt -inkey ../clients-csr/CACHELN_19052022.key

  • Copier le certificat dans le répertoire SFTP /home/SRVPROXY/clients-csr pour pouvoir être téléchargé via un client SFTP :

root@SRVPROXY:~# cp pki/private/CACHELN_19052022.p12 /home/SRVPROXY/clients-csr
root@SRVPROXY:~# chmod 777 /home/SRVPROXY/clients-csr/*

Renouveller un certificat

Le certificat doit expirer dans moins de 30 jours pour pouvoir être renouvelé.

  • Depuis le répertoire d’installation de l’AC, utiliser l’utilitaire easyrsa suivit de la commande renew pour reconduire la validité du certificat d’un utilisateur (la saisie de la Passphrase de l’AC sera requise) :

root@SRVPROXY:~# cd /home/SRVPROXY/easy-rsa
root@SRVPROXY:~# ./easyrsa renew CACHELN_19052022

Révocation d’un certificat

  • Depuis le répertoire d’installation de l’AC, utiliser l’utilitaire easyrsa suivit de la commande revoke pour mettre fin à la validité du certificat d’un utilisateur (la saisie de la Passphrase de l’AC sera requise) :

root@SRVPROXY:~# cd /home/SRVPROXY/easy-rsa
root@SRVPROXY:~# ./easyrsa revoke CACHELN_19052022

  • Procéder à la régénération de la CRL depuis la commande gen-crl :

root@SRVPROXY:~# ./easyrsa gen-crl

  • Copier le fichier dans le répertoire d’exploitation /etc/ssl/private :

root@SRVPROXY:~# cp pki/crl.pem /etc/ssl/private

  • Redémarrer le service Apache2 pour la prise en compte des modifications :

root@SRVPROXY:~# /etc/init.d/apache2 restart

Configuration du service Apache2

Le service Apache2 assure la fonction de Reverse Proxy. Il sera chargé d’écouter les requêtes et de les transmettre au serveur Microsoft Exchange. Il pourra également assurer les fonctions de filtrage basé sur le Device Id ainsi que l’authentification par certificat.

Installation du service

  • Installation du serveur web Apache2 :

root@SRVPROXY:~# apt-get install apache2 -y

  • Activation des modules proxy_http, headers, proxy_http, ssl, rewrite et speling :

root@SRVPROXY:~# a2enmod proxy headers proxy_http ssl rewrite speling

  • Tout changement de configuration nécessite le redémarrage du service :

root@SRVPROXY:~# service apache2 restart

  • En cas d’erreur, vérifier les logs enregistrés dans /var/log/syslog ainsi que ceux d’Apache2 situés dans /var/log/apache2/.

Configuration de base

  • Editer le fichier de configuration /etc/apache2/sites-availables/000-default :
  • Adapter la ligne suivante :
ServerAdmin noc@ncad.fr
  • Commenter la ligne :
#DocumentRoot /var/www/html
  • Puis ajouter à la suite la ligne :
Redirect "/" "http://www.ncad.wiki"
  • Pour appliquer les paramètres, redémarrer le service :

root@SRVPROXY:~# service apache2 restart

  • En cas d’erreur, vérifier les logs enregistrés dans /var/log/syslog ainsi que ceux d’Apache2 situés dans /var/log/apache2/.

Création du vhost ActiveSync.ncad.fr

Ce vhost est dédié au trafique ActiveSync de Microsoft Exchange pour la synchronisation des terminaux mobiles.

  • Créer le fichier de configuration /etc/apache2/sites-available/activesync.ncad.fr.conf et y insérer les éléments suivants (adapter les éléments en rouge) :
ProxyRequests Off
RewriteEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

<VirtualHost *:443>
	ServerAdmin noc@ncad.fr
	ServerName mail.ncad.fr
	Redirect "/" "http://www.ncad.wiki"
	ProxyPreserveHost On
	ProxyVia Full
	RequestHeader edit Transfer-Encoding Chunked chunked early
	RequestHeader unset Accept-Encoding
	CheckSpelling On
	TimeOut 1800

	SSLCertificateFile /etc/ssl/private/activesync.ncad.fr.crt
	SSLCertificateKeyFile /etc/ssl/private/activesync.ncad.fr.key

	<Location /Microsoft-Server-ActiveSync>
		ProxyPass https://firewall.ncad.fr:44300/Microsoft-Server-ActiveSync
		ProxyPassReverse https://firewall.ncad.fr:44300/Microsoft-Server-ActiveSync
		SSLRequireSSL
	</Location>
</VirtualHost>
  • Chargement du vhost dans la configuration courante d’Apache2 :

root@SRVPROXY:~# a2ensite activesync.ncad.fr

  • Pour appliquer les paramètres, redémarrer le service.

root@SRVPROXY:~# service apache2 restart

  • En cas d’erreur, vérifier les logs enregistrés dans /var/log/syslog ainsi que ceux d’Apache2 situés dans /var/log/apache2/.