Vous êtes sur la page 1sur 179

Lycée Sacré Cœur

Mémoire de stage

Mise en œuvre d’une solution de


filtrage d’accès Internet et de travail
collaboratif

Réalisé par Mikaël LOUSSOUARN


Stage au lycée Sacré-Cœur d’Angers

LOUSSOUARN Mikaël Page 2 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

1. Remerciements
Je tiens particulièrement à présenter mes remerciements à toute l’équipe administrative et
pédagogique du Lycée Sacré-Cœur d’Angers, leur accueil m’a permit d’aborder sereinement
et sans contrainte le projet de ma période d’application en entreprise.

J’adresse un remerciement plus particulier au directeur M. Dominique DELARRAT pour


avoir eu confiance en moi en m’accordant d’être accepté en stage dans son établissement.

Enfin je remercie M. Olivier LE GRAND qui m’a permis d’aborder un projet intéressant en
m’apportant l’éclairage de son expérience professionnelle. J’ai également une pensée pour les
administrateurs réseaux de l’enseignement privé que j’ai eu la chance de rencontrer, je leur
souhaite de toujours continuer dans l’élan qui est le leur, celui de la passion.

LOUSSOUARN Mikaël Page 3 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

2. Tables des matières


1. Remerciements ................................................................................................................... 3
2. Tables des matières ............................................................................................................ 4
3. Introduction ........................................................................................................................ 5
4. Cahier des charges.............................................................................................................. 6
4.1. Introduction ................................................................................................................ 6
4.2. Description de la demande ......................................................................................... 6
4.3. Contraintes ................................................................................................................. 7
4.4. Déroulement du projet................................................................................................ 8
4.5. Authentification.......................................................................................................... 9
5. Descriptif de chaque activité ............................................................................................ 10
5.1. Mise en place d’un serveur mandataire d’accès et de filtrage Internet utilisant les
logiciels Squid et SquidGuard.............................................................................................. 10
5.2. Mise en œuvre d’un serveur OpenLDAP avec Réplication avec l’annuaire Active
Directory............................................................................................................................... 17
5.3. Installation du serveur de messagerie PostFix ......................................................... 18
5.4. Installation d’un serveur Web Apache2 supportant le langage PHP. ...................... 22
5.5. Installation d’un serveur gestionnaire de bases de données MySQL....................... 22
5.6. Installation du logiciel de travail collaboratif EgroupWare ..................................... 23
5.7. Mise en place de la solution sur le site du CEFOC.................................................. 25
5.8. Réalisation d’un script pour un projet de diffusion multicast de vidéo ................... 26
6. Bilan récapitulatif de l’ensemble des activités................................................................. 27
7. Conclusion........................................................................................................................ 29
8. Annexes techniques.......................................................................................................... 30
8.1. Installation de Windows 2003 Server dans sa version en 2 CD ROM. ................... 30
8.2. Promotion du serveur Windows 2003 en contrôleur de domaine Active Directory.40
8.3. Configuration post-installation du service de noms DNS........................................ 45
8.4. Manipulation de contrôle de la résolution DNS....................................................... 51
8.5. Création des utilisateurs et des groupes dans l’annuaire Active directory............... 52
8.6. Installation d’une distribution Linux Debian Etch 4.0............................................. 60
8.7. Intégration d’un système Linux Debian Etch dans un domaine Active Directory
2003 73
8.8. Installation et paramétrage des logiciels Squid et Squiguard sur une Debian Etch
4.0r intégrée à un domaine Windows................................................................................... 86
8.9. Manuel d’installation d’un serveur mandataire sur un serveur Debian Ecth au
moyen d’un script dédié. .................................................................................................... 104
8.10. Installation d’un serveur de messagerie Postfix sur une Debian Etch ............... 115
8.11. Installation du serveur Web, Php et MySQL sur une Debian Etch.................... 142
8.12. Installation d’EgroupWare ................................................................................. 144
8.13. Script bash de synchronisation des comptes Active Directory / OpenLDAP .... 162
8.14. Installer l’image serveur virtuel ......................................................................... 164
8.15. Sources du script de configuration de l’image virtuelle :................................... 165
9. Glossaire......................................................................................................................... 176

LOUSSOUARN Mikaël Page 4 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

3. Introduction
Faisant suite à une année d’apprentissage du métier de technicien supérieur gestionnaire
de ressources informatiques le stage effectué au sein du lycée Sacré-Cœur d’Angers est pour
moi l’occasion de confronter mes compétences professionnelles aux réalités du terrain.

Depuis bon nombre d’années je suis avec intérêt le monde du logiciel libre et
particulièrement l’évolution des systèmes Linux.

Le projet proposé par l’établissement d’accueil présente pour moi un grand attrait car il
propose de trouver des solutions gratuites et libres à des besoins très opérationnels et ce sans
rejeter les solutions propriétaires existants déjà sur le site.

Le mémoire présenté dans ces pages décrit la mise en œuvre d’une solution serveur
complète apportant un service de filtrage de navigation Internet et une plateforme de travail
collaboratif.

LOUSSOUARN Mikaël Page 5 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

4. Cahier des charges


4.1. Introduction

Le Lycée Sacré-cœur d’Angers possède un centre de formation par alternance sur la


commune de Bouchemaine, le CEFOC. Les utilisateurs de ce centre ont nécessité d’accéder à
l’Internet de façon sécurisée et besoin d’une plateforme de travail collaboratif intégrant la
messagerie électronique.
Le CEFOC dispose d’un serveur contrôleur de domaine Active directory desservant 40
postes clients

4.2. Description de la demande


4.2.1. Les objectifs
Les objectifs du projet sont les suivants :
• Mettre en exploitation un serveur mandataire Internet sur le site du CEFOC.
• Incorporer à ce serveur un service de messagerie et de travail collaboratif.

4.2.2. Produit du projet


Sont attendus les produits suivants :
• Un serveur basé sur un système d’exploitation libre et récent : Linux Debian
4.0 Etch

4.2.3. Les fonctions du produit


Les fonctions du serveur seront :
• Serveur mandataire d’accès Internet utilisant les logiciels Squid et Squid Guard
capables d’assurer un filtrage des navigations.
• Serveur d’annuaire Ldap en réplication de l’annuaire Ldap Active Directory
déjà en fonction sur le site.
• Serveur de messagerie Postfix intégrant les utilisateurs de l’annuaire Ldap.
• Serveur de messagerie Egroupware intégrant les utilisateurs de l’annuaire ldap.
• Services antivirus et anti-spams

4.2.4. Critères d'acceptabilité et de réception


La réalisation finale devra respecter les critères suivant à la réception :
• Stabilité du serveur
• Documentation de la mise en place et de l’administration
• Intégration du serveur au domaine
• Intégration des utilisateurs du domaine dans les utilisateurs du serveur
• Intégration des utilisateurs du domaine dans la gestion du filtrage Internet
• Filtrage Internet efficace
• Fonctionnement d’un service d’annuaire en réplication de l’annuaire
existant sur le site.
• Service de messagerie pour les utilisateurs du domaine (Postfix)
• Service de messagerie communautaire pour les utilisateurs du domaine
(Egroupware)

LOUSSOUARN Mikaël Page 6 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

4.3. Contraintes
4.3.1. Contraintes de coûts
Le projet devra être mis en place sans investissement matériel.

4.3.2. Contrainte de délais


Le projet devra être réalisé pour la date du 25 janvier 2007.

4.3.3. Autres contraintes


Le serveur à mettre en place devra utiliser les ressources matérielles déjà en place sur
le site du CEFOC, il devra donc être hébergé par le serveur déjà existant. Le nouveau serveur
sera donc un serveur virtuel.

LOUSSOUARN Mikaël Page 7 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

4.4. Déroulement du projet


4.4.1. Planification prévisionnelle
Tâche Début Fin Temps
estimé
Préparation hors exploitation
¾ Installation Windows Server 2003 26/11/07 26/11/07 4 :00
¾ Mise en place du domaine 27/11/07 27/11/07 2 :00
¾ Création utilisateurs 27/11/07 27/11/07 2 :00
¾ Installation Debian 4.0 27/11/07 27/11/07 2 :00
¾ Intégration Debian au domaine 27/11/07 28/11/07 6 :00
¾ Installation squid et squid guard 28/11/07 28/11/07 4 :00
¾ Paramétrage squid et squid guard 28/11/07 29/11/07 4 :00
¾ Test du serveur mandataire 29/11/07 30/11/07 4 :00
¾ Implémentation service annuaire sur Debian 3/12/07 4/12/07 8 :00
¾ Mise en place réplication avec annuaire Active Directory 4/12/07 5/12/07 8 :00
¾ Test de la réplication d’annuaires 5/12/07 5/12/07 4 :00
¾ Installation de la messagerie Postfix 6/12/07 7/12/07 8 :00
¾ Paramétrage de Postfix 7/12/07 10/12/07 8 :00
¾ Test de la messagerie Postfix 10/12/07 10/12/07 2 :00
¾ Installation Egroupware 11/12/07 11/12/07 4 :00
¾ Paramétrage de Egroupware 11/12/07 11/12/07 4 :00
¾ Test de Egroupware 12/12/07 12/12/07 2 :00
Mise en place sur site
¾ Installation de Debian 4.0 13/12/07 13/12/07 4 :00
¾ Intégration Debian au domaine 13/12/07 13/12/07 4 :00
¾ Installation squid et squid guard 14/12/07 14/12/07 4 :00
¾ Paramétrage squid et squid guard 17/12/07 17/12/07 4 :00
¾ Test du serveur mandataire 17/12/07 17/12/07 4 :00
¾ Implémentation service annuaire sur Debian 18/12/07 18/12/07 4 :00
¾ Mise en place réplication avec annuaire Active Directory 18/12/07 18/12/07 4 :00
¾ Test de la réplication d’annuaires 19/12/07 19/12/07 4 :00
¾ Installation de la messagerie Postfix 20/12/07 20/12/07 4 :00
¾ Paramétrage de Postfix 20/12/07 20/12/07 4 :00
¾ Test de la messagerie Postfix 21/12/07 21/12/07 4 :00
¾ Installation Egroupware 2/01/08 2/01/08 4 :00
¾ Paramétrage de Egroupware 2/01/08 2/01/08 4 :00
¾ Test de Egroupware 3/01/08 3/01/08 4 :00
¾ Mise en exploitation 3/01/08 3/01/08 4 :00
Observation du serveur – retour des utilisateurs 4/01/08 24/01/08 20 jours

Note : les durées de tâches ne sont qu’approximatives compte tenu de la nécessité d’établir
une documentation complète.

LOUSSOUARN Mikaël Page 8 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

4.4.2. Ressources prévisionnelles


Un intervenant en la personne de Mikaël LOUSSOUARN, stagiaire au lycée Sacré-
coeur assisté ponctuellement par Olivier LE GRAND , administrateur réseau du lycée Sacré-
cœur.

4.5. Authentification

Le présent cahier des charges est soumis à l’approbation de M. LE GRAND Olivier,


administrateur réseau du lycée Sacré-cœur d’Angers.
M. LE GRAND Olivier pilotera le projet.
La mise en place des plateformes de tests, la mise en place sur site et la rédaction de la
documentation est à la charge de M. LOUSSOUARN Mikaël, stagiaire du centre AFPA
d’Angers.

LOUSSOUARN Mikaël Page 9 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5. Descriptif de chaque activité

5.1. Mise en place d’un serveur mandataire d’accès et de


filtrage Internet utilisant les logiciels Squid et SquidGuard.

Obligation est faite aux établissements scolaires accueillants des mineurs de procéder au
filtrage des navigations Internet pour les protéger des contenus violents, sexuels,
révisionnistes, illégaux ou sectaires.
De plus la sécurité du réseau du site est dépendante de ce filtrage car il doit également éviter
les sites de piratage informatique.
Il y a également nécessité de conserver les journaux de connexions.
Actuellement le CEFOC se connecte à Internet via le serveur mandataire du lycée ce qui
répond aux exigences de filtrages mais ralentit le débit de connexion.
Il a été donc été demandé de procéder à la mise en place d’un serveur mandataire local au
CEFOC.
Schéma de la topologie attendue sur le site CEFOC

LOUSSOUARN Mikaël Page 10 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.1.1. Schéma de topologie de la plateforme de test

5.1.2. Installation d’un serveur Windows 2003 Server sur un


ordinateur virtuel et création du domaine de test.

Pour les besoins de mise en place d’une plateforme de test préalable à l’installation sur
le site du CEFOC, un serveur Windows 2003 fonctionnant sur une machine virtuelle
(VmWare) doit être installé pour émuler le serveur contrôleur de domaine présent au CEFOC.

L’installation de VmWare sur le poste hôte Windows XP ne posant pas de problème, il


a été choisi de ne pas la détailler dans la documentation.

L’installation de Windows 2003 Server est décrite dans ce document en annexe :


Installation d’un serveur 2003 Windows page 33

La création du domaine stage.local qui servira de domaine de test est décrite en annexe :
Promotion du serveur en contrôleur de domaine page 43

LOUSSOUARN Mikaël Page 11 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le service de résolution de noms DNS étant un pilier essentiel d’un domaine active
directory il faut configurer et vérifier celui-ci.
Le service DNS permet de résoudre l’adresse IP d’un ordinateur depuis son nom pleinement
qualifié sur le domaine ou de résoudre le nom d’un ordinateur depuis son adresse IP (zone de
recherche inversée).
Le service DNS permet également de pointer les différents services apportés par les serveurs
du domaine (contrôleur de domaine, service de messagerie)

La configuration du service DNS est décrite pas à pas en annexe :


Configuration DNS page 48
La vérification du service de résolution de noms DNS est décrite en annexe :
Contrôle de la résolution DNS page 55

Pour les besoins du test il faut également créer les groupes et utilisateurs du domaine.
Voir en annexe :
Création des utilisateurs et groupes utilisateurs page 56

5.1.3. Installation de la distribution Linux Debian Etch

Le couple logiciel Squid SquidGuard rend actuellement les services de filtrages


attendus au lycée, il s’impose donc naturellement comme la solution à mettre en œuvre au
CEFOC d’autant plus qu’il s’agit d’une solution gratuite.
Squid et SquidGuard fonctionnent sur une distribution Linux.

Le choix du système d’exploitation c’est porté sur un Linux Debian puisque les distributions
Debian sont reconnues pour leur stabilité et sont suffisamment documentées la dernière
version stable, la Etch, est choisie.

La procédure d’installation de la distribution Linux Debian Etch est décrite en annexe :


Installation de la Debian Etch page 64

LOUSSOUARN Mikaël Page 12 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.1.4. Intégration de la distribution Linux Debian au domaine


Active Directory

Afin de centraliser l’authentification des utilisateurs du serveur mandataire avec


l’authentification des utilisateurs d’Active Directory il faut intégrer le serveur Debian au
domaine et intégrer les utilisateurs du domaine comme utilisateurs reconnus par le serveur
Debian.

Le service Samba qui permet la reconnaissance réseau entre des plateformes Windows et
Linux et permet également d’intégrer une distribution Linux dans un domaine Windows
Active directory. La version 3 de Samba a été choisie.

Il faut également que lorsqu’un utilisateur du domaine se connecte sur le serveur mandataire
il soit reconnu et authentifié auprès du contrôleur de domaine Windows.
Après plusieurs recherches il apparaît que la solution du service winbind qui dépend de
Samba répond à cette attente, en effet le service winbind procède à l’authentification d’un
utilisateur du domaine auprès de l’annuaire active directory lorsqu’il se connecte à une
machine Linux.
Le service Winbind nécessite la mise en œuvre du protocole kerberos imposé par le
contrôleur de domaine pour l’authentification.

LOUSSOUARN Mikaël Page 13 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le schéma suivant détaille du processus d’authentification :

L’annexe suivante détaille l’intégration d’une distribution Debian Etch dans un domaine
Active directory :
Intégration d’une distribution Debian dans un domaine Active Directory page 77

LOUSSOUARN Mikaël Page 14 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.1.5. Installation et configuration du serveur mandataire


(logiciels Squid et SquidGuard)

Le logiciel Squid est un service (fonctionnement en démon), il assure plusieurs fonctions :

¾ Il sert de cache à la navigation Internet afin d’optimiser la bande passante.


¾ Il procède à l’authentification des utilisateurs
¾ Il possède un système de filtrage basique
¾ Il génère des fichiers journaux de connexion

Le logiciel SquidGuard est dépendant de Squid (processus enfant), il assure les fonctions de
filtrages suivantes :

¾ Filtrage par groupes utilisateurs (c’est ce qui est intéressant dans le cadre d’un filtrage
nécessaire différent entre les élèves et les professeurs)
¾ Filtrage par liste de domaines autorisés ou interdits (pour les sites interdit il existe une
liste maintenue par l’université de Toulouse qui répond aux exigences du site)
¾ Filtrage par plage horaire.

Note : il est possible de paramétrer Squid et SquidGuard via une interface Web en utilisant
le logiciel Webmin mais ceci n’a pas été le choix de l’exercice et tout à été réalisé en lignes
de commandes.

Le Logiciel d’analyse de logs Sarg permet une meilleure lisibilité des journaux de
connexion du serveur mandataire, ceux-ci seront grâce à ce logiciel consultables via un
navigateur Internet.

LOUSSOUARN Mikaël Page 15 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Schéma de fonctionnement de Squid et SquidGuard :

L’installation du couple Squid SquidGuard effectuée est décrite en annexe :


Installation et paramétrage des logiciels Squid et Squiguard sur une Debian Etch 4.0r
intégrée à un domaine Windows. Page 90

Afin de rendre l’installation sur site finale simple et rapide j’ai écrit un script en bash
permettant d’automatiser la procédure d’installation décrite. Le code de ce script est présent
en annexe : script d’installation de squid squidguard page 97

Problème rencontré :
Lors du lancement du service Samba, celui-ci réinitialise les droits sur le dossier
/etc/samba/winbind_privileged hors le logiciel Squid a besoin de droits sur ce dossier pour
l’authentification des utilisateurs. J’ai donc du mettre en place un script de démarrage
personnalisé du service Squid remplaçant celui d’origine et plaçant les droits nécessaires au
proxy sur le dossier posant problème (voir dans le script d’installation de squid)

LOUSSOUARN Mikaël Page 16 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.2. Mise en œuvre d’un serveur OpenLDAP avec Réplication


avec l’annuaire Active Directory

Afin de préparer l’installation du serveur de messagerie Postfix et de lui permettre de


reconnaître les utilisateurs du domaine le cahier des charges demande la mise en place d’un
serveur d’annuaire sur la distribution Linux en réplication avec l’annuaire Active directory du
serveur contrôleur de domaine.

Problème rencontré : synchronisation des mots de passes

L’installation d’un serveur OpenLdap sur la distribution Linux n’a pas posé de
problèmes. La synchronisation des comptes utilisateurs a été faite avec un script bash
interrogeant Active directory, comparant les différences avec l’annuaire OpenLDAP et
modifiant l’annuaire openLDAP comme nécessaire.
Lien vers le script de mise à jour des comptes page 166

Toutefois il ne m’a pas été possible de synchroniser les mots de passes des utilisateurs
et ce malgré plus d’une semaine de recherche de solutions. Le projet à pris à ce moment un
retard important.

J’ai exploré la piste de l’authentification SASL ou Kerberos des utilisateurs


OpenLDAP auprès de l’annuaire Active directory mais cela n’a pas abouti.

Il m’est apparu que l’annuaire OpenLDAP, au mieux ne posséderait qu’un répliquât


des comptes utilisateurs sans synchronisation des mots de passes, hors je disposais déjà d’un
système d’authentification des utilisateurs Linux auprès du contrôleur de domaine Windows.
J’ai donc pensé utiliser Winbind et Samba pour permettre l’intégration complète des
utilisateurs du domaine sur mon serveur Debian Linux.

J’ai pu ainsi aborder à la suite du projet, à savoir l’installation du serveur de


messagerie Postfix et du logiciel de travail collaboratif EgroupWare.

LOUSSOUARN Mikaël Page 17 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.3. Installation du serveur de messagerie PostFix

Topologie attendue sur le site CEFOC :

LOUSSOUARN Mikaël Page 18 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Topologie de la plateforme de test :

Le logiciel Postfix est un MTA (mail transfert Agent) il est capable d’envoyer et de
recevoir du courrier électronique.
L’envoie de courrier vers l’extérieur du réseau est assuré par le protocole SMTP vers le MTA
du destinataire.
La distribution du courrier reçu est assurée par un MDA (mail delivery agent) qui dans notre
cas est un serveur IMAP (courier-imap).Le protocole IMAP est préféré au protocole POP car
il sera nécessaire au logiciel EgroupWare.
La solution Postfix a été retenue car c’est une solution gratuite, stabilisée, largement
utilisée et bien documentée.

Le projet impose la création d’un compte de courrier pour chacun des utilisateurs du
domaine, il faut donc que les utilisateurs du domaine possèdent dès leur première connexion
au serveur de messagerie leur propre boite mail et qu’ils soient correctement authentifiés
comme autorisés par le service de messagerie et le serveur IMAP.
Une petite manipulation sur les fichiers de configuration d’authentification du serveur
Linux (fichiers du dossier /etc/pam.d) m’a permis d’accepter les connexion distantes
authentifiées par le deamon winbind sur le serveur Linux comme ci il s’agissait d’utilisateurs
locaux.
Restait le problème de la création automatique des boites de courrier IMAP, j’ai
contourné cette difficulté en créant un script de connexion de lecteur réseau depuis
l’ordinateur client du domaine Windows sur un partage SAMBA du serveur Linux.

