Avanti Indietro Indice

13. Configurare Linux per accettare connessioni Packet.

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.

13.1 Creazione del file /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.

<nome_porta>

è 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.

<peer>

è 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.

window

è il parametro AX.25 "Window" (K) conosciuto anche come MAXFRAME che si applica in questa configurazione.

T1

è il valore di tempo di ritrasmissione del frame (T1) espresso in mezzi secondi.

T2

è il tempo, espresso in secondi, che il software AX.25 attende per un altro frame in ingresso, prima di mandare una risposta.

T3

è il tempo di inattività espressa in secondi, prima che il software AX.25 interrompa la sessione.

idle

è il valore di idle espresso in secondi.

N2

è il numero di ritrasmissioni consecutive che possono essre fatte prima di interrompere la connessione.

<mode>

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.

u/U

UTMP - Attualmente non supportato.

v/V

Validate call - Attualmente non supportato.

q/Q

Quiet - Non viene fatto il log della connessione

n/N

check NetRom Neighbour - Attualmente non supportato.

d/D

Disallow Digipeaters - La connessione dev'essere diretta, non effettuata tramite digipeater.

l/L

Lockout - Non permette la connessione.

*/0

marker - Mette un marker, non vengono settati i modi.

<uid>

è l'identificativo col quale deve deve essere lanciato il programma che supporta la connessione.

<cmd>

è il path completo del comando da lanciare, senza specificare argomenti.

<cmd-name>

è il testo che deve apparire in un ps come nome del comando lanciato (normalmente è lo stesso valore di <cmd>, però senza path.

<arguments>

sono gli argomenti da passare a <cmd> quando viene lanciato. Possono essere passate utili informazioni con i seguenti token:

%d

Nome della porta sulla quale si è ricevuta la connessione.

%U

Nominativo AX.25 del chiamante senza ssid e scritto in maiuscolo.

%u

Nominativo AX.25 del chiamante senza ssid e scritto in minuscolo.

%S

Nominativo AX.25 del chiamante con ssid e scritto in maiuscolo.

%s

Nominativo AX.25 del chiamante con ssid e scritto in minuscolo.

%P

Nominativo AX.25 del nodo dal quale è venuta la chiamata, senza ssid e in maiuscolo.

%p

Nominativo AX.25 del nodo dal quale è venuta la chiamata, senza ssid e in minuscolo.

%R

Nominativo AX.25 del nodo dal quale è venuta la chiamata, con ssid e in maiuscolo.

%r

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'.

13.2 Un semplice esempio di file 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.

13.3 Lanciare ax25d

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.


Avanti Indietro Indice