El software de nodo fue desarrollado por Tomi Manninen y se basó en el programa original PMS. Provee una capacidad de nodo bastante completa y flexible, que es muy fácil de configurar. Este permite a los usuarios, después de conectarse, hacer conexiones Telnet, NetRom, Rose y AX.25 y obtener información variada como Finger, Nodes y listas Heard. Si quieres, puedes configurar el nodo simplemente para que ejecute un comando Linux.
El nodo comúnmente es invocado por el programa ax25d pero también puede ser invocado por el programa TCP/IP inetd, lo que permite a los usuarios hacer telnet a tu máquina y obtener acceso a ella, o correrlo desde la línea de comandos.
Este archivo es donde se aloja la configuración principal del nodo. Es un simple archivo de texto y su formato es el siguiente:
# /etc/ax25/node.conf # configuration file for the node(8) program. # # Lines beginning with '#' are comments and are ignored. # Hostname # Specifies the hostname of the node machine hostname radio.gw.vk2ktj.ampr.org # Local Network # allows you to specify what is consider 'local' for the # purposes of permission checking using nodes.perms. localnet 44.136.8.96/29 # Hide Ports # If specified allows you to make ports invisible to users. The # listed ports will not be listed by the (P)orts command. hiddenports rose netrom # Node Identification. # this will appear in the node prompt NodeId LINUX:VK2KTJ-9 # NET/ROM port # This is the name of the NET/ROM port that will be used for # outgoing NET/ROM connections from the node. NrPort netrom # Node Idle Timeout # Specifies the idle time for connections to this node in seconds. idletimout 1800 # Connection Idle Timeout # Specifies the idle timer for connections made via this node in # seconds. conntimeout 1800 # Reconnect # Specifies whether users should be reconnected to the node # when their remote connections disconnect, or whether they # should be disconnected complete. reconnect on # Command Aliases # Provide a way of making complex node commands simple. alias CONV "telnet vk1xwt.ampr.org 3600" alias BBS "connect radio vk2xsb" # External Command Aliases # Provide a means of executing external commands under the node. # extcmd <cmdname> <flag> <userid> <command> # Flag == 1 is the only implemented function. # <command> is formatted as per ax25d.conf extcmd PMS 1 root /usr/sbin/pms pms -u %U -o VK2KTJ # Logging # Set logging to the system log. 3 is the noisiest, 0 is disabled. loglevel 3 # The escape character # 20 = (Control-T) EscapeChar 20 |
El nodo le permite asignar permisos a los usuarios. Estos permisos le permiten a Ud. determinar que usuarios si y cuales no pueden acceder a algunas opciones como (T)elnet y (C)onnect, por ejemplo. El archivo node.perms es donde es guardada esta información y contiene 5 campos claves. Para todos los campos un ´*´ coincide con todo. Esto es útil para construir reglas por omisión o prefijadas.
El primer campo es el indicativo o usuario al que se le aplicarán estos permisos. El SSID se ignora, por lo tanto pon solo el Indicativo.
Cada protocolo o método de acceso tiene sus permisos. Por ejemplo, puedes permitir que usuarios conectados vía AX.25 o NetRom puedan usar la opción (C)onnect, pero no darles acceso a aquellos que están conectados por (T)elnet desde un nodo no-local. Por lo tanto este segundo campo te permite seleccionar a que método de acceso se le aplican estas reglas de permisos. Los métodos de acceso permitidos son:
Metodo | Descripción |
---|---|
ampr | Usuario conectado por Telnet desde una amprnet (44.0.0.0) |
ax25 | Usuario conectado por AX.25 |
host | Usuario que comenzó el nodo de la línea de comando |
inet | Usuario conectado por Telnet desde un domicilio no-local, no-ampr. |
local | Usuario conectado por Telnet desde un host local. |
netrom | Usuario conectado por NetRom |
rose | Usuario conectado por Rose |
* | Usuario conectado de cualquier manera. |
Si quieres, y para usuarios de AX.25, puedes controlar los permisos puerto por puerto. Esto te permite determinar lo que una conexión AX.25 puede hacer dependiendo del puerto al que se conectó. Si usas esta facilidad, aquí va el nombre del puerto. Solo aplicable a conexiones AX.25.
Opcionalmente puedes configurar el nodo para que el prompt pida contraseña cuando se conecta. Es útil para ayudar a proteger determinadas configuraciones de usuarios con alta nivel de autoridad o permisos. Si se usa este campo, verificará la contraseña.
Este campo es el último de cada entrada del archivo. Esta codificado como un campo de bits, de modo que cada facilidad o permiso puesto está habilitado, y si no está puesto esta anulado. La lista de las facilidades controlables y de sus valores correspondientes es:
Valor | Descripción |
---|---|
1 | Login permitido. |
2 | AX25 (C)onnects permitido. |
4 | NetRom (C)onnects permitido. |
8 | (T)elnet al local hosts permitido. |
16 | (T)elnet al hosts amprnet (44.0.0.0) permitido. |
32 | (T)elnet a hosts no-local, no-amprnet permitido. |
64 | Puertos ocultos permitidos para AX.25 (C)onnects. |
128 | Rose (C)onnects permitido. |
Para codificar el valor del permiso, simplemente suma los valores de los respectivos permisos que quieras que tenga el usuario. Y pon ese valor en el quinto campo.
Un ejemplo de nodes.perms seria así:
# /etc/ax25/node.perms # # El operador del nodo es VK2KTJ, tiene como contraseña 'secret' y # tiene todos los permisos para todos los métodos de conexión. vk2ktj * * secret 255 # Los siguientes usuarios son rechazados. No pueden conectarse. NOCALL * * * 0 PK232 * * * 0 PMS * * * 0 # Usuarios de INET son rechazados también. * inet * * 0 # Los usuarios AX.25, NetRom, Local, Host y AMPR pueden usar (C)onnect y # (T)elnet a hosts locales y ampr, pero no a otras direcciones IP. * ax25 * * 159 * netrom * * 159 * local * * 159 * host * * 159 * ampr * * 159 |
El programa de nodo normalmente es ejecutado por ax25d. Para hacer esto debe agregar las reglas apropiadas al archivo /etc/ax25/ax25d.conf. En mi configuración yo quería que los usuarios pudieran elegir conectarse al nodo o a otro servicio. El programa ax25d se lo permite hacer, simplemente creando alias para los puertos. Por Ejemplo con la configuración dada anteriormente, quiero configurar el nodo para que todos los que se conecten con VK2KTJ-1 accedan al nodo. Para hacerlo agregue esta línea al archivo /etc/ax25/ax25d.conf:
[vk2ktj-1 via radio] default * * * * * 0 root /usr/sbin/node node |
Esto indica que el kernel de Linux contestará cualquier pedido de conexión para "VK2KTJ-1" escuchada en el puerto AX.25 llamado ´radio´, y hará que se corra el programa node.
Si quieres que tus usuarios puedan hacer Telnet en tu máquina y acceder al node, puedes hacerlo fácilmente. Lo primero a decidir es a que puerto se deben conectar. En este ejemplo elegí arbitrariamente el puerto 4000, aunque Tomi da detalles en esta documentación, de cómo reemplazar en demonio normal de Telnet con el nodo.
Necesitas modificar dos archivos.
A /etc/services deberías agregar:
node 3694/tcp #OH2BNS's node software |
y a el /etc/inetd.conf deberias agregar:
node stream tcp nowait root /usr/sbin/node node |
Cuando has hecho esto, debes reiniciar inetd, a cualquier usuario que haga telnet al puerto 3694 de tu máquina se le pedirá un login, y si está configurado, la contraseña y entonces se conectara al nodo.