Exchange with 2 domains & 1 forest

Ce tutoriel est un peu hors du commun, là où l’on parle d’UNIX, car nous allons évoquer ici une solution propriétaire, qui utilisera quelques briques libres afin de sécuriser l’infrastructure. Les composantes de ce projet sont les suivantes:

  • 1 serveur DNS UNIX, avec 3 zones (2 dynamiques pour les domaines, 1 statique pour les noms publics)
  • 4 serveurs AD (2 par domaine en mode réplication)
  • 2 serveurs mailbox Exchange en mode replication
  • 1 serveur CAS+HUB Exchange
  • 2 serveurs frontaux Postfix

Schéma Notre solution utilise à la fois IPv4 et IPv6

1 Configuration du serveur DNS

Le serveur DNS principal est un serveur de type OpenBSD 5.2. Le service DNS utilisé est named dans sa version 9, telle qu’intégrée par OpenBSD.

3 zones DNS sont déclarées sur celui-ci :

  • gsb-lab.local (mises à jour possibles par les machines)

  • gsb-comm.lan (mises à jour possibles par les machines)

  • gsb.com

1.1 Configuration globale

Voici la configuration globale du DNS :

acl client { 10.0.0.0/8; };
acl microsoft-net { 192.168.122.0/24; fd00:65b0:1234::/64; };

options { version '';
 listen-on { any; };
 listen-on-v6 { any; };
 empty-zones-enable yes;
 allow-query { any; };
 allow-recursion { microsoft-net; } ;
};

zone « . » {
 type hint;
 file « etc/root.hint »;
};

zone « localhost » {
 type master;
 file « standard/localhost »;
};

zone « 127.in-addr.arpa » {
 type master;
 file « standard/loopback »;
};

zone « gsb.com » IN {
 type master;
 file « master/gsb.com »;
 allow-update { microsoft-net; };
};

zone « gsb-lab.local » {
 type master;
 file « master/gsb-lab.local »;
 allow-update { microsoft-net; };
};

zone « gsb-comm.lan » {
 type master;
 file « master/gsb-comm.lan »;
 allow-update { microsoft-net; };
};

zone « 122.168.192.in-addr.arpa » {
 type master;
 file « master/192.168.122 »;
 allow-update { microsoft-net; };
};

L’ensemble des serveurs peut ainsi s’enregistrer dynamiquement. Le DNS est également protégé des attaques par récursivité, étant donné que seuls les serveurs peuvent faire des requêtes récursives.

1.2 Fichiers de zone

Voici le fichier de zone statique de gsb.com

 $ORIGIN .
gsb.com. IN SOA ns1.gsb.com. Hostmaster.gsb.com. (
 2013031800
 86400
 3600
 864000
 3600 )

$ORIGIN gsb.com.
@ NS ns1.gsb.com.
@ NS ns2.gsb.com.
@ IN MX 1 smtp.gsb.com.

ns1 A 192.168.122.10
 AAAA fd00:65b0:1234::10
ns2 A 192.168.122.11
smtp A 192.168.122.207
 AAAA fd00:65b0:1234::207
www A 199.254.89.2

2 Installation des annuaires Active Directory

2.1 Architecture annuaires

Pour des questions de sécurité et de performance, nous avons choisi d’installer 4 annuaires de type Active Directory 2008 R2 en mode core.

Les annuaires ont pour nom machine :

  • DC-lab1 (Annuaire principal du domaine gsb-lab.local)

  • DC-lab2 (Annuaire secondaire en réplication du domaine gsb-lab.local)

  • DC-comm1 (Annuaire principal du domaine gsb-comm.lan)

  • DC-comm2 (Annuaire secondaire en réplication du domaine gsb-comm.lan)

Chacun des annuaire dispose d’un Administrateur local ayant pour informations :

  • Login : Administrateur

  • Mot de passe : admin123&

2.2 Configuration de base

Nos 4 annuaires sont en IP fixe. Voici comment les IP ont été configurées

netsh interface ipv4 add address "Connexion au réseau local" 192.168.122.15 255.255.255.0
netsh interface ipv6 add address "Connexion au réseau local" fd00:65b0:1234::15/64

Après installation de Windows Server 2008 R2 enterprise en mode core, il convient de spécifier le DNS que doit utiliser la machine :

netsh interface ipv4 add dnsserver "Connexion au réseau local" 192.168.122.10
netsh interface ipv6 add dnsserver "Connexion au réseau local" fd00:65b0:1234::10

Ensuite pour chacune des machines, on va devoir changer son nom afin d’être cohérent avec notre convention de nommage. Sur le DC-lab1 on exécutera donc :

