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.
/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
/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.
Le premier champ indique l'identifiant d'appel concerné par les permissions. Une éventuelle partie ssid sera ignorée.
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
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).
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.
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é :
On additionne ensuite les puissances de deux associées aux bits des permissions activées. Le résultat va dans le cinquième champ.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
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
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 :
Linux répondra à toute demande de connexion sur le port AX.25 `[vk2ktj-1 via radio] default * * * * * 0 root /usr/sbin/node node
radio' d'identifiant
`VK2KTJ-1' en exécutant le programme
nde.
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 :
et au fichiernode 3694/tcp #OH2BNS's node software
/etc/inetd.conf :
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.node stream tcp nowait root /usr/sbin/node node