13. Configurazione del programma node

node è stato sviluppato da Tomi Manninen e si basa sul programma PMS. Rende disponibili le funzionalità di nodo in modo piuttosto completo e flessibile, permettendo agli utenti, una volta connessi, di fare connessioni in uscita di tipo Telnet, AX.25, NET/ROM e Rose, nonchè di ottenere informazioni con Finger, Nodes, Heard eccetera. Si può inoltre configurare il nodo in modo da far eseguire qualunque comando Linux in modo piuttosto semplice.

Node viene normalmente lanciato dal programma ax25d, per quanto possa essere eseguito anche da linea di comando oppure lanciato dal programma TCP/IP inetd per permettere agli utenti di fare telnet sulla vostra macchina.

13.1. Creazione del file /etc/ax25/node.conf

Il file node.conf è dove viene scritta la configurazione principale del nodo. È un semplice file di testo ed è formattato nel seguente modo:

# /etc/ax25/node.conf
# file di configurazione del programma node(8).
#
# Le linee che iniziano con '#' sono commenti e vengono ignorate.
# Hostname
# Specifica il nome della macchina che fa da nodo.
hostname	radio.gw.vk2ktj.ampr.org

# Rete Locale
# Permette di specificare cosa dev'essere considerato 'locale'
# per il controllo dei permessi usando nodes.perms.
localnet	44.136.8.96/29

# Occultamento di alcune porte
# Se viene specificato, questo parametro permette di rendere le porte
# invisibili agli utenti. Le porte qui elencate non saranno riportate
# dal comando (P)orts.
hiddenports	rose NET/ROM

# Identificazione del nodo.
# Questo apparirà al prompt del nodo.
NodeId		LINUX:VK2KTJ-9

# Porta NET/ROM
# Questo è il nome della porta NET/ROM che verrà usata per
# le connessioni NET/ROM in uscita dal nodo.
NrPort		NET/ROM

# Node Idle Timeout
# Specifica il tempo di idle in secondi per le connessioni fatte
# a questo nodo (cioè quanto possono rimanere inattive prima che la
# connessione venga interrotta.
idletimout	1800

# Connection Idle Timeout
# Specifica il tempo di idle in secondi per le connessioni fatte
# attraverso questo nodo.
conntimeout	1800

# Riconnessione
# Specifica se gli utenti debbano essere riconnessi al nodo
# se la loro connessione remota si interrompe, o se debbano essere
# definitivamente disconnessi.
reconnect	on

# Alias dei comandi
# Permette di rendere semplici dei comandi di nodo più articolati.
alias		CONV	"telnet vk1xwt.ampr.org 3600"
alias		BBS	"connect radio vk2xsb"

# Aliases dei comandi esterni
# Permette di eseguire dei comandi esterni all'interno del nodo.
# La sintassi è:
# extcmd <nomecmd> <flag> <userid> <comando>
# Flag == 1 è l'unica funzione implementata.
# <comando> è formattato sullo stile di ax25d.conf
extcmd		PMS	1	root	/usr/sbin/pms pms -u %U -o VK2KTJ

# Logging
# Stabilisce la quantità di informazioni che vengono scritte nel log.
# 3 per il maggior numero di informazioni, 0 per disabilitare il log.
loglevel	3

# Il carattere di escape
# 20 = (Control-T)
EscapeChar      20

13.2. Creazione del file /etc/ax25/node.perms

node consente di assegnare permessi agli utenti. Questi permessi permettono di stabilire quali utenti, ad esempio, sono autorizzati a far uso di opzioni come i comandi (T)elnet e (C)onnect. Il file node.perms viene usato per stabilire questo genere di permessi e contiene cinque campi chiave; in ognuno di questi un asterisco '*' serve per indicare 'qualunque cosa' e viene usato per creare le regole di default.

user

Il primo campo rappresenta il nominativo o l'utente al quale devono applicarsi i permessi. Ogni ssid viene ignorato, quindi basta mettere il nominativo semplice.