netdom computername WINXXXXXXXXX /add:DC-lab1.gsb-lab.local
netdom computername WINXXXXXXXXX /makeprimary:DC-lab1.gsb-lab.local
shutdown -r -t 00

Par analogie, on fera la même commande sur chacun des autres DC. Pour un potentiel besoin futur, on va installer powershell sur les 4 machines :

DISM /Online /Enable-Feature /FeatureName:NetFx2-ServerCore
DISM /Online /Enable-Feature /FeatureName:MicrosoftWindowsPowerShell

2.3 Installation du rôle contrôleur de domaine sur DC-lab1

On va maintenant installer notre premier contrôleur de domaine. Pour se faire nous aurons besoin d’un fichier unattend et du bloc note.

[DCINSTALL]
 InstallDNS=no
 ReplicaOrNewDomain=Domain
 NewDomain=forest
 NewDomainDNSName=gsb-lab.local
 DomainNetbiosName=gsb-lab
 ForestLevel=3
 DomainLevel=3
 SiteName=GSB-DC1
 DatabasePath=%systemroot%\ntds
 LogPath=%systemroot%\ntds
 SYSVOLPath=%systemroot%\sysvol
 SafeModeAdminPassword=admin123&
 RebootOnCompletion=Yes

Les options intéressantes ici sont :

  • InstallDNS:no se base sur notre DNS UNIX, qui va autoriser les enregistrements DNS de chacun des annuaires, il est donc inutile d’installer le rôle
  • ReplicaOrNewDomain:on créée ici un nouveau Domaine
  • NewDomain: Etant donné qu’il s’agit du premier contrôleur, le domaine inclut la création d’une forêt
  • NewDomainDNSName : le nom DNS du domaine
  • DomainNetbiosName : le nom Netbios du domaine
  • ForestLevel : Le 3 indique un niveau fonctionnel Windows 2008
  • DomainLevel : idem précédent
  • Sitename : le nom du site où est l’AD
  • SafeModeAdminPassword : le mot de passe de l’administrateur du domaine
  • RebootOnCompletion : on redémarre une fois terminé

Ensuite on exécute ce fichier unnattend

dcpromo /unattend:install-DC-lab1.txt

2.4 Installation du contrôleur de domaine sur DC-lab2

On va installer le contrôleur réplicat de DC-lab1. La technique est la même, seul le fichier diffère :

[DCINSTALL]
 UserName=Administrateur
 UserDomain=gsb-lab.local
 Password=admin123&
 SiteName=GSB-DC1
 ReplicaOrNewDomain=replica
 ReplicaDomainDNSName=gsb-lab.local
 DatabasePath=”%systemroot%\ntds”
 LogPath=”%systemroot%\ntds”
 SYSVOLPath=”%systemroot%\SYSVOL”
 InstallDNS=no
 ConfirmGC=yes
 SafeModeAdminPassword=admin123&
 RebootOnCompletion=yes

Les options intéressantes ici sont :

  • UserName : le nom de l’administrateur du domaine actif
  • Password : son mot de passe
  • UserDomain : le domaine à rejoindre
  • ReplicaOrNewDomain : on spécifie replica pour faire la réplication
  • ConfirmGC : on confirme qu’on se joint au domaine

et de même ensuite :

dcpromo /unattend:install-DC-lab2.txt

2.5 Installation du rôle contrôleur de domaine sur DC-comm1

Ce contrôleur de domaine doit appartenir à la forêt précédemment créer mais être dans un domaine différent. Le fichier unattend est le suivant :

[DCINSTALL]
 UserName=Administrateur
 UserDomain=gsb-lab.local
 Password=admin123&
 InstallDNS=no
 NewDomain=tree
 NewDomainDNSName=gsb-comm.lan
 SiteName=GSB-DC1
 DomainNetBiosName=gsb-comm
 ReplicaOrNewDomain=Domain
 DomainLevel=3
 DatabasePath=”%systemroot%\ntds”
 LogPath=”%systemroot%\ntds”
 SYSVOLPath=”%systemroot%\SYSVOL”
 SafeModeAdminPassword=admin123&
 RebootOnCompletion=yes

Les options intéressantes ici sont :

  • NewDomain: on ne créée pas un domaine mais un arbre dans la forêt

et comme précédemment :

dcpromo /unattend:install-DC-comm1.txt

2.6 Installation du rôle contrôleur de domaine sur DC-comm2

Ce contrôleur de domaine est la réplique du précédent. Le fichier de configuration ressemblera à celui de DC-comm1 et DC-lab2 :

