26/02/16
Services réseaux (DNS, FTP, HTTP, NFS, Samba, …)
Le rôle d’un serveur HTTP est d’héberger un ou plusieurs sites web. Dans ce chapitre, vous allez installer et configurer le démon Apache, le serveur HTTP le plus utilisé sur Internet.
1.1. Installer les paquets apache2 et elinks.
# aptitude update
# aptitude install apache2 elinks
1.2. Par défaut, le démon est en écoute sur le port tcp/80. Vérifier avec les commandes “‘netstat’” ou “‘lsof’” que ce port est bien en écoute.
Pour information, le service peut-être stoppé, démarré ou relancé avec les commandes :
# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start
# /etc/init.d/apache2 restart
1.3. Pour un affichage correct des futures pages web (et notamment des caractères accentués), mettre UTF-8 comme jeu de caractères par défaut en modifiant le fichier “‘/etc/apache2/conf.d/charset’” comme ci-dessous :
# cat /etc/apache2/conf.d/charset
AddDefaultCharset UTF-8
1.4. Faire pointer un navigateur internet sur l’adresse IP du serveur HTTP ou sur son nom d’hôte pour vérifier que le site par défaut est bien accessible. (si vous souhaitez faire cette vérification en mode console, utilisez “‘elinks’”, ou si non utilisez votre navigateur).
1.5. Dans quel répertoire se trouve la page d’accueil qui est affichée à la question 2.4 ? Pour vous aider, trouvez dans le fichier de configuration du site par défaut (‘/etc/apache2/sites-available/default’), la ligne débutant par la directive “‘DocumentRoot’”.
Vérifiez en modifiant cette page d’accueil et en rechargeant l’affichage dans votre navigateur.
1.6. Dans sa configuration par défaut, Apache ne permet pas aux utilisateurs de publier des sites. Nous allons activer cette option. Avec la commande “‘a2enmod’”, activer le modules Apache “userdir” et redémarrer le service Apache. Désormais, un utilisateur du système peut publier un site en le mettant dans son répertoire ‘$HOME/public_html/’. Créer un fichier index.html pour valider.
1.7. Pour information, il existe aussi la commande “‘a2dismod’” qui désactive un module Apache. Les modules disponibles peuvent être affichés en listant le contenu du répertoire “‘/etc/apache2/mods-available/’”.
Le rôle d’un serveur FTP est de faciliter l’échange de fichiers entre deux ordinateurs. Dans ce chapitre, vous allez mettre en place un serveur FTP dit “anonyme” à l’aide du logiciel vsftpd (Very Secure FTPD). Un FTP anonyme désigne un service FTP qui ne requiert pas d’authentification. Le bénéficiaire, pour se connecter au service, utilise “anonymous” en guise de nom de connexion et son adresse email en guise de mot de passe.
2.1. Installer le paquet vsftpd.
2.2. Par défaut, le démon est en écoute sur le port tcp/21. Vérifier avec les commandes “‘netstat’” ou “‘lsof’” que ce port est bien en écoute.
Pour information, le service peut-être stoppé, démarré ou relancé avec les commandes :
# /etc/init.d/vsftpd stop
# /etc/init.d/vsftpd start
# /etc/init.d/vsftpd restart
2.3. Avec le client “ftp”, vérifier que la connexion anonyme est active par défaut.
# ftp <nom d'hôte / ip>
Connected to 192.168.x.x.
Name (192.168.x.x:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
2.4. Lorsque vous vous connectez, vous êtes “chrooté” (enfermé, prisonnier) dans un répertoire du système (vous ne pouvez par lister les arborescences systèmes). A votre avis, de quel répertoire s’agit-il ? Pour vous aider, trouvez le répertoire utilisateur du compte “ftp”.
2.5. Une fois que vous avez trouvé ce répertoire, mettez à disposition votre logiciel de sauvegarde par exemple. Essayez de le télécharger via ce mécanisme. Quelques commandes utiles :
ftp> help put get lcd
put send one file
get receive file
lcd change local working directory
2.6. Nous allons changer la bannière d’accueil du serveur. Pour cela, modifier la bonne directive dans le fichier de configuration “‘/etc/vsftpd.conf’”. Positionner une bannière du style :
"Bienvenue sur le serveur FTP de l'ISEN."
Redémarrer le service vsftpd pour que les modifications soient prises en compte, et tester.
2.7. Avec la commande “put”, essayez d’envoyer un fichier vers le serveur. Par exemple le fichier “/etc/services” :
ftp> lcd /etc
ftp> put services
Par défaut, un utilisateur n’a pas l’autorisation d’envoyer un fichier. Et heureusement sinon n’importe qui pourrait remplacer les fichiers que vous mettez à disposition.
2.8. Vous allez créer un répertoire “pub” (au même niveau que les fichiers que vous avez mis à disposition), et modifier les droits de ce répertoire pour qu’il appartienne l’utilisateur “ftp”.
Ensuite, modifier le fichier de configuration vsftpd.conf pour :
Essayez, avec un client FTP (FileZilla ou commande ‘ftp’), d’envoyer des fichiers dans le répertoire “pub” via le protocole FTP.
Samba donne la possibilité aux ordinateurs Windows d’accéder aux imprimantes et aux fichiers des ordinateurs Unix. Dans ce chapitre vous partagerez le “/backups” de votre machine pour qu’il soit visible depuis des postes Linux et Windows.
3.1. Installer les paquets ‘samba’, ‘cifs-utils’, ‘samba-client’.
3.2. Créer un utilisateur Samba, ce dernier sera utilisé pour accèder aux ressources Samba :
useradd <samba_user>
smbpasswd -a <samba_user>
3.2. Ajouter la section ci-dessous à la fin du fichier de configuration ‘/etc/samba/smb.conf’ :
[BACKUPS]
path = /backups
read only = no
writeable = yes
valid users = <samba_user>
comment = Backups directory
3.3. Redémarrer le service samba pour prendre en compte les modifications :
# /etc/init.d/samba restart
ou
# service samba restart
3.4. Le nouveau partage devrait être visible. Faire le test depuis un
poste Windows en exécutant : ’\
$ smbclient -L <ip_serveur_samba>
3.5. Depuis un poste client monter le répertoire partagé BACKUPS du serveur dans un point de montage ‘/samba/BACKUPS’:
mount -o username=<username> //<serveur>/BACKUPS /samba/BACKUPS
3.6. Avec les commandes “‘df’” ou “‘mount’”, vérifier que le système de fichier Samba est bien monté.
3.7. Mettre à jour le fichier “‘/etc/fstab’” pour automatiser le montage et redémarrer votre machine pour tester (utiliser l’option ‘credential’, cf. ‘mount.cifs(8)’).
Un serveur NFS permet de faire du partage de répertoire par le réseau. Le but de ce chapitre est de mettre en oeuvre un serveur NFS qui exporte les répertoires personnels des utilisateurs, dans le but de centraliser leurs données sur un seul et unique serveur.
4.1. Installer les paquets ‘nfs-kernel-server’ et ‘nfs-common’.
4.2. Par défaut, le démon est en écoute sur le port tcp/2049. Vérifier avec les commandes “‘netstat’” ou “‘lsof’” que ce port est bien en écoute.
Le service peut-être stoppé, démarré ou relancé avec les commandes :
# /etc/init.d/nfs-kernel-server stop
# /etc/init.d/nfs-kernel-server start
# /etc/init.d/nfs-kernel-server restart
4.3. Déclarer l’exportation du répertoire “‘/home’” en éditant le fichier “‘/etc/exports’” :
# cat /etc/exports
[...]
/home *(rw,sync,no_subtree_check,no_root_squash)
4.4. Faire prendre en compte ce nouvel export au serveur avec les commandes :
# exportfs -a
# exportfs -v
4.5. La commande “‘showmount’” permet d’afficher les répertoires exportés par des serveurs NFS distants. Essayer la depuis un poste client :
# showmount -e <serveur>
4.6. Depuis un poste client, monter les répertoires personnels exportés par le serveur dans “‘/home’” :
# mount -t nfs <serveur>:/home /home
4.7. Avec les commandes “‘df’” ou “‘mount’”, vérifier que le système de fichier NFS est bien monté.
4.8. Mettre à jour le fichier “‘/etc/fstab’” pour automatiser le montage et redémarrer votre machine pour tester.