LOUSSOUARN Mikaël Page 19 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

La connexion SAMBA autorise, grâce à la modification des fichiers pam, la création


d’un répertoire utilisateur selon le squelette prédéfini placé sur le serveur linux à
l’emplacement /etc/skel .Sur ce squelette j’ai crée les boites de courriers IMAP nécessaires.

Afin de pouvoir rapatrier les courriers qui se trouvent hébergés chez un prestataire de
messagerie j’ai utilisé le logiciel Fetchmail qui récolte à intervalles réguliers les mails du
domaine que le prestataire a rassemblé dans un compte collecteur.
Postfix prend ensuite en charge ces courriers et en confie la distribution à procmail.

Enfin, pour assurer la sécurité des courriers électroniques j’ai mis en place un filtrage
des messages par un logiciel antivirus (clamav), un logiciel anti-spams (spamassassin) et un
filtrage des entêtes et corps de messages.

LOUSSOUARN Mikaël Page 20 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Schéma simplifié du fonctionnement du serveur de messagerie mis en oeuvre:

La description des manipulations faites est en annexe :


Installation du serveur de messagerie Postfix page 119

LOUSSOUARN Mikaël Page 21 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.4. Installation d’un serveur Web Apache2 supportant le


langage PHP.

Afin de permettre l’installation et le fonctionnement du logiciel EgroupWare j’ai du mettre


en place un serveur Web Apache2 supportant l’interprétation du langage PHP sur le serveur
Debian. Cette installation est suffisamment documentée et aisée pour ne pas avoir posé de
difficultés.

L’installation est détaillée en annexe :


Installation du serveur Web page 146

5.5. Installation d’un serveur gestionnaire de bases de


données MySQL

Egroupware fonctionnant sur une base de données il nécessite l’installation d’un service
de gestion de bases de données, MySQL est supporté par EgroupWare, gratuit et
suffisamment documenté.

L’installation et la configuration de MySQL ne représente pas de difficulté sur une


distribution Linux comme la Debian utilisée, il faut juste bien prendre soin de sécuriser son
accès en interdisant un accès distant à la base (seul Egroupware y accèdera, et EgroupWare
est une application locale au serveur) et en définissant un compte d’administrateur sécurisé
(l’administrateur root de la base de données doit devoir entrer un mot de passe)

L’installation est détaillée en annexe :


Installation du serveur mysql page 146

LOUSSOUARN Mikaël Page 22 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.6. Installation du logiciel de travail collaboratif EgroupWare

Egroupware est un logiciel de travail collaboratif gratuit qui est conçu nativement avec une
interface Web qui permet son accès depuis n’importe quel poste client quelque soit sont
système d’exploitation ou bien qu’il soit situé sur le réseau interne ou externe.
Egroupware permet un accès depuis des solutions mobiles comme un téléphone portable ou
encore un PDA.

Il permet la gestion de calendriers partagés, d’une messagerie personnelle, des contacts, de


projets collaboratifs, d’accéder à des fichiers partagés et bien d’autres choses.
C’est une solution adaptée au fonctionnement d’une entreprise et le Lycée l’utilise déjà pour
la formation des BTS.
L’usage de ce logiciel pour les stagiaires du CEFOC est intéressant puisque ceux-ci ne sont
pas en permanence sur le site de formation et qu’ils sont destinés au secteur tertiaire.

J’ai donc du mettre en place sur la maquette la solution Egroupware appuyée sur le logiciel
de messagerie Postfix et avec une authentification centralisée par l’annuaire active directory.

L’image VmWare ainsi obtenu a pu être installée sur le site du CEFOC et est actuellement
en cours de test.

Différents problèmes ont été rencontré, l’installation d’Egroupware n’est pas des plus aisée :

¾ Il a fallu installer les modules dont le logiciel a besoin, les modules pear.
¾ Il a fallu modifier un formulaire dans le gestionnaire de mail car celui d’origine ne
fonctionnait pas
¾ Il a fallu modifier le module de création de graphiques et installer des polices de
caractères.
¾ Enfin, lors des premiers essais, l’authentification sur le domaine Active directory était
effective mais les nouveaux utilisateurs n’étaient pas créés automatiquement sur la
base de données d’Egroupware.
Après plusieurs essais il c’est avéré qu’il fallait impérativement que l’utilisateur
Active directory possède un nom renseigné pour être créé dans la base par Egroupware
ce qui n’était pas le cas sur ma plateforme d’essai.

L’installation d’Egroupware est détaillée en annexe :


Installation d’egroupware page 172

LOUSSOUARN Mikaël Page 23 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Schéma de fonctionnement d’Egroupware sur le site CEFOC :

LOUSSOUARN Mikaël Page 24 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.7. Mise en place de la solution sur le site du CEFOC

L’installation de la solution a eu lieu sur le site du CEFOC assisté de M. Olivier LE


GRAND.

Afin de faciliter cette mise en place j’ai au préalable réalisé une image VmWare de la
solution développée sur la plateforme de test à laquelle j’ai inclus un script de
configuration en bash permettant de configurer rapidement le serveur virtuel à son
environnement réseau.

Les explications sur les manipulations à réaliser pour installer le serveur sont en
annexes : lien page 168

Lien vers les sources du script Bash présent en annexes : lien page 169

Désormais le serveur est en exploitation sur le site du CEFOC, M. Olivier LE GRAND


se chargera de la période d’observation.
L’image du serveur virtuel est livrée au lycée et disponibles pour d’autres
établissements éventuellement intéressés.

LOUSSOUARN Mikaël Page 25 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

5.8. Réalisation d’un script pour un projet de diffusion


multicast de vidéo

M. Olivier LE GRAND travaillait sur un projet de diffusion de vidéo en réseau lors de


ma période d’application, il s’agissait de pouvoir diffuser une vidéo depuis l’ordinateur d’un
professeur vers les postes des élèves de la salle de cours.
Le logiciel VLC permet la diffusion multicast de flux vidéo sur un réseau, M. Olivier LE
GRAND a développé un logiciel s’appuyant sur cette fonctionnalité pour accomplir son projet.

Il m’a confié la charge de créer un script permettant de faire une découverte du réseau
(commande net view de microsoft) et de trier les ordinateurs en fonction de leur salle
d’implantation.
Ce script a été réalisé en langage AutoIt que je manipulais pour la première fois, je me suis
appuyé sur le fait que les noms netbios des ordinateurs finissent tous sur le lycée par « S »
suivi du numéro de salle.
Mon travail a été incorporé au projet désormais fonctionnel de M. Olivier LE GRAND.

Capture d’écran du logiciel créé dans sa version 1.4 :

LOUSSOUARN Mikaël Page 26 05/02/2008


6. Bilan récapitulatif de l’ensemble des activités
Le schéma suivant présente une vue d’ensemble de ce qui est désormais fonctionnel sur le serveur virtuel Debian Etch mit en exploitation au
CEFOC.

Les flèches montrent les différentes interactions entre les composants du projet.
Stage au lycée Sacré-Cœur d’Angers

Le tableau suivant récapitule les actions demandées par le cahier des charges et leurs
résultats :

Activité Terminée En cours Non réalisées


Installer une plateforme de test représentant le oui
site CEFOC
Installer le serveur mandataire proxy avec oui
filtrage
Tests du filtrage Internet oui

Création d’un script pour l’installation de la oui


solution de serveur mandataire sur site
Test du script d’installation oui

Rédaction de la documentation pour oui


l’installation du serveur mandataire
Installer un serveur d’annuaire OpenLDAP sur le oui
serveur Debian
Réplication entre l’annuaire Active directory et Après
l’annuaire OpenLDAP recherches
Mise en place d’un serveur de messagerie Postfix oui
avec boites IMAP
Tests du serveur de messagerie oui

Mise en place d’un serveur Web Apache2 oui


supportant Php
Mise en place d’un serveur de gestion de base de oui
données MySQL
Mise en place du logiciel de travail collaboratif oui
Egroupware
Tests du logiciel Egroupware En cours

Rédaction de la documentation pour oui


l’installation de la solution Postfix/Egroupware
Création d’un script d’installation pour la oui
solution postfix/Egroupware
Rédaction d’une documentation sur l’utilisation En cours
d’Egroupware
Etablissement d’une stratégie de sauvegarde pour Non demandée
le serveur mais
souhaitable
Déploiement sur le site CEFOC du serveur oui
virtuel
Période d’observation du serveur sur site Hors délais du
stage

LOUSSOUARN Mikaël Page 28 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

7. Conclusion
Le projet est arrivé à son terme, le serveur est opérationnel sur le site du CEFOC qui
dispose désormais de son propre serveur mandataire, d’un serveur de messagerie et de travail
collaboratif.

Une image du serveur accompagnée d’un script de configuration permet d’appliquer cette
solution sur d’autres sites.
L’idée est de proposer au-delà du site CEFOC une solution aisée à mettre en place sur
d’autres établissements scolaires : Une solution gratuite de serveur mandataire, de serveur de
courrier et de travail collaboratif. D’autres acteurs de l’informatique dans l’enseignement
privé se sont montrés intéressés par la solution proposée dans ce projet.

Un point important qui n’a pas été abordé est la création d’une stratégie de sauvegarde, c’est
une chose essentielle qu’il faudra envisager de mettre en place rapidement.

Ce stage fut dès plus intéressant et formateur au vu des solutions qu’il a fallu trouver pour
centraliser l’authentification des utilisateurs sur le domaine Active Directory. Il fut toutefois
trop court pour permettre d’aboutir à une solution complètement portable.

La force de ce projet est de proposer une solution gratuite aux établissements scolaires
bénéficiant déjà d’un domaine Active Directory. Il est d’ailleurs envisagé de proposer ce type
de serveur à d’autres établissements du secteur de l’éducation privé.

LOUSSOUARN Mikaël Page 29 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8. Annexes techniques

8.1. Installation de Windows 2003 Server dans sa version en


2 CD ROM.

Ce document détaille pas à pas l’installation d’un système Windows 2003 Server Standard
édition R2.

Insérer le CDROM n°1 dans le


lecteur.

Faire <Entrer>

Accepter la licence du logiciel


en tapant <F8>

Choisir l’espace disque


destinataire du système.

Faire <C> pour créer la


partition système.

LOUSSOUARN Mikaël Page 30 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner la taille de la
partition système en méga
octets.

Faire <Entrer>

Sélectionner la partition créée


précédemment.

Faire <Entrer>

Choisir de formater la partition


en utilisant le système de
fichiers NTFS.

Faire <Entrer>

Le formatage de la partition
s’effectue.

LOUSSOUARN Mikaël Page 31 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le programme copie les


fichiers nécessaires à
l’installation sur le disque dur.

L’ordinateur doit redémarrer


pour débuter la partie
graphique de l’installation.

Début de la partie graphique de


l’installation.

LOUSSOUARN Mikaël Page 32 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

L’installation à ce niveau est


automatique.

Renseigner au besoin les


paramètres régionaux.

Faire <Suivant>

Renseigner le nom de
l’utilisateur et le nom de
l’organisation.

Faire <Suivant>

LOUSSOUARN Mikaël Page 33 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Entrer la clé de licence du


produit.

Faire <Suivant>

Renseigner le mode de licence.

Ici il a été choisi le mode par


périphérique ou par utilisateur
imposant a chaque client du
serveur de posséder sa propre
licence.

Faire <Suivant>

Entrer le nom de l’ordinateur.

Entrer le mot de passe


administrateur.
Confirmer ce mot de passe.
(retenir ce mot de passe)

Faire <Suivant>

LOUSSOUARN Mikaël Page 34 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Régler la date, l’heure et le


fuseau horaire.

Faire <Suivant>

L’installation continue.

Choisir les paramètres réseaux,


ici ils sont laissés par défauts
et seront configurés en fin
d’installation.

Faire <Suivant>

LOUSSOUARN Mikaël Page 35 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Définir le groupe de travail de


l’ordinateur.

Ici WORKGROUP.

Faire <Suivant>

L’installation continue.

Puis l’ordinateur redémarre


automatiquement.

Au redémarrage il faut appuyer


simultanément sur les touches
Crtl+Alt+suppr

LOUSSOUARN Mikaël Page 36 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Une boîte de dialogue invite


l’administrateur de la machine
à entrer son mot de passe.

Entrer le mot de passe et faire


<Ok>

Une boîte de dialogue invite


l’administrateur à insérer le
second CDROM
d’installation. .

Insérer le second CDROM


Faire <Ok>

Faire <Suivant>

LOUSSOUARN Mikaël Page 37 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Faire <Suivant>

L’installation est automatique

L’installation est terminée.

Faire <Terminer>

LOUSSOUARN Mikaël Page 38 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Détail des paramètres réseau à


configurer dans le cadre de la
plateforme de test du projet.

Cette boîte de dialogue est


accessible via

Menu démarrer> Clic droit sur


favoris réseaux > choisir
Propriétés.
Puis sur la connexion réseau
faire un clic droit et choisir
propriétés comme indiqué ci-
dessous :

Retour au chapitre

LOUSSOUARN Mikaël Page 39 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.2. Promotion du serveur Windows 2003 en contrôleur de


domaine Active Directory.

Ce document détaille pas à pas la création d’un nouveau domaine d’une nouvelle forêt par la
promotion d’un serveur Windows 2003 en contrôleur de domaine.

Dans le menu démarrer, choisir


Exécuter.

Entrer dans le champ ouvrir de la boîte


de dialogue « dcpromo » comme ci à
côté.

Faire <Ok>

Un assistant d’installation d’Active


Directory démarre.

Faire <Suivant>

Une information sur la compatibilité


s’affiche.

Faire <Suivant>

LOUSSOUARN Mikaël Page 40 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir Contrôleur de domaine pour un


nouveau domaine.

Faire <Suivant>

Choisir Domaine d’une nouvelle forêt.

Faire <Suivant>

Entrer le nom pleinement qualifié du


domaine (image non visible dans ce
document)
Ici le nom pleinement qualifié est
stage.local

Ici le nom pleinement qualifié est


stage.local

puis dans l’écran si contre valider le


nom net bios en cliquant sur suivant.

LOUSSOUARN Mikaël Page 41 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir les espace disque hébergeant les


données de la base d’annuaire et les
journaux.

Note : il peut-être intéressant de choisir


un disque différent du système pour
prévoir les risques de pannes matériel.

Faire <Suivant>

Choisir le chemin du volume partagé.

(celui par défaut convient la plupart du


temps)

Ici le nom pleinement qualifié est


stage.local

Un domaine nécessite un service de


noms DNS pour fonctionner.

L’assistant n’ayant pas découvert de


service DNS valide propose d’en
installer un sur le contrôleur de
domaine.

Choisir installer et configurer le serveur


DNS et faire <Suivant>

Note : un autre document traite de la


configuration du DNS postérieurement à
cette installation.

LOUSSOUARN Mikaël Page 42 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir le mode d’autorisations

Ici a été choisi les autorisations


compatibles uniquement avec les
systèmes d’exploitation serveur 2000 ou
Windows Server 2000.

Faire <Suivant>

Entrer le mot de passe de restauration du


système.

Bien conserver ce mot de passe !!

Faire <Suivant>

Un résumé fait état des choix faits lors


du déroulement de l’assistant.

Faire <Suivant>

LOUSSOUARN Mikaël Page 43 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Création de l’annuaire Active Directory.

Fin de l’installation.

Faire <Terminer>

Un redémarrage de l’ordinateur est


nécessaire.

Choisir <Redémarrer maintenant>

Retour au chapitre

LOUSSOUARN Mikaël Page 44 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.3. Configuration post-installation du service de noms DNS

Ce document détaille pas à pas les manipulations nécessaires sur le service DNS suite à son
installation automatique sur le contrôleur de domaine lors de la création du domaine Active
Directory (voir document sur la création de l’annuaire active directory).

Ouvrir la console
d’administration du serveur
DNS :
Menu démarrer> outils
d’administration > DNS.

Sélectionner dans les zones de


recherches directes la zone
portant le nom du domaine, ici
stage.local.

Faire un clic droit


Choisir « Propriétés »

LOUSSOUARN Mikaël Page 45 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Dans l’onglet « général » des


propriétés cliquer sur
<Modifier> dans la ligne Type

Cocher Zone principale

Cocher la case Enregistrer la


zone dans Active Directory

Note : normalement les deux


cases sont déjà cochées

Faire <Ok>

Valider le choix par <Oui> si


demandé.

Ensuite faire <Ok>

LOUSSOUARN Mikaël Page 46 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Dans le champ « mise à jour


dynamiques : » choisir « non
sécurisé et sécurisé «

Clique sur <Appliquer>

Note : si vous souhaitez


conserver le mode sécurisé, vous
devrez ajouter manuellement
l’entrée DNS correspondant au
serveur Linux Debian.

Il faut maintenant créer une zone


de recherche inversée pour
permettre au service DNS de
répondre à une requête de nom
depuis une adresse IP.

Sélectionner « Zones de
recherches inversées », cliquer
droit, choisir « Nouvelle zone »

LOUSSOUARN Mikaël Page 47 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Un assistant guide l’installation


de la nouvelle zone.

Faire <Suivant>

Choisir « Zone principale »


Cocher « enregistrer la zone
dans Active Directory »

LOUSSOUARN Mikaël Page 48 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner l’ID réseau.

Pour la plateforme de tests du


projet il s’agit de 192.168.254
correspondant à l’adresse réseau
de la plateforme.

Faire <Suivant>

Laisser le choix sur « créer un


nouveau fichier nommé :… »

Faire <Suivant>

LOUSSOUARN Mikaël Page 49 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Cocher « autoriser à la fois les


mises à jours dynamiques
sécurisées et non sécurisées »

Faire <Suivant>

L’installation de la zone de
recherche inversée est terminée.

Faire « Terminer »

Retour au chapitre

LOUSSOUARN Mikaël Page 50 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.4. Manipulation de contrôle de la résolution DNS

Pour s’assurer que le service DNS du serveur fonctionne correctement il faut faire une requête
de Ping avec un nom netbios d’hôte (ici pcvirtw2003svr) et s’assurer que la réponse à la
commande est bien de forme nom pleinement qualifié (ici pcvirtw2003svr.stage.local) comme
le montre la figure ci-dessous.

Note : pour entrer la commande ping, lancer le menu démarrer et choir exécuter puis entre
dans le champ « cmd » (sans guillemets) pour obtenir l’invite de commande DOS.

Retour au chapitre

LOUSSOUARN Mikaël Page 51 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.5. Création des utilisateurs et des groupes dans l’annuaire


Active directory.

Ce document détaille pas à pas la création via l’interface graphique des utilisateurs et groupes
de l’annuaire Active directory sur un serveur contrôleur de domaine.

Sur le contrôleur de domaine


Windows 2003 Server, ouvrir le
menu démarrer.

Choisir outils d’administration


puis Utilisateurs et ordinateurs
d’Active Directory.

La console de gestion des


utilisateurs et ordinateurs
d’Active Directory s’ouvre.

Création d’un conteneur :

En sélectionnant le domaine
faire un clic droit et choisir
Nouveau puis Unité
d’organisation.

LOUSSOUARN Mikaël Page 52 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner le nom du conteneur

Faire <ok>

Création d’un utilisateur :

En sélectionnant le conteneur
précédemment créé faire un clic
droit et choisir nouveau puis
utilisateur

LOUSSOUARN Mikaël Page 53 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner le nom et les


identifiants de l’utilisateur

Faire <suivant>

Renseigner le mot de passe de


connexion pour l’utilisateur

Confirmer ce mot de passe.

Cocher les options de gestion du


mot de passe.

Faire <suivant>

LOUSSOUARN Mikaël Page 54 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Une boite de dialogue détaille


les options choisies

Valider en cliquant sur


<terminer>

L’utilisateur est créé

Créer en d’autres pour les


besoins de la plateforme de test.

Création d’un groupe :

En sélectionnant le conteneur
Utilisateurs, faire un clic droit
puis choisir nouveau puis
groupe.

LOUSSOUARN Mikaël Page 55 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner le nom du groupe,


son type et son étendue.

Valider par <ok>

Renseigner les membres d’un


groupe :

Faire un clic droit sur le groupe


créé et choisir propriétés

Onglet des propriétés générales


du groupe

Choisir l’onglet Membres.

LOUSSOUARN Mikaël Page 56 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Faire <Ajouter>

Dans le champ de saisie, saisir le


début du nom de l’utilisateur à
ajouter au groupe.

LOUSSOUARN Mikaël Page 57 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Cliquer sur <vérifier les noms>

Sélectionner l’utilisateur à
ajouter dans la liste proposée.

Faire <ok>

Faire <ok>

LOUSSOUARN Mikaël Page 58 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Procéder comme précédemment


jusqu'à avoir ajouter tous les
membres au groupe.

Valider pas <ok>

Retour au chapitre

LOUSSOUARN Mikaël Page 59 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.6. Installation d’une distribution Linux Debian Etch 4.0

Ce document détaille pas à pas l’installation d’une distribution Linux Debian Etch 4.0.

Insérer le CDROM
debian-40r1-i386-netinst

Démarrer l’ordinateur.

Presser la touche <Entrer> pour


débuter l’installation.

L’installation débute.

LOUSSOUARN Mikaël Page 60 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir le langage
d’installation :

Ici French.
Sélectionner avec les touches de
déplacement et valider par la
touche <Entrer>

Choisir la situation régionale

Ici France.

Valider par <Entrer>

Choisir la disposition du clavier

Ici Français (fr-latin)

Valider par <Entrer>

LOUSSOUARN Mikaël Page 61 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le programme d’installation
procède à la détection du
matériel.