[DCINSTALL]
 UserName=Administrateur
 UserDomain=gsb-lan.local
 Password=admin123&
 SiteName=GSB-DC1
 ReplicaOrNewDomain=replica
 ReplicaDomainDNSName=gsb-comm.lan
 DatabasePath=”%systemroot%\ntds”
 LogPath=”%systemroot%\ntds”
 SYSVOLPath=”%systemroot%\SYSVOL”
 InstallDNS=no
 ConfirmGC=yes
 SafeModeAdminPassword=admin123&
 RebootOnCompletion=yes

Comme auparavant :

dcpromo /unattend:install-DC-comm2.txt

3 Installation des serveurs Exchange

3.1 Architecture Exchange

L’architecture mail sera composée de 3 serveurs Exchange, 2 serveurs assurant le rôle MAILBOX et un serveur CAS. Le rôle de HUB sera délégué à des passerelles Postfix. Les serveurs Exchange on pour nom DNS :

  • Exch1
  • Exch2
  • WebM

Le rôle « Content Indexing Service » et « RPC over HTTP proxy » n’étant pas disponibles sur Windows Server 2008 R2 Enterprise (core edition), on utilisera Windows Server 2008 R2 Enterprise (Complete edition).

3.2Configuration préliminaire (utilisateur local)

Dans un premier temps, on configure le DNS sur chaque machine :

netsh interface ipv4 add dnsserver "Connexion au réseau local" 192.168.122.10
netsh interface ipv6 add dnsserver "Connexion au réseau local" fd00:65b0:1234::10

Puis on change le nom machine sur chaque serveur de la manière suivante

netdom computername WIN-XXXXXXXXX /add:Exch1.gsb-lab.local
netdom computername WIN-XXXXXXXXX /makeprimary:Exch1.gsb-lab.local
shutdown -r -t 00

Enfin on joint le domaine

netdom join Exch1 /Domain:gsb-lab.local /UserD:Administrateur /PasswordD:*
shutdown -r -t 00

Note : * signifie que nous allons être invités à entrer le mot de passe. Pour terminer on installe le .Net Framework 3.5 et les outils LDAP via powershell :

Import-Module ServerManager
Add-WindowsFeature Net-Framework
Add-WindowsFeature RSAT-ADDS
shutdown -r -t 00

Illustration 2: Installation des outils de connectivité AD

Capture d'écran de 2013-04-06 16:49:36

3.3 Installation des serveurs MailBox (administrateur du domaine)

On va configurer ici les 2 serveurs MailBox Une fois le CD inséré, on tape les commandes suivantes sur Exch1:

setup.com /PrepareDomain
setup.com /roles:MailBox /OrganizationName:GSB /InstallWindowsComponents

Le rôle HubTransport va échouer et nous inviter à aller télécharger le filter pack sur le site de Microsoft, ce que nous faisons. Ensuite on relance la commande d’installation de rôles et on patiente.

Illustration 3: Installation des rôles Exchanges

Capture d'écran de 2013-04-06 14:04:31

Sur le second serveur Exchange la procédure est plus simple, tout ayant déjà été préparé

setup.com /roles:MailBox,HubTransport /OrganizationName:GSB /InstallWindowsComponents

3.4 Installation du serveur CAS/OWA (administrateur du domaine)

On configure maintenant le serveur CAS/OWA.

setup.com /roles:ClientAccess,HubTransport /OrganizationName:GSB /InstallWindowsComponents

4 Configuration des Annuaires Active Directory

4.1 Domaine gsb-lab.local

4.1.1 Description

Le domaine GSB-lab.local représente la population des informaticiens et de la R&D de GSB. L’ensemble des utilisateurs est regroupé dans l’unité organisation GSB-People, les groupes dans l’unité d’organisation GSB-Groups et enfin les Salles de réunion dans l’unité d’organisation GSB-Salles Ce domaine contient les groupes d’utilisateurs suivants :

  • DSI
  • Informatique
  • R&D
  • Visiteurs médicaux

4.1.2 Peuplement de l’annuaire

Afin de pouvoir utiliser cette configuration on exécute les commandes suivantes sur DC-LAB1. Il faut noter que nous aurons besoin de la portée universelle afin de pouvoir utiliser les groupes DSI et R&D au niveau du serveur Exchange

dsadd ou « ou=GSB-People,dc=gsb-lab,dc=local »
dsadd ou « ou=GSB-Groups,dc=gsb-lab,dc=local »
dsadd ou « ou=GSB-Salles,dc=gsb-lab,dc=local »
dsadd group « cn=DSI,ou=GSB-Groups,dc=gsb-lab,dc=local » -scope u
dsadd group « cn=Informatique,ou=GSB-Groups,dc=gsb-lab,dc=local » -scope u
dsadd group « cn=R&D,ou=GSB-Groups,dc=gsb-lab,dc=local » -scope u
dsadd group « cn=Visiteurs médicaux,ou=GSB-Groups,dc=gsb-lab,dc=local »

