Page suivante Page précédente Table des matières

13. Le logiciel node

Le logiciel node a été développé par Tomi Manninen <tomi.manninen@hut.fi>. Il a été conçu à partir du programme PMS et offre une fonctionnalité de noeud facilement configurable. Une fois les utilisateurs connectés, il leur permet de se servir de telnet, de NetRom, de Rose et de AX.25 vers l'extérieur ainsi que d'obtenir diverses informations telles finger, la liste des noeuds et des écoutes etc. Le noeud peut être configuré assez simplement pour exécuter n'importe quelle commande Linux.

Normalement, le noeud sera invoqué par ax25d, bien qu'il puisse également être appelé par le démon IP inetd pour permettre aux utilisateurs d'obtenir un accès telnet à votre machine. Le lancement depuis la ligne de commande est également possible.

13.1 Le fichier /etc/ax25/node.conf

node.conf est un fichier texte qui spécifie la configuration du noeud. Son format est le suivant :

# /etc/ax25/node.conf
# Fichier de configuration du programme node(8)
#
# Un '#' indique une ligne de commentaire qui sera ignorée.

# Nom d'hôte de la machine noeud
hostname        radio.gw.vk2ktj.ampr.org

# Réseau local
# définit ce qui doit être considéré comme 'local' du point de vue de la
# vérification des permissions grâce à nodes.perms.
localnet        44.136.8.96/29

# Ports cachés
# rend certains ports invisibles aux utilisateurs. Les ports n'apparaîtront pas
# via la commande Ports.
hiddenports     rose netrom

# Identification du noeud
# apparaîtra à l'invite du noeud
NodeId          LINUX:VK2KTJ-9

# Port NetRom
# nom du port NetRom qui employé pour les connexions NetRom sortant du noeud
NrPort          netrom

# Délai d'inactivité du noeud
# en secondes
idletimout      1800

# Délai d'inactivité des connexions
# en secondes
conntimeout     1800

# Reprise de connexion
# indique si les utilisateurs doivent être reconnectés spontanément en cas
# de rupture de la connexion distante ou bien s'ils doivent être complètement
# déconnectés.
reconnect       on

# Alias
alias           CONV    "telnet vk1xwt.ampr.org 3600"
alias           BBS     "connect radio vk2xsb"

# Alias (commandes externes)
# exécution de commandes externes au noeud
# extcmd <cmd> <flag> <userid> <commande>
# Flag == 1 pour l'instant
# <commande> a le même format que dans ax25d.conf
extcmd          PMS     1       root    /usr/sbin/pms pms -u %U -o VK2KTJ

# Enregistrement
# le niveau 3 est le plus détaillé, 0 désactive l'enregistrement
loglevel        3

# Caractère de contrôle
# 20 = (Control-T)
EscapeChar      20

13.2 Le fichier /etc/ax25/node.perms

node affecte des permissions aux utilisateurs. On décide ainsi des utilisateurs qui ont le droit ou non d'employer des commandes telles (T)elnet ou (C)onnect. node.perms contient cinq champs. Le caractère `*' dans l'un d'eux indique une absence de contraintes pour son application. On construit ainsi facilement des règles applicables par défaut.

user

Le premier champ indique l'identifiant d'appel concerné par les permissions. Une éventuelle partie ssid sera ignorée.

method

Chaque protocole et chaque méthode d'accès disposent également de permissions. Par exemple, les utilisateurs connectés via AX.25 ou NetRom peuvent être autorisés à se servir de (C)onnect tandis que ceux issus d'une session telnet depuis un noeud non-local s'en verront refuser l'accès. Le deuxième champ spécifie donc à quelle méthode d'accès les permissions s'appliquent. Voici les classes de méthodes d'accès :

method  description
------  -----------------------------------------------------------
ampr    session telnet depuis une adresse amprnet (44.0.0.0)
ax25    connexion AX.25
host    node invoqué depuis la ligne de commande 
inet    session telnet depuis une adresse non locale, de type non amprnet
local   session telent depuis un hôte 'local'
netrom  connexion NetRom
rose    connexion Rose
*       n'importe quelle connexion
port

