Installer un mini serveur

Un article de Cenabumiki.

Je vais décrire ici l'installation d'un serveur personnel, avec une distribution Xubuntu. Ce serveur partagera des fichiers, enverra du courrier... Bref, on pourra le mettre au centre d'un futur réseau local familial, même si, pour l'instant, point de famille en vue.

Pour ce faire, Erwann m'a refilé une petite unité centrale qu'on pourrait aisément planquer dans une boîte à chaussure. J'ai acheté un gros disque dur Seagate IDE 500 GB, de façon à pouvoir bénéficier de beaucoup de place pour tout ça.

Cet article a pour but de décrire les diverses mésaventures du sus-dit serveur et de ma modeste personne.

Sommaire

Première étape

On met le disque dur dans le serveur, on branche l'alimentation, un clavier, une souris et un écran. Et on essaye de booter sur un cd d'installation Linux (en l'occurrence Xubuntu). Cette première étape foire lamentablement. Le lecteur de cd n'est pas reconnu par le système ! Situation paradoxale s'il en est ! C'est un problème d'autant plus que le matériel (clavier, souris et écran) ne m'appartient pas ! En effet, je ne possède qu'un ordinateur portable "monobloc...".

Deuxième étape

Devant l'échec d'une tentative d'installation standard, je décide une chose dont je ne sais même pas si elle a déjà été utilisée et documentée : squatter une autre architecture matérielle ! Je prends donc le disque dur, le place dans un autre PC et installe mon Linux. Je partitione le disque comme suit :

  • 3 GB pour /
  • 500 MB pour la swap
  • 100 GB pour /home

avec 3 giga, je suis à l'aise, je pourrais installer d'autres logiciels si nécessaire, et c'est pas grand chose vu la taille du disque.

Je donne un nom à la machine : lutin-malin, j'ai trouvé ça original, ça me fait rire.

Le risque, évidemment, c'est que le système ne reconnaisse plus son environnement une fois le disque réinséré dans l'ordinateur "d'origine". En l'occurrence, le serveur graphique ne s'initialise pas, puisqu'il est passé d'une carde graphique nvidia à un chipset intégré intel. Il a donc fallu que je regarde sur internet quel paquetage utiliser pour remédier à ce problème. Mais, au bout de deux heures (c'est raisonnable...), je me suis retrouvé avec un système pleinement fonctionnel alors que je m'étais arraché les cheveux auparavant...

Une fois ceci fait, on peut autoriser le protocole xdmcp, pour ce faire, dans une session graphique, on va dans (pour xubuntu/xfce4) menu > paramètres > écran de connexion, onglet remote, style : same as local (ou un autre à la rigueur... mais de toute façon, on a pas de "local"...) Ceci va permettre d'ouvrir une session graphique sur le serveur "à distance", très utile quand on ne connait pas la commande ad hoc pour une opération.

Troisième étape

Maintenant commence l'installation proprement dîte du serveur. En effet, l'étape précédente ne concernait que le système de base. Sur ce serveur (matériel) on va s'efforcer de faire tourner les services (logiciels) suivant :

  • partages windows : samba
  • serveur de courrier smtp : postfix
  • telechargement : amule-daemon
  • partages d'imprimantes
  • serveur de scanner : saned

Désormais, je parlerai de serveur pour désigner l'ordinateur et le matériel, et de service pour désigner chacun de ces programmes individuellement (les puristes ne m'en voudront pas si je fais une faute de vocabulaire j'espère.)

A partir de maintenant, tout se fait, également "à distance" : le serveur est branché sur un routeur freebox, et je contrôle le tout depuis mon ordinateur portable, en ligne de commande avec ssh, ou avec le serveur X distant, protocole Xdmcp. Il est donc vital d'avoir un système stable dès cet instant : en effet, je ne peux prendre le contrôle du serveur qu'une fois celui-ci correctement démarré. Tout problème au boot serait alors insoluble.

La première chose à faire est de fixer l'ip du serveur. Pour cela, en graphique : menu > système > réseau, onglet géneral, on met l'ip dans la case prévue à cette effet, en dessous, le masque de sous-réseau, classiquement 255.255.255.0, et encore en dessous, dans la case Gateway Adress, l'adresse ip interne au réseau local de la passerelle, ici, la freebox. Celle ci a une adresse en 192.168.0.254. Le reste de la configuration est automatique (normalement). Voila, on a maintenant un ordinateur avec une distribution Xubuntu "de base", légèrement customisé pour pouvoir en faire un serveur. Mais rien n'a été installé.

Samba

Samba est un logiciel de partage de fichiers en réseau. Il communique avec les ordinateurs "clients", que ce soit Windows ou GNU/Linux, et permet donc de constituer un disque dur sur le réseau mis à disposition de tous, avec bien entendu les autorisations et interdictions habituelles. J'utilise Samba, et non NFS, car, à terme, il y a de fortes chances pour qu'un ordinateur windows vienne s'insérer dans mon mini-réseau local (qui ne compte pour l'instant que deux machines : mon portable et le serveur).

pour installer samba, faire dans une console :

ssh user@lutin-malin

où user est le nom de l'utilisateur doté des droits d'administrations, et lutin-malin le nom du serveur (que vous avez renseigné dans /etc/hosts sur le client linux, si ce n'est fait, faites le, ou utiliser l'ip du serveur, ça marche aussi).

Après vous être loggé (ssh ...@..., puis mot de passe), faites :

sudo apt-get install samba

Il est à noter que Xubuntu fournit, en standard, samba déjà installé, mais de toute façon inutilisable tel quel : il faut configurer tout ça.
La configuration de base de Samba necessite que pour chaque personne qui se connecte au serveur, il faut un login et un mot de passe dans /etc/passwd et shadow et dans samba. Je n'ai absolument pas envie de me casser le cul avec tout ça, donc je règle dans /etc/samba/smb.conf les paramètres suivants :

  • workgroup = STEPHANE , parce que comme ça, je sors du "classique", on doit connaitre mes paramètres pour entrer... question de sécurité : c'est basique, et je ne sais pas si c'est utile, mais ça ne coute rien.
  • security = share
  • map to guest = Bad User, pour permettre de se connecter sans authentification.
  • hosts allow = /etc/allow_hosts, puisque je suis ultra permissif sur les personnes qui peuvent aller dans les partages, je dois être ultra restrictif sur les machines qui peuvent effectivement faire des requêtes. Cette façon de faire impose de maintenir un fichier d'ip et d'hôtes autorisés à se connecter. Mais ce n'est pas très important dans un petit réseau local comme le nôtre. D'autre part, ce fichier sera utilisé par d'autres services, entre autre Postfix.

Maintenant, les partages : on crée deux dossiers dans /home/user/ : un public/ et un prive/, comme d'hab, ni caractères spéciaux ni accents ni fantaisies, c'est important pour la stabilité du système.

[prive]
path = /home/stephane/prive
comment = dossier non accessible par internet
available = yes
browsable = yes
public = yes
writable = yes

Maintenant, on peut essayer de monter les partages dans le système de fichiers local du client. Sous Linux, je recommande l'utilisation du logiciel Smb4K. Il permet une utilisation souple des partages, sans toucher à la fstab. Faire également attention à mettre les points de montages dans /mnt (ce que j'ai fait), sinon, il les mets dans le /home du user. Une fois l'arborescence /mnt/NOM-DU-SERVEUR/nom-du-partage constituée, créer un lien symbolique vers /media (où sont généralement regroupés les "beaux" médias comme les cdrom ou les disques usb) :

ln -s /mnt/NOM-DU-SERVEUR/nom-du-partage /media/nom-du-partage

ce qui permet de ne pas avoir à parcourir à chaque fois toute l'arborescence, et puis, les partages sont regroupés avec les autres espaces de stockages. En montant ainsi les partages samba, on permet un accès "standard" aux films et ressources stockés sur les partages, alors qu'en utilisant un explorateur de fichiers (konqueror avec remote:/...) le client voudra toujours créer une copie du fichier en local.

A noter qu'avec tout ça, j'arrive tout à fait à visionner un film stocké sur le serveur (ce qui n'etonnera pas les pros...), et ce, sans problème de ralentissement ou d'autres choses...


Postfix

Postfix est un serveur de courrier. Il permet l'envoi du courrier, non pas la récupération (ou du moins, pas de la façon dont je l'ai installé, mais je ne crois pas qu'il le fasse). Il y a deux fichiers à éditer pour Postfix, main.cf et master.cf. Ils sont dans /etc/postfix.