4.1.3 Résultat

En exécutant la commande dsquery ou on peut donc voir les unités d’organisation suivantes dans l’annuaire : Capture d'écran de 2013-04-06 20:13:05 Et de même avec dsquery group pour les groupes : Capture d'écran de 2013-04-06 20:13:42

4.2 Domaine gsb-comm.lan

4.2.1 Description

Le domaine GSB-comm.lan représente la population des administratifs et commerciaux de GSB. L’ensemble des utilisateurs est regroupé dans l’unité d’organisation GSB-People, les groupes dans l’unité d’organisation GSB-Groups et les clients de l’entreprise dans GSB-Clients. Ce domaine contient les groupes d’utilisateurs suivants :

  • Administratifs
  • Clients
  • Communication
  • Département clientèle
  • Direction
  • Rédaction
  • Secrétariat Administratif
  • Service juridique
  • Personnels autres

4.2.2 Peuplement de l’annuaire

Afin de pouvoir utiliser cette configuration on exécute les commandes suivantes sur DC-COMM1. Il faut noter que nous aurons besoin de la portée universelle pour pouvoir utiliser certains groupes au sein du serveur Exchange

dsadd ou « ou=GSB-People,dc=gsb-comm,dc=lan »
 dsadd ou « ou=GSB-Groups,dc=gsb-comm,dc=lan »
 dsadd ou « ou=GSB-Clients,dc=gsb-comm,dc=lan »
 dsadd group « cn=Administratifs,ou=GSB-Groups,dc=gsb-comm,dc=lan » -scope u
 dsadd group « cn=Secrétariat Administratif,ou=GSB-Groups,dc=gsb-comm,dc=lan » -memberof « Administratifs » -scope u
 dsadd group « cn=Service Juridique,ou=GSB-Groups,dc=gsb-comm,dc=lan » -scope u
 dsadd group « cn=Personnels Autres,ou=GSB-Groups,gsb-comm,dc=lan »
 dsadd group « cn=Département clientèle,ou=GSB-Groups,gsb-comm,dc=lan » -scope u
 dsadd group « cn=Direction,ou=GSB-Groups,gsb-comm,dc=lan » -scope u
 dsadd group « cn=Communication,ou=GSB-Groups,gsb-comm,dc=lan » -scope u
 dsadd group « cn=Rédaction,ou=GSB-Groups,gsb-comm,dc=lan » -scope u

4.2.3 Résultat

En exécutant la commande dsquery ou on peut donc voir les unités d’organisation suivantes dans l’annuaire : Capture d'écran de 2013-04-06 20:13:23 Et de même avec dsquery group pour les groupes : Capture d'écran de 2013-04-06 20:14:04

4.2.4 Délégation des privilèges

Afin de permettre à notre second domaine de fonctionner et d’être modifié par les serveurs Exchange, on va devoir déléguer des droits sur les unités d’organisation utilisateurs et groupes. On va donner ici les droits aux administrateurs du domaine mais également au groupe de machines contenant le serveur Exchange. Schéma de droits :

  • unité d’organisation GSB-Clients :
    • Admins du domaine : contrôle total et suppression d’objets
    • Exchange Servers : contrôle total
  • unité d’organisation GSB-Groups :
    • Admins du domaine : contrôle total
    • Exchange Servers : contrôle total
  • unité d’organisation GSB-People :
    • Admins du domaine : contrôle total
    • Exchange Servers : contrôle total

Commandes :

dsacls OU=GSB-Clients,DC=GSB-comm,DC=lan /G «Admins du Domaine@gsb-lab.local»:GA
 dsacls OU=GSB-Clients,DC=GSB-comm,DC=lan /G «Exchange Servers@gsb-lab.local»:GA
 dsacls OU=GSB-Clients,DC=GSB-comm,DC=lan /G «Admins du Domaine@gsb-lab.local»:DT
 dsacls OU=GSB-Groups,DC=GSB-comm,DC=lan /G «Admins du Domaine@gsb-lab.local»:GA
 dsacls OU=GSB-Groups,DC=GSB-comm,DC=lan /G «Exchange Servers@gsb-lab.local»:GA
 dsacls OU=GSB-People,DC=GSB-comm,DC=lan /G «Admins du Domaine@gsb-lab.local»:GA
 dsacls OU=GSB-People,DC=GSB-comm,DC=lan /G «Exchange Servers@gsb-lab.local»:GA

5 Configuration des serveurs Exchange

5.1 Configuration de Exch1

Le serveur Exch1 contient les bases de données Mail « Administratif » et « R&D ». On créée les différentes bases de mail via la console powershell Exchange, puis on les monte. On attribute au passage un quota par défaut de 1Go par utilisateur, avec avertissement à 900Mo.