L’installateur charge des


composantes supplémentaires.

Configuration du réseau :

Renseigner le nom du domaine

Ici stage.local
(correspondant à la situation de
la plateforme de test)

sélectionner <continuer>
Valider par <Entrer>

LOUSSOUARN Mikaël Page 62 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Partitionnement des disques


durs :

Il faudra adapter les choix de


partitionnement aux besoins
futurs du système.

Pour la plateforme de test il a été


choisi « manuel »

Valider par <Entrer>

Sélection du disque a
partitionner

Sélectionner
Valider par <Entrer>

Sélectionner « oui »

Valider par <Entrer>

LOUSSOUARN Mikaël Page 63 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Sélectionner l’espace libre du


disque.

Valider par <Entrer>

Ici il a été choisi de partitionner


automatiquement l’espace
disponible.

Sélectionner
Valider par <Entrer>

Choisir de séparer les partitions


pour une administration plus
précise du système.

(ceci nécessite de bien


appréhender les besoins futurs
en espace disque de chaque
partie du système !)

Sélectionner
Valider par <Entrer>

LOUSSOUARN Mikaël Page 64 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Valider les choix de


partitionnement

Choisir terminer le
partitionnement et appliquer les
changements.

Valider par <Entrer>

Confirmer en sélectionnant
« oui »

Valider par <Entrer>

Entrer le mot de passe de


l’administrateur (compte root)

Ne pas oublier ce mot de passe !

Sélectionner « continuer »
Valider par <Entrer>

LOUSSOUARN Mikaël Page 65 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Ressaisir le mot de passe


administrateur pour éviter les
erreurs de frappe.

Sélectionner « continuer »
Valider par <Entrer>

Entrer un nom d’utilisateur.


Cet utilisateur ne bénéficiera pas
des privilèges d’administration
accordés au compte root.

Sélectionner « continuer »
Valider par <Entrer>

Entrer l’identifiant pour cet


utilisateur (login)

Sélectionner « continuer »
Valider par <Entrer>

LOUSSOUARN Mikaël Page 66 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Entrer le mot de passe pour


l’utilisateur.

Sélectionner « continuer »
Valider par <Entrer>

Ressaisir le mot de passe pour


l’utilisateur.

Sélectionner « continuer »
Valider par <Entrer>

Installation du système de base.

LOUSSOUARN Mikaël Page 67 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Configuration de l’outil de
gestion des paquets logiciels.

Choisir d’utiliser un miroir sur le


réseau.

Sélectionner « oui »
Valider par <Entrer>

Choisir le pays hébergeant le


serveur miroir de paquets.
Choisir le plus proche
géographiquement.

Ici France
Valider par <Entrer>

Choisir un serveur dans la liste


proposée.

Valider par <Entrer>

LOUSSOUARN Mikaël Page 68 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Renseigner l’adresse réseau du


serveur mandataire s’il existe sur
le réseau pour permettre au
gestionnaire de paquets de se
connecter au serveur miroir.

Dans la cadre de la plateforme


de test il s’agit de :

http://172.18.0.3:3128/

(bien respecter la syntaxe)

Le gestionnaire de paquets
examine le miroir.

Le logiciel propose de tenir


informer l’équipe de
développement sur l’utilisation
des paquets logiciels.

Choisir sa réponse.

Valider par <Entrer>

LOUSSOUARN Mikaël Page 69 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

L’installation continue.

Sélection des logiciels.

Ici il est possible de choisir des


logiciels dès l’installation du
système.
Seul le système standard est
nécessaire pour notre plateforme
de test.

Note : les logiciels peuvent


toujours être installés par la
suite.
Sélectionner « continuer »
Valider par <Entrer>

Les paquets sélectionnés


s’installent.

LOUSSOUARN Mikaël Page 70 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir d’installer le programme


de démarrage Grub

Sélectionner « oui »
Valider par <Entrer>

Installation du programme de
démarrage Grub.

Fin de l’installation, l’ordinateur


doit redémarrer.

Sélectionner « continuer »
Valider par <Entrer>

LOUSSOUARN Mikaël Page 71 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Invite de démarrage du
gestionnaire Grub.
Choisir Debian GNU/Linux
kernel 2.6.18-5-486

Valider par <Entrer>

Le système est démarré et


opérationnel.

Retour au chapitre

LOUSSOUARN Mikaël Page 72 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.7. Intégration d’un système Linux Debian Etch dans un


domaine Active Directory 2003

Ce document détaille l’intégration d’un ordinateur configuré sous un système d’exploitation


Linux Debian 4.0 Etch.

Note : Toutes les manipulations qui suivent sont faites en tant qu’administrateur du système
Linux à savoir le compte root.

8.7.1. Données propres à l’exercice (à adapter selon les besoins):

¾ Domaine : stage.local
¾ Contrôleur de domaine :
Nom netbios : pcvirtw2003svr nom DNS : pcvirtw2003svr.stage.local
@ IP : 192.168.254.128/24
¾ Debian :
Nom netbios : debian nom DNS : debian.stage.local
@IP : 192.168.254.129/24

8.7.2. Logiciels nécessaires :

¾ Distribution Linux debian Etch 4.0r de base.


¾ Pour la communication entre la distribution Linux et le serveur Windows, Samba
Installation de samba :

apt-get install samba

¾ Pour le support du protocole de communication sécurisé utilisé par le serveur :


Kerberos

apt-get install krb5-user

¾ Pour l’authentification des utilisateurs du domaine Windows par la debian : winbind

apt-get install winbind

¾ Pour la synchronisation de l’horloge de la Debian avec le contrôleur de domaine :


ntpdate
apt-get install ntpdate
Note : valider l’installation des dépendances nécessaires.

LOUSSOUARN Mikaël Page 73 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.7.3. Configuration du réseau :

¾ Editer le fichier /etc/network/interfaces et le renseigner comme suit (a adapter aux


adresses ip de votre réseau)

# This file describes the network interfaces available on your system


# and how to activate them. For more information, see interfaces(5).

# The loopback network interface


auto lo
iface lo inet loopback

# The primary network interface


allow-hotplug eth0
iface eth0 inet static
address 192.168.254.129
netmask 255.255.255.0
broadcast 192.168.254.255
gateway 192.168.254.2

¾ Renseigner la passerelle dans le fichier /etc/networks :

echo gateway 192.168.254.2>>/etc/networks

¾ Renseigner le nom et l’adresse IP du contrôleur de domaine dans le fichier /etc/hosts

echo 192.168.254.128 pcvirtw2003svr.stage.local pcvirtw2003svr>>/etc/hosts

¾ Renseigner le serveur DNS ( ici il s’agit du contrôleur de domaine ) dans le fichier


/etc/resolv.conf
echo nameserver 192.168.254.128>>/etc/resolv.conf

¾ Relancer l’interface réseau

ifdown eth0
ifup eth0

LOUSSOUARN Mikaël Page 74 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.7.4. Synchronisation des horloges

La synchronisation des horloges est nécessaire au fonctionnement du protocole kerberos.

¾ Editer le fichier /etc/default/ntpdate et le modifier comme suit :

# The settings in this file are used by the program ntpdate-debian, but
not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package
ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

# List of NTP servers to use (Separate multiple servers with spaces.)


# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="pcvirtw2003svr.stage.local"

# Additional options to pass to ntpdate


NTPOPTIONS="-u"

¾ Synchroniser les horloges

/etc/init.d/ntpdate restart

LOUSSOUARN Mikaël Page 75 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.7.5. Paramétrage du client kerberos

¾ Vérifier et renseigner le fichier /etc/krb5.conf comme suit (la casse doit être
respectée) :
[logging]
default = FILE10000:/var/log/krb5lib.log

[libdefaults]
ticket_lifetime = 24000
default_realm = STAGE.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.


krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

# The following encryption type specification will be used by MIT Kerberos


# if uncommented. In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.

# default_tgs_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1


des-cbc-crc des-cbc-md5
# default_tkt_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1
des-cbc-crc des-cbc-md5
# permitted_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-
cbc-crc des-cbc-md5

# The following libdefaults parameters are only for Heimdal Kerberos.


v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true

[realms]
STAGE.LOCAL = {
kdc = pcvirtw2003svr.stage.local
admin_server = pcvirtw2003svr.stage.local
default_domaine = STAGE.LOCAL
}
ATHENA.MIT.EDU = {
kdc = kerberos.mit.edu:88
kdc = kerberos-1.mit.edu:88
kdc = kerberos-2.mit.edu:88
admin_server = kerberos.mit.edu
default_domain = mit.edu
}
MEDIA-LAB.MIT.EDU = {
kdc = kerberos.media.mit.edu

LOUSSOUARN Mikaël Page 76 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

admin_server = kerberos.media.mit.edu
}
ZONE.MIT.EDU = {
kdc = casio.mit.edu
kdc = seiko.mit.edu
admin_server = casio.mit.edu
}
MOOF.MIT.EDU = {
kdc = three-headed-dogcow.mit.edu:88
kdc = three-headed-dogcow-1.mit.edu:88
admin_server = three-headed-dogcow.mit.edu
}
CSAIL.MIT.EDU = {
kdc = kerberos-1.csail.mit.edu
kdc = kerberos-2.csail.mit.edu
admin_server = kerberos.csail.mit.edu
default_domain = csail.mit.edu
krb524_server = krb524.csail.mit.edu
}
IHTFP.ORG = {
kdc = kerberos.ihtfp.org
admin_server = kerberos.ihtfp.org
}
GNU.ORG = {
kdc = kerberos.gnu.org
kdc = kerberos-2.gnu.org
kdc = kerberos-3.gnu.org
admin_server = kerberos.gnu.org
}
1TS.ORG = {
kdc = kerberos.1ts.org
admin_server = kerberos.1ts.org
}
GRATUITOUS.ORG = {
kdc = kerberos.gratuitous.org
admin_server = kerberos.gratuitous.org
}
DOOMCOM.ORG = {
kdc = kerberos.doomcom.org
admin_server = kerberos.doomcom.org
}
ANDREW.CMU.EDU = {
kdc = vice28.fs.andrew.cmu.edu
kdc = vice2.fs.andrew.cmu.edu
kdc = vice11.fs.andrew.cmu.edu
kdc = vice12.fs.andrew.cmu.edu
admin_server = vice28.fs.andrew.cmu.edu
default_domain = andrew.cmu.edu
}
CS.CMU.EDU = {
kdc = kerberos.cs.cmu.edu
kdc = kerberos-2.srv.cs.cmu.edu
admin_server = kerberos.cs.cmu.edu
}
DEMENTIA.ORG = {
kdc = kerberos.dementia.org
kdc = kerberos2.dementia.org
admin_server = kerberos.dementia.org
}
stanford.edu = {
kdc = krb5auth1.stanford.edu

LOUSSOUARN Mikaël Page 77 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

kdc = krb5auth2.stanford.edu
kdc = krb5auth3.stanford.edu
admin_server = krb5-admin.stanford.edu
default_domain = stanford.edu
}

[domain_realm]
.stage.local = STAGE.LOCAL
stage.local = STAGE.LOCAL
.mit.edu = ATHENA.MIT.EDU
mit.edu = ATHENA.MIT.EDU
.media.mit.edu = MEDIA-LAB.MIT.EDU
media.mit.edu = MEDIA-LAB.MIT.EDU
.csail.mit.edu = CSAIL.MIT.EDU
csail.mit.edu = CSAIL.MIT.EDU
.whoi.edu = ATHENA.MIT.EDU
whoi.edu = ATHENA.MIT.EDU
.stanford.edu = stanford.edu

[login]
krb4_convert = true
krb4_get_tickets = false

¾ Pour tester le protocole Kerberos:

kinit Administrateur

Entrer le mot de passe de l’administrateur sur le domaine, la console ne doit pas retourner
d’erreur.

LOUSSOUARN Mikaël Page 78 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.7.6. Paramétrage de samba et de winbind

¾ Editer le fichier /etc/samba/smb.conf et le modifier comme suit :

Note : (les lignes en rouge montrent les changements effectués sur le fichier d’origine)
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentary and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# //////////////////////////////////////////////////
# Change this to the workgroup/NT-domain name your Samba server will part
of
realm = STAGE.LOCAL
workgroup = STAGE
# ///////////////////////////////////////////////

# server string is the equivalent of the NT Description field


server string = %h server

# Windows Internet Name Serving Support Section:


# WINS Support - Tells the NMBD component of Samba to enable its WINS
Server
; wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client


# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

# What naming service and in what order should we use to resolve host
names
# to IP addresses
; name resolve order = lmhosts host wins bcast

LOUSSOUARN Mikaël Page 79 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

#### Networking ####

# The specific set of interfaces / networks to bind to


# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = true

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).


max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
; syslog only = no

# We want Samba to log a minimum amount of information to syslog.


Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something
higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace


panic action = /usr/share/samba/panic-action %d

####### Authentication #######

# "security = user" is always a good idea. This will require a Unix


account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
# //////////////////////////////
# security = user
security = ads
# /////////////////////////////

# You may wish to use password encryption. See the section on


# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

LOUSSOUARN Mikaël Page 80 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

; guest account = nobody


invalid users = root

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
; unix password sync = no

# For Unix password sync to work on a Debian GNU/Linux system, the


following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-
muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n
*Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
; pam password change = no

########## Domains ###########

# Is this machine able to authenticate users. Both PDC and BDC


# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
; domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of the user's profile directory
# from the client point of view)
# The following required a [profiles] share to be setup on the
# samba server (see below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home
directory
; logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set


# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
; logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set


# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the
SAMR
# RPC pipe. The example command creates a user account with a disabled
Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos
"" %u

LOUSSOUARN Mikaël Page 81 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

########## Printing ##########

# If you want to automatically load your printer list rather


# than setting them up individually then you'll need this
; load printers = yes

# lpr(ng) printing. You may wish to override the location of the


# printcap file
; printing = bsd
; printcap name = /etc/printcap

# CUPS printing. See also the cupsaddsmb(8) manpage in the


# cupsys-client package.
; printing = cups
; printcap name = cups

# When using [print$], root is implicitly a 'printer admin', but you can
# also give this right to other users to add drivers and set printer
# properties
; printer admin = @ntadmin

############ Misc ############

# Using the following line enables you to customise your configuration


# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-
HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:
# SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY

# The following parameter is useful only if you have the linpopup package
# installed. The samba maintainer and the linpopup maintainer are
# working to ease installation and configuration of linpopup and samba.
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

# Domain Master specifies Samba to be the Domain Master Browser. If this


# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
; domain master = auto

# ///////////////////////////////////////////////////////////////
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
password server = pcvirtw2003svr.stage.local
winbind separator = /
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
template homedir = /home/%D/%U
client use spnego = yes
winbind use default domain = true
;
; The following was the default behaviour in sarge
; but samba upstream reverted the default because it might induce

LOUSSOUARN Mikaël Page 82 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

; performance issues in large organizations


; See #368251 for some of the consequences of *not* having
; this setting and smb.conf(5) for all details
;
winbind enum groups = yes
winbind enum users = yes

#///////////////////////////////////////////////////////

#======================= Share Definitions =======================

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next


# parameter to 'yes' if you want to be able to write to them.
writable = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want
to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700

# Restrict access to home directories


# to the one of the authenticated user
# This might need tweaking when using external authentication schemes
valid users = %S

# Un-comment the following and create the netlogon directory for Domain
Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

# Un-comment the following and create the profiles directory to store


# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes

LOUSSOUARN Mikaël Page 83 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

public = no
writable = no
create mode = 0700

# Windows clients look for this share name as a source of downloadable


# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# Replace 'ntadmin' with the name of the group your admin users are
# members of.
; write list = root, @ntadmin

# A sample share for sharing your CD-ROM with others.


;[cdrom]
; comment = Samba server's CD-ROM
; writable = no
; locking = no
; path = /cdrom
; public = yes

# The next two parameters show how to auto-mount a CD-ROM when the
# cdrom share is accesed. For this to work /etc/fstab must contain
# an entry like this:
#
# /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0
#
# The CD-ROM gets unmounted automatically after the connection to the
#
# If you don't want to use auto-mounting/unmounting make sure the CD
# is mounted on /cdrom
#
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom

¾ Il faut créer le dossier destiné à servir de dossier de base aux utilisateurs du domaine
sur la distribution linux et lui paramétrer les bonnes autorisations

mkdir /home/STAGE
chmod 777 /home/STAGE

LOUSSOUARN Mikaël Page 84 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Pour activer l’authentification winbind sur la Debian, éditer le fichier


/etc/nsswitch.conf comme suit :

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed,
try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat winbind


group: compat winbind
shadow: compat

hosts: files dns


networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

¾ Lancer les services samba et winbind


/etc/init.d/samba start
/etc/init.d/winbind start

8.7.7. Rejoindre le domaine

¾ Pour rejoindre le domaine


net ads join

¾ Pour tester l’intégration la commande suivante doit retourner la liste des utilisateurs du
domaine
wbinfo -u

Retour au chapitre

LOUSSOUARN Mikaël Page 85 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.8. Installation et paramétrage des logiciels Squid et


Squiguard sur une Debian Etch 4.0r intégrée à un domaine
Windows.

Ce document détaille la mise en œuvre d’un serveur mandataire Linux permettant un


filtrage de la navigation Internet des utilisateurs d’un domaine Windows Active Directory.

8.8.1. Pré requis :

La distribution Debian devra être intégrée au domaine comme détaillé dans le chapitre
intégration d’une distribution linux Debian au domaine

Note : Toutes les manipulations qui suivent sont faites en tant qu’administrateur du système
Linux à savoir le compte root.

8.8.2. Données propres à l’exercice (à adapter selon les besoins):

¾ Domaine : stage.local
¾ Contrôleur de domaine :
Nom netbios : pcvirtw2003svr nom DNS : pcvirtw2003svr.stage.local
@ IP : 192.168.254.128/24
¾ Debian :
Nom netbios : debian nom DNS : debian.stage.local
@IP : 192.168.254.129/24

8.8.3. Logiciels nécessaires :

¾ Le logiciel de service mandataire (proxy) Squid


Pour l’installation faire :

apt-get install squid

¾ Le logiciel de filtrage de navigation Internet SquidGuard

apt-get install squidGuard

LOUSSOUARN Mikaël Page 86 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.8.4. Paramétrage de Squid

¾ Tester l’authentification des utilisateurs du domaine ntlm_auth

/usr/bin/ntlm_auth --username=administrateur

Entrer le mot de passe administrateur, NT_STATUS_OK doit être retourné par la


console.

¾ Changer les autorisations du dossier /var/run/samba/winbindd_privileged

chmod –R 777 /var/run/samba/winbindd_privileged

¾ Editer le fichier /etc/squid/squid.conf et modifier, ajouter les lignes comme suit :

# definir comment squid identifie les utilisateurs du domaine


auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-
ntlmssp
auth_param ntlm children 5
#auth_param ntlm max_challenge_reuses 0
#auth_param ntlm max_challenge_lifetime 2 minutes

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-


basic
auth_param basic children 15
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 5 hours

# definition des utilisateurs ayant le droit d’acceder


acl NTLMUsers proxy_auth REQUIRED
http_access allow all NTLMUsers

# demander a squid de se comporter comme faisant partie du groupe root


cache_effective_group proxy
#cache_effective_group root

# rediriger le filtrage des requetes internet vers le module squidGuard


redirect_program /usr/bin/squidGuard
redirect_children 4

LOUSSOUARN Mikaël Page 87 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.8.5. Paramétrage de Squidguard

¾ Création des listes de sites interdits

Nous supposons que les listes de sites interdits à la navigation seront définies comme suit :

list2, list3, list4 ….

Nous procéderons à la création de ces listes depuis les listes fournies par l’université de
Toulouse.

Manipulations de création des listes :


cd
mkdir telechargement
cd telechargement
wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz
tar –xvzf blacklists.tar.gz
cd blacklists
mkdir /var/lib/squidguard/db/lists
mv adult /var/lib/squidguard/db/lists/list2
mv agressif /var/lib/squidguard/db/lists/list3
mv audio-video /var/lib/squidguard/db/lists/list4
mv mobile-phone /var/lib/squidguard/db/lists/list6
mv games /var/lib/squidguard/db/lists/list7
mv drogue /var/lib/squidguard/db/lists/list8
mv cleaning /var/lib/squidguard/db/lists/list9
mv tricheur /var/lib/squidguard/db/lists/list10
mv dangerous_material /var/lib/squidguard/db/lists/list13
mv forums /var/lib/squidguard/db/lists/list14
mv gambling/var/lib/squidguard/db/lists/list15
mv hacking /var/lib/squidguard/db/lists/list16
mv liste_bu /var/lib/squidguard/db/lists/list17
mv mixed_adult /var/lib/squidguard/db/lists/list18
mv pishing /var/lib/squidguard/db/lists/list19
mv publicite /var/lib/squidguard/db/lists/list20
mv radio /var/lib/squidguard/db/lists/list21
mv reaffected /var/lib/squidguard/db/lists/list22
mv redirector /var/lib/squidguard/db/lists/list23
mv sexual_education /var/lib/squidguard/db/lists/list24
mv strict_redirector /var/lib/squidguard/db/lists/list25
mv strong_redirector /var/lib/squidguard/db/lists/list26
mv warez /var/lib/squidguard/db/lists/list27
mv webmail /var/lib/squidguard/db/lists/list28
chown –R proxy /var/lib/squidguard/db
chmod –R 760 /var/lib/squidguard/db
cd ..
rm –R *

Note : le nom des dossiers des listes provenant de l’université de Toulouse est parfois amené à
changer.

