[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[rfr] wml://mirror/push_{mirroring,server}.wml



-- 
  .~.    Nicolas Bertolissio
  /V\    nico.bertol@free.fr
 // \\
/(   )\
 ^`~'^  Debian GNU/Linux
#use wml::debian::template title="Explication des miroirs par repoussage"

#use wml::debian::translation-check translation="1.13" maintainer="Nicolas Bertolissio"

# Premier traducteur : Christian Couder

<p>
Les miroirs par repoussage sont une forme de miroirs qui minimisent le temps
que mettent les changements de l'archive principale pour atteindre les miroirs.
Le miroir serveur utilise un mécanisme déclencheur pour indiquer immédiatement
au miroir client qu'il doit se mettre à jour.
</p>

<p>
Les miroirs par repoussage demandent un peu plus d'effort à mettre en place car
les responsables des miroirs client et serveur doivent s'échanger des
informations. L'avantage est que le miroir serveur lance le processus de mise à
jour du client immédiatement après que son archive a été mise à jour. Cela
permet une propagation très rapide des changements de l'archive.
</p>


<h2>Explication de ce fonctionnement</h2>

<p>
Tout d'abord quelques informations sur ssh. Ssh permet de se connecter à des
comptes sur différentes machines d'une manière sûre. Non seulement les mots de
passe ne sont jamais transmis en clair, mais une fois que vous êtes connecté à
une machine vous êtes certain que les connexions futures se feront sur la même
machine. Cela empêche beaucoup d'attaques du type un-homme-au-milieu.
</p>

<p>
Une possibilité que vous offre ssh est la faculté d'accepter la clé publique
d'identification d'un utilisateur d'une autre machine et de l'ajouter au
fichier des clés autorisées sur sa propre machine. Par défaut, l'utilisateur
sur l'autre machine (qui a la clé d'identification privée associée à la clé
d'identité publique qu'il a donnée) a alors le droit de se connecter sous votre
compte. Il est cependant possible de rajouter des options à une clé autorisée
pour restreindre le type d'accès d'une personne l'utilisant pour se connecter
sur votre machine.
</p>

<p>
Ainsi pour protéger le miroir client, des options sont ajoutées à une clé
fournie par le miroir serveur pour donner aux personnes qui accèdent à votre
compte un seul droit&nbsp;: celui de lancer sur votre machine le programme qui
met à jour votre miroir. Même si quelqu'un (un tiers malveillant) était capable
de casser les clés, il ne pourrait alors que lancer le programme de miroir sur
votre machine. Vous n'avez même pas à vous soucier de la possibilité d'avoir
plusieurs copies du programme lancées, car un fichier verrou est utilisé.
</p>

<p>
Sur le miroir client, rsync peut être configuré pour restreindre par nom
d'utilisateur et mot de passe la possibilité de faire un miroir d'une zone
donnée. Ceux-ci sont complètement séparés de <kbd>/etc/passwd</kbd> de façon à
ce qu'un serveur de repoussage n'ait pas à se soucier de donner à d'autres
l'accès à sa machine. De la façon dont c'est configuré, le nom d'utilisateur et
le mot de passe sont transmis en clair. Cela ne devrait cependant pas être un
problème, car le pire qu'il puisse se produire est qu'un tiers ait la
possibilité de faire un miroir des pages Debian depuis ce site.
</p>


<h2>Mettre en place un miroir par repoussage côté client</h2>

<p>
Le mieux est de mettre en place tout cela en utilisant le compte d'un
utilisateur ordinaire, non root. Le contenu de la clé ssh publique que le
miroir serveur vous donne devrait être placée dans
<kbd>~&lt;user&gt;/.ssh/authorized_keys</kbd>.
</p>

<p>
Pour devenir un client par repoussage de l'archive FTP, vous devez paramétrer
la recopie en utilisant notre script <a href="anonftpsync">anonftpsync</a>
standard, avec quelques modifications. Éditez la partie du script concernant
les configurations protégées par mot de passe en décommentant l'inclusion du
fichier <a href="ftpsync.conf">ftpsync.conf</a>. Éditez ftpsync.conf et suivez
les indications qui se trouvent à l'intérieur en utilisant les informations qui
vous sont données par le miroir serveur.
</p>

# Ces fichiers ont des noms différents de façon à ce que vous puissiez
# utiliser le même compte pour faire un miroir des deux archives.

<p>
Pour devenir un client par repoussage des pages du site, vous avez besoin des
fichiers <a href="websync">websync</a> et <a href="websync.conf">\
websync.conf</a>. Éditez websync.conf et suivez les indications qui se trouvent
à l'intérieur en utilisant les informations qui vous sont données par le miroir
serveur.
</p>


<h2>Les sites par repoussage de type client primaire</h2>

<p>
Les miroirs par repoussage de type client primaire, aussi appelés miroirs
1<sup>er</sup>&nbsp;tiers, <i>Tier-1</i>, sont les miroirs par repoussage de
type client qui sont autorisés à faire un miroir de nos archives principales.
</p>

<p>
Si votre site est <strong>très</strong> bien connecté (à la fois une très bonne
bande passante et bien connecté aux épines dorsales majeures du réseau) et que
vous acceptez de laisser d'autres sites faire un miroir à partir de votre site,
vous pouvez nous le faire savoir afin que nous envisagions d'en faire un miroir
de repoussage. Cependant, ne vous attendez pas à ce que ça se fasse rapidement
car nous avons déjà un bon nombre de miroirs 1<sup>er</sup>&nbsp; tiers.
</p>

<p>
Si vous devenez un repousseur primaire de l'archive FTP, vous avez besoin d'un
des fichiers suivants&nbsp;:
</p>

<ul>
  <li><a href="id_rsa.pub.ftp-master">clef publique SSH2 utilisée par
      ftp-master.debian.org</a></li>
  <li><a href="id_rsa.pub.syncproxy.eu">clef publique SSH2 utilisée par
      syncproxy.eu.debian.org</a></li>
  <li><a href="id_rsa.pub.syncproxy.wna">clef publique SSH2 utilisée par
      syncproxy.wna.debian.org</a></li>
</ul>

<p>
Si vous devenez un repousseur primaire des pages du site, vous avez besoin de
la <a href="id_dsa.pub.www-master">clef publique SSH2 utilisée par
www-master.debian.org</a>.
</p>


<h2>Mettre en place un miroir de repoussage côté serveur</h2>

<p>
Étant donné le grand nombre de miroirs et la taille de l'archive Debian, il
n'est pas possible que tous les miroirs utilisent l'archive principale comme
source de la Debian (c'est-à-dire comme leur miroir de repoussage de type
serveur). Il est beaucoup plus efficace de distribuer la charge sur un certain
nombre de miroirs de repoussage répartis à travers le monde.
</p>

<p>
Les miroirs de repoussage de type serveur doivent être des miroirs par
repoussage de type client de l'archive principale (ou éventuellement d'un autre
miroir de repoussage de type serveur), et doivent contenir un miroir de
l'ensemble de l'archive Debian.
</p>

<p>
Voyez les <a href="push_server">détails sur la mise en place d'un serveur de
repoussage</a>.
</p>
#use wml::debian::template title="Mettre en place un serveur de repoussage"

#use wml::debian::translation-check translation="1.16" maintainer="Nicolas Bertolissio"

# Traducteur précédant : Christian Couder
# Premier traducteur   : Christophe Lebars

<p>
Mettre en place un serveur de repoussage se résume à effectuer deux tâches
relativement simples&nbsp;: mettre en place un accès rsync (comme pour faire un
miroir par aspiration standard) et mettre en place un mécanisme déclencheur
utilisant ssh (pour déclencher la mise à jour du miroir par repoussage).
</p>

<p>
<small>Pour plus d'information sur ce qu'est un serveur de repoussage, merci de
lire <a href="push_mirroring">l'explication des miroirs par
repoussage</a>.</small>
</p>


<toc-display />


<toc-add-entry name="rsync">Mettre en place rsync</toc-add-entry>

<p>
Installez <code>rsync</code>&nbsp;2.1.1 ou une version supérieure. Si votre
site tourne sous Debian, installez simplement le dernier paquet <a
href="http://packages.debian.org/stable/net/rsync";>rsync</a>.
</p>

<p>
Créez un fichier <code>rsyncd.conf</code> et mettez quelque chose comme ceci
dans celui-ci&nbsp;:
</p>

<pre>
uid = nobody
gid = nogroup
max connections = 25
socket options = SO_KEEPALIVE

[debian]
  path = /srv/debian/mirror
  comment = The Debian Archive (~250 GB)
  auth users = compte_autorisé1,compte_autorisé2,compte_autoriséN
  read only = true
  secrets file = /etc/rsyncd/debian.secrets
</pre>

<p>
Pour chaque site dont vous faites un miroir par repoussage, ajoutez une entrée
au fichier <code>/etc/rsyncd/debian.secrets</code>&nbsp;:
</p>

<pre>
compte_autorisé1:un_mot_de_passe
compte_autorisé2:autre_mot_de_passe
compte_autoriséN:_mot_de_passe
</pre>

<p>
Vous avez alors donné accès à l'archive se trouvant sur votre machine aux
miroirs clients de votre machine.
</p>

<p>
Vous voudrez probablement lancer le démon rsync depuis inetd. Pour cela, vous
devez d'abord ajouter le service rsync dans le fichier
<code>/etc/services</code> (s'il n'y est pas déjà), comme ceci&nbsp;:
</p>
	
<pre>
rsync           873/tcp
</pre>

<p>
Pour lancer le démon avec inetd, ajoutez ce qui suit à votre fichier
<code>/etc/inetd.conf</code>&nbsp;:
</p>

<pre>
rsync      stream      tcp         nowait      root /usr/bin/rsync rsyncd --daemon
</pre>

<p>
N'oubliez pas d'envoyer à inetd un signal HUP pour lui dire de relire son
fichier de configuration après que vous l'avez modifié.
</p>


<toc-add-entry name="sshtrigger">Mettre en place un mécanisme déclencheur ssh</toc-add-entry>

<p>
Créez une nouvelle clé ssh pour le compte que vous utilisez pour faire un
miroir de Debian. Faites attention à ne pas écraser votre clé ssh originale et
pour cela utilisez l'option -f, par exemple&nbsp;:
</p>

<pre>
ssh-keygen -f ~/.ssh/identite.monsite
</pre>

<p>
Vérifiez que la nouvelle clé publique (~/.ssh/identite.monsite.pub) contient
ceci au début du fichier&nbsp;:
</p>

<pre>
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/sync &amp;"
</pre>

<p>
Vous devez aussi mettre en place le script qui contactera les miroirs clients.
Créez un fichier nommé <code>signal</code>, contenant ceci&nbsp;:
</p>

<protect>
<pre>
#!/bin/sh

# Ce script est appelé pour signaler à l'hôte distant qu'il est temps de
# mettre à jour le miroir à partir de l'archive.

echo Signalling $1
ssh -o"BatchMode yes" -o"user $2" "$1" -i $HOME/.ssh/identite.monsite sleep 1
</pre>
</protect>

<p>
Ce script va se connecter sur un hôte distant en utilisant la clé ssh spéciale
que vous avez créée ci-dessus, à condition que chaque opérateur de miroir
client ajoute cette clef à son propre fichier ~/.ssh/authorized_keys (en
remplaçant également <q>sync</q> par <q>ftpsync</q> ou autre selon le nom de sa
commande de lancement de la recopie). Ce script ne fait rien d'utile à distance
en lui-même, la commande unique sera lancée comme spécifié par le paramétrage
de la clef.
</p>

<p>
Pour déclencher effectivement les miroirs, vous devez lancer la commande
<code>./signal &lt;site&gt; &lt;username&gt;</code> après avoir réalisé votre
propre synchronisation. De cette façon, dès que votre site a terminé de mettre
à jour son miroir à partir de son serveur, vous allez déclencher la mise à jour
des sites clients de votre serveur.
</p>

<p>
Ce nouveau script, <code>runmirrors</code>, devrait contenir quelque chose
comme ceci&nbsp;:
</p>
<p>
Vous pouvez placer ces commandes soit à la fin de votre script
<code>ftpsync</code>, ou si vous préférez, dans un autre script et lancer ce
script à partir de <code>ftpsync</code>, par exemple de la façon
suivante&nbsp;:
</p>

<protect>
<pre>
#!/bin/sh

# Ce script est appelé par websync pour déclencher les miroirs clients.

./signal un.autre.site archvsync
./signal et.un.autre.site autrecompte
</pre>
</protect>


<p>
Si vous avez le moindre problème avec ceci, <a
href="mailto:mirrors@debian.org";>contactez-nous</a>.
</p>

Attachment: signature.asc
Description: Digital signature


Reply to: