Environnement des outils de gestion Comme nous allons utiliser principalement des outils orientés Web pour la gestion de notre domaine, pour que ceux-ci fonctionnent autant sous Windows que sous Linux, nous allons utiliser Apache 2.2 et plus comme plateforme web de base. L installation que nous allons effectuer a été conçu en conséquence que ce serveur hébergera exclusivement des outils de gestion pour le domaine, tel que: phpldapadmin, phpmyadmin, phpprintanalyser, Zabbix, Apcupsd, etc. NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel. Définition du FQDN Lorsque vous prévoyez faire utilisez des certificats SSL pour vos sites Web, il est intéressant d avoir un bon Fully Qualified Domain Name (FQDN). Cela évite d avoir des messages d erreur au démarrage du service Apache ou lors de l acceptation du certificat. Pour ce faire, nous allons utiliser les configurations qui suivent. Dans le fichier /etc/hosts du serveur, entrer le nom du serveur qui héberge le service Apache, par exemple: 192.168.0.2 serveurpdc.cybiolab.lan serveurpdc ATTENTION: L ordre dans lequel vous entrez les valeurs de correspondance dans le fichier hosts ont une importance. Saisissez donc en premier le nom d hôte (FQDN) suit du nom de la machine. Ensuite dans le fichier /etc/conf.d/net, entrer le nom du domaine dont fait parti votre serveur Apache ainsi qu'un serveur de résolution de nom de domaine valide (interne). Noter que ce serveur Apache doit servir uniquement des usages internes et ne doit pas être exposé sur Internet. 139
vim /etc/conf.d/net dns_servers_eth0="192.168.0.2" dns_domain_eth0="cybiolab.lan" dns_search_eth0="cybiolab.lan" Enfin pour valider que tout fonctionne correctement, utiliser la commande: hostname -f Vous devriez obtenir le résultat. serveurpdc.cybiolab.lan NOTE: Le fait d avoir un FQDN correctement configuré n empêchera pas d avoir un avertissement indiquant que le certificat est auto-signé. Installation d Apache 2.2 et plus Notre choix d installer les outils de gestion sur notre contrôleur de domaine principal se base simplement par choix et question pratico-pratique. Pour débuter l administration et la gestion de notre domaine. Il sera plus pratique d avoir nos outils fonctionnel le plus rapidement possible; Nous recommandons que les utilisateurs s authentifient principalement sur le contrôleur de domaine secondaire. Donc il est hors de question de mettre nos outils sur ce serveur; Nous allons sécuriser au maximum l accès au contrôleur de domaine principal; Encore une fois avant de faire l installation, nous allons ajouter les USE flags directement dans le fichier package.use. vim /etc/portage/package.use www-servers/apache apache2 ssl ldap threads Puis procédons à l installation du service web Apache 2.x. emerge -va apache 140
Nous allons maintenant ajouter le service Apache au démarrage de serveur. rc-update add apache2 default Pour terminer l installation de notre serveur web, nous allons ajouter le support de PHP pour Apache. Encore une fois avant de faire l installation, nous allons ajouter les USE flags directement dans le fichier package.use. vim /etc/portage/package.use dev-lang/php apache2 pcre session ssl gd mysql unicode ldap xml threads simplexml bcmath curl Faites l installation de l application PHP 5.x sur le serveur. emerge -va dev-lang/php Seul les USE flags apache2, pcre, session, xml, ldap et ssl sont nécessaires pour l installation de PHP 5.x pour cette étape. Les autres USE flags vont être nécessaires pour plus tard. NOTE: Le paquetage apr-util doit aussi avoir le USE flag LDAP d activé. Création du certificat SSL Question de sécuriser nos outils orientés web pour l administration et de la gestion de notre domaine, nous allons utiliser uniquement le protocole HTTPS. Ceci va empêcher que nos mots de passe et informations soient vu par tous sur le réseau. Créer vous d abord un emplacement sécuritaire pour la création de vos clefs. Il ne faudrait pas qu elles soient compromises avant d être utilisé. cd root mkdir clefsweb cd clefsweb 141
Nous allons faire la création des clefs pour notre service Apache. openssl genrsa -out./server.key 1024 Puis nous faire une requête de certification. Cette étape plusieurs questions vont vous êtes posées concernant des informations sur votre domaine, votre serveur ainsi que votre organisation. Ce que nous allons entrer va correspondre à un DN (Distinguished Name). Il est important que le nom entré dans le "Common Name" corresponde à celui de votre serveur, à celui trouvé dans le fichier hosts ainsi que dans le fichier vhost du module SSL d Apache (que nous n avons pas encore configuré). Pour être sure d avoir la bonne valeur, saisissez la commande hostname -f Lancer maintenant votre requête de certification. openssl req -new -key server.key -out server.csr Ne mettez surtout pas de "challenge password", ce n est pas utile pour ce que nous allons en faire. Country Name (2 letter code) [AU]:CA State or Province Name (full name) [Some-State]:Quebec Locality Name (eg, city) [ ]:Trois-Rivieres Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cybiolab Organizational Unit Name (eg, section) [ ]:reseautique Common Name (eg, YOUR name) [ ]:serveurpdc Email Address [ ]:root@cybiolab.lan Please enter the following 'extra' attributes to be sent with your certificate request A challenge password [ ]: An optional company name [ ]: NOTE: Pour ne pas à avoir à saisir à chaque fois les informations cidessus, vous pouvez modifier le fichier /etc/ssl/openssl.cnf. 142
Procédons maintenant à la création de la clef auto-signée. Dans la commande suivante, le nombre "N" doit être incrémenté pour chaque nouveau certificat désiré. Pour nos besoins mettrez cette valeur à 1 pour un seul certificat. openssl x509 -req -days 365 -set_serial N -in server.csr -signkey server.key -out server.crt Vous devriez obtenir un résultat similaire. Signature ok subject=/c=ca/st=quebec/l=trois- Rivieres/O=Cybiolab/OU=reseautique/CN=serveurpdc /emailaddress=root@cybiolab.lan Getting Private key Pour faire la visualisation les détails contenus dans la certification. openssl x509 -in server.crt -noout -text Déploiement des certificats SSL Copions les certificats dans leur destination finale pour leur utilisation avec Apache. mkdir /etc/apache2/ssl/ cp server.key /etc/apache2/ssl/ cp server.crt /etc/apache2/ssl/ Nous retrouverons dans les fichiers 00_default_ssl_*.conf la référence vers ces clefs. SSLCertificateFile conf/ssl/server.crt SSLCertificateKeyFile conf/ssl/server.key Éditons le fichier /etc/conf.d/apache2 et modifier la valeur du paramètre APACHE2_OPTS de cette façon. vim /etc/conf.d/apache2 APACHE2_OPTS="-D SSL_DEFAULT_VHOST -D SSL -D PHP5 -D LDAP -D AUTHNZ_LDAP" 143
NOTE: Remarquer que nous avons aussi enlevé la valeur DEFAULT_VHOST pour l instant et nous enlèverons SSL_DEFAULT_VHOST dans la prochaine unité. L application de ces options de configuration permettra d activer le support du SSL, de PHP5 et de l authentification LDAP avec notre service Apache. Module SSL PHP5 LDAP et AUTHNZ_LDAP Configuration d Apache 2.x Description Autorise l utilisation de SSL. Autorise l utilisation de PHP5. Permet le support et l authentification par mod_ldap. Nous allons déplacer le fichier de configuration 00_default_vhost.conf, ce afin qu il ne soit pas confondu dans le temps avec les vrais fichiers de configuration. cd /etc/apache2/vhosts.d/ mv 00_default_vhost.conf../ Pour les besoins de vérification, assurez que le port d écoute HTTPS est bien défini. vim /etc/apache2/vhosts.d/00_default_ssl_vhost.conf <IfDefine SSL> <IfDefine SSL_DEFAULT_VHOST> <IfModule ssl_module> Listen 443 <VirtualHost _default_:443> ServerName localhost Include /etc/apache2/vhosts.d/default_vhost.include ErrorLog /var/log/apache2/ssl_error_log <IfModule log_config_module> TransferLog /var/log/apache2/ssl_access_log </IfModule> SSLEngine on 144
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+E XP:+eNULL SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key <FilesMatch "\.(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/var/www/localhost/cgi-bin"> SSLOptions +StdEnvVars </Directory> <IfModule setenvif_module> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </IfModule> <IfModule log_config_module> CustomLog /var/log/apache2/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </IfModule> </VirtualHost> </IfModule> </IfDefine> </IfDefine> A cet étape vous êtes prêt à procéder l installation des outils de gestion orienté Web. Les étapes d installations de phpldapadmin se retrouvent dans l unité 4 de ce module. 145
Vérification d Apache et PHP Nous allons vérifier la configuration d Apache, à l aide de la commande suivante: /etc/init.d/apache2 configtest * Checking service dependencies... [ ok ] * Checking apache2 configuration... [ ok ] NOTE: Attention la commande apache2 -t ne vous indique pas correctement tout les erreurs de configuration. Nous vous recommandons la commande. /etc/init.d/apache2 configtest. Nous allons ensuite vérifier la configuration de PHP. Allez dans le répertoire contenant les fichiers Web. cd /var/www/localhost/htdocs/ vim phpinfo.php <?php phpinfo();?> Démarrer Apache. /etc/init.d/apache2 start Puis dans votre navigateur favori, saisissez l adresse suivante en utilisant le protocole HTTP Secure: https://192.168.0.2/phpinfo.php NOTE: Remarquer que nous utilisons le protocole HTTPS pour faire nos vérifications. Si vous voyez la page de configuration PHP tout est Ok. 146