A la suite de ces manipulations nous obtenons une liste de dossiers contenants les sites
interdits dans le dossier /var/lib/squidguard/db.

LOUSSOUARN Mikaël Page 88 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Correspondance entre les listes écrites dans /var/lib/squidguard/db et la dénomination de


l’université de Toulouse correspondant au besoin du site de l’exercice.

liste:
1 blanche
2 adults
3 agressif
4 audio-video
6 mobile-phone
7 games
8 drogue
9 cleaning
10 tricheur
13 dangerous_material
12 defaut
14 forums
15 gambling
16 hacking
17 liste_bu
18 mixed_adult
19 phishing
20 publicite
21 radio
22 reaffected
23 redirector
24 sexual_education
25 strict_redirector
26 strong_redirector
27 warez
28 webmail

LOUSSOUARN Mikaël Page 89 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Création des listes des utilisateurs

Il faut désormais créer une liste des utilisateurs pour les deux groupes des domaines
enseignants et élèves pour pouvoir éventuellement leur accorder des droits de navigation
différents.

Le script Bash suivant créé ces deux listes :


#! /bin/bash
#
# lister des utilisateurs d'active directory pour les groupes eleves et profs
#
# le 2 dec 2007 par Mikael LOUSSOUARN pour le Lycee sacre coeur Angers
#
######################################################################
# creation du dossier de destination
mkdir /var/lib/squidguard/db/users/
# relance du service winbind
/etc/init.d/winbind restart
# reccuperation des users du groupe eleves et creation de la liste
getent group | grep eleves | cut -d: -f4 | tr "," "\n">/var/lib/squidguard/db/users/1.user
# reccuperation des users du groupe enseignants et creation liste
getent group | grep enseignants | cut -d: -f4 | tr "," "\n">/var/lib/squidguard/db/users/2.user
# placement des droits sur les dossiers
chown –R proxy /var/lib/squidguard/db
chmod –R 760 /var/lib/squidguard/db

Il faut copier ce script dans un éditeur de texte, le sauvegarder, lui attribuer les droits
d’exécution ( chmod 700 [nom du script] ) et en console lancer : sh [nom du script]

Nous obtenons des listes d’utilisateurs dans le dossier /var/lib/squidguard/db/users


correspondantes aux deux listes des utilisateurs des groupes élèves et enseignants du
domaine.

1.user = liste des élèves


2.user = liste des enseignants

¾ Création de la page de redirection

Il faut créer une page internet destinée à être affichée en cas de refus de la connexion par le
proxy, il conviendra d’héberger cette page sur un serveur Web accessible sur le réseau local.

Tester l’accès à cette page avant de continuer.

LOUSSOUARN Mikaël Page 90 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Configuration de SquidGuard

Editer le fichier de configuration de Squiguard et le renseigner comme suit :

Note : renseigner l’url de la page de redirection ainsi que vos définitions de contrôle d’accès.
#
# CONFIG FILE FOR SQUIDGUARD
#
# definition du dossier contenant les listes des utilisateurs et des sites
dbhome /var/lib/squidguard/db
# definition du dossier de log (journal)
logdir /var/log/squid

# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat

# horaires de connexion autorisee


time workhours {
weekly mtwhf 08:00 - 17:30
date *-*-01 08:00 - 17:30
}

# SOURCE ADDRESSES:

# definition de la source des utilisateurs eleves


source user1 {
userlist users/1.user
}

# definition de la source des utilisateurs enseignants


source user2 {
userlist users/2.user
}

# definition des listes de filtrage


# note : definir une liste pour chacune des listes de filtrage

dest list2 {
domainlist lists/list2/domains
urllist lists/list2/urls
}
# DESTINATION CLASSES:
#

dest good {
}

dest local {
}

LOUSSOUARN Mikaël Page 91 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# definition des controles d’acces


