« Reverse proxy ActiveSync pour Serveur Microsoft Exchange » : différence entre les versions
Ligne 489 : | Ligne 489 : | ||
{{ Box Console | objet=root@SRVPROXY:~# reboot }} | {{ Box Console | objet=root@SRVPROXY:~# reboot }} | ||
== Configuration réseau == | |||
{{ Box Information | objet=Jusqu'à présent, l'équipement est configuré sur le réseau locale ''(192.168.1.0/24)''. Pour son déploiement définif, il faut lui paramétrer une adresse IP publique. }} | |||
* Editer le fichier de configuration '''/etc/network/interfaces''' puis '''ajouter/adapter''' les éléments suivants : | |||
iface enXXXX inet static | |||
address <IP_PUBLIQUE_IPV4> | |||
gateway <GW_PUBLIQUE_IPV4> | |||
Ces éléments correspondent à la configuration de l’'''adressage publique''' de l’équipement lorsqu’il est déployé en '''environnement de production'''. | |||
* Editer le fichier de configuration '''/etc/network/interfaces''' puis '''ajouter/adapter''' les éléments suivants : | |||
auto enXXXX:1 | |||
iface enpXXXX:1 inet static | |||
address 192.168.1.10/24 | |||
Ces éléments correspondent à la configuration de l’'''adressage privée''' de l’équipement lorsqu’il est déployé en '''environnement de test''' sur le réseau d’administration. | |||
* Remplacer la configuration du fichier '''/etc/resolv.conf''' par : | |||
search ncad.fr | |||
nameserver 8.8.8.8 | |||
* Pour appliquer la configuration, il est nécessaire de '''redémarrer''' le service réseau. | |||
{{ Box Console | objet=root@SRVPROXY:~# /etc/init.d/networking restart }} | |||
== Configuration supervision SNMP == | |||
* Installation du paquet '''snmpd'''. | |||
{{ Box Console | objet=root@SRVPROXY:~# apt-get install snmpd }} | |||
* Depuis le fichier de configuration '''/etc/snmp/snmpd.conf''', rechercher la ligne : | |||
sysLocation | |||
sysContact | |||
* Puis, remplacer son contenu par : | |||
sysLocation PARIS,DC5 | |||
sysContact webmaster@domaine.tld | |||
* Rechercher la ligne : | |||
agentaddress 127.0.0.1,[::1] | |||
* Puis, remplacer son contenu par : | |||
agentaddress <IP_PUBLIQUE_IPV4> | |||
* Rechercher la ligne : | |||
rocommunity public default –V systemonly | |||
* Puis, remplacer son contenu par : | |||
rocommunity public default | |||
* Redémarrer le service '''snmp''' pour appliquer les changements. | |||
{{ Box Console | objet=root@SRVPROXY:~# service snmpd restart }} | |||
[[Category:Microsoft Exchange]] | [[Category:Microsoft Exchange]] |
Version du 14 juillet 2024 à 09:36
— Serveur Web —
Certificats SSL Web | .htaccess | Authentification par carte à puce | Certificats Let's Encrypt
Archives : Ancien article sur Apache2 | Module Whois | ProFTPd
|
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.
- Depuis le menu Debian GNU/Linux installer menu (BIOS mode) sélectionner le mode Install puis taper sur Entrée.
- Depuis la liste des Languages, sélectionner French – Français puis taper sur Entrée.
- Depuis la liste des Pays (territoire ou région), sélectionner France puis taper sur Entrée.
- Depuis la liste des Disposition de clavier à utiliser, sélectionner Français puis taper sur Entrée.
- Si la configuration réseau via DHCP ne fonctionne pas :
- Au message La configuration automatique a échoué taper sur Entrée.
- 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.
- Dans le champ Adresse IP, saisir 192.168.1.10 puis taper sur Entrée.
- Dans le champ Valeur du masque-réseau, saisir 255.255.255.0 puis taper sur Entrée.
- Dans le champ Passerelle, saisir 192.168.1.1 puis taper sur Entrée.
- Dans le champ Adresses des serveurs de noms, saisir 192.168.1.1 puis taper sur Entrée.
- Dans le champ Nom de machine, saisir SRVPROXY puis taper sur Entrée.
- Dans le champ Domaine, saisir ncad.fr puis taper sur Entrée.
- Dans le champ Mot de passe du superutilisateur (‘root’), saisir <MDP_ROOT> puis taper sur Entrée.
- Dans le champ Confirmation du mot de passe, saisir de nouveau <MDP_ROOT> puis taper sur Entrée.
- Dans le champ Nom complet du nouvel utilisateur, saisir SRVPROXY puis taper sur Entrée.
- Dans le champ Identifiant pour le compte utilisateur, saisir de nouveau SRVPROXY puis taper sur Entrée.
- Dans le champ Mot de passe pour le nouvel utilisateur, saisir <MDP_LOGIN> puis taper sur Entrée.
- Dans le champ Confirmation du mot de passe, saisir <MDP_LOGIN> puis taper sur Entrée.
- Depuis la liste Méthode de partitionnement, sélectionner Assisté – utiliser tout un disque avec LVM.
- Depuis la liste Disque à partitionner, sélectionner SCSI1 (0,0,0) (sda) – XXX GB ATA XXX puis taper sur Entrée.
- Depuis la liste Schéma de partitionnement, sélectionner Partition /home séparée puis taper sur Entrée.
- À la question Ecrire les modifications sur les disques et configurer LVM, tabuler sur Oui puis taper sur Entrée.
- Depuis le champ Quantité d’espace sur le groupe de volumes pour le partitionnement assisté, saisir la valeur 10% puis taper sur Entrée.
- À la question Faut-il appliquer les changements sur les disques, tabuler sur Oui puis taper sur Entrée.
- Depuis la liste de sélection Pays du miroir de l’archive Debian, sélectionner France puis taper sur Entrée.
- Depuis la liste Miroir de l’archive Debian, sélectionner deb.debian.org puis taper sur Entrée.
- Depuis le champ Mandataire http (laisser vide si aucun), laisser vide puis taper sur Entrée.
- Si la machine ne parvient pas à se connecter aux serveurs de mise à jour Debian :
- À 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.
- À la question Faut-il continuer sans miroir sur le réseau, tabuler sur Oui puis taper sur Entrée .
- À la question Souhaitez-vous participer à l’étude statistique sur l’utilisation des paquets, tabuler sur Non puis taper sur Entrée.
- Depuis la liste des Logiciels à installer :
- Sélectionner utilitaires usuels du système et serveur SSH.
- Désélectionner environnement de bureau Debian et …GNOME puis tabuler sur Continuer et taper sur Entrée.
- À la question Installer le programme de démarrage GRUB sur le disque principal, tabuler sur Oui puis taper sur Entrée.
- 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.
- À 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. |
- À l’invite de commande, saisir le login SRVPROXY puis le mot de passe associé. Taper sur Entrée pour valider.
- Une fois connecter, basculer sur le compte root à l’aide de la commande :
su -
- Pour récupérer l’adresse IP locale de l’équipement, saisir la commande :
ip addr
- 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
- Procéder à la mise à jour du système d’exploitation avec la commande :
dist-upgrade
et répondre O si besoin. - 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 - Rafraîchir la liste des dépôts Debian avec la commande :
apt-get update
- 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/ :
|
|
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 :
|
|
- Création du répertoire hébergeant la configuration de l’autorité de certification :
|
|
- Restriction d’accès au répertoire à l’utilisateur SRVPROXY uniquement :
|
|
- Initialisation de l’Infrastructure de Clés Publiques (ICP) :
|
|
- 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é :
|
|
- À 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 :
|
|
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 :
|
|
- Génération de la clé privée pour l’utilisateur CACHELN :
|
|
- Génération de la demande de certificat pour l’utilisateur CACHELN (adapter les éléments en rouge) :
|
|
- Importation de la demande de signature par l’autorité de certification :
|
|
- Signature du certificat (la saisie de la Passphrase de l’AC sera requise) :
|
|
- Exportation du certificat de l’utilisateur au format p12 (format exploitable par les terminaux utilisateurs) :
|
|
- Copier le certificat dans le répertoire SFTP /home/SRVPROXY/clients-csr pour pouvoir être téléchargé via un client SFTP :
|
|
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) :
|
|
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) :
|
|
- Procéder à la régénération de la CRL depuis la commande gen-crl :
|
|
- Copier le fichier dans le répertoire d’exploitation /etc/ssl/private :
|
|
- Redémarrer le service Apache2 pour la prise en compte des modifications :
|
|
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 :
|
|
- Activation des modules proxy_http, headers, proxy_http, ssl, rewrite et speling :
|
|
- Tout changement de configuration nécessite le redémarrage du service :
|
|
- 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 :
|
|
- 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 :
|
|
- Pour appliquer les paramètres, redémarrer le service.
|
|
- 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/.
Authentification par certificat
- Copie du certificat de l’AC dans le répertoire d’exploitation /etc/ssl/certs :
|
|
- Modifier la configuration du fichier /etc/apache2/sites-available/activesync.ncad.fr.conf et y ajouter 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.wiki.ncad" 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 SSLCACertificateFile /etc/ssl/certs/ca.crt SSLOptions +StdEnvVars SSLVerifyClient require SSLVerifyDepth 10 SSLCARevocationFile /etc/ssl/private/crl.pem SSLCARevocationCheck chain <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>
- Pour appliquer les paramètres, redémarrer le service.
|
|
- 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/.
- Vérifier l’existance du fichier /etc/ssl/private/crl.pem. Si ce dernier n’a pas été généré, reportez vous au chapitre Intégration de l’AC au système d’exploitation section Révocation Certificat .
Filtrage par le Device ID
- Modifier la configuration du fichier /etc/apache2/sites-available/activesync.ncad.fr.conf et y ajouter 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.wiki.ncad" 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 SSLCACertificateFile /etc/ssl/certs/ca.crt SSLOptions +StdEnvVars SSLVerifyClient require SSLVerifyDepth 10 SSLCARevocationFile /etc/ssl/private/crl.pem SSLCARevocationCheck chain <Location /Microsoft-Server-ActiveSync> ProxyPass https://firewall.ncad.fr:44300/Microsoft-Server-ActiveSync ProxyPassReverse https://firewall.ncad.fr:44300/Microsoft-Server-ActiveSync SSLRequireSSL RewriteBase / RewriteCond %{THE_REQUEST} "!(^OPTIONS /Microsoft-Server-ActiveSync HTTP/1.[0-1]$)|(DeviceId\=)(monidentifiantandroid_01|monidentifiantandroid_02)" RewriteRule . / [R=403,L] </Location> </VirtualHost>
- Remplacer monidentifiantandroid_XX par l’identifiant du téléphone à autoriser.
- Pour appliquer les paramètres, redémarrer le service :
|
|
- 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/.
Paramétrage du pare-feu
Matrice des flux autorisés
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement.
Source | Protocole(s) | Port(s) | Description |
---|---|---|---|
192.168.1.0/24 | tcp | 22 | Accès SSH, SFTP depuis le LAN. |
<IP_PUBLIQUE_IPV4> | tcp | 22 | Accès SSH, SFTP depuis le WAN. |
192.168.1.0/24 | udp | 161,162 | Supervision SNMP depuis le LAN. |
<IP_PUBLIQUE_IPV4> | udp | 161,162 | Supervision SNMP depuis le WAN. |
192.168.1.0/24 | icmp | — | Requête ping depuis le LAN. |
<IP_PUBLIQUE_IPV4> | icmp | — | Requête ping depuis le WAN. |
* | tcp | 443 | Accès ActiveSync. |
Configuration iptables sur la couche IPv4
- Installation des paquets iptables (pare-feu) et iptables-persistent (sauvegarde persistante de la configuration) :
|
|
- Ajout des règles iptables conformément à la matrice des flux renseignées précédemment :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système :
|
|
Configuration ip6tables sur la couche IPv6
- Blocage des requêtes IPv6 :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système :
|
|
Désactivation de IPv6
- Editer le fichier /etc/sysctl.conf puis ajouter la ligne suivante à la fin :
net.ipv6.conf.all.disable_ipv6 = 1
- Un redémarrage de l’équipement est nécessaire :
|
|
Configuration réseau
|
Jusqu'à présent, l'équipement est configuré sur le réseau locale (192.168.1.0/24). Pour son déploiement définif, il faut lui paramétrer une adresse IP publique. |
- Editer le fichier de configuration /etc/network/interfaces puis ajouter/adapter les éléments suivants :
iface enXXXX inet static address <IP_PUBLIQUE_IPV4> gateway <GW_PUBLIQUE_IPV4>
Ces éléments correspondent à la configuration de l’adressage publique de l’équipement lorsqu’il est déployé en environnement de production.
- Editer le fichier de configuration /etc/network/interfaces puis ajouter/adapter les éléments suivants :
auto enXXXX:1 iface enpXXXX:1 inet static address 192.168.1.10/24
Ces éléments correspondent à la configuration de l’adressage privée de l’équipement lorsqu’il est déployé en environnement de test sur le réseau d’administration.
- Remplacer la configuration du fichier /etc/resolv.conf par :
search ncad.fr nameserver 8.8.8.8
- Pour appliquer la configuration, il est nécessaire de redémarrer le service réseau.
|
|
Configuration supervision SNMP
- Installation du paquet snmpd.
|
|
- Depuis le fichier de configuration /etc/snmp/snmpd.conf, rechercher la ligne :
sysLocation sysContact
- Puis, remplacer son contenu par :
sysLocation PARIS,DC5 sysContact webmaster@domaine.tld
- Rechercher la ligne :
agentaddress 127.0.0.1,[::1]
- Puis, remplacer son contenu par :
agentaddress <IP_PUBLIQUE_IPV4>
- Rechercher la ligne :
rocommunity public default –V systemonly
- Puis, remplacer son contenu par :
rocommunity public default
- Redémarrer le service snmp pour appliquer les changements.
|
|