Uronode 2.11

Brian N1URO, has released Uronode 2.11 (Mar 03, 2020)


03/03/2020 v2.11
Changed node.h to reflect current version.

Note: The system has been behaving as best as it can be expected considering
it`s a front-end to the linux protocol stacks. As long as there can be an
ax# or sp# interface, it can attach to it and work the protocol(s) the user
wishes to use. There`s still the 2-line patch that the kernel maintainers 
need to add to ax25.ko so that netrom will continue to properly function
however that`s not the issue of URONode, it`s the kernel ax25 module.

Made a couple of changes in gateway.c where the color schema wasn`t properly
resetting the netrom prompt only in regards to aborting ping or a connect
request. This is now fixed.

Made changes in system.c where it wasn`t displaying the user being on IPv6
properly. While at it, I changed how it handles the user when they`re on
IPv4 in the lastlog and loggedin databases.

Changed user.c to reflect incoming session is via IPv6 which also fixes the
output of nodeusers so that instead of displaying ??????? it now shows that
Telnet6 is being used as the incoming protocol. This one was really getting
under my skin. Now I can rest in peace (as per QST 2/2020 haha!)

----------- Note on SystemD --------
In uronode.socket, you`ll notice the line:
This tells SystemD to listen on TCP socket 3694 for any IPv4 ONLY incoming
connection. If you wish to filter JUST your amprnet and IPv4 localhost
IPs make a line for each changing to and another for
your amprnet IP. This will by default filter any commercial IP requests
to URONode. If you want SystemD to try IPv6 *first*, don`t enter in any
IP schemas and just list the port number. SystemD by default appears to
use IPv6 prior to IPv4.

You can verify the above by running systemctl status uronode.socket:
systemctl status uronode.socket
● uronode.socket - URONode Server Activation Socket
   Loaded: loaded (/usr/lib/systemd/system/uronode.socket; enabled)
   Active: active (listening) since Mon 2016-03-07 15:30:39 EST; 6min ago
   Listen: (Stream)
 Accepted: 3; Connected: 1

----------- Wish-list: -----------
Original Development Information (aka Disclaimer): URONode was developed 
on an IBM eSeries 330 eServer with dual 1.2GHz CPUs The OS is Debian 
Linux 4 using kernel 2.4.27, libax25 v0.0.11, ax25-tools v0.0.8 and 
ax25-apps v0.0.6. This software comes with absolutely NO guarantees so 
crash n burn at your own risk. We all may be surprised and find out that 
it actually DOES something useful! URONode may not run 100% depending on 
environmental conditions specific to your system.

URONode is GLPv2 code, and tested by it`s main author on the following 
platforms: Raspberry Pi ver. B, Debian 7.7 on a Core-i3, Ubuntu 
12.0.4LTS on a Core-i3, Fedora ver. 21


Source Link


Small BUG in uronode 2.9

Mario YO2LOJ has found a small bug in the source code of UROnode.

Thanks to Marius YO2LOJ for a patch in do_ports within command.c where there is a possibility that the interface count may return NULL and the function will generate an exception in libc for the routine causing the node to segment fault out and disconnect the user from the node.

To patch the bug you need to edit the command.c in the source code of UROnode.
On line 398 you will find this line.

   if (strcmp(ax->dest_addr, "*")!=0 && strcmp(ax25_config_get_name(ax->dev), cp)==0) n++;

You have to replace it with this.

   if (strcmp(ax->dest_addr, "*")!=0 && 
ax25_config_get_name(ax->dev) && strcmp(ax25_config_get_name(ax->dev), cp)==0) n++;

After that you can recompile the source.

Or you can download a complet command.c here.

Uronode nodesearch 2.2 released

Brian N1URO has released a new version of Nodesearch 2.2

Change is that now users can search a netrom node
by alias. This idea was taken from a recent change in JNOS. Ex:

Which node are you looking for (no * please): NOS
Searching NetRom nodes for NOS …
NodeSearch v2.2 by N1URO for URONode.

For now it’s only on the ftp server of N1URO


Uronode update version 2.9

Brian N1URO has released uronode-2.9 on 2018-05-28

Download add https://sourceforge.net/projects/uronode/files/?source=navbar

