Linux è un sistema operativo molto potente è offre un elevato grado di flessibilità nella sua configurazione. Questa flessibilità porta come effetto collaterale una relativa complicatezza nell'operazione di configurazione. Quando si configura una macchina Linux per accettare connessioni AX.25, NetRom o Rose occorre farsi diverse domande. La più importante è "cosa voglio che gli utenti vedano quando mi connetto?". Molti hanno sviluppato belle applicazioncine che possono offrire servizi agli utenti che si connettono; alcune sono semplici come il programma pms, altre più complesse come node (entrambi presenti nelle AX25 utilities). Alternativamente si potrebbe dare agli utenti un account e un nome di login, oppure potreste aver scritto un vostro programma, come un database customizzato, o un gioco al quale volete che gli utenti si connettano. Qualunque soluzione scegliate, dovete informare il software AX.25 su quale programma lanciare quando accetta connessioni AX.25.
Il demone ax25d è simile a inetd che viene comunemente usato per accettare connessioni TCP/IP su macchine unix. Il compito di ax25d è quello di raccogliere e gestire i tentativi di connesisone AX.25. Quando ne sente uno controlla un file di configurazione per stabilire quale programma lanciare e connetterlo al chiamante. Poiché ax25d è lo strumento standard per accettare connessioni AX.25, NetRom e Rose, verrà descritto come configurarlo.
/etc/ax25/ax25d.conf
.
Questo è il file di configurazione per ax25d
Ad una prima occhiata può apparire un po' criptico, ma presto si nota come in pratica sia molto semplice, evitando una piccola trappola.
Il formato generale del file ax25d.conf
è il seguente:
# Questo è un commento ed è ignorato dal progamma ax25d.
[nome_porta] || <nome_porta> || {nome_porta}
<peer1> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name>
<argomenti>
<peer2> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name>
<argomenti>
parameters window T1 T2 T3 idle N2 <mode>
<peer3> window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name>
<argomenti>
...
default window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name>
<argomenti>
Dove:
all'inizio di una riga indica che questa è un commento e dev'essere ignorata da ax25d.
è il nome della porta AX.25,
NetRom o Rose come specificato nei file /etc/ax25/axports
,
/etc/ax25/nrports
o /etc/ax25/rsports
. Il
nome della porta è circondato da parentesi quadre `[]
' se è una
porta AX.25, acute `<>
' se NetRom, o graffe `{}
' se
Rose.
Esiste una forma alternativa per questo campo, che consiste nel far
precedere il nome della porta da `nominativo/ssid via
' per
indicare che si vogliono accettare chiamate al nominativo/ssid
attraverso quest'interfaccia. L'esempio dovrebbe rendere più chiaro il
tutto.
è il nominativo del nodo a cui si applica questa particolare configurazione. Se non si specifica un ssid, questa configurazione sarà applicata a tutti i ssid del nominativo.
è il parametro AX.25 "Window" (K) conosciuto anche come MAXFRAME che si applica in questa configurazione.
è il valore di tempo di ritrasmissione del frame (T1) espresso in mezzi secondi.
è il tempo, espresso in secondi, che il software AX.25 attende per un altro frame in ingresso, prima di mandare una risposta.
è il tempo di inattività espressa in secondi, prima che il software AX.25 interrompa la sessione.
è il valore di idle espresso in secondi.
è il numero di ritrasmissioni consecutive che possono essre fatte prima di interrompere la connessione.
fornisce un meccanismo per stabilire alcuni tipi di permessi. I modi sono abilitati o disabilitati fornendo una combinazione di caratteri, ognuna rappresentante un permesso. I caratteri possono essere scritti sia in maiuscolo che in minuscolo, in un unico blocco, senza spazi.
UTMP - Attualmente non supportato.
Validate call - Attualmente non supportato.
Quiet - Non viene fatto il log della connessione
check NetRom Neighbour - Attualmente non supportato.
Disallow Digipeaters - La connessione dev'essere diretta, non effettuata tramite digipeater.
Lockout - Non permette la connessione.
marker - Mette un marker, non vengono settati i modi.
è l'identificativo col quale deve deve essere lanciato il programma che supporta la connessione.
è il path completo del comando da lanciare, senza specificare argomenti.
è il testo che deve apparire in un ps come nome del comando lanciato (normalmente è lo stesso valore di <cmd>, però senza path.
sono gli argomenti da passare a <cmd> quando viene lanciato. Possono essere passate utili informazioni con i seguenti token:
Nome della porta sulla quale si è ricevuta la connessione.
Nominativo AX.25 del chiamante senza ssid e scritto in maiuscolo.
Nominativo AX.25 del chiamante senza ssid e scritto in minuscolo.
Nominativo AX.25 del chiamante con ssid e scritto in maiuscolo.
Nominativo AX.25 del chiamante con ssid e scritto in minuscolo.
Nominativo AX.25 del nodo dal quale è venuta la chiamata, senza ssid e in maiuscolo.
Nominativo AX.25 del nodo dal quale è venuta la chiamata, senza ssid e in minuscolo.
Nominativo AX.25 del nodo dal quale è venuta la chiamata, con ssid e in maiuscolo.
Nominativo AX.25 del nodo dal quale è venuta la chiamata, con ssid e in minuscolo.
Occorre una sezione nel formato visto sopra per ogni interfaccia AX.25, NetRom o Rose dalla quale si vogliano accettare connessioni.
Nel paragrafo ci sono due tipi speciali di linee, uno inizia con la
stringa `parameters
' è l'altro con la stringa
`default
' (c'è differenza). Queste servono per funzioni
speciali.
Lo scopo delle linee `default
' dovrebbe essere ovvio; queste
regolano il comportamento di quelle connessioni per le quali non
sono specificate regole. In assenza di una regola di
`default
', ogni connessione che non è riconducibile ad una
regola definita, sarà rifiutata e il chiamante disconnesso senza
alcun messaggio.
La linea `parameters
' assolve un compito più sottile, qui
sta la trappola menzionata precedentemente. In ogni campo di ogni
definizione per una regola di connessione, si può usare il carattere
`*' per dire `usa i valori di default'. La linea `parameters
'
è quella che definisce questi valori. Lo stesso
software del kernel ha alcuni valori di default che posono essere
usati se non li si specifica con la linea `parameters
'
La trappola è che questi valori di default si applicano solo
alle regole sotto la linea `parameters
'. Si possono
avere diverse linee `parameters
' in modo da creare gruppi di
configurazioni di default. E' importante notare che
`parameters
' non permette di settare i valori dei campi
`uid
' o `command
'.
ax25d.conf
.
Ok, a questo punto si impone un esempio chiarificatore:
# ax25d.conf di VK2KTJ - 03/02/97
# Questo file di configurazione usa le porte definite precedentemente
# <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
Questo esempio dice che chiunque voglia connettersi col nominativo
`VK2KTJ-0
' ascoltato sulla porta AX.25 chiamata `radio
'
sottostarà alle seguenti regole:
Chiunque abbia il nominativo col valore `NOCALL' non viene fatto entrare; si noti l'uso del modo `L'.
La linea parameters
modifica due parametri rispetto a quelli di
default del kernel (Window e T1) e verrà lanciato il programma
/usr/sbin/axspawn per loro. Ogni copia di
/usr/sbin/axspawn lanciata in questo modo apparirà come
axspawn in una lista ps. Le due linee successive danno le
regole per due stazioni che riceveranno questi permessi.
L'ultima linea nel paragrafo costituisce la regola che sarà
applicata a tutti gli altri (compresi VK2XLZ e VK2DAY se usano un
ssid diverso da -1).
Questa definizione imposta implicitamente tutti i parametri e fa sì
che il programma pms sia lanciato con un argomento che indica
che funziona su una connessione AX.25, e che il nominativo
utilizzato per rispondere è VK2KTJ
. (Si veda il paragrafo
`Configurazione del PMS' per maggiori dettagli).
La configurazione successiva accetta connessioni a VK2KTJ-1
tramite la porta radio
e lancia il programma node per
chiunque.
Poi c'è una configurazione NetRom (si noti l'uso delle parentesi
acute "< >"). Questa è più semplice: stabilisce che chiunque si
connetta alla porta dal nome `netrom
' farà partire il programma
node, a meno che non abbia nominativo `NOCALL
', nel qual
caso viene disconnesso.
Le ultime due configurazioni sono per le connessioni Rose; la prima
per chi chiama `vk2ktj-0
', l'altra per chi chiama
`VK2KTJ-1
' all'indirizzo di nodo Rose della macchina. Queste
funzionano esattamente allo stesso modo; si noti l'uso delle parentei
graffe per caratterizzarle come porte Rose.
L'esempio sopra illustrato è piuttosto banale, ma penso che chiarisca
sufficientemente le caratteristiche significative della sintassi del
file di configurazione. Una descrizione approfondita di quest'ultima
si può trovare nelle pagine man di ax25d.conf
. Un esempio
più dettagliato è incluso, invece, nelle ax25-utils
.
Una volta approntati i due file di configurazione, si può lanciare ax25d col comando;
# /usr/sbin/ax25d
Una volta fatto questo, i corrispondenti dovrebbero essere in grado
di effettuare connessioni AX.25 alla vostra macchina Linux. Si
ricordi di mettere il comando ax25d
nei propri file
rc, in modo che venga lanciato ogni volta che la macchina
viene fatta ripartire.