IONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES
E
En nv vi ir ro on nn n em e me en nt t d de es s ou o ut ti i ls l s d de e g ge es st ti io on n
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.
BIONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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
IONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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
BIONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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 ci- dessus, vous pouvez modifier le fichier /etc/ssl/openssl.cnf.
IONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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"
BIONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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 Description
SSL Autorise l’utilisation de SSL.
PHP5 Autorise l’utilisation de PHP5.
LDAP et
AUTHNZ_LDAP
Permet le support et l’authentification par mod_ldap.
Configuration d’Apache 2.x
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
IONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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.
BIONETCYBIONETCYBIONETCYBIONETCYBIONETCYBIONET CYBIONETCYBIONETCYBIONETCYBION
NOTES 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.