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é :
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
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.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.