acl {
# definition des droits d’acces des élèves
user1 {
#ici les élèves ont acces a tout sauf au contenu de la list2 soit la categorie adult
# un ! devant le nom de la list signifie le refus a son acces
pass !list2 all
# en cas de rejet de la page demandee rediriger vers la page de refus d’acces
redirect
http://[URL de la page de redirection]
}

# definition des droits d’acces des enseignants


user2 {
pass !list2 all
redirect
http://[URL de la page de redirection]
}

# definition des droits d’acces par defaut (utilisateurs non present dans les listes
default {
redirect http://[URL de la page de redirection]
pass none
}

LOUSSOUARN Mikaël Page 92 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Construire les bases de données de SquidGuard.

squidGuard –C all

¾ Lancer le proxy Squid

/etc/init.d/squid start

¾ Installer Sarg

apt-get install sarg

Les journaux d’évenements du serveur mandataire seront grâce à Sarg consultable via un
navigateur Web à l’adresse : http://adresse_ip_serveur_Squid /squid-reports/
Sarg s’actualise sur le serveur Squid au moyen de la commande sarg, par défaut Sarg
s’actualisera chaque nuit.

8.8.6. Autre solution : Utilisation d’un script d’administration

Afin de faciliter l’installation du serveur mandataire ainsi que son administration, il est
possible d’utiliser le script suivant.
Le dossier Proxydebian doit impérativement être copié entièrement dans un dossier de la
distribution destinée à devenir serveur mandataire.

Lien vers le manuel d’utilisation.

Le script se lance depuis le dossier ProxyDebian avec la commande sh proxydeb3.

Retour au chapitre

LOUSSOUARN Mikaël Page 93 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Sources du script :
#!/bin/sh
#
# Script général d'installation et de configuration
# d'un proxy squid squidguard sur une debian etch intégrée dans un domaine
# le filtrage de la navigation internet est basé sur les utilisateurs du domaine
#
# Le 4/12/2007 par Mikael LOUSSOUARN
#################################################################################
#
# définition des fonctions
#
####################################
# fonction d'attente de la pression sur la touche enter
function pauseE()
{
echo "<PRESS ENTER>"
read
}

###############################################
# fonction redemarrage winbind
function start_winbind()
{
/etc/init.d/samba restart
/etc/init.d/winbind restart
# ouverture des droits sur winbindd_privileged
chmod -R 777 /var/run/samba/winbindd_privileged
}

######################################
# Installation de samba winbind krb5-user ntpdate ( pack 1)
function instalpack1()
{
clear
echo "> Installation des logiciels ...."
apt-get install samba winbind krb5-user ntpdate
pauseE
}

#######################################
# relance du proxy
function relancesquid()
{
/etc/init.d/squid stop
start_winbind
/etc/init.d/squid start
}

############################################
# mise en place d'un script de demarrage du proxy automatique au demarrage
function demar_auto_squid()
{
# creation du script
echo ">mise en place d'un script de démarrage automatique du proxy"
echo "#!/bin/sh">/etc/init.d/proxy
echo "# demarrage automatique du proxy">>/etc/init.d/proxy
echo "echo \"démarrage du proxy ....................\"">>/etc/init.d/proxy
echo "# ouverture des droits sur winbindd_privileged">>/etc/init.d/proxy
echo "chmod -R 777 /var/run/samba/winbindd_privileged">>/etc/init.d/proxy
echo "/etc/init.d/squid start">>/etc/init.d/proxy
# verification du script à l'écran
echo ">visualisation du script :"
tail /etc/init.d/proxy
# rendre le script executable
chmod 777 /etc/init.d/proxy
# créer un lien pour le démarrage du script automatique pour remplacer ceux de samba,winbind et squid
update-rc.d -f squid remove
update-rc.d -f proxy remove
update-rc.d squid stop 30 0 1 6 .
update-rc.d proxy start 99 2 3 4 5 .
echo "> Script inscrit au démarrage"
pauseE
}

LOUSSOUARN Mikaël Page 94 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

########################################
# demande des variables du réseau
function renseigne()
{
clear
echo " !! toutes les REPonses devront être en minuscules !!"
echo "> Nom du domaine:"
read DOMAINE
echo "> nom NetBios contrôleur de domaine:"
read CDNETBIOS
CDDNS=$CDNETBIOS"."$DOMAINE
echo "> non dns contrôleur du domaine :"$CDDNS
echo "> Adresse IP du controlleur de domaine:"
read CDIP
echo "> Nom NetBios de la Debian:"
read LNETBIOS
LDNS=$LNETBIOS"."$DOMAINE
echo "> nom DNS de la debian :"$LDNS
echo "> Adresse IP de la debian:"
read LIP
echo "> masque du réseau :"
read NETMASK
echo "> Broadcast du réseau:"
read BCAST
echo "> Passerelle :"
read PASS
echo "> Ip du serveur DNS:"
read DNSIP
echo "Merci :)"
pauseE
}

##############################################
#configuration du réseau
function confNet()
{
clear
echo "> configuration du réseau ..."
# definition du fichier de destination
FILE="/etc/network/interfaces"
#effacement du fichier d'origine
rm -f $FILE
# creation du fichier
echo "#The looback network interface">$FILE
echo "auto lo">>$FILE
echo "iface lo inet loopback">>$FILE
echo "# The primary network interfaces">>$FILE
echo "allow-hotplug eth0">>$FILE
echo "iface eth0 inet static">>$FILE
echo "address "$LIP>>$FILE
echo "netmask "$NETMASK>>$FILE
echo "broadcast "$BCAST>>$FILE
echo "gateway "$PASS>>$FILE
echo "gateway "$PASS>>/etc/networks
echo $CDIP" "$CDDNS" "$CDNETBIOS>>/etc/hosts
echo "nameserver "$DNSIP>>/etc/resolv.conf
# relance de l'interface réseau
ifdown eth0
ifup eth0
# fin
echo "> vérification config réseau (ifconfig) ..."
pauseE
ifconfig
pauseE
}

######################################################
# synchronisation des horloges
function synchron()
{
clear
echo "> Synchronisation de l'horloge "
# vérififier si la configuration du reseau a deja ete effectuee
if [ "$DOMAINE" = "///" ]
then conf;echo "reconfigurer avant le réseau";return
fi
# definition du fichier a configurer

LOUSSOUARN Mikaël Page 95 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

FILE="/etc/default/ntpdate"
# effacement du fichier d'origine
rm -f $FILE
# creation du nouveau fichier
echo "NTPDATE_USE_NTP_CONF=yes">$FILE
echo "NTPSERVERS=\""$CDDNS"\"">>$FILE
echo "NTOPTIONS=\"-u\"">>$FILE
# synchronisation de l'horloge avec le controleur de domaine
ntpdate $CDDNS
pauseE
}

#########################################################
# paramétrage kerberos
function kerberos()
{
# si le nom du domaine n'est pas présent en variable alors reconfigurer le #reseau
if [ "$DOMAINE" = "///" ]
then confNet
synchron
fi
clear
echo "> configuration du protocole Kerberos"
# definition du fichier de configuration
FILE="/etc/krb5.conf"
# destruction du fichier d'origine
rm -f $FILE
# creation du nouveau fichier
echo "[logging]">$FILE
echo " default = FILE10000:/var/log/krb5lib.log">>$FILE
echo "[libdefaults]">>$FILE
echo " ticket_lifetime = 24000">>$FILE
echo " default_realm = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " krb4_config = /etc/krb.conf">>$FILE
echo " krb4_realms = /etc/krb.realms">>$FILE
echo " kdc_timesync = 1">>$FILE
echo " ccache_type = 4">>$FILE
echo " forwardable = true">>$FILE
echo " proxiable = true">>$FILE
echo " v4_instance_resolve = false">>$FILE
echo " v4_name_convert = {">>$FILE
echo " host = {">>$FILE
echo " rcmd = host">>$FILE
echo " ftp = ftp">>$FILE
echo " }">>$FILE
echo " plain = {">>$FILE
echo " something = something-else">>$FILE
echo " }">>$FILE
echo " }">>$FILE
echo " fcc-mit-ticketflags = true">>$FILE
echo "[realms]">>$FILE
echo " "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`" = {">>$FILE
echo " kdc = "$CDDNS>>$FILE
echo " admin_server = "$CDDNS>>$FILE
echo " default_domaine = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " }">>$FILE
echo "[domain_realm]">>$FILE
echo " ."$DOMAINE" = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " "$DOMAINE" = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo "[login]">>$FILE
echo " krb4_convert = true">>$FILE
echo " krb4_get_tickets = false">>$FILE
# test du protocole kerberos
echo "> test du protocole kerberos ...."
echo "> à la demande entrer le mot de passe adimistrateur du domaine..."
pauseE
kinit Administrateur
pauseE
}

################################################################
# paramètrage de samba et winbind
function sambawinbind()
{
clear
echo "> configuration samba et winbind"
# stop samba et winbind

LOUSSOUARN Mikaël Page 96 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

/etc/init.d/samba stop
/etc/init.d/winbind stop
# definition du fichier de configuration
FILE="/etc/samba/smb.conf"
# effacement du fichier d'origine
rm -f $FILE
# creation du fichier
REMPLACE=`echo $DOMAINE | tr [":lower:"] [":upper:"]`
sed -e "s/STAGE.LOCAL/"$REMPLACE"/g" $PWD$FILE >$PWD/tampon
REMPLACE=`echo $DOMAINE | tr [":lower:"] [":upper:"] | cut -d. -f1`
sed -e "s/STAGE/"$REMPLACE"/g" $PWD/tampon >$PWD/tampon2
sed -e "s/pcvirtw2003svr.stage.local/"$CDDNS"/g" $PWD/tampon2>$FILE
# creation repertoire utilisateur du domaine
mkdir /home/`echo $DOMAINE | tr "[:lower:]" "[:upper:]" | cut -d. -f1`
chmod 777 /home/`echo $DOMAINE | tr "[:lower:]" "[:upper:]" | cut -d. -f1`
# definition du fichier de configuration
FILE="/etc/nsswitch.conf"
# destruction du fichier d'origine
rm -f $FILE
# creation du nouveau fichier
echo "passwd: compat winbind">$FILE
echo "group: compat winbind">>$FILE
echo "shadow: compat">>$FILE
echo " ">>$FILE
echo "hosts: files dns">>$FILE
echo "networks: files">>$FILE
echo " ">>$FILE
echo "protocols: db files">>$FILE
echo "services: db files">>$FILE
echo "ethers: db files">>$FILE
echo "rpc: db files">>$FILE
echo " ">>$FILE
echo "netgroup nis">>$FILE
# redemarrage de samba et winbind
start_winbind
# intégration au domaine
echo "> l'ordinateur va rejoindre le domaine"
pauseE
echo "renseigner le mot de passe admin du domaine"
net join -U Administrateur -S $CDNETBIOS
pauseE
# test de winbind
wbinfo -u
echo "> Si la liste des utilisateurs du domaine c'est bien affichée c'est OK"
pauseE
}

##########################################################
# Installation de squid squidguard et apache( pack 2)
function instalpack2()
{
clear
echo "> Installation des logiciels Squid,SquidGuard et apache"
apt-get install squid squidGuard apache
pauseE
}

###########################################################
# obtenir les utilisateurs du domaine pour les groupes a filtrer
function get_user()
{
clear
echo "> obtention des listes d'utilisateurs du domaine pour squidGuard"
# netoyage des précedentes listes
rm -R -f /var/lib/squidguard/db/users
# creation du dossier destination
mkdir /var/lib/squidguard/db/users/
# redemarrage de winbindd pour raffraichir les utilisateurs
start_winbind
# nom du groupe utilisateur ?
echo "nom du groupe d'utilisateur ( taper *FIN* pour finir)"
read GRUSER
# effacement du fichier de correspondances users
rm -f $PWD/users
# creation de la liste pour le groupe indiqué
I=1
while [ "$GRUSER" != "*FIN*" ]

LOUSSOUARN Mikaël Page 97 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

do
getent group | grep $GRUSER | cut -d: -f4 | tr "," "\n" >/var/lib/squidguard/db/users/$I.user
# visualisation de la liste des utilisateurs
echo "> Visualisation des listes des utilisateurs :"
cat /var/lib/squidguard/db/users/$I.user
if [ -e $PWD/users ]
then
echo $GRUSER" "$I".user" >>$PWD/users
else
echo $GRUSER" "$I".user" >$PWD/users
fi
# visualisation de l'etat des correspondances
echo "> correspondances:"
cat $PWD/users
echo "nom du groupe d'utilisateur ( taper *FIN* pour finir)"
read GRUSER
I=`echo $(($I+1))`
done
# reaffectation des droits sur la base de données squid guard
chown -R proxy /var/lib/squidguard/db/
chmod -R 770 /var/lib/squidguard/db/
echo "> liste des utilisateurs créées"
pauseE
}

###############################################################################
#telechargement des listes de filtrage de l'université de toulouse avec verification de la correspondance
#( fichier de corresponsance = ./corresponsdance a éditer si necessaire)
function transf_lists()
{
echo "> téléchargement des listes de filtrage de l'université de toulouse"
# creation du chemin de destination
REPT="/var/lib/squidguard/db"
# copie du fichier de corresponsdance dans la zone de données de #squidguard pour info
cp $PWD/correspondances $REPT/correspondances
# nettoyage et creation du dossier de telechargement
rm -R -f $REPT/download
mkdir $REPT/download
# telechargement
wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz -O $REPT/download/blacklists.tar.gz
echo "> Téléchargement des archives effectué"
# decompression de l'archive
echo "> Decompression ... "
tar -xzf $REPT/download/blacklists.tar.gz -C $REPT/download/
echo "> decompression effectuée "
clear
# verification des correspondances
# listage des dossiers telechargés
echo "> Etat de la liste telechargée :"
ls -C $REPT/download/blacklists
pauseE
# listage du contenu de correspondance pour comparaison
echo "> Etat de la liste dans le fichier /root/correspondance"
while read line
do
set $line
if [ "$1" != "NONDEF" ]
then echo -n $1 " | "
fi
done<$PWD/correspondances
echo "................................"
echo "> les listes correspondent (o/n) ?"
read
if [ "$R" = "n" ]
then
echo "!!! vous devez éditer le fichier /root/correspondances"
echo "pour qu'il corresponde au contenu du dossier
/var/lib/squidguard/db/download/ !"
fi
# effacement de l'archive
rm -f $REPT/download/blacklists.tar.gz
echo "> fin telechargement"
pauseE
}

#####################################################################
# fonction de renommage des lists téléchargées

LOUSSOUARN Mikaël Page 98 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

function copie_lists()
{
clear
echo "> transfert des listes telechargées vers la base de squidguard"
# definition du repertoire de travail
REPT="/var/lib/squidguard/db"
# creation du dossier lists destinataire
rm -R -f $REPT/lists
mkdir $REPT/lists
# parcours de la list de correspondances et deplacement des dossiers vers la base de données
while read line
do
set $line
if [ $1 = "" ]
then break
fi
if [ $1 = "NONDEF" ]
then echo -n "."
else mv $REPT/download/blacklists/$1 $REPT/lists/$2

echo -n ">"
fi
done<$REPT/correspondances
echo ">"
# effacement des fichiers telechargés
rm -R -f $REPT/download
echo "> Listes transférées vers la base squidguard"
pauseE
}

#################################################################
# réatribution des droits sur la base
function reatribute_droits()
{
REPT="/var/lib/squidguard/db"
chown -R proxy:proxy $REPT
chmod -R 775 $REPT
}

##############################################################
# reconstruction des bases squidguard actuellement utilisées par le logiciel
function reconstruc_bases()
{
REPT="/var/lib/squidguard/db"
echo "> reconstruction des bases "
/usr/bin/squidGuard -C all
reatribute_droits
pauseE
}

# reconstruction des bases squidguard situées dans le fichier temporaire, non #utilisé par le logiciel
# doivent etre deplacées pour devenir active ( fonction install_list)
function reconstruc_bases_temp()
{
REPT="/var/lib/squidguard/db"
echo "> reconstruction des bases "
/usr/bin/squidGuard -c $PWD/compileBases.conf -C all
reatribute_droits
pauseE
}

##################################################
# relance de squid
function startsquid()
{
chmod -R 777 /var/run/samba/winbindd_privileged
/etc/init.d/squid start
}

#######################################################
# stop squid
function stop_squid()
{
/etc/init.d/squid stop
}

#####################################################"

LOUSSOUARN Mikaël Page 99 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# reccuperation et installation des listes de filtrage


# fonction génerale procedant au telechargement et au renomage des listes
function telecharge()
{
clear
echo "> reccuperation des listes de filtrage "
# repertoire de travail
REPT="/var/lib/squidguard/db"
# telechargement des listes et verif correspondances
transf_lists
echo "> téléchargement effectué "
# si les listes ne correspondent pas on ne continue pas
if [ "$R" = "n" ]
then echo " listes non créées !! ";return
fi
# renommage des listes
copie_lists
# reconstruction des bases de données suivant la liste telechargée dans 1 fichier non utilisé par
#squid
echo "> reconstruction des bases temporaires, Patience .."
reatribute_droits
reconstruc_bases_temp
pauseE
}

############################################################
# fonction devenue obsolete gardée pour memoire
#function get_listes()
#{
# REPertoire contenant les bases pour SquidGuard
#REPT="/var/lib/squidguard/db"
#copie_lists
#echo " deplacement des listes effectué"
#reatribute_droits
#echo " listes transférées ( faire entrer) "
#read
#}

####################################################
# installation des bases de données compilées depuis le repertoire temporaire jusqu'au repertoire de travail
#de squidguard
function installists()
{
clear
echo "> Installation des bases compilées pour squidguard"
echo "> dans son repertoire de travail"
# repertoire de travail
REPT="/var/lib/squidguard/db"
# arret de squid
stop_squid
# nettoyage des bases de travail actuelle
rm -R -f $REPT/bases
mkdir $REPT/bases
# copie des bases
cp -R $REPT/lists $REPT/bases
# placement des droits
chown -R proxy:proxy $REPT
chmod -R 775 $REPT
# fin, relance de squid
echo "> bases copiées , relance de squid .."
reatribute_droits
startsquid
pauseE
}

#####################################################
# paramètrage de squid
function squidconf()
{
clear
start_winbind
echo "> paramétrage de squid"
# test de l'authentification ntlm"
echo "> vérification de l'authentification ntlm :"
echo "> vous allez être invité à entrer le mot de passe admin du domaine"
echo "> vous devriez voir s'afficher un NT_STATUS_OK "
/usr/bin/ntlm_auth --username=administrateur

LOUSSOUARN Mikaël Page 100 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# attribution des droits necessaires a squid sur winbindd


chmod -R 777 /var/run/samba/winbindd_privileged
# copie du fichier de configuration
cp -f $PWD/etc/squid/squid.conf /etc/squid/squid.conf
chown proxy:proxy /etc/squid/squid.conf
echo "> reprendre l'integration de la machine au domaine si echec"
pauseE
}

#########################################################""
# paramétrage de squidguard
function squidguardconf()
{
# obtenir la liste des users depuis ad
get_user
# ecriture definitions listes et users dans squidguard.conf
# definition du fichier de configuration
FILE="/etc/squid/squidGuard.conf"
# purge de l'ancien fichier
rm -f $FILE
# creation du nouveau fichier
echo "dbhome /var/lib/squidguard/db">$FILE
echo "logdir /var/log/squid">>$FILE
echo "#TIMES RULES">>$FILE
echo "#abbrev for weekdays:">>$FILE
echo "#s = sun , m= mon , t = tue , w = wed , h = thu , f = fri , a = sat">>$FILE
echo "#horaires de connexion autorises :">>$FILE
echo "#time workhours {">>$FILE
echo "# weekly mtwhf 08:00 - 17:30">>$FILE
echo "# date *-*-01 08:00 - 17:30">>$FILE
echo "#}">>$FILE
echo "# source adresses:">>$FILE
# definition des sources utilisateurs
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
echo "#definition de la source utilisateurs $1">>$FILE
echo "source "`echo $2 | cut -d. -f2``echo $2 | cut -d. -f1`" {">>$FILE
echo "userlist users/$2">>$FILE
echo "}">>$FILE
done<$PWD/users
# definition des sources de listes
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
if [ "$1" != "NONDEF" ]
then echo "#definition de la source liste
$1">>$FILE
echo "dest $2 {">>$FILE
echo "domainlist
bases/lists/$2/domains">>$FILE
echo "urllist
bases/lists/$2/urls">>$FILE
echo "}">>$FILE
fi
done<$PWD/correspondances
# definition des acl
echo "acl {">>$FILE
# url de redirection
REDIRECTION="http://localhost/Pageproxy.htm"
# copie de la page dans le dossier www ( serveur apache)
cp $PWD/Pageproxy.htm /var/www
chmod 665 /var/www/Pageproxy.htm
# afficher users
echo "> groupes d'utilisateurs :"
while :
do
cat $PWD/users
# selectionner user
echo "> Selectionner un groupe a filtrer(entrer le type 1.user):"
echo "> entrer *FIN* pour finir "

LOUSSOUARN Mikaël Page 101 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

read GROUPUSER
if [ "$GROUPUSER" = "*FIN*" ]
then break
fi
FILETEMP=$PWD"/temporaire"
# effacer le fichier temporaire
rm -f $FILETEMP
# creer acl avec toutes listes interdites dans fichier acl
echo "# droits d'accès du groupe $GROUPUSER">>$FILETEMP
echo `echo $GROUPUSER | cut -d. -f2``echo $GROUPUSER | cut -d. -f1`" {">>$FILETEMP
echo -n "pass ">>$FILETEMP
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
if [ "$1" != "NONDEF" ]
then
echo -n " !$2 ">>$FILETEMP
fi
done<$PWD/correspondances
echo "all">>$FILETEMP
echo "redirect">>$FILETEMP
echo $REDIRECTION>>$FILETEMP
echo "}">>$FILETEMP
while :
do
# afficher listes
echo "> listes de filtrages (retenez le numero de celle a autoriser!) :"
pauseE
cat $PWD/correspondances | more
echo "> liste a autoriser ? ( syntax de type list1 )"
echo "> entrer *FIN* pour finir "
read AUTORISE
if [ "$AUTORISE" = "*FIN*" ]
then
break
fi
AREMPLACER="!"$AUTORISE
sed -e "s/"$AREMPLACER"/"$AUTORISE"/g" $FILETEMP >$PWD/tampon3
done
clear
echo " visualisation de l'acl "
cat $PWD/tampon3 2>/dev/null
pauseE
if [ -e $PWD/tampon3 ]
then
cat $PWD/tampon3>>$FILE
else
cat $FILETEMP>>$FILE
fi
done
# ecriture acl default dans squidguard.conf
echo "# droits d'acces par defaut">>$FILE
echo "default {">>$FILE
echo " redirect $REDIRECTION">>$FILE
echo " pass none">>$FILE
echo "}">>$FILE
echo "}">>$FILE
# donner les droits sur le fichier au proxy
chown proxy:proxy $FILE
echo "> arret de squid"
stop_squid
echo "> redemarrage de squid"
startsquid
pauseE
}

################################
# voir les logs d'acces au proxy
function logacces()
{
clear;
tail /var/log/squid/access.log | more
pauseE
}

LOUSSOUARN Mikaël Page 102 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

################################
# voir les logs de squid guard
function logsquidguard()
{
clear;
tail /var/log/squid/squidGuard.log | more
pauseE
}

################################# Zone principale ###############################"


# marqueur de definition du reseau
DOMAINE="///"
# menu
while :
do
clear
echo " ----- INSTALLATION ----------"
echo " 0 - Installation compète"
echo " -------- OUTILS ---------------"
echo " 1 _ Configuration du réseau"
echo " 2 - Installation du pack logiciel pour integration domaine"
echo " 3 - Intégration au domaine"
echo " 4 - installation du pack logiciel pour proxy"
echo " 5 - configuration squid et squid guard"
echo " 6 - mise à jour des utilisateurs pour le proxy"
echo " 7 - téléchargement des listes de filtrage pour le proxy"
echo " 8 - installation des listes telechargées ( necessite 7 )"
echo " 9 - configuration des regles de filtrages"
echo " 10- recompilation des bases"
echo " 11- Relance du proxy"
echo " 12-Voir les logs d'accès au proxy"
echo " 13-Voir les logs de squidguard"
echo " --------------------------------"
echo " 14- sortie."
echo " Votre choix :"
read CHOIX
case $CHOIX in

0)renseigne;confNet;instalpack1;synchron;kerberos;sambawinbind;instalpack2;squidconf;squidguardconf;te
lecharge;installists;demar_auto_squid;;
1)renseigne;confNet;;
2)instalpack1;;
3)synchron;kerberos;sambawinbind;;
4)instalpack2;;
5)squidconf;squidguardconf;;
6)get_user;;
7)telecharge;;
8)installists;;
9)squidguardconf;;
10)reconstruc_bases_temp;installists;;
11)relancesquid;;
12)logacces;;
13)logsquidguard;;
14)break;;
15)demar_auto_squid;;
esac
done

LOUSSOUARN Mikaël Page 103 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.9. Manuel d’installation d’un serveur mandataire sur un


serveur Debian Ecth au moyen d’un script dédié.

Ce document détaille l’utilisation du script proxydeb3 à des fins d’installation et de


configuration d’un serveur mandataire sur une distribution Linux Debian Ecth.

En tant que root :


Pour lancer le script, aller dans
le dossier ProxyDebian et entrer
la commande :
sh proxydeb3

Visualisation du menu
d’administration :

Choisir 0 pour une installation


complète.

Renseigner les informations de


configuration du réseau.

LOUSSOUARN Mikaël Page 104 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le script visualise l’état de la


configuration réseau, si les
adresses IP ne correspondent pas
quitter le script ( ctrl C ) et
recommencer.

Faire <entrer>

Installation des logiciels samba


et winbind nécessaires à
l’intégration de la machine au
domaine windows.

Valider l’installation par o.

Installation …

Vous pouvez ignorer cette étape.

Faire <ok>

LOUSSOUARN Mikaël Page 105 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Choisir <non>

Fin de l’installation.

Faire <entrer>

Synchronisation de l’horloge de
la Debian avec celle du
contrôleur de domaine.

Faire <entrer>

LOUSSOUARN Mikaël Page 106 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Vérification du protocole
KERBEROS

Il s’agit d’un kinit


administrateur.

Entrer le mot de passe


administrateur du domaine
Faire <entrer>

Configuration de samba et
winbind.
Intégration de la Debian au
domaine Windows :

Faire <entrer>

Entrer le mot de passe


administrateur du domaine
Faire <entrer>

Normalement vous obtenez un


message d’accueil dans le
domaine.
Faire <entrer>

Visualisation de la liste des


utilisateurs du domaine pour
vérification de la bonne
intégration au domaine.

Faire <entrer>

Si cela ne fonctionne pas quitter


le script , stopper samba et
winbind et relancer le script.

LOUSSOUARN Mikaël Page 107 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Installation des logiciels


nécessaires au serveur
mandataire.
(squid squidguard et apache )

Accepter l’installation par o.

Installation des logiciels

Faire <entrer>

Paramétrage de Squid

Entrez le mot de passe


administrateur du domaine pour
vérifier l’authentification ntlm.

NT_STATUS_OK doit
s’afficher.

Faire <entrer>

LOUSSOUARN Mikaël Page 108 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Obtention de la liste des


utilisateurs du domaine par
groupe à filtrer par le proxy.

Entrez un nom de groupe du


domaine à filtrer.

La liste des membres du groupe


s’affiche.
Un état des correspondances
entre le groupe et son numéro de
liste pour squidguard s’affiche.

Entrer un autre nom de groupe

Tapez *FIN* lorsque vous avez


renseignez tous les groupes du
domaine dont la navigation
Internet devra être filtrée par le
serveur mandataire.

La liste des utilisateurs est créée.

LOUSSOUARN Mikaël Page 109 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Configuration du filtrage
Internet (ACL)

Entrez le nom du groupe


utilisateur à filtrer (Syntaxe de
type 1.user)

Faire <entrer>

La liste des listes de filtrages


disponible va s’afficher, il faut
retenir le numéro des listes que
l’on souhaite autoriser.

Par défauts toutes les listes sont


définies comme non autorisées.

Faire <entrer>

Entrer une liste a autorisé

Syntaxe de type list[n° liste]


Exemple : list17

Faire <entrer>

Dès que toutes les listes


autorisées sont renseignées faire
*FIN*

Faire <entrer>

LOUSSOUARN Mikaël Page 110 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Visualisation de la règle de
filtrage établie pour squidguard.

Faire <entrer>

Entrer éventuellement un autre


groupe à filtrer.

Opération d’autorisation de la
list17 (liste_bu) pour le groupe
2.user (enseignants).

Faire *FIN* pour finir la


définition des listes autorisées.

LOUSSOUARN Mikaël Page 111 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Visualisation de la règle de
filtrage.

Faire <entrer>

Une fois que tous les groupes a


filtrer ont été définis, tapez
*FIN* au lieu d’un nom de
groupe.

Faire <entrer>

Redémarrage de squid pour prise


en compte de la nouvelle
configuration de squid guard.

Téléchargement des listes de


filtrage depuis l’université de
Toulouse.

LOUSSOUARN Mikaël Page 112 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Vérification de la
correspondance entre les listes
téléchargées et celle du site
d’installation.

Si vous souhaitez modifier les


listes du site d’installation alors
vous devez modifier le fichier de
correspondances qui est :
ProxyDebian/correspondances

Les listes sont transférées dans


un répertoire temporaire.

Faire <entrer>

Les listes sont traitées pour créer


des bases de données utilisables
par squidguard.

Cette opération peut-être longue.

La compilation est faites sur le


répertoire temporaire pour ne
pas devoir stopper le serveur
mandataire.

Fin de la reconstruction.

LOUSSOUARN Mikaël Page 113 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Les bases de données construites


sont transférées vers le
répertoire de travail du serveur
mandataire, ceci nécessite un
arrêt du proxy.

Les bases sont copiées.


Le Proxy redémarre.

Modification de la séquence de
démarrage du Proxy pour lui
permettre d’être directement
opérationnel après un
redémarrage de l’ordinateur.

Retour au menu
d’administration.

Faire « 14 » pour en sortir.

Le Proxy est opérationnel.

Les outils permettent de


modifier ensuite la
configuration, de mettre à jour
les listes ou encore de visualiser
les accès.

Retour au chapitre

LOUSSOUARN Mikaël Page 114 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.10. Installation d’un serveur de messagerie Postfix sur une


Debian Etch

Ce document traite de la mise en place d’un serveur de messagerie Postfix sur une distribution
Linux Debian Etch pour usage dans un domaine active directory.

8.10.1. Pré requis :

La distribution Debian devra être intégrée au domaine comme détaillé dans le chapitre
intégration d’une distribution linux Debian au domaine

Note : Toutes les manipulations qui suivent sont faites en tant qu’administrateur du système
Linux à savoir le compte root.

8.10.2. Données propres à l’exercice (à adapter selon les


besoins):

¾ Domaine : stage.local
¾ Contrôleur de domaine :
Nom netbios : pcvirtw2003svr nom DNS : pcvirtw2003svr.stage.local
@ IP : 192.168.254.128/24
¾ Debian :
Nom netbios : debian nom DNS : debian.stage.local
@IP : 192.168.254.129/24

¾ Prestataire collecteur de courriers depuis l’extérieur :


Gmail : serveur pop :
Port :
Login : collecteur@gmail.com mot de passe: XXXXXXX

¾ Prestataire pour l’envoi du courrier via service smtp :


Smtp.wanadoo : 193.252.22.91

8.10.3. Logiciels nécessaires :

Le service de messagerie électronique Postfix

apt-get install postfix

Note : dans l’interface de configuration de l’installation choisir type internet par FAI

Le service d’accès aux messages électroniques IMAP courier-imap

apt-get install courier-imap

LOUSSOUARN Mikaël Page 115 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Le logiciel de distribution de courriers électroniques Procmail

Inclus dans l’installation de postfix

Le service de récupération de courriers électroniques Fetchmail

apt-get install fetchmail

L’antivirus Clamav (et amavis pour permettre l’interaction entre postfix et clamav)

apt-get install amavisd-new clamav clamav-daemon clamav-freshclam

L’anti-spam spamassassin

apt-get install spamassassin

8.10.4. Paramétrage de Postfix

Le fichier principal de configuration de Postfix est /etc/postfix/main.cf,


Editer ce fichier au moyen d’un éditeur de texte (vi ou nano par exemple).

Commande : #nano /etc/postfix/main.cf


(en bleu les données propres à votre site)

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific: Specifying a file name will cause the first


# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)


biff = no
setgid_group = postdrop
mail_owner = postfix

# utiliser un alias pour envoyer du courrier ( juste pour plateforme test)


sender_canonical_maps = hash:/etc/postfix/sender_canonical

# appending .domain is the MUA's job.


append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings


#delay_warning_time = 4h

myhostname = debian.stage.local

LOUSSOUARN Mikaël Page 116 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

mydomain = [ICI METTRE LE NOM DE VOTRE DOMAINE RECONNU SUR LE NET]


masquerade_domains = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = debian.stage.local, localhost.stage.local, localhost, $mydomain
relay_domain = $mydomain
relayhost = 193.252.22.91
mynetworks = 127.0.0.0/8 192.168.254.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Nous indiquons que les Boîtes e-mail (au format maildir) des utilisateurs seront stockées #
# dans $HOME/Maildir/
home_mailbox = Maildir/

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/cert/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_cache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_cache

#Paramètre pour l'intéraction avec Amavis pour le filtrage avec ClamAV :


#content_filter = smtp-amavis:[127.0.0.1]:10024

# Sécurisation avancée de Postfix : mécanismes de filtrages internes


smtpd_proxy_ehlo = antispam.securitysage.com
smtp_send_xforward_command = yes
smtpd_client_connection_count_limit=10
disable_vrfy_command = yes
smtpd_etrn_restriction = reject
message_size_limit = 32768000
bounce_size_limit = 65536
header_size_limit = 32768
smtpd_recipient_limit = 128
smtpd_timeout = 180
strict_rfc821_envelopes = yes
allow_untrusted_routing = no
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
smtpd_error_sleep_time = 1s

smtpd_data_restrictions = reject_unauth_pipelining

smtpd_recipient_restrictions = permit_mynetworks,
check_relay_domains,reject_unauth_destination, reject_unknown_sender_domain,
reject_unknown_recipient_domain,reject_non_fqdn_sender, reject_non_fqdn_recipient,

LOUSSOUARN Mikaël Page 117 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

reject_unauth_pipelining,reject_unverified_sender, reject_unverified_recipient,
reject_multi_recipient_bounce,reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,reject_rbl_client relays.ordb.org

smtpd_helo_required = yes
smtpd_helo_restrictions =
smtpd_client_restrictions =
smtpd_sender_restrictions =

header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks

Enregistrer et quitter le fichier.

8.10.5. Sécurité

Pour indiquer à Postfix qu’il doit utiliser le service Amavis pour contrôler les mails envoyés,
il faut rajouter à la fin du fichier /etc/postfix/main.cf les lignes suivantes :

# demander d'utiliser amavis pour le filtrage antivirus


content_filter = smtp-amavis:[127.0.0.1]:10024

Enregistrer et quitter le fichier.

Il faut modifier le fichier /etc/postfix/master.cf pour permettre l’interaction entre Postfix et


l’antivirus Clamav via Amavis

Il faut rajouter les lignes suivantes à la fin du fichier /etc/postfix/master.cf

#Amavis
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
Note: attention de bien laisser au moins un espace pour les lignes commençant par –o
Enregistrer et quitter le fichier.

LOUSSOUARN Mikaël Page 118 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Si le serveur de messagerie doit rediriger certaines adresses au moyen d’alias ceci ce


configure dans le fichier /etc/aliases sous la syntaxe :

alias :Nom_de_compte_mail[, Nom_de_compte_mail, …]

Pour faire prendre en compte les alias à postfix il faut exécuter la commande :

# newaliases

si le serveur de messagerie reçoit un mail pour alias@domaine il le transmet à


Nom_de_compte_mail@domaine.

Afin de scanner les en-têtes et les corps de messages transitant par le serveur de messagerie il
faut installer deux fichiers, à savoir body_checks et header_checks

Les commandes suivantes permettent de télécharger ces deux fichiers et de les copier dans le
répertoire /etc/postfix

# cd /etc/postfix
# wget http://miguelmary.free.fr/howto/files/body_checks
# wget http://miguelmary.free.fr/howto/files/header_checks

Ces deux fichiers contiennent une liste d’entêtes ou de contenus connus pour être du courrier
indésirable, il est possible d’adapter ces listes aux besoins du site de mise en œuvre.
(Merci à l’auteur http://miguelmary.free.fr )

Il faut ensuite faire indexer ces deux fichiers par postfix au moyen des commandes suivantes :

# postmap /etc/postfix/body_checks
# postmap /etc/postfix/header_checks

Ces deux commandes sont à relancer à chaque nouvelle mise à jour des deux fichiers de
filtrage.

Note : afin de vérifier qu’il n’y a pas des mails importants rejetés par cette politique de
filtrage, il convient d’exécuter de temps à autre la commande suivante :

# egrep ‘(reject|error|fatal|panic):’ /var/log/mail.log | less

Configuration de spamassassin pour compléter le traitement des courriels indésirables :

Editer le fichier /etc/spamassassin/local.rf et le modifier comme suit :

LOUSSOUARN Mikaël Page 119 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# This is the right place to customize your installation of SpamAssassin.


#
# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
# tweaked.
#
# Only a small subset of options are listed below
#
###########################################################################

# Add *****SPAM***** to the Subject header of spam e-mails


#
rewrite_subject 1
rewrite_header Subject *****SPAM*****

# Save spam messages as a message/rfc822 MIME attachment instead of


# modifying the original message (0: off, 2: use text/plain instead)
#
# report_safe 1

# Set which networks or hosts are considered 'trusted' by your mail


# server (i.e. not spammers)
#
# trusted_networks 212.17.35.

# Set file-locking method (flock is not safe over NFS, but is faster)
#
# lock_method flock

# Set the threshold at which a message is considered spam (default: 5.0)


#
# required_score 5.0
required_hits 3.1
ok_language fr en

# Use Bayesian classifier (default: 1)


#
use_bayes 1

# Bayesian classifier auto-learning (default: 1)


#
# bayes_auto_learn 1
auto_learn 1

LOUSSOUARN Mikaël Page 120 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# Set headers which may provide inappropriate cues to the Bayesian


# classifier
#
# bayes_ignore_header X-Bogosity
# bayes_ignore_header X-Spam-Flag
# bayes_ignore_header X-Spam-Status

Enregistrer et quitter:

Modifier comme suit également le fichier /etc/default/spamassassin

# /etc/default/spamassassin
# Duncan Findlay

# WARNING: please read README.spamd before using.


# There may be security risks.

# Change to one to enable spamd


ENABLED=1

# Options
# See man spamd for possible options. The -d option is automatically added.

# SpamAssassin uses a preforking model, so be careful! You need to


# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.

OPTIONS="--create-prefs --max-children 5 --helper-home-dir"

# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Otherwise, the init script will not be able to shut spamd down.
PIDFILE="/var/run/spamd.pid"

# Set nice level of spamd


#NICE="--nicelevel 15"
Enregistrer et quitter

LOUSSOUARN Mikaël Page 121 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.10.6. Configuration du serveur IMAP (hébergement des


courriers utilisateurs)

La configuration du logiciel courier-imap est fonctionnelle par défaut mais il faut créer les
dossiers de courrier des utilisateurs.
Aucun utilisateur du domaine n’étant encore créé sur le serveur Linux il est possible de
configurer une création automatique du dossier imap à la première connexion de l’utilisateur.
La connexion de l’utilisateur du domaine se fera via le service de partage de fichier SAMBA
mais ceci est détaillé dans un autre chapitre :

Pour créer automatiquement un dossier de courrier pour chaque nouvel utilisateur faire :

#cd /etc/skel
#maildirmake Maildir
#maildirmake -f envois Maildir
#maildirmake -f brouillons Maildir
#maildirmake -f poubelle Maildir
#maildirmake -f modeles Maildir
#maildirmake -f spam Maildir

Puisque nos utilisateurs ne se connecteront sur le serveur de messagerie via une connexion
distante authentifiée auprès d’Active Directory au moyen du service winbind il faut autoriser
l’authentification winbind auprès du service IMAP.

Ceci ce configure via le fichier /etc/pam.d/imap qu’il faut renseigner comme suit :

#%PAM-1.0
auth sufficient /lib/security/pam_winbind.so
account sufficient /lib/security/pam_winbind.so
session required /lib/security/pam_mkhomedir.so umask=0022

auth sufficient pam_unix.so nullok


account sufficient pam_unix.so
password sufficient pam_unix.so
session required pam_unix.so

Note : pour les utilisateurs bénéficiant déjà d’un répertoire home sur la machine serveur de
messagerie, il convient de créer les boîtes de courrier IMAP à la racine de leur home via la
commande maildirmake.

LOUSSOUARN Mikaël Page 122 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.10.7. Configuration de procmail (service de distribution des


courriers électroniques)

Le service procmail inclus dans le logiciel Postfix est en charge de la distribution des
courriers électroniques dans les boîtes mail des destinataires.
A ce niveau il est possible de préciser à procmail de dialoguer avec le logiciel spamassassin
afin de filtrer une nouvelle fois les mails pouvant être indésirables (spam).

Un fichier de configuration procmail pour chacun des utilisateurs est nécessaire, il est
intéressant une nouvelle fois de placer un fichier de configuration type dans le répertoire
squelette servant à la construction des répertoires homes des futurs utilisateurs.
Ainsi, comme pour les boîtes de courrier celui-ci sera créé à chaque nouvel utilisateur
connecté au serveur.

Il faut donc créer un fichier .procmailrc dans /etc/skel et le renseigner comme suit :

SHELL=/bin/bash
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR/
LOGFILE=/var/log/procmailrc.log
LOCKFILE=$HOME/lockfile.lock
ASSASSINLOCK=$HOME/assassin.lock
SPAM=$HOME/Maildir/.spam/
TRASH=$HOME/Maildir/.poubelle
VERBOSE=yes
LOGABSTRACT=all
:0
* ^To:.*spam@stage.local
* < 256000
{
:0c: spamassassin.spamlock
| sa-learn --spam
:0
$SPAM
}
:0
* ^To:.*administrateur@stage.local
* < 256000
{
:0c: spamassassin.hamlock
| sa-learn --ham
:0
$TRASH
}
:0fw: $ASSASSINLOCK
| spamc
:0
* ^X-Spam-Flag: YES

LOUSSOUARN Mikaël Page 123 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

$SPAM

Enregistrer et quitter.

Note: un utilisateur spam devra être créé sur le serveur afin de réceptionner les mails
indésirables (il appartiendra à l’administrateur de purger régulièrement cette boîte de courrier)

Important : il faut donner au fichier créé .procmail les droits d’accès nécessaires via la
commande :

# chmod 600 /etc/skel/.procmailrc

Il faut aussi créer le fichier destinataire du journal de procmail:

# touch /var/log/procmailrc.log
# chmod 666 /var/log/procmailrc.log

8.10.8. Configuration du service de récolte des courriers


auprès du prestataire de messagerie : Fetchmail.

Afin que fetchmail se comporte comme un service et qu’il puisse se lancer automatiquement à
la mise en route du serveur il convient de renseigner le fichier /etc/default/fetchmail comme
suit :

# This file will be used to declare some vars for fetchmail


#
# Uncomment the following if you dont want localized log messages
# export LC_ALL=C

# Declare here if we want to start fetchmail. 'yes' or 'no'


START_DAEMON=yes

Ensuite le fichier de configuration /etc/fetchmailrc permet de renseigner comment fetchmail


doit se comporter (fréquence de prise des mails) et comment il doit se connecter au serveur du
prestataire.

# /etc/fetchmailrc for system-wide daemon mode


# This file must be chmod 0600, owner fetchmail

# Daemon configuration
# These two are set in /etc/default/fetchmail
set daemon 1500 # Pool every 5 minutes
#set syslog # log through syslog facility

set no bouncemail # avoid loss on 4xx errors


# on the other hand, 5xx errors get
# more dangerous...
#############################################

LOUSSOUARN Mikaël Page 124 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

#############################
# Hosts to pool
#############################################
#############################

# Defaults
=============================================
==================
# Set antispam to -1, since it is far safer to use that together with
#no bouncemail
defaults:
antispam -1
batchlimit 100
#poll foo.bar.org with protocol pop3
# user baka there is localbaka here;
poll pop.gmail.com
with protocol pop3
port 995
localdomains stage.local
envelope X-Envelope-To
user collecteur@gmail.com
password XXXXXX
is *
ssl

Pour que ceci fonctionne un utilisateur collecteur devra avoir un compte chez le prestataire de
messagerie sous le compte collecteur@gmail.com (gmail est un exemple) et ce compte devra
collecter l’ensemble des mails destinés aux utilisateurs du domaine.

Enregistrer et quitter le fichier.

Il faut donner au fichier créé, fetchmailrc, les droits d’accès nécessaires via la commande :

# chmod 600 /etc/fetchmailrc

LOUSSOUARN Mikaël Page 125 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.10.9. Configuration du service de connexion réseau et de


partage de fichiers SAMBA

Une problématique importante de notre serveur de messagerie est qu’il doit être capable de
reconnaître les utilisateurs du domaine et de les identifier, cette authentification est réalisée
par winbind comme décrit dans le chapitre intégration d’une distribution debian au domaine
Active directory.
Nos utilisateurs du domaine sont reconnus sur le serveur mais n’existent pas réellement en
tant qu’utilisateurs locaux du serveur toutefois nos utilisateurs du domaine doivent sur le
serveur de messagerie posséder impérativement chacun une boite courrier et ce dès leur
première connexion au serveur.

Un moyen de créer les boîtes courrier dès la première connexion au serveur est de connecter
un lecteur réseau sur un dossier partagé du serveur de messagerie.

Il convient alors de créer un script d’ouverture de session sur l’annuaire active directory
connectant un lecteur réseau automatiquement sur le partage samba.
Pour le réaliser il faut faire les manipulations suivantes :

Créer un fichier d’extension .bat contenant les lignes suivantes (avec notepad par exemple) :

net use Z: \\debian\netlogon


net use Z: /delete

Enregistrer ce fichier dans le répertoire partagé : \\Pcvirtw2003svr\NETLOGON


Où Pcvirtw2003svr est le nom netbios de votre contrôleur de domaine.
Dans l’exemple il est nommé mapping_mx.bat

Note : Il faut adapter la lettre du lecteur réseau aux éventuels lecteurs existants sur les
ordinateurs du domaine (prendre une lettre non utilisée).

Sur le contrôleur de domaine :


Ouvrir une session en tant
qu’administrateur du domaine
Ouvrir la console utilisateurs et
ordinateurs d’active directory

LOUSSOUARN Mikaël Page 126 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Sélectionner l’unité d’organisation


contenant vos utilisateurs du
domaine.

Faire clic droit puis Propriétés

Sélectionner l’onglet Stratégie de


groupe

Cliquer sur Nouveau

Donner un nom explicite à la


stratégie créée

Double cliquer sur la stratégie créée

LOUSSOUARN Mikaël Page 127 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Sélectionner la racine de la stratégie

Faire un clic droit, choisir propriétés

LOUSSOUARN Mikaël Page 128 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Cocher désactiver les paramètres de


configuration de l’ordinateur

Faire ok puis appliquer

Sélectionner dans configuration


utilisateur les paramètres windows

Puis sélectionner Scripts (ouverture,


fermeture de session)

Double cliquer

LOUSSOUARN Mikaël Page 129 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Double cliquer sur ouverture de


session

Cliquer sur ajouter

LOUSSOUARN Mikaël Page 130 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Cliquer sur parcourir

Parcourir le dossier NETLOGON


pour y sélectionner le script
mapping_mx.bat

Faire ok

LOUSSOUARN Mikaël Page 131 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Faire appliquer puis ok

Clic droit sur la stratégie de groupe


puis sélectionner Ne pas passer outre

Faire ok

Fermer la console.

LOUSSOUARN Mikaël Page 132 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Il rester à configurer les dossiers partagés auprès du service SAMBA sur le serveur LINUX

La configuration de SAMBA s’effectue par le fichier /etc/samba/smb.conf qu’il convient de


modifier comme suivant : (les instructions en rouges montrent les changements à effectuer)

#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentary and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# //////////////////////////////////////////////////
# Change this to the workgroup/NT-domain name your Samba server will part of
realm = STAGE.LOCAL
workgroup = STAGE
# ///////////////////////////////////////////////

# server string is the equivalent of the NT Description field


server string = %h server

# Windows Internet Name Serving Support Section:


# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
; wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client


# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

LOUSSOUARN Mikaël Page 133 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast

#### Networking ####

# The specific set of interfaces / networks to bind to


# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = true

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).


max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
; syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything


# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace


panic action = /usr/share/samba/panic-action %d

####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
# //////////////////////////////
# security = user

LOUSSOUARN Mikaël Page 134 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

security = ads
# /////////////////////////////

# You may wish to use password encryption. See the section on


# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

; guest account = nobody


invalid users = root

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
; unix password sync = no

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:*
%n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
; pam password change = no

########## Domains ###########

# Is this machine able to authenticate users. Both PDC and BDC


# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
; domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of the user's profile directory
# from the client point of view)
# The following required a [profiles] share to be setup on the
# samba server (see below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
; logon path = \\%N\%U\profile

LOUSSOUARN Mikaël Page 135 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# The following setting only takes effect if 'domain logons' is set


# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
; logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set


# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

########## Printing ##########

# If you want to automatically load your printer list rather


# than setting them up individually then you'll need this
; load printers = yes

# lpr(ng) printing. You may wish to override the location of the


# printcap file
; printing = bsd
; printcap name = /etc/printcap

# CUPS printing. See also the cupsaddsmb(8) manpage in the


# cupsys-client package.
; printing = cups
; printcap name = cups

# When using [print$], root is implicitly a 'printer admin', but you can
# also give this right to other users to add drivers and set printer
# properties
; printer admin = @ntadmin

############ Misc ############

# Using the following line enables you to customise your configuration


# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:

LOUSSOUARN Mikaël Page 136 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY

# The following parameter is useful only if you have the linpopup package
# installed. The samba maintainer and the linpopup maintainer are
# working to ease installation and configuration of linpopup and samba.
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

# Domain Master specifies Samba to be the Domain Master Browser. If this


# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
; domain master = auto

# ///////////////////////////////////////////////////////////////
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
password server = 192.168.254.128
winbind separator = /
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
template homedir = /home/%D/%U
client use spnego = yes
winbind use default domain = true
;
; The following was the default behaviour in sarge
; but samba upstream reverted the default because it might induce
; performance issues in large organizations
; See #368251 for some of the consequences of *not* having
; this setting and smb.conf(5) for all details
;
winbind enum groups = yes
winbind enum users = yes

#///////////////////////////////////////////////////////

#======================= Share Definitions =======================

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next


# parameter to 'yes' if you want to be able to write to them.
writable = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700

LOUSSOUARN Mikaël Page 137 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700

# Restrict access to home directories


# to the one of the authenticated user
# This might need tweaking when using external authentication schemes
valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
[netlogon]
comment = Network Logon Service
path = /home/netlogon
writable = no
browseable = no
create mask = 0755
directory mask = 0755

# Un-comment the following and create the profiles directory to store


# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
public = no
writable = no
create mode = 0700

# Windows clients look for this share name as a source of downloadable


# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.

LOUSSOUARN Mikaël Page 138 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# Replace 'ntadmin' with the name of the group your admin users are
# members of.
; write list = root, @ntadmin

# A sample share for sharing your CD-ROM with others.


;[cdrom]
; comment = Samba server's CD-ROM
; writable = no
; locking = no
; path = /cdrom
; public = yes

# The next two parameters show how to auto-mount a CD-ROM when the
# cdrom share is accesed. For this to work /etc/fstab
must contain
# an entry like this:
#
# /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0
#
# The CD-ROM gets unmounted automatically after the connection to the
#
# If you don't want to use auto-mounting/unmounting make sure the CD
# is mounted on /cdrom
#
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom

Ensuite, il faut créer le dossier correspondant au partage réseau,


Faire en ligne de commande sur le serveur linux :

# mkdir /home/netlogon

Puis attribuer les droits nécessaires sur ce dossier

# chown -R root:root /home/netlogon


# chmod –R 0755 /home/netlogon

LOUSSOUARN Mikaël Page 139 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Enfin pour permettre à l’utilisateur de créer en local sur le serveur ses dossiers personnels
selon le squelette prévu, il faut configurer le module PAM de la debian pour permettre à une
connexion authentifiée via winbind (et donc samba) d’obtenir la création des dossiers
personnels de l’utilisateur.

Ceci ce configure dans les fichiers suivants qu’ils faudra renseigner comme suit :

Fichier /etc/pam.d/common-account

#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account sufficient pam_winbind.so
account sufficient pam_unix.so

Fichier /etc/pam.d/common-password

#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
#used to change user passwords. The default is pam_unix

# The "nullok" option allows users to change an empty password, else


# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.

password required pam_unix.so nullok obscure min=4 max=8 md5

# Alternate strength checking for password. Note that this


# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5

LOUSSOUARN Mikaël Page 140 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Fichier /etc/pam.d/common-auth

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure

Fichier /etc/pam.d/common-session

#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive). The default is pam_unix.
#
session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Fichier /etc/pam.d/samba

@include common-auth
@include common-account
@include common-session

Relancer le serveur Debian

Le serveur de messagerie est désormais opérationnel


Il est possible maintenant de mettre en place le serveur internet pour accueillir l’application
EgroupWare.

Retour au chapitre

LOUSSOUARN Mikaël Page 141 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.11. Installation du serveur Web, Php et MySQL sur une


Debian Etch

Ce document traite de la mise en place d’un serveur Web Apache2 sur une distribution Linux
Debian Etch avec la prise en charge de PHP et du SGBD MySQL dans le but de faire
fonctionner l’application php Egroupware.

Pré requis :
Une distribution Linux Debian Etch installée

Note : Toutes les manipulations qui suivent sont faites en tant qu’administrateur du système
Linux à savoir le compte root.

8.11.1. Logiciels nécessaires :

Le serveur Web Apache2

# apt-get install apache2

Le serveur PHP avec les extensions qui seront nécessaires à EgroupWare

# apt-get install php5 php5-mysql php5-imap php-pear php5-gd

Le serveur de gestion de bases de données mySQL

# apt-get install mysql-server

8.11.2. Configuration du serveur PHP

Editer le fichier de configuration : /etc/php5/apache2/php.ini


Modifier ce fichier comme suit :

(...)
max_execution_time = 30
max_input_time = 60
memory_limit = 1024M
mbstring.func_overload = 7
post_max_size = 1020M
upload_max_filesize = 1018M
safe_mode = On
(...)
sql.safe-mode=Off
(…)

Enregistrer puis quitter.

LOUSSOUARN Mikaël Page 142 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Redémarrer le serveur Apache2


En ligne de commande faire :

# /etc/init.d/apache2 restart

8.11.3. Configuration du serveur de gestion de bases de


données MySQL

Il faut sécuriser le serveur MySQL :


Attribuer un mot de passe à l’administrateur mySQL
En ligne de commande faire :

# mysqladmin –u root password ‘mysqlpassword’

Et restreindre l’accès au serveur SQL localement:


Editer le fichier /etc/mysql/my.conf et le modifier comme suit :

(…)
bind-address = 127.0.0.1
(…)

Enregistrer et quitter

Redémarrer le serveur mysql


En ligne de commande faire :

# /etc/init.d/mysql restart

Retour au chapitre

LOUSSOUARN Mikaël Page 143 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.12. Installation d’EgroupWare


Ce document traite de l’installation du logiciel de travail collaboratif EgroupWare sur une
distribution Linux Debian Etch

8.12.1. Pré requis :

Un serveur de messagerie avec gestion des dossiers IMAP doit être installé et
fonctionnel.
Un serveur Web acceptant le PHP doit être installé sur le serveur
Un serveur de gestion de base de données mySQl doit être installé sur le serveur.

Note : Toutes les manipulations sur la distribution Linux sont faites en tant qu’administrateur
du système Linux à savoir le compte root.

8.12.2. Données propres à l’exercice (à adapter selon les


besoins):

¾ Domaine : stage.local
¾ Contrôleur de domaine :
Nom netbios : pcvirtw2003svr nom DNS : pcvirtw2003svr.stage.local
@ IP : 192.168.254.128/24
¾ Debian :
Nom netbios : debian nom DNS : debian.stage.local
@IP : 192.168.254.129/24
Rôles : serveur de messagerie Postfix , serveur IMAP, serveur WEB apache2, serveur
PHP5, serveur de base de données MySQL.

8.12.3. Préparation de l’installation d’EgroupWare.

Le logiciel EgroupWare nécessite l’installation de la bibliothèque de logiciels Pear.


En ligne de commande en tant que root sur le serveur Debian, faire :

# pear install log


# pear install –fa HTTP_WebDAV_server

LOUSSOUARN Mikaël Page 144 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.12.4. Installation d’EgroupWare

Préparation sur le serveur en ligne de commandes.

Téléchargement et décompression de EgroupWare 1.4


En ligne de commande en tant que root sur le serveur Debian, faire :

#wget http://ovh.dl.sourceforge.net/sourceforge/egroupware/eGroupWare-1.4.002.tar.gz
# tar xvfz eGroupWare-1.4.002.tar.gz –C /var/www/

Ainsi les fichiers d’EgroupWare sont installés à la racine du serveur Web Apache2.
Il reste quelques modifications à y effectuer pour modifier le comportement d’un formulaire
qui est défaillant, pour installer un nouveau module pear et pour modifier le module de
création de graphiques.

En ligne de commande en tant que root sur le serveur Debian, faire :

#wget http://www.nabble.com/file/p13359215/composeForm.tpl
# cp –f composeForm.tpl
/var/www/egroupware/felamimail/templates/default/

Le formulaire défaillant est ainsi remplacé.

En ligne de commande en tant que root sur le serveur Debian, faire :

#wget http://ovh.dl.sourceforge.net/sourceforge/egroupware/eGroupWare-egw-pear-1.4.002.tar.gz
# tar xvfz eGroupWare-egw-pear-1.4.002.tar.gz
# cp –R egroupware/egw-pear /var/www/egroupware/

Le module supplémentaire pear pour EgroupWare est installé


En ligne de commande en tant que root sur le serveur Debian, faire :

#wget http://moravel.100webspace.net/egroupware/jpgraph_scr.tar.gz
# tar xvfz jpgraph_scr.tar.gz
# cp –f R jpgraph_scr/scr /var/www/egroupware/projectmanager/inc/jpgraph-1.5.2

Le module de création de graphiques jpgraph est ainsi corrigé

LOUSSOUARN Mikaël Page 145 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Il faut également installer une police de caractère particulière :


En ligne de commande en tant que root sur le serveur Debian, faire :

#wget http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-
vera-1.10.tar.gz
# tar xvfz ttf-bitstream-vera-1.10.tar.gz
# cp –f R ttf-bitstream-vera-1.10/* /usr/X11R6/lib/X11/fonts/truetype

Il reste à placer les droits nécessaires sur les fichiers (le serveur web doit pouvoir accéder aux
fichiers d’egroupware)
En ligne de commande en tant que root sur le serveur Debian, faire :

#chown –R www-data:www-data /var/www/egroupware

Il faut également créer deux dossiers qui seront nécessaires à Egroupware :


En ligne de commande en tant que root sur le serveur Debian, faire :

#mkdir /var/egwfiles
#mkdir /backup
# chown –R www-data:www-data /var/egwfiles
# chown –R www-data:www-data /backup

Installation graphique via navigateur Internet

¾ Sur un ordinateur du réseau local lancer un navigateur Internet (IE, Firefox) et entrer
l’adresse suivante:

http://192.168.254.129/egroupware/setup

Note : ici 192.168.254.129 est l’adresse Ip du serveur Debian hébergeant EgroupWare.

¾ Choisir la langue du logiciel : ici français puis cliquer sur Démarrage de la procédure
de vérification

LOUSSOUARN Mikaël Page 146 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Vérification de l’installation :

Si des erreurs apparaissent il faut les corriger (ici les droits sur les fichiers d’Egroupware sont
en lecture écriture pour tous, ce n’est pas souhaitable)

¾ Cliquer sur continuer vers la configuration de l’entête

LOUSSOUARN Mikaël Page 147 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

LOUSSOUARN Mikaël Page 148 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Ici on procède à la configuration du fichier d’entête d’Egroupware, il convient de renseigner


les champs suivants :

¾ Identifiant Administrateur pour le gestionnaire d’entête : Administrateur


(correspondra au compte administrateur du domaine dans notre exemple)

¾ Mot de passe de l’administrateur pour le gestionnaire d’entête : XXXXXX (mot de


passe de l’administrateur du domaine sur le domaine)

¾ Domaine : stage.local

¾ Nom de la base de données : egroupware

¾ Utilisateur de la base de données : egroupware

¾ Mot de passe d’accès à la base de données : XXXXXX (mot de passe root pour mysql)

¾ Identifiant de configuration : Administrateur

¾ Mot de passe de configuration : XXXXXX

¾ Cliquer ensuite sur Ecrire pour générer le fichier d’entête.

LOUSSOUARN Mikaël Page 149 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur continuer

¾ Ecran de configuration :

¾ Entrer le login Administrateur et son mot de passe dans les champs page de connexion
pour la configuration et l’installation.
¾ Cliquer sur Login

LOUSSOUARN Mikaël Page 150 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Dans le champ DB root password entrer le mot de passe root de mysql


¾ Cliquer sur Créer la base de données

¾ Cliquer sur revérifier mon installation

LOUSSOUARN Mikaël Page 151 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur Installer toutes les applications

¾ Cliquer sur revérifier mon installation

LOUSSOUARN Mikaël Page 152 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur Modifier ma configuration actuelle

LOUSSOUARN Mikaël Page 153 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

LOUSSOUARN Mikaël Page 154 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Renseigner les champs comme suit (pour authentification via active directory) :

Entrez le chemin complet pour les fichiers temporaires : /tmp


Entrez le chemin complet pour les fichiers d'utilisateurs et de groupes :/var/egwfiles
Entrez le chemin complet vers le répertoire de sauvegarde : /backup

Entrez le nom de la machine sur laquelle ce serveur s'exécute: 192.168.254.129

Nom d'hôte ou adresse IP du serveur de messagerie POP/IMAP: 192.168.254.129


Protocole Mail server: IMAP
Domaine Mail (pour Virtual mail manager): [Domaine du site reconnu sur Internet, ex :
cefoc49.com]
Nom d'hôte ou adresse IP du serveur SMTP: 192.168.254.129

Choisissez quel type d'authentification vous utilisez: ADS


Choisissez où vous voulez stocker/récupérer les informations de comptes utilisateurs: SQL
Connexion automatique avec utilisateur anonyme: OUI
Permettre la migration des mots de passe: OUI
Créer automatiquement les enregistrements de comptes pour les utilisateurs authentifiés:OUI
Les comptes d'utilisateur auto-créés expirent: JAMAIS
Ajouter les utilisateurs auto-créés à ce groupe ('Par défaut' sera tenté si ceci est vide.):groupe

Hôte/IP du contrôleur de Domaine: 192.168.254.128


Nom du domaine: stage.local

¾ Cliquer sur enregistrer

LOUSSOUARN Mikaël Page 155 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur Création du compte administrateur

¾ Renseigner les renseignements sur l’administrateur et cliquer sur Enregistrer

LOUSSOUARN Mikaël Page 156 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ EgroupWare est désormais installé et fonctionnel.


¾ Cliquer sur Revenir à l’accueil utilisateur.
¾ Il reste à configurer le site et particulièrement le groupe qui accueillera tous les
nouveaux utilisateurs d’egroupware

¾ Entrer le login et le mot de passe de l’administrateur du domaine


¾ Cliquer sur Login

LOUSSOUARN Mikaël Page 157 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur l’icône de configuration

LOUSSOUARN Mikaël Page 158 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Cliquer sur groupes utilisateurs

¾ Cliquer sur Ajouter

LOUSSOUARN Mikaël Page 159 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Entrer le nom du groupe, sélectionner les utilisateurs membres de ce groupe


Rappel : les nouveaux utilisateurs seront par défaut membres de ce groupe.

¾ Cocher les autorisations pour ce groupe


¾ Cliquer sur soumettre les changements

LOUSSOUARN Mikaël Page 160 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

¾ Vous pouvez utiliser désormais Egroupware avec n’importe quel utilisateur


déclaré sur le domaine, il bénéficiera d’un compte egroupware et d’un compte de
messagerie du type Login@domaine (compte de messagerie actif auprès du
serveur postfix installé avant Egroupware)

Note Importante : Les utilisateurs du domaine doivent avoir obligatoirement leurs noms
renseignés dans l’objet utilisateur Active Directory, dans le cas contraire EgroupWare ne
créer pas automatiquement un utilisateur dans sa base de données à la connexion.

Retour au chapitre

LOUSSOUARN Mikaël Page 161 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.13. Script bash de synchronisation des comptes Active


Directory / OpenLDAP
#!/bin/bash
#
# obtenir la liste des utilisateurs de l'annuaire ldap
#
# le 12/12/2007 par mikael Loussouarn
##########################
# définition de la variable domaine
DOMAINE="stage.local"
DC1=`echo $DOMAINE | cut -d. -f1`
DC2=`echo $DOMAINE | cut -d. -f2`
DC="dc=${DC1},dc=${DC2}"
ADMIN="cn=admin,dc=${DC1},dc=${DC2}"
PASS="adminpw"
#############################
# fonction obtenir la liste des utilisateurs présents dans le Ldap
# liste mise dans fichier UserLdap.txt
function GetUserLdap()
{
SORTIE=${PWD}"/UserLdap.txt"
rm -f $SORTIE
touch $SORTIE
# recherche dans l'annuaire , sortie d'un listing complet avec attributs
ldapsearch -x -b $DC "objectClass=inetOrgPerson" -LLL >tampon
# reccupération dans le listing du seul attribut cn:
while read line
do
CHAMP=`echo $line | cut -d: -f2`
MARQUE=`echo $line | cut -d: -f1`
if [ "$MARQUE" = "cn" ]
then
echo $CHAMP>>$SORTIE
fi
done <tampon
# effacement des lignes vides
sed "/ /d" $SORTIE>tampon
cat tampon>$SORTIE
# effecament du fichier tampon
rm -f tampon
}
####################################
# fonction interroger AD pour obtenir la liste des utilisateurs
# liste mise dans fichier UserAd.txt
function GetUserAd()
{
# redémarrage de winbind pour mise à jour users
/etc/init.d/winbind restart
sleep 5
# definition du fichier de sorie
SORTIE=${PWD}"/UserAd.txt"
# intérrogation des users du domaine AD par winbind
wbinfo -u >$SORTIE
# suppression du compte invité
sed -e "/invit*/d" $SORTIE>tampon
cat tampon>$SORTIE

################
# fonction ajouter l'utilisateur dans LDAP
function ajoutUser()
{
# definition du fichier de configuration ldap
LDIF=${PWD}"/fichier.ldif"
# purge d'un eventuel fichier existant
rm -f $LDIF
# renseignement du fichier
echo "dn: cn=$USER,dc=$DC1,dc=$DC2">$LDIF
echo 'userPassword: "{SASL}${USER}@${DOMAINE}"'>>$LDIF
echo "objectClass: inetOrgPerson">>$LDIF

LOUSSOUARN Mikaël Page 162 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

echo "cn: $USER">>$LDIF


echo "givenName: $USER">>$LDIF
echo "sn: $USER">>$LDIF
# ajout des fiches du fichier à l'annuaire LDAP
ldapadd -x -D $ADMIN -w $PASS -f $LDIF
}

#######################
# fonction effacer utilisateur dans LDAP
function supprUser()
{
# definition du fichier de configuration ldap
LDIF=${PWD}"/fichier.ldif"
# purge d'un eventuel fichier existant
rm -f $LDIF
# renseignement du fichier
echo "dn: cn=$USER,dc=$DC1,dc=$DC2">$LDIF
echo "changetype: delete">>$LDIF
# suppression fiches du fichier à l'annuaire LDAP
ldapadd -x -D $ADMIN -w $PASS -f $LDIF
}
####################
# corps de programme
# comparaison entre utilisateurs ad et ldap
# maj des utilisateurs de ldap depuis ceux d'ad
##########################
# definition des fichiers d'etat users ad et ldap
USERLDAP=${PWD}"/UserLdap.txt"
USERAD=${PWD}"/UserAd.txt"
# obtenir les utilisateurs de AD
GetUserAd
# obtenir les utilisateurs de ldap
GetUserLdap
# comparer les utilisateurs ad avec ceux ldap , au besoin ajouter user dans ldap
while read line
do
USER=$line
if grep $USER $USERLDAP>/dev/null
then
echo " ">/dev/null
else
ajoutUser
fi
done<$USERAD
# comparer les utilisateurs ldap avec ceux ad , au besoin supprimer user dans ldap
while read line
do
USER=$line
if grep $USER $USERAD>/dev/null
then
echo " ">/dev/null
else
supprUser
fi
done<$USERLDAP

Retour au chapitre

LOUSSOUARN Mikaël Page 163 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.14. Installer l’image serveur virtuel

¾ Sur le contrôleur de domaine créer l’entrée DNS correspondant au serveur du


projet (enregistrement de type A)
¾ Copier sur le disque dur de l’hôte le fichier disque virtuel et son fichier de
configuration (voir capture ci-dessous)

¾ Lancer VmWare player (logiciel gratuit) .


¾ Choisir « open »
¾ Sélectionner le fichier de configuration (.vmx) correspondant au serveur à installer
¾ Lancer l’ordinateur virtuel
¾ Se loguer en tant que root (administrateur du serveur)
¾ Exécuter le script /root/configuration/configuration.sh avec la commande :
# sh configuration.sh
¾ Répondre aux questions du script une à une
¾ A la fin du script l’ordinateur redémarre
¾ Se reloguer en tant que root
¾ Lancer les commandes suivantes (pour créer les boîtes mails de l’administrateur et
du compte destiné à recevoir le spam) :
# su administrateur (où administrateur est l’administrateur du domaine)
# exit
# su spam ( où spam est le nom de compte que vous avez choisi pour recevoir le spam)
# exit
¾ Suivre la documentation sur l’installation finale du logiciel EgroupWare depuis un
navigateur Internet d’un ordinateur de votre réseau en suivant les instructions que
vous trouverez à l’adresse
http://IP_DE_VOTRE_SERVEUR_INSTALLE/instal.htm
¾ Votre serveur mandataire et de travail collaboratif est opérationnel.
Retour au chapitre

LOUSSOUARN Mikaël Page 164 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

8.15. Sources du script de configuration de l’image virtuelle :


#!/bin/sh
#
# Script général de configuration d'un serveur proxy / messagerie / egroupware
# A partir d'une image debian pré-établie
#
#
# Le 22/01/2007 par Mikael LOUSSOUARN Pour le lycée Sacré Coeur d'Angers
###############################################
#
# définition des fonctions
#
####################################
# fonction d'attente de la pression sur la touche enter
function pauseE()
{
echo "<PRESS ENTER>"
read
}
###############################################
# fonction redemarrage winbind
function start_winbind()
{
/etc/init.d/samba restart
/etc/init.d/winbind restart
# ouverture des droits sur winbindd_privileged
chmod -R 777 /var/run/samba/winbindd_privileged
sleep 10
}
#######################################
# relance du proxy
function relancesquid()
{
/etc/init.d/squid stop
start_winbind
/etc/init.d/squid start
}
########################################
# demande des variables du réseau
function renseigne()
{
clear
echo " !! toutes les Réponses devront être en minuscules !!"
echo "> Nom du domaine:"
read DOMAINE
echo "> nom NetBios contrôleur de domaine:"
read CDNETBIOS
CDDNS=$CDNETBIOS"."$DOMAINE
echo "> non dns contrôleur du domaine :"$CDDNS
echo "> Adresse IP du controlleur de domaine:"
read CDIP
echo "> Nom NetBios de la Debian:"
read LNETBIOS
LDNS=$LNETBIOS"."$DOMAINE
echo "> nom DNS de la debian :"$LDNS
echo "> Adresse IP de la debian:"
read LIP
echo "> masque du réseau :"
read NETMASK
echo "> Broadcast du réseau:"
read BCAST
echo "> Passerelle :"
read PASS
echo "> Ip du serveur DNS:"
read DNSIP
echo "> IP du serveur Smtp pour courrier sortant ( exemple wanadoo c'est : 193.252.22.91 ) :"
read SMTP
echo "> Adresse du réseau ( exemple : 192.168.254.0/24 , respecter la syntaxe ! :"
read RESEAU
echo "> Adresse mail pour les spams ( sous la forme spam@domaine )"
read SPAMMAIL
echo "> Adresse mail de l'administrateur ( sous la forme administrateur@domaine ) :"
read ADMINMAIL

LOUSSOUARN Mikaël Page 165 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

echo "> Adresse mail du compte collecteur chez le prestataire de messagerie :"
read COLLECTOR
echo "> Nom du serveur pop du prestataire de messagerie ( exemple pop.gmail.com ) :"
read POP
echo "> numéro de port du serveur pop du prestataire de messagerie :"
read PORTPOP
echo "> mot de passe du compte collecteur de messagerie (caractère ? non supporté par l'installateur):"
read PASSPOP
echo "> Délai entre deux collectes des mails auprès du prestataire de messagerie (en secondes) :"
read FREQFETCH
echo "> Entrer le nom de domaine reconnu comme domaine valide à l'extérieur :"
read DOMRECON
echo "Merci :)"
pauseE
}
##############################################
#configuration du réseau
function confNet()
{
clear
echo "> configuration du réseau ..."
# definition du fichier de destination
FILE="/etc/network/interfaces"
#effacement du fichier d'origine
rm -f $FILE
# creation du fichier
echo "#The looback network interface">$FILE
echo "auto lo">>$FILE
echo "iface lo inet loopback">>$FILE
echo "# The primary network interfaces">>$FILE
echo "allow-hotplug eth0">>$FILE
echo "iface eth0 inet static">>$FILE
echo "address "$LIP>>$FILE
echo "netmask "$NETMASK>>$FILE
echo "broadcast "$BCAST>>$FILE
echo "gateway "$PASS>>$FILE
echo "gateway "$PASS>>/etc/networks
echo $CDIP" "$CDDNS" "$CDNETBIOS>>/etc/hosts
echo "search localdomain" >/etc/resolv.conf
echo "nameserver "$DNSIP>>/etc/resolv.conf
# relance de l'interface réseau
ifdown eth0
ifup eth0
# fin
echo "> vérification config réseau (ifconfig) ..."
pauseE
ifconfig
pauseE
}
######################################################
# synchronisation des horloges
function synchron()
{
clear
echo "> Synchronisation de l'horloge "
# vérififier si la configuration du reseau a deja ete effectuee
if [ "$DOMAINE" = "///" ]
then conf;echo "reconfigurer avant le réseau";return
fi
# definition du fichier a configurer
FILE="/etc/default/ntpdate"
# effacement du fichier d'origine
rm -f $FILE
# creation du nouveau fichier
echo "NTPDATE_USE_NTP_CONF=yes">$FILE
echo "NTPSERVERS=\""$CDDNS"\"">>$FILE
echo "NTOPTIONS=\"-u\"">>$FILE
# synchronisation de l'horloge avec le controleur de domaine
ntpdate $CDDNS
pauseE
}
#########################################################
# paramétrage kerberos
function kerberos()
{

LOUSSOUARN Mikaël Page 166 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# si le nom du domaine n'est pas présent en variable alors reconfigurer le reseau


if [ "$DOMAINE" = "///" ]
then confNet
synchron
fi
clear
echo "> configuration du protocole Kerberos"
# definition du fichier de configuration
FILE="/etc/krb5.conf"
# destruction du fichier d'origine
rm -f $FILE
# creation du nouveau fichier
echo "[logging]">$FILE
echo " default = FILE10000:/var/log/krb5lib.log">>$FILE
echo "[libdefaults]">>$FILE
echo " ticket_lifetime = 24000">>$FILE
echo " default_realm = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " krb4_config = /etc/krb.conf">>$FILE
echo " krb4_realms = /etc/krb.realms">>$FILE
echo " kdc_timesync = 1">>$FILE
echo " ccache_type = 4">>$FILE
echo " forwardable = true">>$FILE
echo " proxiable = true">>$FILE
echo " v4_instance_resolve = false">>$FILE
echo " v4_name_convert = {">>$FILE
echo " host = {">>$FILE
echo " rcmd = host">>$FILE
echo " ftp = ftp">>$FILE
echo " }">>$FILE
echo " plain = {">>$FILE
echo " something = something-else">>$FILE
echo " }">>$FILE
echo " }">>$FILE
echo " fcc-mit-ticketflags = true">>$FILE
echo "[realms]">>$FILE
echo " "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`" = {">>$FILE
echo " kdc = "$CDDNS>>$FILE
echo " admin_server = "$CDDNS>>$FILE
echo " default_domaine = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " }">>$FILE
echo "[domain_realm]">>$FILE
echo " ."$DOMAINE" = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo " "$DOMAINE" = "`echo $DOMAINE | tr "[:lower:]" "[:upper:]"`>>$FILE
echo "[login]">>$FILE
echo " krb4_convert = true">>$FILE
echo " krb4_get_tickets = false">>$FILE
# test du protocole kerberos
echo "> test du protocole kerberos ...."
echo "> à la demande entrer le mot de passe adimistrateur du domaine..."
pauseE
kinit Administrateur
pauseE
}
################################################################
# paramètrage de samba et winbind
function sambawinbind()
{
clear
echo "> configuration samba et winbind"
# stop samba et winbind
/etc/init.d/samba stop
/etc/init.d/winbind stop
# definition du fichier de configuration
FILE="/etc/samba/smb.conf"
# creation du fichier
REMPLACE=`echo $DOMAINE | tr [":lower:"] [":upper:"]`
sed -e "s/STAGE.LOCAL/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=`echo $DOMAINE | tr [":lower:"] [":upper:"] | cut -d. -f1`
sed -e "s/STAGE/"$REMPLACE"/g" $PWD/tampon >$PWD/tampon2
sed -e "s/pcvirtw2003svr.stage.local/"$CDDNS"/g" $PWD/tampon2>$FILE
sed -e "s/192.168.254.128/"$CDIP"/g" $FILE >$PWD/tampon2
cp -f $PWD/tampon2 $FILE
# creation repertoire utilisateur du domaine
mkdir /home/`echo $DOMAINE | tr "[:lower:]" "[:upper:]" | cut -d. -f1`
chmod 777 /home/`echo $DOMAINE | tr "[:lower:]" "[:upper:]" | cut -d. -f1`

LOUSSOUARN Mikaël Page 167 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

# redemarrage de samba et winbind


start_winbind
# intégration au domaine
echo "> l'ordinateur va rejoindre le domaine"
pauseE
echo "renseigner le mot de passe admin du domaine"
net join -U Administrateur -S $CDNETBIOS
pauseE
# test de winbind
# redemarrage de samba et winbind
until wbinfo -u >&1
do
echo "> tentative d'interrogation d'active directory"
echo "Entrer oui pour abandonner (echec de la configuration)"
echo " Abandon?"
read ABANDON
if [ "$ABANDON" = "oui" ]
then break
fi
start_winbind
done
echo "> affichage des utlisateurs du domaine :"
wbinfo -u
pauseE
clear
}
###########################################################
# obtenir les utilisateurs du domaine pour les groupes a filtrer
function get_user()
{
clear
echo "> obtention des listes d'utilisateurs du domaine pour squidGuard"
# netoyage des précedentes listes
rm -R -f /var/lib/squidguard/db/users
# creation du dossier destination
mkdir /var/lib/squidguard/db/users/
# redemarrage de winbindd pour raffraichir les utilisateurs
# redemarrage de samba et winbind
until wbinfo -u >&1
do
echo "> tentative d'interrogation d'active directory"
echo "Entrer oui pour abandonner (echec de la configuration)"
echo " Abandon?"
read ABANDON
if [ "$ABANDON" = "oui" ]
then break
fi
start_winbind
done
# nom du groupe utilisateur ?
echo ">affichage des groupes du domaine :"
wbinfo -g
echo " > nom du groupe d'utilisateur ( taper *FIN* pour finir)"
read GRUSER
# effacement du fichier de correspondances users
rm -f $PWD/users
# creation de la liste pour le groupe indiqué
I=1
while [ "$GRUSER" != "*FIN*" ]
do
getent group | grep $GRUSER | cut -d: -f4 | tr "," "\n" >/var/lib/squidguard/db/users/$I.user
# visualisation de la liste des utilisateurs
echo "> Visualisation des listes des utilisateurs :"
cat /var/lib/squidguard/db/users/$I.user
if [ -e $PWD/users ]
then
echo $GRUSER" "$I".user" >>$PWD/users
else
echo $GRUSER" "$I".user" >$PWD/users
fi
# visualisation de l'etat des correspondances
echo "> correspondances:"
cat $PWD/users
echo "nom du groupe d'utilisateur ( taper *FIN* pour finir)"

LOUSSOUARN Mikaël Page 168 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

read GRUSER
I=`echo $(($I+1))`
done
# reaffectation des droits sur la base de données squid guard
chown -R proxy /var/lib/squidguard/db/
chmod -R 770 /var/lib/squidguard/db/
echo "> liste des utilisateurs créées"
pauseE
}
###############################################################################
#telechargement des listes de filtrage de l'université de toulouse avec verification de la correspondance ( fichier de corresponsance
= ./corresponsdance a éditer si necessaire)
function transf_lists()
{
echo "> téléchargement des listes de filtrage de l'université de toulouse"
# creation du chemin de destination
REPT="/var/lib/squidguard/db"
# copie du fichier de corresponsdance dans la zone de données de squidguard pour info
cp $PWD/correspondances $REPT/correspondances
# nettoyage et creation du dossier de telechargement
rm -R -f $REPT/download
mkdir $REPT/download
# telechargement
wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz -O $REPT/download/blacklists.tar.gz
echo "> Téléchargement des archives effectué"
# decompression de l'archive
echo "> Decompression ... "
tar -xzf $REPT/download/blacklists.tar.gz -C $REPT/download/
echo "> decompression effectuée "
clear
# verification des correspondances
# listage des dossiers telechargés
echo "> Etat de la liste telechargée :"
ls -C $REPT/download/blacklists
pauseE
# listage du contenu de correspondance pour comparaison
echo "> Etat de la liste dans le fichier /root/correspondance"
while read line
do
set $line
if [ "$1" != "NONDEF" ]
then echo -n $1 " | "
fi
done<$PWD/correspondances
echo "................................"
echo "> les listes correspondent (o/n) ?"
read
if [ "$R" = "n" ]
then
echo "!!! vous devez éditer le fichier /root/correspondances"
echo "pour qu'il corresponde au contenu du dossier
/var/lib/squidguard/db/download/ !"
fi
# effacement de l'archive
rm -f $REPT/download/blacklists.tar.gz
echo "> fin telechargement"
pauseE
}
#####################################################################
# fonction de renommage des lists téléchargées
function copie_lists()
{
clear
echo "> transfert des listes telechargées vers la base de squidguard"
# definition du repertoire de travail
REPT="/var/lib/squidguard/db"
# creation du dossier lists destinataire
rm -R -f $REPT/lists
mkdir $REPT/lists
# parcours de la list de correspondances et deplacement des dossiers vers la base de données
while read line
do
set $line
if [ $1 = "" ]
then break

LOUSSOUARN Mikaël Page 169 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

fi
if [ $1 = "NONDEF" ]
then echo -n "."
else mv $REPT/download/blacklists/$1 $REPT/lists/$2

echo -n ">"
fi
done<$REPT/correspondances
echo ">"
# effacement des fichiers telechargés
rm -R -f $REPT/download
echo "> Listes transférées vers la base squidguard"
pauseE
}
#################################################################
# réatribution des droits sur la base
function reatribute_droits()
{
REPT="/var/lib/squidguard/db"
chown -R proxy:proxy $REPT
chmod -R 775 $REPT
}