I have released URONode 2.9 on both my FTP server and on SourceForge
(both git and svn). The changelog for this release is as follows:

27/05/2018 v2.9
Changed the abort message from "Connection Aborted" to just "Aborted".
The madness in the logic is that FBB and other PBBS scripts may only
read "Connect" and send their next command in their sequence and thus
causing a bit of a loop.

Changed version number in node.h
Changed this file.

I noticed that an IPv6 connection did NOT offer EXit as a command.

I also noticed that for an IPv6 connection, when running an external
it did not inform the user that they were being returned to the node
may hint that the plug-in is not returning to the node properly, or is
exiting/forking prior to it's close. This is now fixed.

Mainly for sysop debugging purposes but also for end users, when
executing a
plugin such as NS or tracer, it'll still open with "Executing command"
but now
it will return back to the node prompt with "Command ended.". This lets
the sysop and end user know the command exited properly, like with a
"return 0"

I decided that just having IPv6 as a trailer for IPv6 connects at the
to be a bit vague in display so to keep it a bit more consistant with
it now will show ...:/uronode6 instead.

Fixed the "Sockets:" line in the Status command display. The word
was off by one space throwing all the following column headers off by 1


SystemD and Uronode

It`s also possible to run uronode with Systemd.. The systemd files can be found is the source directory of uronode. /uronode-2.8.1/systemd/

A sort list what to do.

- copy the SystemD files into /lib/systemd/system
- run: systemctl enable uronode
- run: chkconfig uronode on
- run: systemctl daemon-reload
- in /etc/xinetd.d/uronode (or node) set disable to yes
  (or comment out your line in /etc/inetd.conf)
- run: systemctl restart xinetd
- reboot

The systemd files unit files


Description = URONode Server
Requires = uronode.socket
After=syslog.target network.target

ExecStartPre=systemctl start uronode.socket
ExecStartPost=systemctl restart uronode.socket

Also = uronode.socket
WantedBy = multi-user.target
WantedBy = network.target

The uronode.socket


Description=URONode Server Activation Socket



The [email protected]

/uronode-2.8.1/systemd/[email protected]

Description = URONode Server
Requires = uronode.socket
After=syslog.target network.target


Also = uronode.socket
WantedBy = multi-user.target
WantedBy = network.target

You can also start the ax25 system with Systemd.

Copy the ax25.system file /uronode2.8.1/systemd to the /lib/systemd/system directory

Description=ax25 service
After=network.target syslog.target

ExecStart=/usr/local/bin/ax25 start
ExecReload=/usr/local/bin/ax25 restart
ExecStop =/usr/local/bin/ax25 stop

systemctl enable ax25.system
systemctl daemon-reload
systemctl start ax25


Forward from linbpq through uronode to fbb.

There were some problems getting the forward from linbpq through a uronode to a linfbb bbs. I spent a while testing to see if we could get things going. It actually works pretty well.

I have add the following connection script to linbpq

C 3694 NEEDLF PI8LAP pi8lap BBS

ATT 3 stands for attach port 3, and port 3 is in my system the telnet port.

Furthermore, in uronode.conf I have created an Alias with the name BBS. So if the command BBS is given in uronode, you will be connected with linfbb.

Alias           BBS     "c pi8lap"

We can test whether the forward script does what it is supposed to do. Let’s start the forward in Linbpq.

Log file of Linbpq

171209 05:36:28 >PI8LAP    ATT 3
171209 05:36:28 <PI8LAP    LAPBPQ:PI1LAP-9} Ok
171209 05:36:28 >PI8LAP    C 3694 NEEDLF PI8LAP pi8lap BBS
171209 05:36:28 <PI8LAP    *** Connected to Server
171209 05:36:28 <PI8LAP    ��"(uro.pd2lt.ampr.org:uronode) login: *** Password required!
171209 05:36:28 <PI8LAP    If you don't have a password please mail
171209 05:36:28 <PI8LAP    pd2lt (@) packet-radio.net for a password you wish to use.
171209 05:36:28 <PI8LAP    Password: ��^A��^A
171209 05:36:28 <PI8LAP    [URONode v2.8.1]
171209 05:36:28 <PI8LAP    Welcome pi8lap to the uro.pd2lt.ampr.org packet shell.
171209 05:36:28 <PI8LAP    Network node PI1LAP is located in Kortgene, Zeeland, JO11VN Regio 33
171209 05:36:28 <PI8LAP
171209 05:36:28 <PI8LAP    https://packet-radio.net / [email protected]
171209 05:36:28 <PI8LAP
171209 05:36:28 <PI8LAP    {BBS}  Linfbb V7.0.8-beta4 (pi8lap)
171209 05:36:28 <PI8LAP    {DX}   DXSpider V1.55 build 0.196 (pi1lap-4)
171209 05:36:28 <PI8LAP    {FPac} Fpac node 4.0.0 (pi1lap-7)
171209 05:36:28 <PI8LAP    {JNos} Jnos2.0k1 (pd2lt)
171209 05:36:28 <PI8LAP    {Xnet} Xnet v1.39 (pi1lap)
171209 05:36:28 <PI8LAP    {RMS}  Winlink Gateway 2.4.0-182 (pi1lap-10)
171209 05:36:28 <PI8LAP    {BPQ}  Linbpq (pi1lap-9)
171209 05:36:28 <PI8LAP    {CHat} Linbpq chat (pi1lap-6)
171209 05:36:28 <PI8LAP    {COnv} WWconvers saup-1.62a
171209 05:36:28 <PI8LAP
171209 05:36:28 <PI8LAP    [email protected]: Trying pi8lap ... <Enter> aborts.
171209 05:36:28 <PI8LAP    *** connected to pi8lap
171209 05:36:29 <PI8LAP    [FBB-7.0.8-AB1FHMRX$]
171209 05:36:29 <PI8LAP    Hallo Niels, welkom.
171209 05:36:29 <PI8LAP    1:PI8LAP-BBS>
171209 05:36:29 >PI8LAP    [BPQ-$]
171209 05:36:29 >PI8LAP    FF

Okay looks good.

axMail admin util “spamblock”

There is a spamblock util for axMail. It’s handy to block spam.
Here can you get the program.


Read the INSTALL file carefully. If you do not have the line smtpd_client_restrictions in your main.cf you need to add it.

The complete rule is ….

smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

Let test the program.

[email protected]:/usr/local/src/spamblock# ./spamblock
What ip or block do you wish to deny?
[info] Adding to your postfix access file....
postfix/postfix-script: refreshing the Postfix mail system
[ ok ] Block for: is in place.

Now let test if you can send mail by postfix.

'pd2lt (@) zeelandnet.nl' op 7-12-2017 7:37
            554 5.7.1 <test.packet-radio.net[]>: 
                           Client host rejected: Access denied

Okay that just work quit well. Have a look in the file /etc/postfix/access     REJECT     REJECT     REJECT     REJECT

Delete the last line if you want to send e-mail. And “postfix reload”

For those running axMail-FAX, I have created an admin script I call
spamblock. This creates a filter list within postfix of who you wish to
connect to you and who NOT to connect to you. 

Especially this time of year spammers are at their worst trying to see
you their grandmother to make a small coin... most of which is simply
junk and abuse of bandwidth YOU pay for. Also, if  you run axMail in a
location who's rules are extremely strict about financial transactions
on ham radio this will also help protect your users as well as yourself
against unlawful communications.

Instructions are in the INSTALL file. I strongly urge  you to add blocks
through whois lookups rather than single IPs as spammers tend to open up
several servers within a data center so capturing their block protects
you that much more. I'm of the mindset that any data center or block
that has a spammer on it doesn't deserve the right to send me junk
mail... and MY expense of bandwidth.


Uronode update version 2.8.1

Brian n1uro just released a minor update. To correct some issues.

Download https://sourceforge.net/projects/uronode/files/latest/download

12/07/2017 v2.8.1
Spotted and fixed an issue in the D command within router.c that I somehow
introduced in regards to columns not equalling a full 4x4. Locally it
didn't show but remotely it did. When one ran a D command and there were less
than 4 columns a carriage return/new line was not sent making the user's
screen look "stuck" when in fact it was not. Fixed!.. before bugs were
reported :)

Bugs i love bugs.