Création du miroir

La création d'un miroir est facultatif, mais elle permettra d'éviter d'utiliser la bande passante inutilement sur le net. En effet l'ensemble des dépots sera localisé sur un serveur (qui peut etre le meme que FAI ou un autre), et sera utilisé par les clients (pc installé par le serveur FAI).

Pour ce faire, il existe deux méthodes.

  • debmirror qui duplique un dépot dans son entièreté.

  • fai-mirror qui crée un miroir contenant uniquement les paquets utilisés dans les fichiers de configuration de FAI.

Dans les deux cas, nous devons créer un dossier qui contiendra le miroir. Nous prendrons ici comme exemple le dépot ''ubuntu'' officiel et celui de ''medibuntu''.

Création des dossiers contenant les miroirs

Pour un miroir Ubuntu

# mkdir /mirror-ubuntu

Pour un miroir Medibuntu

# mkdir /mirror-medibuntu

Pour un miroir personnalisé construit avec ''fai-mirror''

# mkdir /mirror-fai

Debmirror

Installation

Tout d'abord, installation avec apt-get.

# apt-get install debmirror

Récupération des clefs

Debmirror vérifie la signature des paquets, il nous faut donc les importer dans ''$HOME/.gnupg/''.

Pour un miroir Ubuntu

# gpg --no-default-keyring --keyring $HOME/.gnupg/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg

Pour un mirroir Medibuntu

# wget -q http///fr.packages.medibuntu.org/medibuntu-key.gpg -O- | gpg --no-default-keyring --keyring $HOME/.gnupg/trustedkeys.gpg --import

Configuration

Pour modifier le comportement de ''debmirror'', il faut éditer le fichier ''/etc/debmirror.conf''.

Pour cela, il faut préalablement faire ceci :

# cp  /usr/share/doc/debmirror/debmirror.conf  /etc/

La configuration par défaut suffit amplement pour la création d'un simple miroir.

Création du miroir

Enfin nous pouvons faire construire notre miroir (les paramètres sont à modifier en fonction des besoins).

Pour un miroir Ubuntu

debmirror --progress --method=http --proxy=http///di-net/80/ --verbose --nosource --arch=i386 --dist=intrepid --section=main,restricted,universe,multiverse --host=ftp.belnet.be --root=mirror/ubuntu.com/ubuntu/ /mirror-ubuntu/

Pour un miroir Medibuntu

debmirror --progress --method=http --proxy=http///di-net/80/ --verbose --nosource --arch=i386 --dist=intrepid --section=free,non-free --host=fr.packages.medibuntu.org -root=/ /mirror-medibuntu/

fai-mirror

Pré-requis

fai-mirror est un script contenu dans FAI. Il est donc nécéssaire de l'avoir préalablement.

Configuration

Ce script crée un miroir qui ne contient que les packages définit dans les fichiers de configuration de FAI (''/srv/fai/config/package_config/'').

Il faudra donc les éditer avant de faire appel à ''fai-mirror''.

Création du miroir

Une fois FAI configuré, nous pouvons :

  • soit créer un mirroir contenant les packages d'une ou plusieurs ''classes''.

    fai-mirror -cCLASSE1,CLASSE2 /mirror-fai

  • soit créer un miroir contenant les packages de toutes les ''classes'' présentes.

    fai-mirror /mirror-fai

Méthodes d'accès du miroir

Pour l'accès au miroir, plusieur méthodes sont possibles :

NFS

Cette méthode consiste à monter localement le miroir sur chaque client. L'avantage premier est que l'extraction des fichiers se fait immédiatement. Par contre, l'inconvénient est que pour monter un NFS, une connection est établie de façon persistante. Dans le cas d'un nombre élevé de clients simultanément, certains ralentissements sont ressentis. Ceci peut s'expliquer par le fait qu'un filesystem (tel que NFS) possède beaucoup plus de propriétés qu'un simple accès http/ftp (à confirmer).

Source :

  • https///lists.dulug.duke.edu/pipermail/yum/2005-October/007701.html

  • https///lists.uni-koeln.de/pipermail/linux-fai/2009-January/006505.html

Installation

Il suffit d'utiliser apt-get.

# apt-get install nfs-kernel-server

Configuration

Editez le fichier ''/etc/exports''.