##############################################################
# reconstruction des bases squidguard actuellement utilisées par le logiciel
function reconstruc_bases()
{
REPT="/var/lib/squidguard/db"
echo "> reconstruction des bases "
/usr/bin/squidGuard -C all
reatribute_droits
pauseE
}

# reconstruction des bases squidguard situées dans le fichier temporaire, non utilisé par le logiciel
# doivent etre deplacées pour devenir active ( fonction install_list)
function reconstruc_bases_temp()
{
REPT="/var/lib/squidguard/db"
echo "> reconstruction des bases "
/usr/bin/squidGuard -c $PWD/compileBases.conf -C all
reatribute_droits
pauseE
}

##################################################
# relance de squid
function startsquid()
{
chmod -R 777 /var/run/samba/winbindd_privileged
/etc/init.d/squid start
}

#######################################################
# stop squid
function stop_squid()
{
/etc/init.d/squid stop
}

#####################################################"
# reccuperation et installation des listes de filtrage
# fonction génerale procedant au telechargement et au renomage des listes
function telecharge()
{
clear
echo "> reccuperation des listes de filtrage "
# repertoire de travail
REPT="/var/lib/squidguard/db"
# telechargement des listes et verif correspondances
transf_lists
echo "> téléchargement effectué "
# si les listes ne correspondent pas on ne continue pas
if [ "$R" = "n" ]
then echo " listes non créées !! ";return

LOUSSOUARN Mikaël Page 170 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

fi
# renommage des listes
copie_lists
# reconstruction des bases de données suivant la liste telechargée dans un fichier non utilisé par squid
echo "> reconstruction des bases temporaires, Patience .."
reatribute_droits
reconstruc_bases_temp
pauseE
}
####################################################
# installation des bases de données compilées depuis le repertoire temporaire jusqu'au repertoire de travail de squidguard
function installists()
{
clear
echo "> Installation des bases compilées pour squidguard"
echo "> dans son repertoire de travail"
# repertoire de travail
REPT="/var/lib/squidguard/db"
# arret de squid
stop_squid
# nettoyage des bases de travail actuelle
rm -R -f $REPT/bases
mkdir $REPT/bases
# copie des bases
cp -R $REPT/lists $REPT/bases
# placement des droits
chown -R proxy:proxy $REPT
chmod -R 775 $REPT
# fin, relance de squid
echo "> bases copiées , relance de squid .."
reatribute_droits
startsquid
pauseE
}