Vous pouvez également contrôler les permissions pour les utilisateurs AX.25 sur la base des ports employés. Le troisième champ contient un nom de port si vous décidez d'employer cette possibilité (disponible seulement pour les connexions AX.25).

password

Un mot de passe peut également être demandé lors de l'établissement de la connexion. Cela s'avère pratique pour protéger des comptes utilisateurs spécifiques disposant de privilèges particulièrement élevés. Si le quatrième champ est positionné, il correspond au mot de passe attendu.

permissions

Les permissions sont fixées par le biais du dernier champ de chaque ligne. L'information est codée au niveau du bit, chaque service disposant d'un bit qui indique s'il est ou non activé. Ci-suit la liste des services et la position du champ avec le bit positionné :

valeur  description
------  -------------------------------------------------
 1      Login 
 2      (C)onnect AX.25 
 4      (C)onnect NetRom
 8      (T)elnet vers les hôtes locaux 
 16     (T)elnet vers amprnet (44.0.0.0)
 32     (T)elnet vers les hôtes non-locaux, de type non-amprnet
 64     (C)onnect AX.25 pour les ports cachés
 128    (C)onnect Rose
On additionne ensuite les puissances de deux associées aux bits des permissions activées. Le résultat va dans le cinquième champ.

Un exemple de fichier nodes.perms :

# /etc/ax25/node.perms
#
# L'opérateur a pour identité VK2KTJ, s'identifie par le mot de passe 'secret' 
# et dispose de toutes les permissions pour toutes les méthodes de connexion.
vk2ktj  *       *       secret  255

# Les utilisateurs suivants sont exclus
NOCALL  *       *       *       0
PK232   *       *       *       0
PMS     *       *       *       0

# Les utilisateur d'INET n'ont pas le droit de se connecter
*       inet    *       *       0

# Les utilisateurs AX.25, NetRom, locaux, liés à l'hôte ou AMPR disposent de
# (C)onnect et de (T)elnet vers les hôtes locaux et ampr mais se voient 
# interdire les autres adresses IP.
*       ax25    *       *       159
*       netrom  *       *       159
*       local   *       *       159
*       host    *       *       159
*       ampr    *       *       159

13.3 Exécution de node depuis ax25d

L'invocation du programme node par le démon ax25d nécessite l'ajout de règles appropriées au fichier /etc/ax25/ax25d.conf. Je souhaitais une configuration telle que les utilisateurs puissent se connecter soit à node soit à un service de leur choix. ax25d l'autorise par le biais d'une création astucieuse d'alias de ports. Par exemple, partant de la configuration d'ax25d donnée plus haut, on veut que tous les utilisateurs se connectant à VK2KTJ-1 reçoivent le noeud. Pour cela, on ajoute la règle suivante au fichier /etc/ax25/ax25d.conf :

[vk2ktj-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node
Linux répondra à toute demande de connexion sur le port AX.25 `radio' d'identifiant `VK2KTJ-1' en exécutant le programme nde.

13.4 Exécution de node depuis inetd

Offrir la possibilité d'ouvrir une session telnet sur votre machine et d'accéder au programme node est une tache plutôt facile. Commencez par choisir le port auquel les utilisateurs se connecteront. Dans mon exemple, j'ai pris arbitrairement le port 3694 bien que Tomi détaille dans sa documentation la marche à suivre pour remplacer le démon telnet usuel par le programme node.

Il faut modifier deux fichiers.

Ajouter au fichier /etc/services :

node    3694/tcp        #OH2BNS's node software
et au fichier /etc/inetd.conf :
node    stream  tcp     nowait  root    /usr/sbin/node node
Une fois inetd redémarré, tout utilisateur effectuant un telnet vers le port 3694 de votre machine se verra demander un login et, selon la configuration, un mot de passe avant d'être connecté à node.


Page suivante Page précédente Table des matières