Configuration d’un intranet sur le serveur web
Ici nous allons configurer un intranet sur le serveur web. Cet intranet sera un virtual host dédié intranet.vbox.tp. Le DNS est déjà paramétré et un enregistrement CNAME est déjà défini.
Toutes les manipulations de cette page s’effecutent sur la machine web, en tant qu’utilisateur root. Si elle n’est pas démarrée, c’est le moment de le faire
vagrant up web
-
En premier lieu, il est nécessaire d’installer et de configurer les outils Kerberos.
- Paquets krb5-user et krb5-config
- Fichier /etc/krb5.conf
-
Commencer par installer les paquets du serveur web Apache2.
root@web$ apt-get install apache2 apache2-doc libapache2-mod-auth-kerb
-
Dans le fichier /etc/apache2/ports.conf, activer l’écoute du serveur sur le port 443.
<IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule>
-
Dans le répertoire /etc/apache2/site-available, ajouter un fichier intranet pour définir un nouveau VirtualHost.
<VirtualHost *:443> ServerName intranet.vbox.tp ServerAdmin webmaster@vbox.tp DocumentRoot /var/www/intranet <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/intranet> Options Indexes FollowSymLinks MultiViews Satisfy all AuthType Kerberos AuthName "Intranet avec acces restreint" KrbMethodNegotiate on KrbMethodK5Passwd on KrbAuthRealm VBOX.TP KrbVerifyKDC off Krb5Keytab /etc/apache2/http.keytab KrbServiceName HTTP KrbSaveCredentials on require valid-user Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/intranet_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/intranet_access.log combined SSLEngine on SSLCertificateFile /etc/apache2/intranet.crt SSLCertificateKeyFile /etc/apache2/intranet.key </VirtualHost>
-
S’agissant d’un service authentifiant les utilisateurs à travers Kerberos, le serveur web aura besoin de demander un ticket de service. Avec l’outil kadmin, créer un principal sur le KDC et déposer le secret dans une keytab. Le préfixe du nom du principal doit être en adéquation avec la valeur donnée à la directive KrbServiceName ci-dessus (les majuscules ont une importance).
root@web$ kadmin -p jack/admin@VBOX.TP kadmin: addprinc -randkey HTTP/web.vbox.tp@VBOX.TP kadmin: ktadd -k /etc/apache2/http.keytab HTTP/web.vbox.tp@VBOX.TP
-
S’agissant d’un secret Kerberos, il convient d’en protéger l’accès.
root@web$ chown root.www-data /etc/apache2/http.keytab root@web$ chmod 640 /etc/apache2/http.keytab
-
Déposer le certificat et sa clé privée dans le répertoire /etc/apache2, et y associer les bonnes permissions de façon à protéger la clé privée du certificat.
root@web$ chown root.www-data /etc/apache2/intranet.key /etc/apache2/intranet.crt root@web$ chmod 640 /etc/apache2/intranet.key root@web$ chmod 644 /etc/apache2/intranet.crt
-
Créer le répertoire qui contiendra l’intranet et y déposer une page web.
root@web$ mkdir /var/www/intranet root@web$ cat << EOF > /var/www/intranet/index.html <html> <head><title>Page de test de l'intranet</title></head> <body> <h1>Un intranet de test</h1> </body> </html> EOF
-
Désactiver le site SSL par défaut, activer celui qui vient d’être créé, activer le module SSL, puis relancer le serveur Apache.
root@web$ a2dissite default-ssl root@web$ a2ensite intranet root@web$ a2enmod ssl root@web$ service apache2 restart