#####################################################
# paramètrage de squid
function squidconf()
{
# rien à modifier de ce côté là
return
}

#########################################################""
# paramétrage de squidguard
function squidguardconf()
{
# obtenir la liste des users depuis ad
get_user
# ecriture definitions listes et users dans squidguard.conf
# definition du fichier de configuration
FILE="/etc/squid/squidGuard.conf"
# purge de l'ancien fichier
rm -f $FILE
# creation du nouveau fichier
echo "dbhome /var/lib/squidguard/db">$FILE
echo "logdir /var/log/squid">>$FILE
echo "#TIMES RULES">>$FILE
echo "#abbrev for weekdays:">>$FILE
echo "#s = sun , m= mon , t = tue , w = wed , h = thu , f = fri , a = sat">>$FILE
echo "#horaires de connexion autorises :">>$FILE
echo "#time workhours {">>$FILE
echo "# weekly mtwhf 08:00 - 17:30">>$FILE
echo "# date *-*-01 08:00 - 17:30">>$FILE
echo "#}">>$FILE
echo "# source adresses:">>$FILE
# definition des sources utilisateurs
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
echo "#definition de la source utilisateurs $1">>$FILE
echo "source "`echo $2 | cut -d. -f2``echo $2 | cut -d. -f1`" {">>$FILE

LOUSSOUARN Mikaël Page 171 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

echo "userlist users/$2">>$FILE


echo "}">>$FILE
done<$PWD/users
# definition des sources de listes
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
if [ "$1" != "NONDEF" ]
then echo "#definition de la source liste
$1">>$FILE
echo "dest $2 {">>$FILE
echo "domainlist
bases/lists/$2/domains">>$FILE
echo "urllist
bases/lists/$2/urls">>$FILE
echo "}">>$FILE
fi
done<$PWD/correspondances
# definition des acl
echo "acl {">>$FILE
# url de redirection
REDIRECTION="http://localhost/Pageproxy.htm"
# afficher users
echo "> groupes d'utilisateurs :"
while :
do
cat $PWD/users
# selectionner user
echo "> Selectionner un groupe a filtrer(entrer le type 1.user):"
echo "> entrer *FIN* pour finir "
read GROUPUSER
if [ "$GROUPUSER" = "*FIN*" ]
then break
fi
FILETEMP=$PWD"/temporaire"
# effacer le fichier temporaire
rm -f $FILETEMP
# creer acl avec toutes listes interdites dans fichier acl
echo "# droits d'accès du groupe $GROUPUSER">>$FILETEMP
echo `echo $GROUPUSER | cut -d. -f2``echo $GROUPUSER | cut -d. -f1`" {">>$FILETEMP
echo -n "pass ">>$FILETEMP
while read line
do
set $line
if [ "$1" = "" ]
then break
fi
if [ "$1" != "NONDEF" ]
then
echo -n " !$2
">>$FILETEMP
fi
done<$PWD/correspondances
echo "all">>$FILETEMP
echo "redirect">>$FILETEMP
echo $REDIRECTION>>$FILETEMP
echo "}">>$FILETEMP
while :
do
# afficher listes
echo "> listes de filtrages (retenez le numero de celle a autoriser!) :"
pauseE
cat $PWD/correspondances | more
echo "> liste a autoriser ? ( syntax de type list1 )"
echo "> entrer *FIN* pour finir "
read AUTORISE
if [ "$AUTORISE" = "*FIN*" ]
then
cp -f $FILETEMP $PWD/tampon3
break
fi
AREMPLACER="!"$AUTORISE

LOUSSOUARN Mikaël Page 172 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

sed -e "s/"$AREMPLACER"/"$AUTORISE"/g" $FILETEMP >$PWD/tampon3


cp -f $PWD/tampon3 $FILETEMP
done
clear
echo " visualisation de l'acl "
cp -f $FILETEMP $PWD/tampon3
cat $PWD/tampon3 2>/dev/null
pauseE
if [ -e $PWD/tampon3 ]
then
cat $PWD/tampon3>>$FILE
else
cat $FILETEMP>>$FILE
fi
done
# ecriture acl default dans squidguard.conf
echo "# droits d'acces par defaut">>$FILE
echo "default {">>$FILE
echo " redirect $REDIRECTION">>$FILE
echo " pass none">>$FILE
echo "}">>$FILE
echo "}">>$FILE
# donner les droits sur le fichier au proxy
chown proxy:proxy $FILE
echo "> arret de squid"
stop_squid
echo "> redemarrage de squid"
startsquid
pauseE
}
##################################"
# fonction configuration postfix
function postfix()
{
# postfix
echo "paramétrage de postfix et de fetchmail"
# definition du fichier à modifier
FILE="/etc/postfix/main.cf"
# remplacement du caractère special / par un caractère neutre ?
cat $FILE | tr '/' '?' >$PWD/tampon
cp -f $PWD/tampon $FILE
# subsitutions des paramètres locaux à l'installation
REMPLACE=$LDNS
sed -e "s/debian.stage.local/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$DOMRECON
sed -e "s/stage.local/"$REMPLACE"/g" $PWD/tampon >$FILE
REMPLACE="localhost."$DOMAINE
sed -e "s/localhost.stage.local/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$SMTP
sed -e "s/193.252.22.91/"$REMPLACE"/g" $PWD/tampon >$FILE
REMPLACE=`echo $RESEAU | tr '/' '?'`
CHERCHE="192.168.254.0?24"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $FILE >$PWD/tampon
# remplacement du caractère ? par /
cat $PWD/tampon | tr '?' '/' >$FILE
#procmail
# definition du fichier à modifier
FILE="/etc/skel/.procmailrc"
# subsitutions des paramètres locaux à l'installation
REMPLACE=$SPAMMAIL
CHERCHE="spam@superboite.com"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$ADMINMAIL
CHERCHE="administrateur@superboite.com"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $PWD/tampon >$FILE
# placement des droits sur le fichier
chmod 600 $FILE
# fetchmail
# definition du fichier à modifier
FILE="/etc/fetchmailrc"
# remplacement du caractère special / par un caractère neutre ?
cat $FILE | tr '/' '?' >$PWD/tampon
cp -f $PWD/tampon $FILE
# subsitutions des paramètres locaux à l'installation
REMPLACE=$POP

LOUSSOUARN Mikaël Page 173 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

CHERCHE="pop.gmail.com"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$PORTPOP
CHERCHE="995"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $PWD/tampon >$FILE
REMPLACE=$DOMAINE
sed -e "s/stage.local/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$COLLECTOR
CHERCHE="mik.stage@gmail.com"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $PWD/tampon >$FILE
REMPLACE=`echo $PASSPOP | tr '/' '?'`
CHERCHE="motdepasse?73"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $FILE >$PWD/tampon
REMPLACE=$FREQFETCH
CHERCHE="1500"
sed -e "s/"$CHERCHE"/"$REMPLACE"/g" $PWD/tampon >$FILE
# remplacement du caractère ? par /
cat $FILE | tr "?" "/" >$PWD/tampon
cp -f $PWD/tampon $FILE
# placement des droits sur le fichier
chmod 600 $FILE
pauseE
# configuration des alias mails pour rediriger les mail de root vers le mail administrateur
FILE="/etc/aliases"
ADMIN=`echo $ADMINMAIL | cut -d@ -f1`
echo "root :"$ADMIN >>$FILE
newaliases
# création du compte spam
SPAM=`echo $SPAMMAIL | cut -d@ -f1`
echo "> création du compte destiné à recevoir le spam :"
useradd $SPAM
echo "> Entrez le mot de passe de ce nouveau compte :"
passwd $SPAM
echo "> ATTENTION: à la fin du script vous devrez connecter les utilisateurs "$SPAM" et "$ADMIN
echo "> au moyen des commandes suivantes:"
echo " su "$SPAM
echo "exit"
echo " su "$ADMIN
echo "exit"
echo " notez ces commandes :)"
pauseE

}
####################################################
###################################################"
# Corps de programme ( appel des fonctions )
###########################################
#test du premier démarrage
# test du paramètre de démarrage
# execution de la configuration
# marqueur de definition du reseau
DOMAINE="///"
renseigne
confNet
synchron
kerberos
sambawinbind
squidconf
squidguardconf
telecharge
installists
postfix
PauseE
clear
echo " La configuration du serveur est terminée ,"
echo " Vous êtes invités à suivre le tutoriel"
echo "pour la configuration d'EgroupWare"
echo " Ce tutoriel est fourni dans les fichiers de ce script,"
echo "voir dans /root/configuration/"
echo " La configuration d'EgroupWare se fera au moyen "
echo "d'un navigateur WEB sur un poste extérieur à ce serveur"
echo " en tapant l'adresse http/IP_DE_VOTRE_SERVEUR/egroupware/setup"
echo " la doc d'installation est visible"
echo "à l'adresse http/IP_DE_VOTRE_SERVEUR/instal.htm"