method

Vengono concessi permessi anche ai protocolli o ai metodi di accesso. Per esempio si può permettere l'uso dell'opzione (C)onnect agli utenti connessi via AX.25 o NET/ROM, ma impedirlo agli altri. Il secondo campo perciò, permette di selezionare a quale metodo di accesso deve applicarsi la regola di accesso. I metodi di accesso sono i seguenti:

port

Volendo è possibile controllare i permessi per gli utenti AX.25 porta per porta; questo permette di determinare cosa gli utenti sono in grado di fare a seconda della porta alla quale sono connessi. Se si sfrutta questa funzionalità (che funziona solo per le connessioni AX.25), il terzo campo contiene il nome della porta.

password

Si può opzionalmente configurare il nodo in modo che chieda una password alla connessione. Questo può essere utile per proteggere utenti con un livello di accesso particolarmente elevato; in questo campo, se presente, è contenuto il valore della password che dev'essere fornita.

permissions

Il campo permessi è l'ultimo per ciascuna voce nel file. Il valore che contiene è a campi di bit (ogni opzione è rappresentata da un bit più o meno settato a seconda che venga più o meno concesso il permesso per essa). La lista delle opzioni che possono essere controllate, e del relativo valore in bit è il seguente:

Per stabilire una regola particolare, occorre sommare i valori dei singoli permessi che si vuole dare e mettere il numero risultante nel quinto campo.

Un esempio di file nodes.perms potrebbe essere il seguente:

# /etc/ax25/node.perms
#
#L'operatore del nodo è VK2KTJ, ha password 'secret' e ha tutti
#i permessi per tutti i tipi di connessione
vk2ktj	*	*	secret	255

# Ai seguenti nominativi è impedito connettersi
NOCALL	*	*	*	0
PK232	*	*	*	0
PMS	*	*	*	0

# Agli utenti INET è impedito connettersi.
*	inet	*	*	0

# Gli utenti AX.25, NET/ROM, Local, Host e AMPR possono fare (C)onnect
# e (T)elnet a host locali e ampr, ma non ad altri indirizzi IP.
*	ax25	*	*	159
*	NET/ROM	*	*	159
*	local	*	*	159
*	host	*	*	159
*	ampr	*	*	159

13.3. Configurazione di node per funzionare da ax25d

Il programma node viene lanciato di solito dal programma ax25d. Per fare questo occorre aggiungere delle particolari regole al file /etc/ax25/ax25d.conf. Nella configurazione che adotto, voglio permettere agli utenti di scegliere se connettersi a node o ad altri servizi. ax25d consente di fare questo attraverso l'intelligente creazione di alias delle porte. Ad esempio, data la configurazione di ax25d presentata sopra, si vuole configurare node in modo che venga lanciato per tutti gli utenti che si connettono a VK2KTJ-1 Per fare questo si aggiunge questo al file /etc/ax25/ax25d.conf:

[vk2ktj-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node

Questo dice che il kernel di Linux risponderà ad ogni richiesta di connessione al nominativo 'VK2KTJ-1' ascoltato sulla porta chiamata 'radio' lanciando il programma node

13.4. Configurazione di node per funzionare da inetd

Se si vuole che i propri utenti siano in grado di fare telnet su una porta della macchina e avere accesso a node lo si può fare piuttosto facilmente. La prima cosa da decidere e a quale porta gli utenti si devono connettere In questo esempio si è arbitrariamente scelta la porta 4000, sebbene Toi nella sua documentazione fornisca i passi per sostituire il normale demone Telnet con node.

Occorre modificare due file.

In /etc/services occorre aggiungere:

node	3694/tcp	#OH2BNS's node software

E in /etc/inetd.conf va aggiunto:

node	stream	tcp	nowait	root	/usr/sbin/node node

Una volta fatto questo, facendo ripartire il programma inetd, ogni utente connesso via telnet alla porta 3694 della macchina riceverà la richiesta di login, l'eventuale richiesta di password e sarà connesso a node.