node è stato sviluppato da Tomi Manninen
<tomi.manninen@hut.fi>
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, NetRom 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.
/etc/ax25/node.conf
.
Il file node.conf
è dove viene scritta la configurazione
principale del nodo. E' 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 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 netrom
# Identificazione del nodo.
# Questo apparirà al prompt del nodo.
NodeId LINUX:VK2KTJ-9
# Porta NetRom
# Questo è il nome della porta NetRom che verrà usata per
# le connessioni NetRom in uscita dal nodo.
NrPort netrom
# 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
/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.
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.
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 NetRom, 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:
metodo descriztione
------ -----------------------------------------------------------
ampr L'utente è connesso via telnet da un indirizzo amprnet (44.0.0.0)
ax25 L'utente è connesso tramite AX.25
host L'utente ha lanciato node dalla linea di comando
inet L'utente è connesso via telnet da un indirizzo non-locale e non-amprnet
local L'utente è connesso via telnet da un host 'locale'
netrom L'utente è connesso tramite NetRom
rose L'utente è connesso tramite rose
* L'utente è connesso in un modo qualunque.
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.
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.
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:
valore descrizione
----- -------------------------------------------------
1 Login consentito.
2 (C)onnessione AX25 consentita.
4 (C)onnessione NetRom consentita.
8 (T)elnet verso host locali consentiti.
16 (T)elnet verso host amprnet (44.0.0.0) consentiti.
32 (T)elnet verso host non-locali e non-amprnet consentiti.
64 (C)onnessione AX25 consentita anche su porte occultate.
128 (C)onnessione Rose consentita.
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 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, NetRom, Local, Host e AMPR possono fare (C)onnect
# e (T)elnet a host locali e ampr, ma non ad altri indirizzi IP.
* ax25 * * 159
* netrom * * 159
* local * * 159
* host * * 159
* ampr * * 159
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
' sulla porta chiamata
`radio
' lanciando il programma node
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.
Occorre modificare due file.
In /etc/services
occorre aggiungere:
node 3694/tcp #OH2BNS's node software
a 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.