LOUSSOUARN Mikaël Page 174 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

pauseE
#copie de la doc d'install egroupware sur le serveur web
cp -fR $PWD/ins* /var/www/
chown -R www-data:www-data /var/www/
echo " Le serveur va se relancer pour prendre en compte les modifications"
pauseE
# on marque l'execution première du script en créant le fichier test
reboot
echo " Configuration déjà effectuée, creer le fichier /ConfigNonFaite"
echo " et relancer le script /root/configuration/configuration.sh "
echo "si vous voulez relancer la configuration du serveur"

Retour au chapitre

LOUSSOUARN Mikaël Page 175 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

9. Glossaire
—A—
ACL,
Access Control List (ACL), en français liste de contrôle d'accès
active directory,
Active Directory est l'implémentation par Microsoft de services d'annuaire
AFPA,
L'Association nationale pour la formation professionnelle des adultes (AFPA) est un
organisme français de formation professionnelle.
Amavis,
Amavis est un logiciel de scan antivirus de mail http://www.amavis.org/
Apache2,
Apache2 est un serveur Web http://httpd.apache.org/
APLON,
APLON est une suite logicielle dévellopée par une association pour l'enseignement
privé http://www.aplon.org/accueil.aspx?pnav=2
AutoIt,
AutoIT est un langage de programmation sous envirronement Windows
http://www.autoitscript.com/autoit3/
—B—
bash,
Bash, acronyme de Bourne-again shell, il s'agit d'un langage LINUX
BCDI, 8
Solution documentaire pour les écoles http://bcdi.crdp2-poitiers.org/site/index.php
BTS,
Brevet de technicien supérieur
—C—
Call-Center,
Centre d'appel
CDROM,
Support physique de données
CEFOC,
CENTRE DE FORMATION CONTINUE PAR L’ALTERNANCE
Cisco, 9
Constucteur de matériels réseaux http://www.cisco.com/
clamav,
Antivirus du monde du logiciel libre http://www.clamav.net/
courier-imap,
Logiciel serveur de courrier IMAP http://www.courier-mta.org/imap/
CRM MISMO,
Progiciel de gestion http://www.mismo.fr/
—D—
Debian,
Distribution LINUX http://www.debian.org/index.fr.html
DNS,
Domain Name System, système de résolution de noms d'ordinateurs à partir de
l'adresse IP http://fr.wikipedia.org/wiki/Domain_Name_System

LOUSSOUARN Mikaël Page 176 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

—E—
EDU4,
Logiciel d'enseignement de langues http://www.edu4.com/
EgroupWare,
Logiciel de travail collaboratif http://www.egroupware.org/
Exchange,
Microsoft Exchange Server est un logiciel collaboratif pour serveur de messagerie
électronique créé par Microsoft
http://www.microsoft.com/france/exchange/default.mspx
—F—
fetchmail,
Fetchmail est un logiciel permettant de reccupérer des mails sur un serveur distant
http://www.fetchmail.info/
—I—
IMAP,
Internet Message Access Protocol est un protocole utilisé par les serveurs de
messagerie électronique http://fr.wikipedia.org/wiki/Imap
IP,
Internet Protocol, c’est un protocole utilisé pour le routage des paquets sur les
réseaux http://fr.wikipedia.org/wiki/Internet_Protocol
—J—
jpgraph,
C'est une librairie logicielle destinée à la création de graphiques par le langage PHP
http://www.aditus.nu/jpgraph/
—K—
kerberos,
Kerberos est un protocole d'identification réseau http://fr.wikipedia.org/wiki/Kerberos
—L—
ldap,
Lightweight Directory Access Protocol (LDAP) est un protocole permettant
l'interrogation et la modification des services d'annuaire
http://fr.wikipedia.org/wiki/Ldap
log,
Journal d'évenements
—M—
MDA,
Mail Delivery Agent http://fr.wikipedia.org/wiki/Mail_Delivery_Agent
MTA,
Mail Transfer Agent http://fr.wikipedia.org/wiki/Mail_Transfer_Agent
MySQL,
Service de gestion de bases de données (SGBD) OpenSource
http://www-fr.mysql.com/
—N—
Net source,
Logiciel dédié aux établissements scolaires http://www.net-concept.fr/produits/
netbios,
Netbios est un protocole de transfert de fichiers http://fr.wikipedia.org/wiki/Netbios

LOUSSOUARN Mikaël Page 177 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

NETOP SCHOOL,
Logiciel de téléformation http://www.logiciels-netop.fr/
ntpdate,
Logiciel de synchronisation d'horloge http://www.linux-france.org/
—O—
OpenLDAP,
Service d'annuaire opensource http://www.openldap.org/
—P—
PAM,
Pluggable Authentication Modules (modules d'authentification enfichables)
http://fr.wikipedia.org/wiki/Pluggable_authentication_module
PCIE,
Passeport de compétences informatiques Européen http://www.pcie.tm.fr/
PDA,
Personal Digital Assistant ou assistant personnel http://fr.wikipedia.org/wiki/Pda
Pear,
PEAR (pour PHP Extension and Application Repository) est un framework (ensemble
de bibliothèques logicielles) de composants PHP. http://fr.wikipedia.org/wiki/PEAR
PHP,
PHP (acronyme récursif pour PHP: Hypertext Preprocessor), est un langage de
scripts libre principalement utilisé pour produire des pages web dynamiques via un
serveur HTTP http://www.php.net/
POP,
Post Office Protocol , protocole de reception des courriers électroniques
http://fr.wikipedia.org/wiki/Post_Office_Protocol
Postfix,
Postfix est un logiciel serveur de messagerie électronique http://www.postfix.org/
Procmail,
Procmail est un composant de Postfix qui est en charge de la distribution des
courriers vers les boites des destinataires http://www.linux-france.org/
proxy,
Un proxy est un logiciel assurant un service mandataire de navigation Internet
http://fr.wikipedia.org/wiki/Proxy
—S—
Samba,
Samba est un service logiciel permettant la communication entre les systèmes Linux et
Windows via le réseau http://us4.samba.org/samba/
SASL,
Simple Authentication and Security Layer ou Couche d'authentification et de sécurité
simple est un mécanisme d'authentification http://fr.wikipedia.org/wiki/SASL
SMTP,
Simple Mail Transfer Protocol ou Protocole simple de transfert de courrier est un
protocole de transfert du courrier électronique http://fr.wikipedia.org/wiki/Smtp
spamassassin,
C'est un logiciel de filtrage des courriers indésirables (spams ou pourriels)
http://spamassassin.apache.org/
SQL,
Structured query language ou langage structuré de requêtes est un langage
d'interrogation de bases de données http://fr.wikipedia.org/wiki/SQL

LOUSSOUARN Mikaël Page 178 05/02/2008


Stage au lycée Sacré-Cœur d’Angers

Squid,
Squid est un logiciel de serveur mandataire http://www.squid-cache.org/
SquidGuard,
SquidGuard est un logiciel de filtrage de navigation Internet
http://www.squidguard.org/
streaming,
Lecture en continue de flux de données http://fr.wikipedia.org/wiki/Streaming
synchroparc,
Logiciel de sauvegarde et de restauration des postes informatiques
http://www.crdp-reims.fr/synchroparc/
—T—
TellMeMore,
Logiciel d'apprentissage des langues http://fr.tellmemore.com/
—U—
url,
Uniform Resource Locator ou localisateur uniforme de ressource est une chaîne de
caractère utilisée pour adressé des ressources internet. http://fr.wikipedia.org/wiki/Url
—V—
VLC,
Lecteur de fichiers multimédias avec des fonctionnalités serveur de flux
http://www.videolan.org/
VmWare,
Logiciel de virtualization d'ordinateur http://www.vmware.com/fr/
—W—
Webmin,
Interface graphique d'administration de systèmes Linux fonctionnant par serveur Web
http://www.webmin.com/
Winbind,
Winbind est un logiciel permettant une authentification des utilisateurs et groupes
utilisateurs depuis un système Linux sur un domaine Microsoft Active Directory
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/winbind.html

LOUSSOUARN Mikaël Page 179 05/02/2008

Vous aimerez peut-être aussi