New-MailboxDatabase -Name «Administratif» -Server «Exch1.gsb-lab.local»
New-MailboxDatabase -Name «R&D» -Server «Exch1.gsb-lab.local»
Mount-Database «Administratif»
Mount-Database «R&D»
Set-MailboxDatabase -Identity «Administratif» -IssueWarningQuota «900MB» -ProhibitSendQuota «980MB» -ProhibitSendReceiveQuota «1GB»
Set-MailboxDatabase -Identity «R&D» -IssueWarningQuota «900MB» -ProhibitSendQuota «980MB» -ProhibitSendReceiveQuota «1GB»

Il faut noter que si on souhaite appliquer des quotas, cela s’applique au niveau utilisateurs et non groupes. De ce fait, il faudra spécifier le quota de 3Go pour chaque boîte mail d’utilisateur des groupes Commercial/Rédaction/Communication via la commande :

Set-Mailbox -Identity user@gsb-lab.local -IssueWarningQuota «2800MB» -ProhibitSendQuota «2950MB» -ProhibitSendReceiveQuota «3GB»

5.2 Configuration de Exch2

Le serveur Exch2 contient les bases de données Mail « Informatique » et « Commercial ». La technique est similaire au premier serveur :

New-MailboxDatabase -Name «Informatique» -Server «Exch2.gsb-lab.local»
New-MailboxDatabase -Name «Commercial» -Server «Exch2.gsb-lab.local»
Mount-Database «Informatique»
Mount-Database «Commercial»
Set-MailboxDatabase -Identity «Informatique» -IssueWarningQuota «900MB» -ProhibitSendQuota «980MB» -ProhibitSendReceiveQuota «1GB»
Set-MailboxDatabase -Identity «Commercial» -IssueWarningQuota «900MB» -ProhibitSendQuota «980MB» -ProhibitSendReceiveQuota «1GB»

5.3 Configuration du groupe de réplication (DAG)

Avant de configurer la réplication, vérifions la liste des bases de données Capture d'écran de 2013-04-06 18:59:12

Illustration 4: Liste des bases de boîtes mails (avant réplication)

On va maintenant configurer un groupe de réplication DAG. Celui-ci va permettre de pouvoir répliquer les bases de données de boîtes au lettres entre plusieurs serveurs Exchange. Le DAG créée un ordinateur virtuel au sein du domaine Active Directory, possédant une adresse IP partagée par les serveurs Exchange. Nous aurons également besoin d’un serveur qui supervisera la réplication (le Witness Server). Nous réutiliseront ici notre serveur OWA.

New-DatabaseAvailabilityGroup -Name «GSBDAG» -WitnessServer «WEBM»

Illustration 5: DAG (vide)

Capture d'écran de 2013-04-06 16:31:28

On ajoute ensuite les 2 serveurs Mailbox Exchange au cluster

Add-DatabaseAvailabilityGroupServer -Identity GSBDAG -MailboxServer Exch1.gsb-lab.local
 Add-DatabaseAvailabilityGroupServer -Identity GSBDAG -MailboxServer Exch2.gsb-lab.local

Illustration 6: Les 2 serveurs font partie du DAG

Capture d'écran de 2013-04-06 17:53:18

Avant de mettre en place la réplication, on peut vérifier que la mécanique de réplication est bien activée sur un réseau associé via la commande Get-DatabaseAvailabilityGroupNetwork

Illustration 7: DAG (réseau)

Capture d'écran de 2013-04-06 16:45:03

Enfin, on va répliquer les bases de données entre les serveurs Sur Exch1 :

Add-MailboxDatabaseCopy -Identity «Administratif» -MailboxServer Exch2
Add-MailboxDatabaseCopy -Identity «R&D» -MailboxServer Exch2

Sur Exch2 :

Add-MailboxDatabaseCopy -Identity «Informatique» -MailboxServer Exch1
Add-MailboxDatabaseCopy -Identity «Commercial» -MailboxServer Exch1

Une fois ces commandes lancées (ce qui peut être long), on vérifie la liste des bases de données

Illustration 8: Liste des bases de boîtes mails (après réplication)

Capture d'écran de 2013-04-06 18:59:12 (copie)

5.4 Configuration des boîtes mail

5.4.1 Configuration des contacts clients

GSB dispose d’une dizaine de gros clients faisant partie du monde médical et pharmaceutique. Ces clients sont tous connus en tant que contacts de messagerie au sein de l’organisation Exchange. Pour chaque client, un contact est connu de l’entreprise :

  • Eu-pharma : Hermann Duclorh
  • LymphoB : Armelle Michal
  • HSEA: John Darpa
  • Polukit : Jean-Claude Plisson
  • Tricoque : Henri Jacob
  • YTQ : Sophie Girond
  • HealthCare : Cassandra Jermaine
  • SantePlus : Jocelyne Pascale
  • GHB : François David-Duroi
  • YotaBeta : Viktor Kovak

