Linux est un système d'exploitation puissant qui présente beaucoup de flexibilité dans sa configuration. Le coût de cette flexibilité se retrouve dans la mise au point de la configuration souhaitée. Avant d'être en mesure d'accepter les connexions AX.25, NetRom ou Rose, vous devez vous poser un certain nombre de questions. La plus importante : "Que vais-je laisser de visible aux utilisateurs une fois connectés ?" Des gens ont mis au point de sympathiques petites applications qui fournissent des services aux appelants tels pms ou, plus évolué, node (tous deux sont compris dans le paquetage des utilitaires AX.25). Vous pouvez également souhaiter offrir une invite d'identification afin que les utilisateurs disposent d'un shell ou même écrire vos propres programmes tels une base de données maison ou un jeu. Quoi que vous fassiez, il faut spécifier à AX.25 le programme à exécuter quand une connexion s'établit.
Le démon ax25d joue un rôle similaire à celui rempli par inetd pour les connexion TCP/IP entre machines UNIX. Il se met à l'écoute des connexions entrantes et lorsqu'il en détecte une, il examine par l'intermédiaire d'un fichier de configuration le programme à lancer auquel il transmet la connexion. Puisqu'il s'agit d'un outil standard de gestion des appels AX.25, NetRom et Rose, je vais à présent décrire les étapes de sa configuration.
/etc/ax25/ax25d.conf
Ce fichier contient la configuration du démon ax25d en charge des connexions AX.25, NetRom et Rose.
Bien que le fichier paraisse un peu cryptique au premier abord, il s'avère rapidement des plus simples à l'usage, avec quelques pièges à éviter.
Le format général du fichier est le suivant :
# Je suis un commentaire qu'ax25d ignorera
[nom de port] || <nom de port> || {nom de port}
<interlocuteur1> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <commande> <args>
<interlocuteur2> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <commande> <args>
parametres window T1 T2 T3 idle N2 <mode>
<interlocuteur3> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <commande> <args>
...
default window T1 T2 T3 idle N2 <mode> <uid> <cmd> <commande> <args>
Avec :
en début de ligne pour indiquer un commentaire ignoré du programme ax25d
nom du port AX.25, NetRom ou Rose tel
que spécifié dans un des fichiers /etc/ax25/axports
,
/etc/ax25/nrports
ou /etc/ax25/rsports
. Le nom du port
est entouré par `[]
' s'il s'agit d'un port AX.25, `<>
' si
c'est un port NetRom ou `{}
' pour un port Rose. Ce champ admet une
variante qui précède le nom du port par `callsign/ssid via
' pour
indiquer que vous voulez accepter les appels vers l'identificateur cité par
l'intermédiaire de cette interface. Un exemple l'illustrera.
est l'identifiant du noeud auquel la configuration s'applique. Si vous ne spécifiez pas de ssid, tous seront considérés comme valables.
paramètre de fenêtre AX.25 (K) ou valeur de MAXFRAMDE pour cette configuration.
délai de retransmission de trame (T1) exprimé en demi-secondes.
délai d'attente par le logiciel AX.25 d'une seconde trame avant de préparer une réponse. S'exprime en secondes.
délai d'inactivité avant qu'une connexion inactive ne soit coupée. S'exprime en secondes.
période d'inactivité en secondes.
nombre d'essais de retransmission avant qu'une connexion ne soit coupée.
procure un mécanisme d'établissement de certains types de permissions. Les modes sont activés ou inhibés grâce à une combinaison de caractères représentant chacun un droit. L'accentuation ne joue pas et les caractères doivent former un bloc ininterrompu.
UTMP - non-supporté
Validate call - non-supporté
Quiet - pas d'enregistrement des connexions
check NetRom Neighbour - non-supporté
Disallow Digipeaters - les connexions doivent être directes
Lockout - connexion interdite
marker - marqueur, pas de mode spécifique
userid sous laquelle le programme maintenant la connexion sera exécuté.
nom complet de la commande à lancer, sans arguments.
texte qui apparaîtra à l'invocation de ps comme commande du programme (en général la même chose que <cmd> mais sans le chemin d'accès).
arguments de ligne de commande passés à <:cmd> lorsqu'il est lancé. Les éléments suivants permettent de passer des informations utilisées :
nom du port recevant la connexion
identificateur AX.25 de l'extrémité connectée, sans ssid, en majuscules
identificateur AX.25 de l'extrémité connectée, sans ssid, en minuscules
identificateur AX.25 de l'extrémité connectée, avec ssid, en majuscules
identificateur AX.25 de l'extrémité connectée, avec ssid, en minuscules
identificateur AX.25 du noeud distant initiateur de la connexion, sans ssid, en majuscules
identificateur AX.25 du noeud distant initiateur de la connexion, sans ssid, en minuscules
identificateur AX.25 du noeud distant initiateur de la connexion, avec ssid, en majuscules
identificateur AX.25 du noeud distant initiateur de la connexion, avec ssid, en minuscules
Ue section au format précédent est requise pour chaque interface AX.25, NetRom ou Rose que vous voulez voir accepter des connexions.
Le paragraphe comprend deux lignes particulières, l'une commençant par la
chaîne `parameters
' et l'autre par la chaîne `default
'
(il y a une différence).
`default
' couvre tous les cas qui ne sont pas spécifiés ailleurs.
Ainsi, tous les appels sur l'interface <interface_call> ne
disposant pas d'une règle spécifique se retrouvent dans la rubrique
`default
'. En l'absence d'une telle section, toutes les connexions
hors règle sont immédiatement interrompues sans autre forme de procès.
`parameters
' est plus subtil et dissimule le piège mentionné
précédemment. Si le caractère `*' est présent dans un champ, une valeur par
défaut issue de la section `parameters
' est employée. Le noyau
possède d'ailleurs une liste de valeurs utilisées en l'absence de
`parameters
'. Le danger réside en ce que les entrées spécifiées
via `parameters
' ne s'appliquent qu'aux règles qui les suivent.
Une même interface peut comporter plusieurs entrées `parameters
'.
Notez que les règles `parameters
' ne permettent pas de positionner
les champs `uid
' et `command
'.
ax25d.conf
# ax25d.conf pour VK2KTJ - 02/03/97
# Ce fichier de configuration utilise le port AX.25 défini plus haut.
# <peer> Win T1 T2 T3 idl N2 <mode> <uid> <exec> <argv[0]>[<args....>]
[VK2KTJ-0 via radio]
parameters 1 10 * * * * *
VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
NOCALL * * * * * * L
default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
[VK2KTJ-1 via radio]
default * * * * * 0 root /usr/sbin/node node
<netrom>
parameters 1 10 * * * * *
NOCALL * * * * * * L
default * * * * * * 0 root /usr/sbin/node node
{VK2KTJ-0 via rose}
parameters 1 10 * * * * *
VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
NOCALL * * * * * * L
default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
{VK2KTJ-1 via rose}
default * * * * * 0 root /usr/sbin/node node radio
Dans cet exemple, toute personne réclamant une connexion via l'identificateur
`VK2KTJ-0
' du port AX.25 `radio
' se verra appliquer les règles
suivantes :
Tout appel depuis un identifiant `NOCALL' se verra rejeté. Notez l'emploi du mode `L'.
La ligne parameters
modifie deux paramètres par défaut du noyau
(Window et T1) et exécutera /usr/sbin/axspawn. Les instances de
/usr/sbin/axspawn appelées ainsi apparaîtront en tant que axspawn
dans un affichage issu de ps. Les deux lignes qui suivent définissent deux
stations auxquelles s'appliqueront les permissions.
La dernière ligne de la section est la règle fourre-tout appliquée au reste
des connexions (VK2XLZ et VK2DAY inclus dès lors qu'ils ont recours à un ssid
différent de -1). Tous les paramètres prennent leurs valeurs par défaut et
le programme pms sera lancé avec un argument de ligne de commande
spécifiant une connexion AX.25 d'identifiant VK2KTJ
(reportez-vous à la
partie `Configuration du PMS' pour davantage de détails).
La configuration suivante accepte les appels à VK2KTJ-1
via le port
radio
. Le programme node est exécuté à chaque connexion.
Vient ensuite une spécification de connexions NetRom (notez l'emploi des
signes inférieur et supérieur à la place des crochets). Toute personne se
connectant via le port `netrom
' déclenche le programme node si son
identifiant est différent de `NOCALL
'. Dans le cas contraire, tout accès
est refusé.
Les deux dernières configurations concernent des connexions entrantes Rose,
la première pour ceux qui appellent le `VK2KTJ-0
' sur notre noeud Rose et
la seconde pour ceux qui emploient le `VK2KTJ-1
'. Elles fonctionnent de
la même façon. Notez l'emploi des accolades qui indiquent des ports Rose.
L'exemple manque un peu de naturel mais je crois qu'il illustre clairement les
propriétés importantes de la syntaxe du fichier de configuration. La page de
man explique dans son intégralité le contenu du fichier ax25d.conf
.
Le paquetage ax25-utils
inclut un exemple plus détaillé qui pourrait
également vous être utile.
Une fois les deux fichiers de configuration mis au point, lancez la commande :
# /usr/sbin/ax25d
À présent, les gens devraient pouvoir se connecter en AX.25 à votre machine.
N'oubliez pas de modifier les fichiers de commande de démarrage du système
de façon que ax25d
soit invoqué automatiquement à chaque
réinitialisation de la station.