# `<dossier partagé>` `<hôte>`(`<options>`)
# 10.0.0.* sont les adresses des clients qui auront accès à ce NFS
/mirror 10.0.0.0/255.255.255.0(ro,sync,subtree_check)

Démarrage

# /etc/init.d/nfs-kernel-server start

HTTP

L'accès ''http'' est celui le plus communément utilisé (au même titre que ''ftp''). Il l'offre l'avantage d'une configuration très facile et le fait que la connection n'est établie qu'en cas de besoin d'un paquet.

Installation

Avec apt-get.

# apt-get install apache2

Configuration

Il suffit de créer un lien symbolique dans le dossier ''/var/www/'' pointant directement le dossier contenant le miroir.

# ln -s /mirror /var/www/mirror

Démarrage

# /etc/init.d/apache2 start

FTP

On trouve de nombreux serveurs FTP pour Linux/Unix/BSD comme :

* ProFTPd,
* Pure-FTPd,
* VsFTPd.

Ici : pure-Ftpd 1.0.22.

Ces trois serveurs mettent l'accent sur la sécurité. Dans notre cas, étant donné qu'on agit sur un réseau local, la sécurité n'est pas primordiale.

Pure-ftpd est un logiciel gratuit (BSD), sécurisé, à conforme au standard d'un serveur FTP. Il se concentre sur l'efficacité et, même en l'absence d'interface graphique, sur une grande facilité d'utilisation. Il fournit des réponses simples à des besoins communs et des fonctions uniques utiles aussi bien pour les utilisateurs que pour les fournisseurs d'hébergement.

Parmi les fonctions disponibles, on y trouve de façon non-exhaustive :

  • limitation du nombre d’utilisateurs

  • limitation de la bande passante

  • chroot des utilisateurs

  • support du protocole FXP (File eXchange Protocol)

  • support de plusieurs types d’authentification (Unix, PAM, LDAP, MySQL, PostgreSQL, utilisateurs virtuels)

  • support des quotas

  • limitation de la connexion en fonction du créneau horaire

  • limitation du nombre de connexion par IP

  • limitation du nombre de connexion par utilisateurs

  • log via syslog

  • autocréation du dossier personnel

  • ratio upload/download

  • support de TLS

  • fonction 'ls' intégrée

La configuration désirée dans notre cas ne pose aucun problème pour Pure-Ftpd.

Installation

Installation de pure-ftpd :

sudo apt-get install pure-ftpd pure-ftpd-common

Configuration

La configuration de « pure-ftpd » est assez spéciale, car elle utilise des paramètres passés en ligne de commande.\ Il suffit de taper la commande suivie des options désirées.\ pure-ftpd -c 100 -e -i -R -c : Nombre de connections simultanées maximale. Valeur par défaut = 50. \ -e : Connection réservée au clients anonymes. \ -i : Interdiction d'uploader pour les clients anonymes. \ -R : Interdiction aux clients d'utiliser la commande chmod, c'est-à-dire de modifier les accès aux fichiers.\

Il existe un grand nombre d'options, inutiles dans notre cas, disponible dans la documentation de pure-ftpd. lien externe\

Making a symbolic link won't work, because when you are chrooted, it means that everything outside a base directory (your user's home directory) won't be reachable, even though a symbolic link.\ Example :

mount --bind /mirror /home/ftp/mirror

Démarrage

Création du group ftpgroup

sudo groupadd ftpgroup

Création de l'utilisateur ftpuser

sudo useradd -g ftpgroup ftpuser

Démarrage du serveur

sudo /etc/init.d/pure-ftpd restart

------------------------ SETTING UP AN ANONYMOUS FTP ------------------------

If a 'ftp' user exists and its home directory is reachable, Pure-FTPd will accept anonymous login, as 'ftp' or 'anonymous'. Files have to be located in the home FTP directory. There's no need for 'bin', 'lib', 'etc' and 'dev' directories, nor any external program. Don't chown the public files to 'ftp', just writable directories ('incoming') .

Informations complémentaires

Il est possible d'administrer pure-ftpd par une interface graphique prévue à cet effet : pureadmin.\ Ce que nous n'avons pas fait. 'OSEF'

Since 0.97.7, you can watch at any time current active sessions : pure-ftpwho Avec possibilité d'options.

Configuration utilisée sur DI-FAI

Actuellement, le choix a été fait sur un miroir servi sur un NFS. Ce miroir est unique et contient le dépot ubuntu, medibuntu et di-net.