Forums d'entraide informatique - Astuces - Conseils
Des experts à votre écoute pour tous vos dysfonctionnements
Vous n'êtes pas identifié.
#1 21-08-2008 20:27:26
- Admin
- Administrateur
- Date d'inscription: 30-07-2008
- Messages: 683
Formation à Linux (5)
ftp://ftp.via.ecp.fr/pub/cygwin/ et cliquez sur Add.
184Chapitre 45. Faire de l’export display
6. Ensuite vient l’étape de sélection des packages. Sélectionnez deux packages supplémentaires par rapport à la
configuration par défaut :
• openssh dans la section Net,
• XFree86-base dans la section XFree86.
7. Il va ensuite télécharger les packages sélectionnés et les installer.
8. Après la dernière étape, il lance les scripts de configuration-après-installation et ajoute l’icône Cygwin sur le bureau.
Utiliser Cygwin
Double-cliquez sur l’icône Cygwin ; une console apparaît :
Figure 45-3. La console Cygwin
• Vous pouvez alors lancer un serveur graphique vers une autre machine :
Administrateur@CLIENT
$ X -query serveur.exemple.org
• Vous pouvez également lancer un serveur X en local. Avant cela, pour avoir un clavier français sous X, éditez le fichier
/usr/X11R6/bin/startxwin.bat et rajoutez à la fin du fichier la ligne suivante :
run setxkbmap -layout fr
Vous pouvez alors lancer le serveur X :
Administrateur@CLIENT
$ startxwin.bat
et ensuite faire de l’export display comme si vous êtiez sous Linux et que vous vous connectiez à un autre Linux
(expliqué au début de ce chapitre). [FIXME : les accents ne marchent pas]
185Chapitre 45. Faire de l’export display
Figure 45-4. Export display avec Cygwin
Se connecter à un Windows à distance depuis un Linux
Il y a plusieurs possibilités ([FIXME : quels sont les niveaux de sécurisation de chaque possibilité ?] :
• par VNC vers un Windows sur lequel tourne un serveur VNC : installez le package xvncviewer qui contient un client
VNC puis lancez la commande suivante pour vous connecter au serveur VNC :
% xvncviewer serveur.exemple.org
• par Terminal Serveur vers un Windows 2000 Server ou Remote Desktop vers un Windows XP Pro (le protocole est le
même) : installez le package rdesktop qui contient un client RDP (Remote Desktop Protocol) et lancez la commande
suivante pour vous connecter au Windows distant :
% rdesktop -u login serveur.exemple.org
Note : Si vous utilisez Gnome 1.4, ajoutez l’option -k 40c pour mettre le clavier en AZERTY français (ne mettez pas
cette option si vous utilisez Gnome 2). Vous pouvez utiliser en plus l’option -d nom_du_domaine pour préciser un
domaine.
186Chapitre 45. Faire de l’export display
Figure 45-5. rdesktop
187Chapitre 46. NFS : le partage de fichiers sous Unix
NFS (Network File System) est un protocole standard de partage de répertoires sous Unix/Linux. Dans ce chapitre, nous
allons vous apprendre à monter un répertoire partagé par NFS, puis à mettre en partage un répertoire par NFS.
NFS côté client
Configuration nécessaire
Tout d’abord, il faut avoir compilé le module du noyau NFS File system support avec en plus l’option Provide NFSv3 client
support (cf Configuration du noyau Linux). Ensuite, il faut le package nfs-common qui est normalement installé par défaut.
Monter un répertoire partagé par NFS
Pour monter le répertoire /home/ftp/ partagé par la machine dont le nom DNS est ordi1.exemple.org dans le répertoire
/mnt/test déjà crée, utilisez la commande mount :
# mount -t nfs ordi1.exemple.org:/home/ftp /mnt/test
Une fois que vous n’avez plus besoin de ce partage, vous pouvez le démonter :
# umount /mnt/test
Pour que ce répertoire soit monté à chaque démarrage, rajoutez la ligne suivante dans le fichier de configuration
/etc/fstab :
ordi1.exemple.org:/home/ftp /mnt/test nfs soft,timeo=5,intr,rsize=8192,wsize=8192 0 0
Pour comprendre les options, regardez leur description dans man mount.
NFS côté serveur
Configuration nécessaire
Tout d’abord, il faut avoir compilé le module du noyau NFS Server support avec en plus l’option Provide NFSv3 server
support (cf Configuration du noyau Linux).
Il faut également le package nfs-kernel-server :
# apt-get install nfs-kernel-server
Partager un répertoire
Editez le fichier /etc/exports et rajoutez la ligne suivante pour partager le répertoire /home/test/ à la machine
ordi2.exemple.org :
/home/test ordi2.exemple.org(rw,root_squash)
L’option rw permet d’exporter en lecture-écriture (utiliser ro pour exporter en lecture seule). L’option root_squash
spécifie que le root de la machine ordi2.exemple.org n’a pas les droits de root sur le répertoire partagé (l’option
188Chapitre 46. NFS : le partage de fichiers sous Unix
no_root_squash spécifie que le root de la machine sur laquelle le répertoire est monté a les droits de root sur le répertoire).
L’option root_squash est l’option par défaut.
Note : L’option rw signifie en réalité que l’utilisateur dont l’ID est 1001 (par exemple...) sur le client NFS a les droits
d’écriture sur les fichiers et les répertoires qui appartiennent à l’utilisateur dont l’ID est 1001 sur le serveur NFS.
Attention, ces utilisateurs n’ont pas forcément le même nom de compte Unix et ne correspondent pas forcément aux
mêmes personnes !
Enfin, demandez à nfs-kernel-server de démarrer :
# /etc/init.d/nfs-kernel-server start
Exporting directories for NFS kernel daemon...done.
Starting NFS kernel daemon: nfsd mountd.
Par la suite, il suffira de lui dire de relire son fichier de configuration après chaque modification :
# /etc/init.d/nfs-kernel-server reload
Re-exporting directories for NFS kernel daemon...done.
189Chapitre 47. Le voisinage réseau Windows sous Linux
L’objectif de ce chapitre est d’être capable de surfer sur le voisinage réseau Windows (c’est l’aspect client), et de pouvoir
mettre en partage des fichiers (c’est l’aspect serveur). Pour cela, on va utiliser les outils développés par le projet GPL
Samba (http://ftp.easynet.be/samba/samba.html).
Samba côté serveur
Installation des packages
Il suffit d’installer le package samba, qui va installer par dépendance le package samba-common qui sert à la fois au
serveur et au client :
# apt-get install samba
Configuration
Dès l’installation, il vous demande si vous voulez configurer Samba avec Debconf : répondez Non. En effet, nous vous
proposons de télécharger un fichier de configuration que vous allez personnaliser.
Le fichier de configuration de Samba est /etc/samba/smb.conf. Ce fichier a une petite partie commune au client et au
serveur, le reste étant spécifique au serveur. Copiez mon fichier de configuration d’exemple dans le répertoire
/etc/samba/ :
# cp ~/config/smb.conf /etc/samba/
ou :
% wget http://www.via.ecp.fr/~alexis/formation … g/smb.conf
# mv smb.conf /etc/samba/
Editez le fichier et personnalisez les paramètres en lisant les instructions en commentaire. Une fois que le fichier est bien
personnalisé, vérifiez s’il est bien valide avec le programme testparm :
# testparm
Si le fichier de configuration est bien valide, vous pouvez alors demander à Samba de relire son fichier de configuration :
# /etc/init.d/samba reload
Reloading /etc/samba/smb.conf (smbd only).
Note : Il n’y a pas de processus samba qui tourne en tâche de fond pour le serveur, mais deux processus : smbd qui
s’occupe des partages et de l’autentification, et nmbd qui s’occupe de la résolution des noms NetBIOS.
190Chapitre 47. Le voisinage réseau Windows sous Linux
Samba côté client
en console
Installation du client en mode texte
Le client pour le voisinage réseau Windows en console s’appelle smbclient :
# apt-get install smbclient
Utiliser smbclient
Voici une liste des commandes les plus utiles (à chaque fois il vous demandera de taper votre mot de passe pour le domaine
Windows) :
• Pour avoir la liste des machines du voisinage réseau :
% smbclient -L nom_DNS_ou_NetBIOS_du_contrôleur_de_domaine -U login_Windows
• Pour voir les partages de l’ordinateur ordi1 :
% smbclient -L ordi1 -U login_Windows
• Pour télécharger le fichier fichier1.txt disponible dans le partage partage1 de l’ordinateur ordi1 :
% smbclient //ordi1/partage1 -U login_Windows
smb: \> ls
smb: \> cd répertoire_distant
smb: \> lcd répertoire_local
smb: \> get fichier1.txt
smb: \> quit
• Pour imprimer le fichier PostScript fichier2.ps sur l’imprimante printer2 partagée par l’ordinateur ordi2 :
% smbclient //ordi2/printer2 -U login_Windows
smb: \> print fichier2.ps
smb: \> quit
• Pour déposer le fichier fichier3.txt sur le partage incoming partagée en écriture par l’ordinateur ordi3 :
% smbclient //ordi3/incoming -U login_Windows
smb: \> put fichier3.txt
smb: \> quit
• Pour changer son mot de passe du voisinage réseau Windows :
% smbpasswd -r nom_DNS_ou_NetBIOS_du_contrôleur_de_domaine -U login_Windows
191Chapitre 47. Le voisinage réseau Windows sous Linux
Monter un partage du voisinage réseau
Tout d’abord, il faut avoir compilé le module smbfs du noyau (cf Configuration du noyau Linux). Ensuite, il faut installer le
package smbfs :
# apt-get install smbfs
Pour monter le partage partage1 de l’ordinateur ordi1 dans le répertoire /mnt/test/ déjà existant :
# mount -t smbfs //ordi1/partage1 /mnt/test -o username=login_Windows
Quand vous n’en n’avez plus besoin, vous pouvez démonter le système de fichiers :
# umount /mnt/test
en mode graphique
Installation et configuration
Installez le package xsmbrowser :
# apt-get install xsmbrowser smbclient
Pour configurer xsmbrowser, il faut d’abord le lancer avec la commande du même nom. Ensuite, cliquez sur le bouton
Network avec la croix verte :
Figure 47-1. Premier écran de configuration de xsmbrowser
• Name : donnez un nom au réseau que vous êtes entrain de configurer,
• Type : sélectionnez Wins si vous apartenez à un vrai domaine Windows,
• Primary Wins : entrez le nom DNS ou l’adresse IP du contrôleur de domaine,
• Secondary Wins : entrez le nom DNS ou l’adresse IP de l’éventuel deuxième contrôleur de domaine,
192Chapitre 47. Le voisinage réseau Windows sous Linux
• Workgroup : entrez le nom du domaine ou du groupe de travail Windows.
Ensuite, cliquez sur Advanced Options :
Figure 47-2. Deuxième écran de configuration de xsmbrowser
• Username and Password : entrez votre login Windows et le mot de passe correspondant,
• Computer List : entrez le nom NetBIOS et l’adresse IP (ou le nom DNS) du contrôleur de domaine,
• Workgroup Behavior : laissez la case Static Workgroup cochée.
Se servir de xsmbrowser
Cliquez sur l’icône portant le nom du réseau que vous avez configuré, et vous verrez apparaître la liste des ordinateurs du
voisinage réseau.
193Chapitre 47. Le voisinage réseau Windows sous Linux
Figure 47-3. xsmbrowser
Le reste est intuitif : pour faire des transferts de fichier, positionnez-vous sur le répertoire dans lequel vous voulez
télécharger ou déposer des fichiers et cliquez sur Transfer.
194Chapitre 48. Se synchroniser sur un serveur de temps
Qu’est-ce que le protocole NTP ?
NTP signifie Network Time Protocol. C’est un protocole qui permet à un ordinateur de synchroniser son horloge sur un
autre ordinateur de précision plus élevée. Il existe ainsi des serveurs NTP de différents niveaux (appelés strates) qui
correspondent à différentes précisions. Les serveurs de Strate 1 (http://www.eecis.udel.edu/~mills/ntp/clock1.htm) sont les
plus précis et les plus rares ; ils ne sont accessibles qu’à des serveurs de Strates 2
(http://www.eecis.udel.edu/~mills/ntp/clock2.htm) ou 3, certains de ces serveurs étant librement accessibles.
Nous vous proposons dans ce chapitre de vous synchroniser sur le serveur de temps de VIA (http://www.via.ecp.fr) qui est
un serveur NTP Strate 2. Ce serveur est en accès libre et son nom est ntp.via.ecp.fr.
Se synchroniser sur le serveur de VIA
Installation d’un client NTP
Installez le programme ntpdate :
# apt-get install ntpdate
Configuration
Dès l’installation, il vous demande une liste de serveurs NTP. Tapez le nom du serveur NTP principal et du serveur
secondaire de VIA :
ntp.via.ecp.fr ntp2.via.ecp.fr
Les adresses sont alors écrites dans le fichier /etc/default/ntp-servers. Votre système se synchronisera à chaque
démarrage. Vous pouvez aussi lancer une synchronisation ponctuelle en lançant :
# /etc/init.d/ntpdate start
Running ntpdate to synchronize clock.
195Chapitre 49. Monter un serveur Web
Installer et configurer Apache
Installer le package
Le serveur web OpenSource le plus utilisé dans le monde s’appelle Apache (http://www.apache.org/). Pour l’installer :
# apt-get install apache
Configurer Apache
Les fichiers de configuration d’Apache sont dans le répertoire /etc/apache/. Nous n’allons pas vous expliquer toutes les
possibilités de configuration, mais seulement le minimum pour pouvoir mettre une page web à disposition du monde.
Editez le fichier /etc/apache/httpd.conf, décommentez la ligne 309 et mettez le nom DNS de votre machine :
ServerName le_nom_DNS_de_votre_ordinateur
Si vous voulez pouvoir mettre des restrictions d’accès à vos pages avec des fichiers .htaccess, modifiez également la
ligne 357 et mettez :
AllowOverride All
Maintenant que la configuration a été modifiée, il faut dire à Apache de relire ses fichiers de configuration :
# /etc/init.d/apache reload
Reloading apache configuration.
Ajouter le support de PHP
PHP (http://www.php.net) est un langage de script simple et libre qui est très utilisé pour développer des applications Web.
Si vous voulez installer des applications PHP, suivez les instructions de ce paragraphe ; sinon, passez directement au
paragraphe suivant.
Pour PHP, il exite un package de base php4 et des packages complémentaires contenant des modules de PHP (module pour
MySQL, pour PostgreSQL, pour LDAP, etc...). Pour avoir la liste complète des packages contenant des modules de PHP :
% apt-cache search php4|grep ^php4-
Installez le package de base (avec éventuellement des packages complémentaires) :
# apt-get install php4
A l’étape de configuration des packages, il pose plusieurs questions :
1. Do you want me to run the apacheconfig script now ? [y/N] : répondez y,
2. Save these changes to the configuration files ? [Y/n] : répondez y,
3. Restart Apache now ? [Y/n] : répondez n.
Ensuite, éditez le fichier /etc/apache/httpd.conf :
196Chapitre 49. Monter un serveur Web
• pour dire à Apache de charger le module PHP, décommentez la ligne suivante :
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
• pour dire à Apache de faire passer par l’interpréteur PHP toutes les pages d’extension .php, décommentez la ligne
suivante :
AddType application/x-httpd-php .php
Enfin, dites à Apache de relire son fichier de configuration :
# /etc/init.d/apache reload
Reloading apache configuration.
Toutes les pages ayant l’extension .php seront désormais traitées par l’interpréteur PHP avant d’être envoyées par Apache
au navigateur Web distant.
Utiliser Apache
Mettre une page web à disposition du monde !
La page web à mettre à disposition du monde doit se trouver dans le répertoire /var/www/, s’appeller index.html et
avoir les droits en lecture pour tout le monde. Une page Web a été mise par défaut à l’installation d’Apache.
Cette page web est maintenant disponible à l’adresse http://nom_DNS_de_la_machine/ pour le monde entier !
Une page perso pour les utilisateurs
Les utilisateurs du système peuvent également mettre leur page Web à disposition du monde. Par exemple, pour
l’utilisateur toto, il suffit qu’il crée un répertoire public_html/ dans son home avec un fichier index.html dedans. Les
permissions doivent être au minimum les suivantes :
% chmod 711 /home/toto/
% chmod 711 /home/toto/public_html/
% chmod 644 /home/toto/public_html/index.html
La page web de toto est désormais disponible au monde entier à l’adresse http://nom_DNS_de_la_machine/~toto/
197Chapitre 50. Monter un serveur FTP
Installer et configurer ProFTPd
Installer le package
Un des serveurs FTP les plus utilisés est ProFTPd (http://www.proftpd.net/). Pour l’installer :
# apt-get install proftpd
Configurer ProFTPd
Dès l’installation, il vous pose des questions de configuration :
• Modifier le fichier de configuration /etc/proftpd.conf ? Répondez Oui.
• Lancer ProFTPd à partir d’inetd ou indépendamment ? Répondez indépendamment.
• Autoriser les connexions anonymes ? Les connexions anonymes sont des connexions sans autentification qui permettent
à n’importe qui de venir se connecter par FTP et de télécharger les fichiers qui se trouvent dans le home de l’utilisateur
ftp (par défaut, c’est le répertoire /home/ftp/). Si vous voulez mettre en place un tel service, répondez Oui.
• Si vous avez répondu Oui à la question précédente, il vous demande Do you want /etc/proftpd.conf to be updated ?
Répondez Oui.
Votre serveur FTP est maintenant lançé. Vous pouvez modifier sa configuration en éditant le fichier /etc/proftpd.conf
et en vous aidant éventuellement de la documentation disponible dans le package proftpd-doc. A chaque fois que le fichier
de configuration change, il faut dire à ProFTPd de relire ses fichiers de configuration avec la commande :
# /etc/init.d/proftpd reload
Reloading proftpd configuration...proftpd.
done.
Utiliser ProFTPd
Connexion authentifiées
Les personnes qui ont un compte sur le système peuvent désormais se connecter par FTP avec leur login et leur mot de
passe. Ils peuvent télécharger et déposer des fichiers dans tous les répertoires sur lesquels ils ont les droits nécessaires.
Note : Attention, les mots de passe sont transmis en clair lors d’une session FTP : il est donc conseillé d’utiliser SSH
pour faire des transferts de fichiers, comme expliqué au chapitre L’accès à distance par SSH
Connexion anonymes
Si vous avez autorisé les connexions anonymes, n’importe qui peut se connecter à votre serveur FTP avec le login
anonymous ou ftp et avec un mot de passe vide ou quelconque. Il aura alors accès en téléchargement seulement à tous les
fichiers du répertoire /home/ftp/.
198Chapitre 50. Monter un serveur FTP
Administration
Pour voir la liste des machines connectées au serveur FTP à l’instant t, utilisez la commande ftpwho.
Les logs de transfert de fichiers du serveur FTP sont contenus dans le fichier /var/log/xferlog. La commande ftpstats
génère un petit tableau de statistiques à partir de ce fichier.
199Chapitre 51. Monter un serveur DHCP
DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet de configurer automatiquement les paramètres
réseau des postes connectés. Cela évite de mettre les configurations réseau "en dur" sur les postes connectés.
Avertissement
Si vous êtes sur un réseau dont vous n’êtes pas l’administrateur, n’installez pas de serveur DHCP :
cela risquerait de perturber la bonne marche du réseau !
Installer le serveur DHCP
Plusieurs serveur DHCP sont disponibles dans la Debian ; je vous propose d’installer le serveur DHCP de l’Internet
Software Consortium (http://www.isc.org/), qui se trouve dans le package dhcp3-server :
# apt-get install dhcp3-server
A l’installation, il vous demande d’entrer la liste des interfaces réseaux sur lesquelles le serveur DHCP doit écouter
(séparées par des espaces). Cette information est ensuite stockée dans le fichier /etc/default/dhcp3-server.
Configurer le serveur DHCP
La configuration du serveur DHCP se fait dans le fichier /etc/dhcp3/dhcpd.conf. La syntaxe de ce fichier est
expliquée dans man dhcpd.conf. Le fichier installé par défaut est largement commenté et permet de comprendre la plupart
des options.
J’ai également écrit un fichier de configuration d’exemple très simplifié qui peux vous servir comme base de travail :
# cp ~/config/dhcpd.conf /etc/dhcp3/
ou :
% wget http://www.via.ecp.fr/~alexis/formation … dhcpd.conf
# mv dhcpd.conf /etc/dhcp3/
Une fois que le fichier de configuration est au point, relancez le serveur DHCP :
# /etc/init.d/dhcp3-server restart
Pour vérifier en temps réel le bon fonctionnement du serveur DHCP, surveillez les écritures dans le syslog :
% tail -f /var/log/syslog
200Chapitre 52. Monter un serveur DNS
DNS (Domain Name System) est le protocole qui permet de faire la correspondance entre une adresse IP et le nom de
domaine, ou nom DNS, du type www.debian.org.
Note : Ce chapitre suppose une connaissance de base du protocole DNS. Pour apprendre les bases du
fonctionnement de la DNS, lisez les 6 premières pages de ce document
(http://www.toolinux.com/linutile/reseau/dns/index.htm).
Installer le serveur DNS
Plusieurs serveur DNS sont disponibles dans la Debian ; je vous propose d’installer le serveur DNS de référence, BIND
(Berkeley Internet Name Domain) de l’Internet Software Consortium (http://www.isc.org/) dans sa version 9 :
# apt-get install bind9
Configurer le serveur DNS
Les fichiers de configuration
Les fichiers de configuration de Bind se trouvent dans le répertoire /etc/bind/. On y trouve notamment le fichier
db.root, qui contient les adresses IP des serveurs DNS racines (i.e. les serveurs centraux du système DNS), et le fichier
named.conf qui est le fichier de configuration principal de Bind.
Le répertoire /var/cache/bind/ est destiné à accueillir les fichiers de zone pour ceux qui veulent configurer un serveur
DNS primaire ou secondaire.
Configurer un serveur indépendant
Par défaut, Bind est configuré en tant que serveur DNS "indépendant", qui n’est primaire ou secondaire pour aucun
domaine. Quel est l’intérêt d’un tel serveur ? Faire office de cache DNS. En effet, le serveur DNS va retenir dans son cache
les correspondances IP-DNS demandées par les clients, et ne sera pas obligé d’aller chercher à chaque fois auprès des
autres serveurs DNS la réponse aux requêtes.
Par exemple, si vous trouvez que le serveur DNS de votre fournisseur d’accès est trop long à répondre, vous aurez intérêt à
installer un serveur DNS sur votre ordinateur et configurer votre système pour qu’il interroge en priorité le serveur local.
Pour optimizer les temps de requêtes, configurez votre serveur DNS pour qu’il demande les enregistrements qu’il n’a pas
dans son cache aux serveurs DNS de votre fournisseur d’accès au lieu d’aller les demander lui-même auprès des autres
serveurs DNS.
Pour cela, éditez le fichier named.conf et décommentez les lignes de la sous-section forwarders de la section options en y
inscrivant les adresses IPs des serveurs DNS de votre fournisseurs d’accès. Le début du fichier named.conf ressemble
alors à cela :
options {
directory "/var/cache/bind";
forwarders {
48.128.12.41;
48.128.12.42;
};
201Chapitre 52. Monter un serveur DNS
auth-nxdomain no;
};
où 48.128.12.41 et 48.128.12.42 sont les adresses IPs de votre fournisseurs d’accès.
Enfin, modifiez le fichier /etc/resolv.conf et mettez votre serveur en première position dans la liste des serveurs DNS :
search liste_de_domaines_pour_les_noms_DNS_dont_le_domaine_n’est_pas_précisé
nameserver 127.0.0.1
nameserver 48.128.12.41
nameserver 48.128.12.42
Configurer un serveur DNS primaire pour une zone
Vous avez acheté un nom de domaine et vous souhaitez héberger votre DNS primaire ? Il vous faut configurer votre Bind
comme autoritaire (ou master) pour votre domaine et donner à l’organisme auquel vous avez acheté votre domaine
l’adresse IP de votre serveur.
Modification de named.conf
Ajoutez à la fin du fichier named.conf les lignes suivantes :
zone "mondomaine.org" {
type master;
file "mondomaine.org.zone";
};
où :
• mondomaine.org est le nom de domaine pour lequel votre serveur sera primaire,
• mondomaine.org.zone désigne le fichier /var/cache/bind/mondomaine.org.zone où seront stockés les
enregistrements de la zone.
Ecriture du fichier de zone
C’est de loin la partie la plus difficile ! J’ai écris un fichier de configuration type largement commenté qui pourra vous
servir comme base de travail pour écrire votre propre fichier de zone :
# cp ~/config/mondomaine.org.zone /var/cache/bind/
ou :
% wget http://www.via.ecp.fr/~alexis/formation … e.org.zone
# mv mondomaine.org.zone /var/cache/bind/
Vérifications et relance
Vérifiez que vous n’avez pas fait d’erreur de syntaxe dans le fichier named.conf :
% named-checkconf
Si la commande n’affiche rien, c’est que le fichier named.conf est valide. Ensuite, vérifiez la syntaxe du fichier de zone :
% named-checkzone mondomaine.org /var/cache/bind/mondomaine.org.zone
202Chapitre 52. Monter un serveur DNS
zone mondomaine.org/IN: loaded serial 2003050102
OK
Si la commande n’affiche aucun message d’erreur, alors il n’y a pas d’erreur de syntaxe dans le fichier de zone. Vous
pouvez alors dire à Bind de relire son fichier de configuration :
# /etc/init.d/bind9 reload
Note : Attention, si vous faites un restart au lieu d’un reload, le cache de votre serveur DNS se videra !
Configurer un serveur secondaire pour une zone
Un ami vous a demandé de faire office de serveur DNS secondaire pour son domaine ? Vous avez accepté ? Il ne reste plus
qu’à configurer votre Bind !
Modification de named.conf
Rajoutez à la fin du fichier named.conf les lignes suivantes :
zone "domaine-ami.org" {
type slave;
file "domaine-ami.org.zone";
masters { 12.42.112.242; };
};
où :
• domaine-ami.org est le nom de domaine pour lequel votre serveur sera secondaire,
• domaine-ami.org.zone désigne le fichier /var/cache/bind/domaine-ami.org.zone où sera écrite la zone à l’issue
du premier transfert depuis le serveur DNS primaire,
• 12.42.112.242 est l’adresses IP du serveur primaire de la zone.
Vérification et relance
Vérifiez que vous n’avez pas fait d’erreur de syntaxe dans le fichier named.conf :
% named-checkconf
Si la commande n’affiche rien, c’est que le fichier est valide. Vous pouvez alors dire à Bind de relire son fichier de
configuration :
# /etc/init.d/bind9 reload
Votre serveur DNS fera alors régulièrement des transferts de zone depuis le serveur primaire (et notamment à chaque fois
que le serveur primaire lui notifiera d’un changement dans la zone) et l’écrira dans le fichier
/var/cache/bind/domaine-ami.org.zone.
Cordialement
L'équipe Parisdepannage.fr
Hors ligne
#2 21-08-2008 20:27:40
- Admin
- Administrateur
- Date d'inscription: 30-07-2008
- Messages: 683
Re: Formation à Linux (5)
203Chapitre 52. Monter un serveur DNS
Tester le serveur DNS
L’utilitaire dig permet de faire des requêtes DNS évoluées et fournit un maximum d’informations sur la requête. Il est très
utile pour vérifier la bonne configuration d’un serveur DNS.
Exemples d’utilisation de dig :
• Requête sur le champ "A" du nom www.mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 www.mondomaine.org A
• Requête sur la champ "MX" du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 mondomaine.org MX
• Requête sur tous les champs du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 mondomaine.org ANY
• Requête AXFR sur le domaine mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 mondomaine.org AXFR
• Requête inverse (i.e. reverse DNS) sur l’IP 12.42.111.422 auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 -x 12.42.111.422
La sortie de la commande dig est très détaillée ; la réponse à la requête (la partie qui vous intéressera le plus !) se trouve en
dessous de la ligne suivante :
;; ANSWER SECTION:
204Chapitre 53. Monter un serveur de mail
Vous avez réussi à faire fonctionner votre serveur DNS ? Vous avez prévu des champs "MX" pour faire fonctionner un
serveur mail ? Alors suivez ce qui suit...
Configurer Postfix
Installer Postfix
Si vous avez sauté le chapitre Configurer son serveur de mail local, alors je vous invite à y retourner et à suivre la
procédure qui y est décrite ! Vous aurez alors un serveur Postfix avec une configuration pour délivrer le mail en local.
main.cf
La configuration de Postfix se fait dans le fichier /etc/postfix/main.cf. Utilisez mon fichier d’exemple pour
comprendre les paramètres et bien configurer votre serveur :
# cp ~/config/main.cf /etc/postfix/
ou :
% wget http://www.via.ecp.fr/~alexis/formation … ig/main.cf
# mv main.cf /etc/postfix/
Une fois que vous avez personnalisé le fichier main.cf en lisant les commentaires contenus dans le fichier, il faut dire à
Postfix de relire sa configuration :
# /etc/init.d/postfix reload
Les utilisateurs qui ont des comptes sur le serveur peuvent alors reçevoir du mail à l’adresse
nom_du_compte@nom_de_domaine. Le mail reçu pour l’utilisateur toto est stocké dans le fichier /var/mail/toto (sauf
si l’utilisateur a un fichier .procmailrc dans son home : cf Le mail en console pour comprendre procmail).
Les alias
Les alias permettent de faire des correspondances entre des adresses mail et des comptes locaux, d’autres adresses mail ou
encore des commandes à exécuter. Ils sont définis dans le fichier /etc/aliases. La syntaxe de ce fichier est très simple :
# /etc/aliases
# Fichier d’alias mail
# NE PAS OUBLIER d’exécuter "newaliases" après chaque modification
# Fait suivre le mail reçu à l’adresse <alexis.delattre@nom_de_domaine>
# au compte local "alexis" :
alexis.delattre: alexis
# Fait suivre le mail reçu à l’adresse <toto@nom_de_domaine>
# à l’adresse <titi@yahoo.fr> :
toto: titi@yahoo.fr
# Fait suivre le mail reçu à l’adresse <machin@nom_de_domaine>
# aux comptes "user1" et "user2" et à l’adresse <bidulle@exemple.org> :
machin: user1,user2,bidulle@exemple.org
205Chapitre 53. Monter un serveur de mail
# A la réception d’un mail à l’adresse <bruit@nom_de_domaine>,
# exécute la commande "/usr/lib/ecartis/ecartis -s bruit" :
bruit: "|/usr/lib/ecartis/ecartis -s bruit"
Normalement, on définit aussi dans ce fichier à quel compte local (ou à quelle adresse) le serveur de mail doit faire suivre
le mail destiné à l’utilisateur root. En effet, comme il n’y a pas besoin d’avoir tous les pouvois pour lire le mail du root, il
serait absurde (et même dangereux) de lire les mails du root en tant que root. Il est préférable de faire suivre le mail du root
vers un autre compte ou une autre adresse.
Il faut également faire des alias pour les adresses postmaster et abuse, qui sont deux adresses standard pour pouvoir joindre
les administrateurs du serveur de mail d’un domaine. Par exemple, si vous utilisez un compte local admin pour lire les logs
et les mails d’administration, ajoutez les lignes suivantes au fichier d’alias :
root: admin
postmaster: admin
abuse: admin
Ensuite, exécutez la commande suivante pour qu’il regénère la base de donnée d’alias contenue dans le fichier
/etc/aliases.db (ne pas oublier d’exécuter cette commande après chaque modification du fichier /etc/aliases) :
# newaliases
Les adresses virtuelles
Quand le domaine de l’adresse mail n’est pas celui de la machine, on passe par un mécanisme d’adresses virtuelles pour
faire correspondre ces adresses mail à des comptes locaux, à d’autres adresses mail ou encore à des commandes à exécuter.
Le nom du fichier contenant les correspondances pour les adresses virtuelles est définit dans le fichier de configuration de
Postfix /etc/postfix/main.cf par le paramètre virtual_maps :
virtual_maps = hash:/etc/postfix/virtual
La syntaxe du fichier est semblable à celle du fichier d’alias, mais sans la séparation par les deux-points :
# /etc/postfix/virtual
# Fichier de correspondance pour les adresses virtuelles
# NE PAS OUBLIER d’exécuter "postmap /etc/postfix/virtual"
# après chaque modification
# Fait correspondre une adresse virtuelle à un compte local
postmaster@exemple.org admin
alexis@exemple.org alexis
# Fait correspondre une adresse virtuelle à une autre adresse mail
toto@exemple.org titi@yahoo.fr
# Fait correspondre une adresse virtuelle à une commande à exécuter
bruit@exemple.org "|/usr/lib/ecartis/ecartis -s bruit"
Ensuite, exécutez la commande suivante pour qu’il tienne compte des modifications :
# postmap /etc/postfix/virtual
206Chapitre 53. Monter un serveur de mail
Les commandes de base d’administration
Voici une petite liste des commandes de base d’administration de Postfix :
• Liste la queue de mails en attente d’envoi :
% mailq
Cette commande est équivalente à la commande postqueue -p.
• Force Postfix à réessayer d’envoyer les mails en attente d’envoi immédiatement :
% postqueue -f
• Supprime un mail de la queue des mails en attente d’envoi :
# postsuper -d mail_ID
où mail_ID est l’identifiant du mail dans la queue (il apparaît à gauche dans la sortie de la commande mailq).
Ajouter des serveurs POP et/ou IMAP...
Attention
Attention, les protocoles POP et IMAP font transiter les mots de passe en clair sur le réseau ! Il est
possible de les sécuriser en les faisant passer par des tunnels SSH (cf L’accès à distance par SSH)
ou faisant du SSL (non expliqué ici).
Installer un serveur POP3
Pour ajouter un service POP3 à votre serveur de mail, il suffit d’installer qpopper :
# apt-get install qpopper
La configuration de qpopper se fait dans le fichier /etc/qpopper.conf. Par défaut, tout est commenté, mais les
paramètres par défaut doivent vous permettre de l’utiliser normalement.
Installer un serveur IMAP
De même, mais avec le package uw-imapd :
# apt-get install uw-imapd
Il n’y a pas de fichier de configuration... donc ça devrait marcher tout seul !
207Chapitre 54. Monter un serveur de mailing-listes
Vos serveurs DNS et mail fonctionnent bien ? Vous avez appris à faire des alias qui pointent vers plusieurs comptes et/ou
adresses mail, mais vous voudriez aller plus loin pour communiquer au sein d’une communauté ? Alors suivez ce qui suit
pour mettre en place des mailing-lists avec archivage sur le Web...
Monter le serveur
Installer et configurer Ecartis
Je vous propose d’installer Ecartis (http://www.ecartis.org/), qui est un manager de mailing-lists robuste et performant.
Commencez par installer le package :
# apt-get install ecartis
Ecartis possède un fichier de configuration global /etc/ecartis/ecartis.cfg. Editez-le et personnalisez les
paramètres suivants en vous aidant des commentaires (dans la plupart des cas, il suffira de remplacer localhost par le nom
de domaine de la machine) :
• mailserver
• listserver-address
• listserver-admin
• list-owner
Ajoutez les aliases nécessaires au bon fonctionnement d’Ecartis :
# cat /usr/share/doc/ecartis/examples/aliases >> /etc/aliases
# newaliases
Créer une mailing-list
Nous allons créer une première mailing-list bruit, qui servira à des fins de test, pour se familiariser avec Ecartis :
# /usr/lib/ecartis/ecartis -newlist bruit
Creating new list ’bruit’...
List admin e-mail:
Il vous demande l’adresse mail de l’administrateur de la mailing-list : entrez votre adresse mail ; c’est avec cette adresse
que vous pourrez administrer la mailing-list.
Il crée ensuite le répertoire et les fichiers nécessaires au bon fonctionnement de la mailing-list dans le répertoire
/var/lib/ecartis/lists/ :
Writing config file...done.
Creating default user file...done.
Enfin, il affiche une liste d’alias à créer dans votre serveur de mail :
Sending aliases for sendmail/Exim/Postfix/Zmailer to stdout.
# Aliases for ’bruit’ mailing list.
208Chapitre 54. Monter un serveur de mailing-listes
bruit: "|/usr/lib/ecartis/ecartis -s bruit"
bruit-request: "|/usr/lib/ecartis/ecartis -r bruit"
bruit-repost: "|/usr/lib/ecartis/ecartis -a bruit"
bruit-admins: "|/usr/lib/ecartis/ecartis -admins bruit"
bruit-moderators: "|/usr/lib/ecartis/ecartis -moderators bruit"
bruit-bounce: "|/usr/lib/ecartis/ecartis -bounce bruit"
Copiez-collez le bloc ci-dessus, qui comprend les 6 alias nécessaires au fonctionnement de la mailing-list, dans le fichier
d’alias de votre serveur de mail (dans notre cas : /etc/aliases) puis mettez à jour la base d’alias :
# newaliases
La mailing-list est maintenant crée... passons à la configuration !
Configurer la mailing-list
La configuration de la mailing-list se fait dans le fichier /var/lib/ecartis/lists/bruit/config. Il existe un très
grand nombre de paramètres de configuration, et le fichier de configuration installé par défaut les explique tous dans les
commentaires (mais en anglais...).
Les paramètres les plus importants que vous devez absolument personnaliser sont les suivants (certains ont déjà été
décommentés et personnalisés à la création de la liste) :
• list-owner : adresse e-mail du responsable de la mailing-list (c’est celle que vous avez donné lors de la création de la
mailing-list) ;
• subject-tag : tag éventuel rajouté aux sujets des mails postés dans la mailing-list (commentez la ligne si vous ne voulez
pas de tag) ;
• reply-to : permet de forcer le champ Reply-to sur une certaine adresse (par exemple l’adresse de la mailing-list pour que
les réponses aux posts aillent par défaut dans la mailing-list) ;
• administrivia-address : adresse e-mail d’administration de la mailing-list où sont envoyé les notifications (et les
autorisations si la mailing-list est en subscribe-mode = closed) d’abonnement et de désabonnement (ne pas modifier) ;
• approved-address : adresse e-mail où sont renvoyés les posts acceptés ou refusés à la modération : mettre
<$list>-repost@serveur.exemple.org, où serveur.exemple.org est le nom de domaine du serveur ;
• mbox-archive-path : répertoire dans lequel sont stockées les archives au format mbox (si vous voulez en avoir) ;
• humanize-mime : mettre à false si vous voulez que les pièces jointes qui ne sont pas des fichiers texte ne soient pas
supprimées !
• closed-post : les personnes qui ne sont pas abonnées à la mailing-list sont-elles autorisées à y poster ? (si vous répondez
true, les posts des personnes extérieures à la mailing-list sont alors modérés)
• moderated : tous les posts doivent-ils être approuvés par les modérateurs ?
• moderator : adresse e-mail pour les modérateurs (ne pas modifier) ;
• send-as : adresse du chemin de retour SMTP (ne pas modifier) ;
• subscribe-mode : il y a 3 choix :
• open pour que n’importe qui puisse s’abonner,
• confirm pour que n’importe qui puisse s’abonner après confirmation du futur abonné,
• closed pour que toutes les demandes d’abonnement soient soumises à l’approbation des administrateurs ;
• unsubscribe-mode : idem que le paramètre précédent pour les désabonnements ;
209Chapitre 54. Monter un serveur de mailing-listes
Le fichier des abonnés
Le fichier des abonnés est le fichier /var/lib/ecartis/lists/bruit/users.
Sa syntaxe est simple : une ligne par abonné ; chaque ligne est composée des éléments suivants dans l’ordre et séparés par
des espaces :
• une adresse e-mail ;
• le caractère deux-points ;
• une liste de flags encadrés et séparés par le caractère |.
Les flags possibles sont les suivants :
• ECHOPOST pour les abonnés à la mailing-list,
• ADMIN pour les administrateurs de la mailing-list,
• SUPERADMIN : [TODO : quel est la différence avec ADMIN ?],
• MODERATOR pour les modérateurs de la mailing-list,
• CCERRORS pour recevoir les mails d’erreur de la mailing-list (par exemple quand l’adresse d’un abonné ne marche pas),
• REPORTS pour recevoir les rapports réguliers sur le fonctionnement de la mailing-list.
Pour l’administrateur, la ligne suivante est générée à la création de la mailing-list :
alexis@via.ecp.fr : |ADMIN|SUPERADMIN|MODERATOR|CCERRORS|REPORTS|ECHOPOST|
Si l’utilisateur toto@yahoo.fr est un simple abonné, on trouvera dans le fichier une ligne :
toto@yahoo.fr : |ECHOPOST|
Si l’utilisateur titi@caramail.com est abonné et modérateur, on trouvera une ligne :
titi@caramail.com : |ECHOPOST|MODERATOR|
Administrer la mailing-list
Toute l’administration de la mailing-list se fait en envoyant des commandes dans le sujet de mails envoyés à l’adresse
ecartis@serveur.exemple.org. Le contenu du mail peut-être quelconque ; si la commande contenue dans le sujet est valide,
le reste du mail ne sera pas lu par Ecartis.
Par exemple, si vous envoyez un mail à l’adresse ecartis@serveur.exemple.org avec un sujet lists, vous aurez en retour un
mail contenant la liste des mailing-listes hébergées sur le serveur.
Quand un utilisateur veut s’abonner à la mailing-list bruit, il suffit qu’il envoie un mail à l’adresse
ecartis@serveur.exemple.org avec un sujet subscribe bruit :
• si la mailing-list est en subscribe-mode = open, l’utilisateur recevra confirmation de son abonnement par mail,
• si la mailing-list est en subscribe-mode = confirm, l’utilisateur recevra un mail lui donnant les instructions pour
confirmer son abonnement,
• si la mailing-list est en subscribe-mode = closed, un administrateur devra approuver l’abonnement.
Idem pour un désabonnement, mais en mettant dans le sujet unsubscribe bruit.
Pour avoir une liste complète des commandes, envoyez un mail à l’adresse ecartis@serveur.exemple.org avec un sujet
commands.
210Chapitre 54. Monter un serveur de mailing-listes
Pour la modération des mail, les modérateurs reçoivent des mails indiquant les instructions pour approuver ou rejeter les
posts.
Pour avoir de l’aide sur Ecartis, envoyez un mail à l’adresse ecartis@serveur.exemple.org avec un sujet help.
Poster dans la mailing-list
Pour poster dans la mailing-list, il suffit d’envoyer un mail à l’adresse bruit@serveur.exemple.org. Les abonnés reçoivent
alors le post après quelques secondes, sauf si le mail doit passer en modération, i.e. dans les cas suivants :
• si la mailing-list est modérée ;
• si la mailing-list n’est pas modérée, mais en closed-post = true et que la personne qui poste n’est pas abonnée à la
mailing-list.
Archivage Web des mailing-lists
Configuration de base
Vous avez envie d’archiver une mailing-list sur le Web ? MHonArc (http://www.mhonarc.org/) est l’outil qu’il vous faut :
# apt-get install mhonarc
Le mécanisme d’archivage des mailing-list que je vous propose de mettre en place va faire intervenir procmail, un
programme de tri des mails. Si vous n’êtes pas encore familier avec procmail, je vous invite à lire et mettre en oeuvre le
chapitre Le mail en console au préalable.
L’avantage d’utiliser procmail est qu’il va nous permettre une gestion simple des permissions. Tout d’abord, il faut décider
d’un utilisateur à qui appartiendra le répertoire utilisé pour l’archivage Web : dans cet exemple, il s’agit de l’utilisateur toto
et l’archivage se fait dans son répertoire ~/public_html/archive-bruit/. Cet utilisateur devra être abonné à la
mailing-list et recevra donc les mails. A chaque réception d’un mail de la mailing-list, son procmail lance l’exécution de
MHonArc qui convertit le mail en HTML et met à jour les pages Web d’index.
Note : Rappel : le procmail d’un utilisateur s’exécute avec les droits de l’utilisateur.
Nous prenons donc comme exemple l’utilisateur toto qui archive la mailing-list bruit dans le sous-répertoire
archive-bruit de son public_html sur le système dont le nom DNS est serveur.exemple.org (ce serveur pouvant
recevoir du mail).
Commencez par abonner toto@serveur.exemple.org à la mailing-list bruit.
Ensuite, écrivez un fichier .procmailrc dans le home de l’utilisateur toto, qui pourrait ressembler à ça :
# ~/.procmailrc
# Fichier de configuration de Procmail
# Je ne veux pas trop de messages dans les logs
VERBOSE=off
# Fichier de log de procmail
LOGFILE=$HOME/.procmail.log
# Répertoire de stockage des archives (doit être créé au préalable)
REPERTOIRE=$HOME/public_html/archive-bruit
211Chapitre 54. Monter un serveur de mailing-listes
# J’envoie les mails de la mailing-list "bruit" sur le programme "mhonarc"
# pour archivage
:0
* ^X-list: bruit
| mhonarc -add -quiet -umask 022 -outdir $REPERTOIRE
# Je trashe tous les autres mails
:0
/dev/null
Quelques précisions sur les options de la commande mhonarc utilisée dans le .procmailrc :
• -add : archive les messages au fur et à mesure de leur arrivée ;
• -quiet : n’écrit dans les logs que les messages d’erreur ;
• -umask 022 : met les permissions 644 sur les fichiers HTML crées ;
• -outdir $REPERTOIRE : écrit les fichiers HTML dans le répertoire spécifié dans la variable REPERTOIRE (le répertoire
doit être crée au préalable).
Dès réception du premier mail, les archives seront accessibles à l’adresse
http://serveur.exemple.org/~toto/archiv … eads.html. Si cela ne marche pas, consultez les logs de procmail dans
~toto/.procmail.log et mettez éventuellement le paramètre VERBOSE à on dans .procmailrc pour avoir plus de
détails dans les logs.
Si vous voulez restreindre l’accès aux archives Web, la configuration se fait au niveau d’Apache avec un fichier
.htaccess, et non au niveau de procmail ou de mhonarc !
Options avancées
Les options suivantes peuvent également être utilisées dans la commande mhonarc :
• -spammode : brouille le domaine des adresses mail pour éviter le spam ;
• -tlevel 12 : autorise jusqu’à 12 niveaux d’indentation pour l’index threadé ;
• -title ’Archives de la mailing-list bruit’ : met le titre spécifié sur la page d’index classique ;
• -ttitle ’Archives de la mailing-list bruit’ : met le titre spécifié sur la page d’index threadée ;
• -nomailto : ne met pas de lien hypertexte sur les adresses e-mail ;
• -nodoc : supprime la référence à MHonArc à la fin des pages d’index.
Pour afficher la liste complète des options, tapez la commande mhonarc -help.
Archivage par mois
Il suffit de modifier le fichier procmail en se basant sur l’exemple ci-dessous :
# ~/.procmailrc
# Fichier de configuration de Procmail
# Je ne veux pas trop de messages dans les logs
VERBOSE=off
# Fichier de log de procmail
LOGFILE=$HOME/.procmail.log
212Chapitre 54. Monter un serveur de mailing-listes
# Répertoire de stockage des archives (doit être crée au préalable)
REPERTOIRE=$HOME/public_html/archive-bruit
# Stocke la date du mois
DATE=‘/bin/date +%Y-%m‘
# J’envoie les mails de la mailing-list "bruit" sur le programme "mhonarc"
# pour un archivage par mois
:0
* ^X-list: bruit
| mkdir -m 755 -p $REPERTOIRE/$DATE ; mhonarc -add -quiet -umask 022 -outdir $REPERTOIRE/$DATE
# Je trashe tous les autres mails
:0
/dev/null
Cordialement
L'équipe Parisdepannage.fr
Hors ligne
#3 21-08-2008 20:27:52
- Admin
- Administrateur
- Date d'inscription: 30-07-2008
- Messages: 683
Re: Formation à Linux (5)
213Chapitre 55. Le travail en groupe avec CVS
Qu’est-ce que CVS ?
CVS (http://www.cvshome.org/) (Concurrent Versions System) est un logiciel libre basé sur une architecture client-serveur
qui permet de travailler à plusieurs et en même temps sur les mêmes fichiers. En effet, le serveur CVS dispose d’un
mécanisme intelligent de fusion des modifications apportées sur des fichiers texte. C’est un outil très utilisé pour le
développement de logiciels, mais il peut également être utilisé pour gérer des sites Web, écrire des rapports en LaTeX,
etc... d’une manière générale pour tout ce qui implique de travailler à plusieurs sur les mêmes fichiers textes.
Installer et utiliser un client CVS
Installer le package
Le client et le serveur CVS sont contenus dans le package cvs :
# apt-get install cvs
Répondez de la manière suivante aux questions qu’il vous pose :
• Où sont vos entrepôts ? Il propose par défaut /var/lib/cvs : effaçez sa proposition et validez avec une ligne vide.
• Faut-il activer le pserver ? Répondez Non.
Utiliser CVS
[TODO : expliquer moi-même ou lier vers une doc française]
Monter un serveur CVS
Installation et configuration de base
Installation de base
A cause d’un bug dans le package, nous ne pouvons pas nous contenter de reconfigurer le package, il faut le réinstaller
complètement :
# apt-get remove --purge cvs
# apt-get install cvs
Répondez de la manière suivante aux questions qu’il vous pose :
• Où sont vos entrepôts ? Il propose par défaut /var/lib/cvs ; répondez OK.
• Voulez-vous corriger les chemins d’entrepôts invalides ? Répondez créer.
• Faut-il activer le pserver ? Si vous comptez donner accès au CVS à des utilisateurs qui n’ont pas de compte sur le
système, répondez Yes ; sinon, répondez No.
Pour simplifier un peu la vie des utilisateurs et de l’administrateur par la suite, créez le lien symbolique suivant :
214Chapitre 55. Le travail en groupe avec CVS
# ln -s /var/lib/cvs /cvs
Ouvrir un premier projet
Je vais vous guider pas-à-pas pour la création d’un CVS pour un projet d’exemple appelé projet1.
Commençez par créer un utilisateur cvs-projet1 et un groupe associé cvs-projet1 qui permettront une bonne gestion des
droits d’accès au CVS :
# adduser --system --group --home /var/lib/cvs cvs-projet1
Ensuite, créez le répertoire CVS du projet et donnez-lui les bonnes permissions :
# cvs -d /cvs/projet1 init
# chown -R cvs-projet1.cvs-projet1 /cvs/projet1
Donner l’accès aux utilisateurs du système via SSH
Note : Cette section requière qu’un serveur SSH soit installé sur le système. Pour plus d’informations sur ce sujet, cf
L’accès à distance par SSH.
Pour donner un accès au CVS à l’utilisateur toto qui a un compte sur le système, il suffit alors de le rajouter dans le groupe
cvs-projet1 :
# adduser toto cvs-projet1
L’utilisateur toto peut alors se connecter au CVS par SSH :
% export CVSROOT=":ext:toto@server.exemple.org:/cvs/projet1"
% cvs checkout .
où serveur.exemple.org est le nom DNS du serveur. A l’exécution de la commande cvs, il vous demandera votre mot de
passe système (ou votre pass-phrase si vous avez mis en place des clés SSH protégées par mot de passe).
Note : Sur un système Unix ou Linux autre que Debian, il peut être nécessaire de préciser au préalable qu’il faut
passer par SSH :
% export CVS_RSH=ssh
Donner l’accès à des utilisateurs extérieurs
Pour donner accès au CVS à des utilisateurs qui n’ont pas de compte sur le système, il faut passer par le pserver. Créez un
fichier /etc/cvs-pserver.conf contenant :
CVS_PSERV_REPOS="/cvs/projet1"
Ensuite, créez le fichier /cvs/projet1/CVSROOT/passwd contenant les utilisateurs et leurs mots de passe. Chaque ligne
de ce fichier définit un utilisateur ; chaque ligne contient dans l’ordre les trois paramètres suivants séparées par des
"deux-points" :
• le nom de l’utilisateur,
215Chapitre 55. Le travail en groupe avec CVS
• le mot de passe crypté de l’utilisateur (obtenu avec la commande mkpasswd --hash=md5),
• le nom de l’utilisateur système correspondant (dans notre cas, il s’agit de cvs-projet1).
Par exemple, pour deux utilisateurs login1 et login2, le fichier ressemblera à ça :
login1:$1$s8JghKDB$E9z0bKfOgZQM5MIbRWDVn0:cvs-projet1
login2:$1$LG7Kx.zw$zoP/eCpgwFhZm9HVRn.1g1:cvs-projet1
Enfin, restreignez les droits sur ce fichier :
# chmod 600 /cvs/projet1/CVSROOT/passwd
L’utilisateur login1 peut maintenant se connecter au serveur en tapant :
% export CVSROOT=":pserver:login1@serveur.exemple.org:/cvs/projet1"
% cvs login
Logging in to :pserver:login1@serveur.exemple.org:2401/cvs/projet1
CVS password:
% cvs checkout .
où serveur.exemple.org est le nom DNS du serveur.
Avertissement
Attention, le mot de passe est transmis en clair sur le réseau !
Configuration avançée
La notification de commit par mail
Nous allons configurer le serveur CVS pour qu’un mail soit envoyé à chaque commit ; ce mail devant contenir le nom de
l’utilisateur qui a fait le commit, la liste des fichiers qu’il a modifiés et le message de commit.
Boris Dorès a écrit des scripts qui gèrent tout cela très bien. Copiez-les dans le répertoire /usr/local/bin/ :
# cp ~/config/cvs-loginfo.sh ~/config/cvs-commitinfo.sh /usr/local/bin/
ou :
% wget http://www.via.ecp.fr/~alexis/formation … loginfo.sh
% wget http://www.via.ecp.fr/~alexis/formation … mitinfo.sh
# mv cvs-loginfo.sh cvs-commitinfo.sh /usr/local/bin/
Mettez les droits d’exécution sur ces scripts :
# chmod 755 /usr/local/bin/cvs-loginfo.sh /usr/local/bin/cvs-commitinfo.sh
Ensuite, ajoutez la ligne suivante au fichier /cvs/projet1/CVSROOT/commitinfo :
ALL /usr/local/bin/cvs-commitinfo.sh
Et ajoutez la ligne suivante à la fin du fichier /cvs/projet1/CVSROOT/loginfo :
ALL /usr/local/bin/cvs-loginfo.sh adresse_de_provenance adresse_destination "Sujet_des_mails" $USER
en remplaçant adresse_de_provenance et adresse_destination par les adresses mail de provenance et de destination que
vous voulez pour les mails de notification, et Sujet_du_mail par ce que vous voulez mettre en sujet des mails. Par exemple,
216Chapitre 55. Le travail en groupe avec CVS
vous pouvez mettre en adresse de destination un alias ou une mailing-list qui diffusera le mail à tous les participants au
projet.
Désormais, les commits ne passeront plus inaperçus !
Ajouter un accès à un utilisateur extérieur en lecture seule
Pour donner accès en lecture seule dans le CVS à un utilisateur extérieur, il faut commençer par créer un compte
d’utilisateur extérieur normal, et ensuite spécifier par l’intermédiaire du fichier /cvs/projet1/CVSROOT/readers que
ce compte n’a que des droits en lecture. Ajoutez donc un compte, par exemple appelé debutant, en ajoutant la ligne
suivante au fichier /cvs/projet1/CVSROOT/passwd (avec le mot de passe généré par mkpasswd --hash=md5) :
debutant:$1$LG7Kx.zw$zoP/eCpgwFhZm9HVRn.1g1:cvs-projet1
Note : Pour créer un compte auquel on puisse accéder avec un mot de passe vide ou quelconque, il suffit de ne rien
mettre à la place du mot de passe crypté :
debutant::cvs-projet1
Puis créez un fichier /cvs/projet1/CVSROOT/readers et inscrivez-y la liste des comptes qui n’ont un accès qu’en
lecture seul, à raison d’un nom de compte par ligne. Dans notre exemple, le fichier contiendra simplement :
debutant
Ajouter un deuxième projet
Très brièvement, voilà comment rajouter un deuxième projet dans le CVS, qui s’appelle dans cet exemple projet2.
Créez un utilisateur et un groupe cvs-projet2 :
# adduser --system --group --home /var/lib/cvs cvs-projet2
Créez un deuxième répertoire CVS avec les bons droits :
# cvs -d /cvs/projet2 init
# chown -R cvs-projet2.cvs-projet2 /cvs/projet2
Pour donner l’accès à certains utilisateurs du système, ajoutez-les dans le groupe cvs-projet2 :
# adduser toto cvs-projet2
Pour donner l’accès à des utilisateurs extérieurs :
• modifiez /etc/cvs-pserver.conf :
CVS_PSERV_REPOS="/cvs/projet1:/cvs/projet2"
• créez le fichier /cvs/projet2/CVSROOT/passwd et le fichier /cvs/projet2/CVSROOT/readers éventuel.
Restreignez les droits du fichier passwd :
# chmod 600 /cvs/projet2/CVSROOT/passwd
217Chapitre 55. Le travail en groupe avec CVS
Si vous voulez des mails de notification des commits, ajoutez aux fichiers /cvs/projet2/CVSROOT/commitinfo et
/cvs/projet2/CVSROOT/loginfo les lignes requises comme pour le premier projet.
218V. Debian GNU/Linux en console
Introduction
Une des originalités de Linux est d’avoir deux modes : le mode console et le mode graphique. Si le mode graphique est le
plus familier pour les utilisateurs Windows, je vais essayer dans ce chapitre de vous faire découvrir le mode console et ses
avantages.
Le principal avantage du mode console est de pouvoir accéder facilement à ses applications en mode console depuis
n’importe quel poste connecté à Internet quel que soit le système d’exploitation du poste. Cela est permis par l’utilisation
de L’accès à distance par SSH et éventuellement de screen, qui est expliqué à la fin de cette partie. En effet, il existe des
clients SSH pour tous les systèmes d’exploitation (cf Outils Windows pour Linuxiens pour avoir un exemple de client SSH
Windows), et vous pouvez vous connecter par SSH depuis n’importe quel ordinateur connecté à Internet vers un serveur
sur lequel vous avez un compte et ensuite lançer vos applications en console préférées.
Figure 73. Exemple d’application en consoleChapitre 56. Le mail en console
Je vous propose la solution suivante si vous voulez lire votre mail en console :
• utiliser fetchmail (http://www.catb.org/~esr/fetchmail/) pour rapatrier votre mail sur votre ordinateur (dans le cas où
l’ordinateur sur lequel vous comptez lire votre mail n’est pas le même que celui qui héberge votre boite mail) ;
• utiliser procmail (http://www.procmail.org/) pour le trier et spamassassin (http://spamassassin.org/) pour filtrer le spam ;
• utiliser mutt (http://www.mutt.org/) comme lecteur de mail.
Rapatrier son mail
Commencez par installer fetchmail :
# apt-get install fetchmail
Dès l’installation du package, il vous demande : Faut-il installer un service fetchmail pour tout le système ?. Répondez
Non.
Ecrivez votre fichier de configuration .fetchmailrc dans votre home en vous basant sur mon fichier de configuration
type :
% cp /root/config/fetchmailrc ~/.fetchmailrc
ou :
% wget http://www.via.ecp.fr/~alexis/formation … etchmailrc
% mv fetchmailrc ~/.fetchmailrc
et modifiez le nom du serveur de mail, le login et le mot de passe.
Le fichier de configuration doit avoir les permissions 600, sinon fetchmail refuse de fonctionner :
% chmod 600 ~/.fetchmailrc
Pour rapatrier les mails depuis le serveur sur votre ordinateur, il suffira de lancer la commande :
% fetchmail
mais avant ça, nous allons mettre en place le filtrage avec procmail et spamassassin.
Trier son mail avec procmail et spamassassin
Le principe
Procmail est un programme simple capable de trier les mails en regardant leurs headers. Nous allons lui demander de trier
le mail dans différents répertoires, appelés mailbox.
Spamassassin est un programme qui scanne les headers, le message et les éventuelles pièces jointes des mails et les
analyse. Pendant cette analyse, il regarde un certain nombre de critères généralement vérifiés par les spams, à chaque
critère étant associé un nombre de points (plus le critère est significatif, plus le nombre de points est grand). Enfin, il
additionne les points pour attribuer au mail une note globale. Par défaut, si la note globale atteint 5.0 (on peut la changer en
modifiant le fichier de configuration de spamassassin ~/.spamassassin/user_prefs qui est crée automatiquement à la
première utilisation), le mail est considéré comme du spam. Spamassassin lui rajoute alors un header X-Spam-Status: Yes
220Chapitre 56. Le mail en console
et un rapport de l’analyse dans le corps du mail. Le header rajouté par spamassassin permet par exemple à procmail
d’aiguiller le spam dans une mailbox poubelle.
Commencez par installer ces deux programmes (procmail est normalement déjà installé...) :
# apt-get install procmail spamassassin
Le principe du tri de mail avec procmail et spamassassin est la suivante :
1. le mail reçu par Postfix via fetchmail arrive dans le fichier /var/mail/nom_de_l’utilisateur,
2. Postfix regarde si l’utilisateur a un fichier .procmailrc dans son home,
3. si oui, il lit ce fichier ~/.procmailrc et suit les instructions qu’il contient,
4. dans notre cas, ces instructions lui disent de déplacer le mail dans une des mailboxes contenues dans le répertoire
~/mail. Spamassassin est alors éventuellement appelé par procmail pour envoyer dans la mailbox poubelle appelée
"spam" les mails qu’il considère comme étant du spam.
Avertissement
Attention, une mauvaise utilisation de procmail peut aboutir à la perte de mails. Il faut donc toujours
faire des tests après la mise en place et après chaque modification de la configuration de procmail .
La pratique
Utilisez le fichier de configuration d’exemple pour procmail procmailrc :
% cp /root/config/procmailrc ~/.procmailrc
ou :
% wget http://www.via.ecp.fr/~alexis/formation … procmailrc
% mv procmailrc ~/.procmailrc
Regardez les commentaires écrits dans ce fichier pour comprendre comment il est construit et personnalisez-le. Aidez-vous
éventuellement de man procmailrc et man procmailex.
Créez un répertoire mail dans votre home qui accueillera toutes vos mailboxes :
% mkdir ~/mail
Les mailboxes seront des sous-répertoires du répertoire mail et seront crées automatiquement par procmail au premier
mail aiguillé dans la mailbox.
Lire son mail avec mutt
Installer et configurer mutt
Le package mutt est normalement déjà installé.
Le fichier de configuration de mutt est ~/.muttrc. Utilisez mon fichier de configuration d’exemple comme base de travail
:
% cp /root/config/muttrc ~/.muttrc
221Chapitre 56. Le mail en console
ou :
% wget http://www.via.ecp.fr/~alexis/formation … fig/muttrc
% mv muttrc ~/.muttrc
Editez-le et personnalisez au minimum les deux premiers paramètres (le champ From et la liste des adresses e-mail
utilisées). Avec le fichier de configuration que je vous propose, mutt génère la liste des mailboxes à partir de la liste des
sous-répertoires du répertoire ~/mail/ (les sous-répertoires correspondant aux mailboxes sont créés à la réception du
premier mail pour cette mailbox). Pour avoir la liste complète des paramètres et de leur description, utilisez man muttrc
ou ce manuel d’utilisation en français (http://cedricduval.free.fr/l10n/).
Si vous le désirez, vous pouvez écrire un carnet d’adresse pour mutt sous forme d’un fichier texte ~/.aliases. Chaque
ligne du fichier correspond à une entrée dans le carnet d’adresse. A chaque entrée dans le carnet d’adresse, vous devez
associer une clé que vous pourrez alors utiliser dans mutt à la place du nom et de l’adresse e-mail complète. Les lignes de
fichier doivent avoir la syntaxe suivante :
alias clé Nom_et_Prénom <adresse_mail>
Par exemple, si vous voulez me mettre dans votre carnet d’adresse en me désignant par la clé alex, ajoutez la ligne :
alias alex Alexis de Lattre <alexis@via.ecp.fr>
Utiliser mutt
Commencez par lancer mutt :
% mutt -y
La liste des mailboxes apparaît à l’écran :
Figure 56-1. Mutt : liste des mailboxes
Sélectionnez une mailbox pour lire les messages qui s’y trouvent. Ensuite, pour passer d’une mailbox à une autre, utilisez
la touche c : si une mailbox contient un nouveau mail, son nom apparaît et vous n’avez plus qu’à taper Entrée ; si vous
voulez aller à une mailbox particulière, tapez son nom précédé du signe = (la complétion automatique marche).
222Chapitre 56. Le mail en console
Figure 56-2. Mutt : messages dans une mailbox
Pour écrire un mail, placez-vous dans n’importe quelle mailbox et tapez m. Rentrez l’adresse du destinataire ou sa clé si
vous l’avez mis dans votre fichier d’alias, puis le sujet du message. Mutt ouvre alors votre éditeur de texte préféré (vim si
vous n’avez pas changé ce paramètre dans le fichier de configuration). Le texte contient déjà des headers que vous pouvez
compléter et / ou modifier. Tapez le texte du message en dessous des headers :
Figure 56-3. Mutt : écriture d’un mail
Une fois que vous avez fini, enregistrez et quittez... Vous arriver alors dans l’écran d’envoi des mails :
223Chapitre 56. Le mail en console
Figure 56-4. Mutt : écran d’envoi des mails
Dans cet écran, vous pouvez appuier sur :
• t pour modifier la liste des personnes destinataires,
• c pour modifier la liste des personnes en Cc,
• b pour modifier la liste des personnes en Bcc,
• s pour modifier le Subject,
• e pour rééditer le message,
• a pour attacher des fichiers au mail,
• p pour accéder aux fonctions de cryptage et de signature de GnuPG (voir ci-dessous),
• q pour annuler l’envoi du mail,
• y pour envoyer le mail.
Dans une mailbox, que vous soyez dans la liste des messages ou entrain d’afficher un message, vous avez accès aux
touches suivantes :
• r pour répondre à l’expéditeur du mail sélectionné,
• g pour répondre à l’expéditeur et aux autres destinataires du mail sélectionné,
• Tab pour aller au mail non lu suivant,
• v pour faire la liste des fichiers attachés d’un mail puis s pour les détacher et les enregistrer sur le disque dur,
• h pour afficher le message avec tous ses headers (et de nouveau h pour enlever l’affichage des headers),
• f pour forwarder le mail sélectionné à quelqu’un,
• d pour marquer le mail comme devant être effaçé,
• u pour annuler le marquage d’effacement,
• F pour marquer le message comme important, i.e. afficher un point d’exclamation au niveau du message (idem pour
enlever le marquage),
224Chapitre 56. Le mail en console
• a pour ajouter ou éditer l’entrée de l’expéditeur du message dans le carnet d’adresse,
• $ pour réactualiser la mailbox (effacer les messages marqués comme devant être effaçés et afficher les messages qui
viennent d’arriver),
• G pour aller directement à la liste des mailboxes.
Quand vous êtes dans la liste des messages d’une mailbox (et non quand vous êtes entrain d’afficher un message), vous
avez en plus accès aux touches suivantes :
• o pour trier les messages de la mailbox : il propose alors le choix entre un tri par date, par expéditeur, par destinataire,
par sujet, par discussion (tri normal), etc...
• w pour mettre un flag sur un message : il propose alors une liste des flags (cela permet notamment de remettre un
message comme non-lu en remettant le flag N),
• l pour n’afficher que certains messages de la mailbox : tapez alors :
• ~f toto pour afficher les messages contenant toto dans le champ From,
• ~C titi pour afficher les messages contenant titi dans le champ To et/ou dans le champ Cc (taper ~t titi pour se limiter
au champ To et ~c titi pour se limiter au champ Cc),
• ~s urgent pour afficher les messages contenant urgent dans le sujet,
• ~b bruit pour afficher les messages contenant le mot bruit dans le texte du message,
• ~F pour afficher les messages marqués comme important,
• ~A pour afficher tous les messages.
• q pour quitter Mutt.
Note : Pour revenir à la liste des messages quand vous êtes entrain d’afficher un message, tapez e.
A tout moment, vous pouvez taper ? pour accéder à la liste des touches disponibles avec leur fonction.
C’est parti !
Maintenant que tout est en place, vous pouvez :
1. lancer le rapatriement de vos mails :
% fetchmail
2. vérifier qu’ils sont correctement triés en consultant le fichier ~/.procmail.log ;
3. les lire avec mutt :
% mutt -y
Quand vous envoyez un mail avec mutt, mutt le transmet à Postfix qui essaye alors de joindre le serveur mail du
destinataire. Si le serveur mail du destinataire n’est pas joignable ou si vous n’êtes pas connecté à Internet, le mail reste
alors stocké dans la queue de mails de Postfix.
Pour voir les mails stockés dans la queue de Postfix :
% mailq
225Chapitre 56. Le mail en console
Pour effacer un mail stocké dans la queue :
# postsuper -d ID_du_message
où ID_du_message est l’ID du message tel qu’il apparaît avec la commande mailq.
Postfix essaye de vider sa queue à intervalles réguliers. Pour le forcer à vider sa queue immédiatement :
% postqueue -f
Normalement, cette commande est exécutée automatiquement à chaque établissement d’une connexion PPP.
Pour vous rendre la vie plus facile, j’ai créé des raccourcis clavier vers ces commandes dans mutt (cf .muttrc) :
• F2 pour exécuter mailq,
• F3 pour exécuter postqueue -f,
• F4 pour exécuter fetchmail.
Cordialement
L'équipe Parisdepannage.fr
Hors ligne
2008 Parisdepannage |Plan du site|Forums |Blog|Lexique ![]()