On créée donc un contact de messagerie pour chaque contact externe :

New-MailContact -Name «Hermann Duclorh» -ExternalEmailAddress «SMTP:hduclorh@eu-pharma.com» -Alias «eu-pharma» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Armelle Michal» -ExternalEmailAddress «SMTP:armelle.michal@lymphob.fr» -Alias «LymphoB» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «John Darpa» -ExternalEmailAddress «SMTP:darpa@hsea.co.uk» -Alias «HSEA» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Jean-Claude Plisson» -ExternalEmailAddress «SMTP:jc.plisson@polukit.com» -Alias «Polukit» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Henri Jacob» -ExternalEmailAddress «SMTP:hjacob@tricoque.eu» -Alias «Tricoque» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Sophie Girond» -ExternalEmailAddress «SMTP:girond@ytq.de» -Alias «YTQ» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Cassandra Jermaine» -ExternalEmailAddress «SMTP:cjermaine@healthcare.com» -Alias «HealthCare» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Jocelyne Pascale» -ExternalEmailAddress «SMTP:jp@santeplus.fr» -Alias «SantePlus» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «François David-Duroi» -ExternalEmailAddress «SMTP:davidduroi@ghb.com» -Alias «GHB» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»
New-MailContact -Name «Viktor Kovak» -ExternalEmailAddress «SMTP:kovak@yotabeta.jp» -Alias «YotaBeta» -OrganizationalUnit «gsb-comm.lan/GSB-Clients» -DomainController «DC-COMM1.gsb-comm.lan»

On vérifie ensuite via la commande Get-MailContact que tout s’est bien passé :

Illustration 9: Liste des contacts

Capture d'écran de 2013-04-14 15:06:27

5.4.2 Configuration des salles de réunion

L’entreprise dispose de 3 salles de réunion. Seules la direction et la DSI peuvent réserver cette salle. Les salles sont situées dans les pièces 23, 42 et 104. On créée les 3 mailbox associées :

New-Mailbox -Name «Salle de Réunion 23» -OrganizationalUnit «gsb-lab.local/GSB-Salles» -Database «Administratif» -Room
New-Mailbox -Name «Salle de Réunion 42» -OrganizationalUnit «gsb-lab.local/GSB-Salles» -Database «Administratif» -Room
New-Mailbox -Name «Salle de Réunion 104» -OrganizationalUnit «gsb-lab.local/GSB-Salles» -Database «Administratif» -Room

Puis on vérifie qu’elles sont présentes avec la commande Get-Mailbox :

Illustration 10: Liste des salles de réunion

Capture d'écran de 2013-04-14 15:26:23

Enfin on autorise les utilisateurs du groupe DSI et du groupe Direction à pouvoir modifier les salles de réunion :

Add-MailboxPermission -Identity "Salle de Réunion 23" -User DSI@gsb-lab.local -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 23" -User «Direction@gsb-lab.local» -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 42" -User DSI@gsb-lab.local -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 42" -User «Direction@gsb-lab.local» -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 104" -User DSI@gsb-lab.local -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 104" -User «Direction@gsb-lab.local» -AccessRights FullAccess

Il n’est pas possible de mettre des permissions associées à des responsables de groupes. De ce fait, un groupe responsables a été créé sur l’DC-COMM1, symbolisant ce lien.

dsadd group « cn=Responsables,ou=GSB-Groups,dc=gsb-comm,dc=lan» -scope u

Puis ont attribue les permissions de la même manière que précédemment :

Add-MailboxPermission -Identity "Salle de Réunion 23" -User «Responsables@gsb-comm.lan» -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 42" -User «Responsables@gsb-comm.lan» -AccessRights FullAccess
Add-MailboxPermission -Identity "Salle de Réunion 104" -User «Responsables@gsb-comm.lan» -AccessRights FullAccess

5.5 Configuration des groupes de distribution

5.5.1 Groupes de distribution

Nous nous basons sur notre annuaire Active Directory afin de créer des groupes de distribution. Ceux-ci auront le même nom que ceux de l’annuaire, afin de garder une cohérence au niveau exploitation. Les groupes de distribution nécessitent des groupes à portée universelle.

