11. Utilisation d'UUCP pour poster et recevoir des articles

UUCP (Unix to Unix CoPy) est un procédé aussi ancien qu'Unix. Celui-ci fût initialement conçu pour envoyer des fichiers d'une machine Unix à une autre : si l'on utilise aujourd'hui d'autres procédés pour ces copies, UUCP reste un moyen très efficace pour le transfert des articles Usenet et du courrier électronique.

Nous ne décrirons pas UUCP en détail ici, il existe une abondante documentation sur le sujet, dont un article de Denis Braussen : http://www.linux-france.org/article/connex/uucp/denis-uucp/index.html. Le principe général qui nous interesse ici consiste à utiliser des «batchs» d'articles (un peu comme ceux que l'on créait avec l'option -br de suck).

Là où cela devient intéressant est que ces batchs ne sont pas créés sur votre machine mais sur le serveur qui vous approvisionnera. Ajoutez à cela le fait que ces fichiers sont compressés et vous comprendrez mieux l'intérêt de la chose. De plus, vous pourrez envoyer vos articles au serveur distant selon le même principe (et en profiter pour faire de même pour envoyer et recevoir votre courrier si vous le désirez).

Enfin, UUCP faisant partie intégrante de nombreux Unix (je ne dis pas tous car je ne les connais pas tous), il n'y a plus besoin d'installer autre chose que INN pour disposer d'un serveur.

Cela dit, pour bénéficier de cette méthode, il faut trouver un serveur qui acceptera de créer ces fameux fichiers batchs pour vous, et qui vous autorisera à les configurer pour qu'ils contiennent les articles des groupes de votre choix. À l'heure actuelle, je ne connais que Teaser et frmug qui permettent, moyennant un abonnement dérisoire, d'utiliser UUCP.

11.1 Configuration rapide d'UUCP

UUCP utilise un certain nombre de fichiers de configuration permettant un réglage très fin de son fonctionnement. Dans le contexte qui nous intéresse ici, nous ne les utiliserons pas tous. De plus, les communications auront lieu «au-dessus» de PPP, ce qui signifie que nous ne soucierons pas des problèmes de modem. Voir l'article déjà cité pour une description plus complète des possibilités de connexion.

Voici le contenu des fichiers nécessaires à l'utilisation d'UUCP pour recevoir des articles et/ou du courrier : ils se trouvent tous dans le répertoire /etc/uucp. Celui-ci, ainsi que les fichiers qu'il contient appartiennent à l'utilisateur et au groupe uucp (qui doivent donc exister). Par mesure de sécurité (les fichiers en question contiennent des mots de passe en clair), ce répertoire doit avoir les droits drwxrwx---.

  • config. C'est le fichier de configuration principal. Voici un exemple :

    nodename        jacoboni
    sysfile         /etc/uucp/sys
    portfile        /etc/uucp/port
    dialfile        /etc/uucp/dial
    callfile        /etc/uucp/call
    passwdfile      /etc/uucp/passwd
    unknown pubdir /var/spool/uucppublic /var/spool/uucppublic/receive
    max-uuxqts 5
    debug all
    

    nodename est mon nom UUCP, tel qu'il m'a été communiqué par l'administrateur du site qui m'enverra les fichiers batchs. Les autres paramètres sont ceux par défaut pour mon système : il n'y a pas besoin d'y toucher.

  • port. Ce fichier permet de décrire les «ports» de communication utilisables par UUCP. Ici, nous n'utiliserons que PPP :

    port TCP
    type tcp
    seven-bit false
    reliable true
    half-duplex false
    service uucp
    

  • sys. Ce fichier décrit les connexions avec les systèmes susceptibles de nous approvisionner. Ici nous n'en décrivons qu'un, celui de notre fournisseur :

    system teaser
    address uucp.teaser.net
    myname jacoboni
    protocol t
    
    time any
    chat-timeout 120
    chat "" \r\c ogin: mon_login word: mon_mot_de_passe
    commands /bin/rmail /usr/local/news/bin/rnews
    port TCP
    

    On spécifie dans ce fichier le nom de la machine serveur. Le script de «chat» envoie notre nom d'utilisateur et notre mot de passe pour établir la connexion (ce mot de passe est en clair, attention aux permissions de ce fichier !). On indique également les commandes qui s'appliqueront aux batchs reçus : rmail pour le courrier et rnews (la commande dont nous avons déjà parlé) pour les articles. Enfin, on indique le port (défini dans le fichier port) qui sera utilisé par cette connexion.

    Attention : avec INN 2.3, les droits de rnews ont été modifiés : cela peut poser problème pour une utilisation avec UUCP. Pour corriger cela vous pouvez configurer INN avec l'option adéquate (--enable-uucp-rnews) ou rétablir les anciens droits manuellement. Il en va de même, d'ailleurs pour inews qui vous permet de poster sur votre serveur local : les droits par défaut ne vous permettent plus de le faire... Pensez à les rétablir si besoin est.

C'est tout pour la configuration de UUCP proprement dit...

Vous pouvez tester votre configuration à l'aide de la commande uuchk (à exécuter sous le compte root).

11.2 Configuration de INN pour utilisation avec UUCP

UUCP étant configuré, il reste à faire de même pour INN.

Lorsque votre fournisseur d'accès vous a donné votre compte et votre mot de passe, il vous a également donné (ou demandé) un identificateur pour votre serveur : c'est celui que vous avez indiqué ou que vous indiquerez dans la variable pathhost de votre fichier inn.conf.

Si vous ne souhaitez utiliser UUCP que pour recevoir les articles, c'est tout ce que vous avez à faire. Cela dit, ce serait dommage de ne pas faire de même pour leur envoi... Pour cela, il faut indiquer à INN qu'il doit construire des batchs UUCP à partir des articles que vous écrivez et que vous souhaitez diffuser sur le serveur de votre fournisseur et, pour cela, il faut modifier le paramètre correspondant au type de feed dans l'entrée du fichier newsfeeds correspondant à ce feed. Si vous utilisez rpost, ce paramètre est Wnm («m» comme «articles multiples»). Pour UUCP, il doit valoir Wnb («b» comme «batch»).

À titre d'exemple, la ligne de mon fichier newsfeeds est, actuellement :

teaser/teaser.fr::Tf,Wnb:

Ceux qui utilisent un feed UUCP de frmug utiliseront :

frmug/frmug.org::Tf,Wfb,B4096/1024:

C'est tout...

Il reste maintenant à écrire un script permettant, comme précédemment, d'envoyer et de recevoir les batchs UUCP :

#! /bin/sh

# On prepare le batch des articles a envoyer

/usr/local/news/bin/send-uucp teaser

# On recupere les batchs sur Teaser

/usr/libexec/uucp/uucico -f -s teaser

Le paramètre teaser fait ici référence à l'entrée correspondante du fichier /etc/uucp/sys.

Remarque : ce même script vous permettra de récupérer vos courriers si vous disposez également d'une boîte UUCP mais, comme dirait Kipling, c'est une autre histoire...