Enable-DistributionGroup -Identity «gsb-lab.local/GSB-Groups/DSI» -Alias «DSI»
Enable-DistributionGroup -Identity «gsb-lab.local/GSB-Groups/Informatique» -Alias «Informatique»
Enable-DistributionGroup -Identity «gsb-lab.local/GSB-Groups/R&D» -Alias «R&D»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Administratifs» -Alias «Administratifs»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Communication» -Alias «Communication»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Département clientèle» -Alias «Département-Clientèle»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Direction» -Alias «Direction»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Rédaction» -Alias «Rédaction»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Secrétariat Administratif» -Alias «Secrétariat-Administratif»
Enable-DistributionGroup -Identity «gsb-comm.lan/GSB-Groups/Service Juridique» -Alias «Service-Juridique»

On visualise ensuite le résultat au moyen de la commande Get-DistributionGroup :

Illustration 11: Liste des groupes de distribution statiques

Capture d'écran de 2013-04-14 13:19:47

5.5.2 Groupes de distribution dynamiques

Nous aurons ensuite besoin de groupes de distribution dynamiques. Le premier groupe permet de contacter rapidement les clients. Il se basera sur l’unité d’organisation où sont regroupés les clients

New-DynamicDistributionGroup -Name «Clients» -Alias «Clients» -RecipientContainer «gsb-comm.lan/GSB-Clients» -IncludedRecipients «MailContacts» -OrganizationalUnit «gsb-comm.lan/GSB-Clients»

Le second groupe n’est pas réalisable en l’état. Le troisième groupe va utiliser un attribut personnalisé du schéma, la notion de service. Cela obligera à remplir l’attribut Exchange « service » dans le schéma.

New-DynamicDistributionGroup -Name «Distrib Direction & DSI» -Alias «directions» -RecipientContainer «gsb-comm.lan/GSB-People» -IncludedRecipients «AllRecipients» -ConditionalDepartment «Direction,DSI» -OrganizationalUnit «gsb-comm.lan/GSB-Groups»

Un second choix de configuration aurait été de créer un groupe contenant la DSI et la Direction et de lui affecter une Liste de Distribution classique, ce qui requiert moins d’exploitation. Le quatrième groupe est analogue au précédent, et les mêmes problématiques sont soulevées.

New-DynamicDistributionGroup -Name «Distrib Informatique» -Alias «informatique» -RecipientContainer «gsb-lab.local/GSB-People» -IncludedRecipients «AllRecipients» -ConditionalDepartment «Informatique» -OrganizationalUnit «gsb-lab.local/GSB-Groups»

Enfin on vérifie qu’elles sont présentes

Illustration 12: Liste des groupes de distribution dynamiques

Capture d'écran de 2013-04-14 17:09:32

5.6 Configuration du serveur Hub

5.6.1 Configuration des domaines acceptés

Afin d’autoriser la réception des mails, on va configurer la liste des noms de domaines autorisés sur notre serveur Hub.

New-AcceptedDomain -Name RootGSB -DomainName gsb.com -DomainType «Authoritative»
New-AcceptedDomain -Name «Administration GSB» -DomainName admin.gsb.com -DomainType «Authoritative»
New-AcceptedDomain -Name «Juridique GSB» -DomainName juridique.gsb.com -DomainType «Authoritative»
New-AcceptedDomain -Name «R&D GSB» -DomainName rd.gsb.com -DomainType «Authoritative»

On vérifie ensuite que tout est en ordre :

Illustration 13: Liste des domaines acceptés

Capture d'écran de 2013-04-14 11:08:01

5.6.2 Configuration des règles sur les domaines

On va maintenant configurer différences règles pour les domaines créés.

  • admin.gsb.com : ce domaine est accessible aux administratifs qui ne font pas partie du groupe Secrétariat Administratif. Il n’est pas possible d’utiliser les groupes, on va créer un flag adminnonsec dans l’attribut personnalisé LDAP numéro 1 qui identifiera ces personnes et devra être rempli à chaque création de compte/modification d’utilisateur. De plus l’utilisateur devra être dans le service « Administratifs ». On créée la stratégie.
New-EmailAddressPolicy -Name «Administratifs non secrétaires» -RecipientContainer «gsb-comm.lan/GSB-People» -EnabledEmailAddressTemplates «SMTP:%g.%s@admin.gsb.com» -IncludedRecipients «MailboxUsers» -ConditionalCustomAttribute1 «adminnonsec» -ConditionalDepartment «Administratifs»
  • Service juridique : ce domaine est accessible aux administratifs. On utilise ici la notion de service, qui devra être remplie manuellement, pour appliquer la stratégie.
New-EmailAddressPolicy -Name «Juridique» -RecipientContainer «gsb-comm.lan/GSB-People» -EnabledEmailAddressTemplates «SMTP:%g.%s@juridique.gsb.com» -IncludedRecipients «MailboxUsers» -ConditionalDepartment «Juridique»
  • R&D : ce domaine est accessible aux gens de la R&D. On utilise la notion de service, qui devra être remplie manuellement, pour appliquer la stratégie.
New-EmailAddressPolicy -Name «R&D» -RecipientContainer «gsb-comm.lan/GSB-People» -EnabledEmailAddressTemplates «SMTP:%g.%s@rd.gsb.com» -IncludedRecipients «MailboxUsers» -ConditionalDepartment «R&D»

Enfin on modifie la Default Policy afin qu’elle utilise les adresses mail @gsb.com

Set-Email-Address-Policy -Identity «Default Policy» -EnabledEmailAddressTemplates «SMTP:%g.%s@gsb.com»

5.6.3 Configuration des règles de transport

5.6.3.1 Dédit de responsabilité (clientèle)

On doit inclure un texte de dédit de responsabilité pour le département clientèle. Ce dédit ne s’applique que pour les éléments extérieurs à l’entreprise.

New-TranportRule -Name «Ext clientèle» -Enabled $true -FromMemberOf «Departement-Clientele@gsb-lab.local» -SentToScope «NotInOrganization» -ApplyHtmlDisclaimerText «GSB n'est pas responsable en cas de vol de la marchandise»

5.6.3.2 Service juridique

Le service juridique obéit à quelques contraintes. Pour le courrier interne, seules la direction, la DSI et les responsables de services peuvent les contacter.

New-TransportRule -Name «vers juridique» -Enabled $true -FromScope «InOrganization» -SentToMemberOf «Service-Juridique@gsb-lab.local» -RejectMessageReasonText «NOT ALLOWED» -RejectMessageEnhancedStatusCode «5.7.10» -ExceptIfFromMemberOf «DSI@gsb-lab.local»,«Direction@gsb-lab.local» -ExceptFromInScope «NotInOrganization» -ExceptIfSenderManagementRelationShip «Manager»

6 Configuration des serveurs frontaux SMTP

6.1 Prérequis

Afin d’avoir une architecture cohérente, on installe 2 serveurs OpenBSD 5.2 redondés et synchronisés.

6.2 Configuration du SMTP

6.2.1 Installation de postfix

Dans un premier temps nous allons installer postfix depuis les packages OpenBSD

export PKG_PATH= « http://ftp.fr.openbsd.org/pub/OpenBSD/5.2/packages/amd64/ »
pkg_add -i postfix

6.2.2 Activation du service

L’activation de postfix nécessite de désactiver sendmail, le MTA par défaut d’OpenBSD. On créée le fichier /etc/rc.conf.local avec les options suivantes :

sendmail_flags=NO
postfix_flags=«»

Puis on active le service au boot en éditant le fichier /etc/rc.local

/etc/rc.d/postfix start

6.2.3 Configuration du service

Nous devons maintenant configurer postfix afin de relayer les mails vers le serveur local. Il faut pour cela configurer tout d’abord le nom d’hôte de postfix, puis les réseaux autorisés. Enfin les noms de domaine à relayer et la carte de transport

myhostname = smtp.gsb.com
mynetworks = 127.0.0.0/8,::1, 192.168.122.0/24, fd00:65b0:1234::/64
relay_domains = gsb.com, admin.gsb.com, rd.gsb.com, juridique.gsb.com
transport_maps = hash:/etc/postfix/transport
inet_protocols = ipv4, ipv6

Pour terminer nous devons peupler notre table de transport :

gsb.com smtp:192.168.122.221:25
.gsb.com smtp:192.168.122.221:25

Enfin on génère le fichier concerné afin que postfix l’interprète et on recharge le service

postmap /etc/postfix/transport
/etc/rc.d.postfix reload

6.2.4 Configuration du serveur Hub Exchange

Pour terminer il ne nous reste plus qu’à relier notre serveur Hub Exchange au serveurs Postfix et autoriser postfix à utiliser le hub pour transférer les messages internes ; On va créer un connecteur de réception afin d’autoriser postfix à forwarder les mails GSB. Ce connecteur devra être non chiffré, anonyme autoriser uniquement la plage des serveurs SMTP.

New-ReceiveConnector -Name «SMTP GSB» -Usage Internal -Auth None -RemoteIpRanges «192.168.122.0/24» -PermissionGroups AnonymousUsers

Get-Receive Enfin on créée un connecteur d’envoi qui permettra de diriger les mails vers des destinataires hors de l’organisation.

New-SendConnector -Name «SMTP WAN GSB» -AddressSpaces «SMTP:*.gsb.com» -SmartHosts «smtp.gsb.com» -SourceTransportServer «WEBM»

New-Send Enfin on teste la réception de mails depuis l’extérieur : OWA