-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathchanges.txt
More file actions
3756 lines (2556 loc) · 171 KB
/
Copy pathchanges.txt
File metadata and controls
3756 lines (2556 loc) · 171 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Refresh this page on every visit to ensure you get the latest information.
I try to update the latest documentation project when time permits :
https://www.langelaar.net/jnos2/documents/j2addendum.txt
The latest version of it is also present in the rsync area (needs updating)
May 20, 2022
------------
I never liked the fact I had no record of messages sent from the BBS prompt,
so finally decided to write code to append all sent messages to local file :
$JNOS/spool/mail/<callsign>_s.txt
The cool thing about this is that it's just another mailbox file, so you can
now change to the area from the BBS prompt, and see all your sent messages,
and use Read, Verbose, SC, SF, KM, whatever commands, on them just like you
would with your regular mailbox or any other BBS area you interact with :
JNOS (ve4klm)
login: ve4klm
Password:
[JNOS-2.0n.dev-B1FHIM$]
You have 2 messages - 1 new.
(#1) >
ar ve4klm_s
ve4klm_s: 2 messages - 2 new.
(#1) >
TODO : Already thinking perhaps 'ar sent' would be better ?
(where the sent implies <callsign>_s type of thing)
This might require some tweaking of headers, or maybe not. Let me know if you
run into any problems. It's mostly the indexing I want to be sure is working.
If you want to try this, follow the instructions from May 14 further down,
and note the following additions to those instructions :
add -DJ2_FILESENTMSGS to the makefile
cp hlrevamp2022/mboxmail.c .
For N2NOV - you have to add the following for your lower case BID fix :
add -DN2NOV_REQUESTED
May 14, 2022
------------
I am retracting instructions from May 6, they're not clear, and things break,
so here's an update for those interested in using the new smtp MIME support,
and snmpd enhancements if they want - the heard code is not ready right now,
so do NOT copy the entire hlrevamp2022 subdirectory over at this time.
I am putting together a new release, JNOS 2.0n.dev, available via RSYNC.
The new features are detailed further below, but here are the instructions
you will need to follow to incorporate smtp MIME support and snmpd mods :
cd < whatever your build directory is >
rsync -av www.langelaar.net::jnos2 .
# note a new version 2.0n.dev
cp hlrevamp2022/version.c .
cp hlrevamp2022/smtpserv.c .
# this kludge is only Charles, lowercase BID on SB fix ?
cp KLUDGE_CH_mboxmail.c mboxmail.c
cp hlrevamp2022/mailutil.h .
cp hlrevamp2022/j2base64.c .
cp hlrevamp2022/files.c .
# mods requested by Mark, but anyone can use these
cp hlrevamp2022/snmpd.c .
edit your existing makefile :
1) Look for the 'UNIX=' section, add j2base64.o as below :
j2tmpnam.o getusage.o j2KLMlists.o j2strings.o j2base36.o \
activeBID.o j2base64.o
2) Make sure you PATCHES section looks as below :
PATCHES = -fsigned-char -DKLM_MAILIT_MIMEAWARE
make clean
./configure
make
1) Dealing with MIME encoded incoming mail
---------------------------------------
The JNOS smtp server is now MIME aware when delivering to local mail areas.
IF you choose to enable this feature, any MIME content is now processed,
attachments are saved to user paths taken from ftpusers file, any base64
encoded content is decoded, so when a user checks their mail, all they
should see is text/plain and text/html, the rest will be references to
any saved attachments. The text/hmtl probably should go elsewhere, but
for now, this is how it all works. It will evolve as time permits.
To enable this feature, edit your makefile, and add :
-DKLM_MAILIT_MIMEAWARE
to the end of the PATCHES variable, in other words :
PATCHES = -fsigned-char -DKLM_MAILIT_MIMEAWARE
Warning - this alters the BODY (not the headers) of how the incoming mail
will appear to the user. If you plan on forwarding your local mail areas
to other systems, any referred attachments will obviously not make it to
the remote systems you forward with - I hope that makes sense.
A couple of sysops have already told me they are happy with that :]
I will add another option for those that do NOT want the mail areas to
be processed by smtp, and would rather just have a mime decode version
of the RM (read message) and V (verbose message) commands.
Having said that, another thing to consider is if you use an email client,
like thunderbird, then having the SMTP processing MIME will not be great,
since you will no longer be able to directly access the attachments.
This is most certainly a work in progress, but it seems to work.
2) Some improvements to SNMP server
--------------------------------
Added 2 more MIBS for sysLocation and sysContact.
JNOS should now send a proper NoSuchName (NoSuchObject) response for any
queries for MIBS that do not exist in the JNOS implementation, replacing
the previous behaviour of always responding with sysName.0 (hostname) if
a requested MIB could not be found or wasn't supported.
NOTE : snmpwalk only works for ifName and ifDesc (nothing else) ...
The usage (help) dialogue for the snmp command is now read from file,
using my recent getusage() functions - /jnos/usage/snmp.txt for most
configurations, you can find this file under usage subdirectory from
your rsync session. Here is the new syntax for snmp commands :
JNOS 2.0 - SNMP Configuration
snmp ifaces list all ports in numerical index form
snmp ro community [ipaddr pattern]*
NOTE : if you do NOT specify an ipaddr pattern, then ANYONE is allowed
snmp sysLocation [any text]
snmp sysContact [any text]
3) Multiple heard lists for individual ax25 ports
----------------------------------------------
This is VERY experimental, introducing the concept of multiples heard lists for
individual ports, with the ability to switch between them on the fly, for cases
where you might be switching frequencies or bands throughout the day, like I do,
but wanting stations heard on specific bands, kept in the separate heard lists.
This is NOT ready for general use - I'm just documenting, so I don't forget :]
The switching of heard lists will be confusing to the user right now, so needs
a bit more work - example of new subcommand :
ax25 h new=17m rp0 create or switch to an already created heard
list called '17m' for port rp0
To switch back to very original heard list for port rp0, you would do :
ax25 h new=rp0 rp0
Confusing, yes, so trying to figure out a better syntax, and there is still
a few glitches when switching heard lists, it's not working quite right ...
To enable this feature, edit your makefile, and add :
-DKLM_HLREVAMP_2022
to the end of the PATCHES variable, in other words :
PATCHES = -fsigned-char -DKLM_HLREVAMP_2022 -DKLM_MAILIT_MIMEAWARE
January 3, 2022
---------------
- Modified configure script to not allow the following define in config.h :
#define SPEED_UP_TICK
This was a badly thought out idea, and breaks timers and stuff, don't use it.
(not in present form anyways, was experimental from 2013, might revisit)
Modified makefile, simply to match the configure script version.
changes to Web Based User BBS interface - November 25, 2021
-----------------------------------------------------------
- This now works with apache (mod_proxy module) to give you full protection
of https during your web sessions with the JNOS httpvnc server. Download
the latest 'bbs10000.c' source file from the official rsync site, then :
Add the following directorive to your config.h :
#define APACHE_MOD_PROXY_BBS10000
Then recompile as follows :
rm bbs10000.o ; make
For the apache server side, add the following to your httpd.conf :
ProxyPass "/jnosbbs" "http://192.168.4.201:10000"
ProxyPassReverse "/jnosbbs" "http://192.168.4.201:10000"
You would place these inside of your *:443 virtual host definition, then
restart your apache server - that's what I do on my systems anyways ...
Then I can securely access my httpvnc sessions as follows :
https://www.langelaar.net/jnosbbs
- Comments and Caveats
Do NOT run multiple web sessions (for different users) to your httpvnc site
if any of them are on the same IP address as the others (ie, you might have
a group of users all behind the same firewall router). What happens is that
after the first user logs in, anyone else who tries to do so will actually
see (without login) the initial users interactions. That's because JNOS at
present can only depend on IP address to distinguish sessions. That is not
a huge problem IMHO - as long as you are aware of it.
The above applies regardless of whether you use mod_proxy or not !
For mod_proxy, JNOS uses the HTTP header 'X-Forwarded-For' to track the
actual IP address of connecting web clients.
Do NOT use the perl tcp proxy server I mentioned before, since there is
no way for it to provide a unique IP address, unless you happen to find
one that inserts the HTTP header I mentioned above.
IF you compile the mod_proxy feature, then httpvnc will only work through
apache, you can't have mod_proxy and regular working at the same time, so
it's either mod_proxy for all access or regular for all access, not both.
Why ? Because I have not figured out how to Rewrite Headers in httpd.conf
yet, so the code modification earlier does that for me. Once I figure it
out, then we can ditch the #define mentioned earlier, and run both modes
of apache (https) and usual (http) direct to JNOS at the same time :]
differences between 2.0m.5Gz and 2.0m.5Gx - September 12, 2021
--------------------------------------------------------------
September 12
- The VARA code now has an Access Mode, successfully able to B2F forward
with a Winlink Express client running in VARA HF P2P, and the PPP over
VARA is working 95% as well, latency is not great, but it does work.
I've had some discussions with the author of VARA (Jose) and now have a
much better understanding of why this is. At the end of the day, PPP over
VARA is not great, and certainly not the most efficient way to use VARA.
I have put together 3 demos (with video), so you can actually see this stuff
in action, instead of just hearing me talk about it. The links to the videos
are on the official JNOS 2.0 page, but here they are too :
"jnos forwarding with winlink express over vara"
https://www.langelaar.net/jnos2/vara/demo.html
"jnos to jnos IP Bridge using PPP over vara"
https://www.langelaar.net/jnos2/vara/demoIPbridge.html
"jnos ftp session over IP Bridge using PPP over vara"
https://www.langelaar.net/jnos2/vara/demoFTP.html
The PPP was a good and informative experiment, but I need to rethink it ...
files updated : forward.c, ppp.c, vara.c, version.c, vara.nos
Please email if you encounter ANY problems, thank you
(maiko@pcs.mb.ca)
For the new access mode (forwarding), please refer to the j2addendum.txt
documention, for any of the IP Bridge stuff, I have updated the document
called "VARA Software Modem Support" to reflect changes since January.
Note : The IP Bridge (PPP) feature now requires this extra command :
varacmd ipbridge
final fixes and additions to 2.0m.5Gx as of July 15, 2021
---------------------------------------------------------
July 15
- by request, the ability to run a script of commands on a remote system,
and log the results to file. Instead of reinventing the wheel, this new
feature has been made part of the forward.bbs mechanism - so any 'area'
defined in 'spool/forward.bbs' which ends with '_script' is treated as
a remote command and log sequence, with no forwarding actually done.
For example, I want to collect NETROM routing info from a couple of my
forwarding partners, N2NOV runs JNOS and K5DAT runs BPQ. In JNOS a bbs
user uses NR to display netrom routing, in BPQ they would use RO. I've
got the following 2 script entries defined in my forward.bbs file :
-------
n2nov_script
ax25 newyork n2nov-4
.nr
+>
*5
-------
k5dat_script
net k5dat-7
.ro
+>
*10
-------
This is just like any forwarding sequence, where I can just do a :
mbox ki N2nov_script
and/or
mbox ki K5dat_script
Note the capitalized first letter of 'area', since there will never be
any mail to deliver with these scripts, or you could always add a poll
option to the 'area' line and not worry about the capitalization.
Also note the lack of any message areas in the script definitions, it's
all pure commands, and waiting for results. Hopefully people find it to
be somewhat useful, we can certaintly build on it, feedback is welcome.
The output file generated each time is 'area'.dat, for example :
n2nov_script.dat, k5data_script.dat
- the previous newfiltercode subdirectory is gone, it's all part of the
main rsync now, for any of you wondering what happened to it, thanks.
July 2
- Removed a line of code I put in from 2015, where I was trying to support
the '!' or 'A' FSR character in any FS string sent by a remote BBS during
a forward session. It was a half hazardly attempt, resulting in possible
corruption of index files for the areas involved in the 'Restart Data'
situation. Typically one had to 'index <area>' to get things working
again. So now, all JNOS does is extract the offset, nothing more.
I need (want) to get this done and over with, it's been left for way too
long, in the meantime I strongly encourage everyone to update please.
NOTE : the update only exists in the rsync newfiltercode subdirectory,
which will get moved into the main release at a later date.
June 25
- Fixed a problem where if a user for example tries to 'sb all@ww' at the JNOS bbs
prompt, and you have user specific rules defined in your rewrite file, the posts
will be rewritten to the first user specific rule found. This is not good at all,
but I have fixed the problem. There is an updated mailutil.c source file in
the rsync newfiltercode subdirectory.
June 18
- By request, NEW capability in the rewrite file. One can now have entries
targeting (such a bad word) specific users / stations. In other words one
can now add entries that apply to only a FROM <pattern>, for example :
*@ww:ve4klm hold
*@ww ww
This allows ALL incoming @ww to the ww area, but any @ww coming from me
is actually sent to the hold area instead. Or you could just refuse any
@ww coming from me, for example :
*@ww:ve4klm refuse
*@ww ww
In the case of refuse, it is rejected right when the proposal appears.
What is new is the addition of the ':' tag, followed by a PATTERN to
match in the FROM field of the incoming message (no spaces). Yes, it
is a pattern, not a direct callsign match, sort of a wildcard ...
You can get the test code from the rsync area as follows :
rsync -av www.langelaar.net::jnos2/newfiltercode
June 16
- nntpserv.c now contains the latest stability fixes
AND to appease the NNTP police out there ...
JNOS is getting LOTS of flack due to a recent NNTP incident where internet
grade foul language and some very inappropriate content was channeled into
the packet network, so I have modified the code such that JNOS will only
allow connections to NNTP servers on the 44 network.
This is supposedly 'to protect sysops from themselves' - not my words and
not necessarily my choice, but I am really tired of this crap, maybe more
so the 'software wars type exchanges' that ensued because of it ...
At the end of the day - we ALL make mistakes, enough said !
June 15
- Yesterday, Bob Bruninga WB4APR was kind enough to add an entry for
the NOSaprs module of JNOS 2.0 to his 'tocall' list maintained at :
http://aprs.org/aprs11/tocalls.txt
NOSaprs is now 'assigned' APN2XX, with APZ200 noted as being used by
older versions of JNOS. It's been quite some time since NOSaprs was
introduced, so it's not really experimental anymore.
Thank you Janusz HF1L (ex.SP1LOP) for suggesting this change.
The APZ200 in aprs.h is now set to APN20H
IF you have routing for 'apz200', make sure you change the apz200 to
the new 'apn20h' AFTER you have the new source in place. YES, if you
use NOSaprs to TX, use 'ax25 route' to set the APRS path, example :
# 30Dec2020, So K4KPN-10 will catch it and pass it on further
ax25 route add apz200 rp0 WIDE1-1
June 7
- stability fixes to NNTPSERV, test code -> nntpserv_stability_fix.c
(copy to nntpserv.c, then 'make', feel free to send me JNOS logs)
NOTE : only applies if you have #define NNTPS in your config.h
May 27
- the ax25 heard save/load functionality now includes the ax25 destinations
and the ax25 digipeated stations heard lists. The save file from the last
mod can be safely loaded with this mod - you simply won't see the 2 lists
mentioned above of course. Files changed are axheard.c and axhsort.c
You 'could' add these commands to the very end of your autoexec.nos :
# 21May2021, Load the last saved heard lists
ax25 heard load /tmp/newsaveit.txt
# 21May2021, save heard lists every 15 minutes from this moment on
at now+0015 "ax25 heard save /tmp/newsaveit.txt+"
- warning, the use of '?' in rewrite will most probably crash JNOS, not sure
why anyone would use it there. IF you do, please educate me - thank you.
May 20
- stability fix to the AT functions in at.c - fixed potential for memory
corruption in the AT entry list, which can trigger JNOS locking up and
going into an endless loop, also added loop protection (experimental),
to prevent JNOS from locking up - it really should not happen now ...
- some BPQ systems are presenting B2F in the SID, which will cause problems,
since I only wrote the B2F code for Winlink (mostly CMS) interactions, so
what I have done is modified mboxmail.c to downgrade these connections to
use B1F instead, until such time I get it properly working and tested.
- fixed ax25cmd.c, the compile will fail if '#undef BACKUP_AXHEARD'.
May 10
- modified multipsk software modem driver as I did agwpe and winrpr below.
May 7
- fixed 'endless sockets' bug in agwpe and winrpr software modem drivers.
added 'backing off' of logged failed software modem connects for awgpe.
- brand new 'date' command at JNOS console, updated reportRPR.nos script.
(previous version of script used 'sh date' which creates zombies)
differences between 2.0m.5Gx and 2.0m.5G - April 18, 2021
---------------------------------------------------------
1) ax25 heard has been 'revamped', new 'heard via digipeater' feature,
so that you can actually see stations not directly heard, I created
this due to my crazy obsession with Robust Packet lately and seeing
all the APRS frames coming in on 30 meters, many via K4KPN-10, nice
to know who else you can QSO with (indirectly), really liking this.
the save/load functionality improved, you can specify save and load
file now, and times are FINALLY accurate on load, this took a lot of
effort, but worth it in the end I think. I have NOT included saving
of the latest digipeater heard list (yet), that will be next time.
WARNING : the heard file from previous versions of JNOS will NOT work
with this version, unless you modify the file, add a second
time stamp to the first line of the file, indicating uptime
of the previous JNOS at the time you saved the heard file.
To be honest ? I hated the introduction of the 'show' subcommand, so
the original 'ax25 h <iface>' is back and will stay that way ...
command help dialogue now taken from a NEW usage/ax25/heard.txt file
(create new /jnos/usage/ax25 directory, copy heard.txt over to it)
there is a sample JNOS script 'reportRPR.nos' if you are interested :]
(it has a problem though, it creates one defunct processes per run, so
you might not want to use it a lot - I need to fix JNOS shell command)
I have NOT updated j2addendum.txt (yet)
2) The VARA IP Bride code now included, no need to extract the tar file anymore
#define EA5HVK_VARA
#define PPP
#define REMOTE_RTS_PTT (an option if you have no VOX control)
Going to try again to write VARA for access mode, because quite honestly
so far it seems to be the only way it's being used, very integrated into
the winlink system as well by the looks of it ...
differences between 2.0m.5G and 2.0m.4 - April 1, 2021
------------------------------------------------------
1) Basic DNS malformed packet protection, better error checks and logging,
bumped up stack size of DNS procs, this fix alone will add significant
stability to people reporting JNOS crashing (from DNS attacks).
2) Got a few reports of longer hex values showing up when running the console
commands like 'ax25 status', 'tcp status', 'netrom status', however when it
was required to 'kick' or 'reset' by hex value, JNOS would report the call
back as not valid, preventing people from being able to do such things.
The fix was fairly easy, replacing htoi() calls with htol() instead.
3) Robust Packet Interface (KISS over TCP/IP) to WinRPR Software Modem
4) VARA IP Bridge Interface (TCP/IP) to EA5HVK VARA Software Modem
As documented, you need to extract the source from varadev.tar. This
is because the current vara code hardcodes some things in PPP source
which I have not finalized at release time. Applying the VARA source
will break any serial PPP configurations you may have running.
Chances are nobody is using PPP with JNOS anymore, but I need to be sure :]
5) This update sees the addition of DUPE protection for concurrent forwarding
sessions from multiple remote hosts, where messages having the same BID are
coming in from multiple sources, seconds of each other, even within minutes
of each other in some cases. It should be noted that up till now, JNOS has
always been vunerable to this, resulting in posting of duplicate messages,
which in turn get forwarded to other systems, which is just not good.
The solution up till now has been to stagger forwards with remote partners,
such that only one partner is forwarding at any particular time. With this
new feature, we can loosen things up a bit more, and not worry about it.
Excess messages get deferred (not refused), since we might need them later.
6) The BID for messages from 'our host' is now in BASE36 format, giving us
a much bigger range of several million numbers, instead of the original
range of 99999 and then start over again.
If you use an email client (like thunderbird) to send messages to your
JNOS system, you'll notice this version no longer uses a portion of the
long message-id present in the email header to generate the BID, rather
it will just create another BASE36 BID from JNOS sequence number pool.
I figure it is perfectly fine to do this now, since BASE36 extends the
range of the BID to several million. The original message-id is still
preserved in the message header anyways, so nothing is lost here.
7) Protection from getting 2 UA frames after we send a SABM frame, resulting
in a terribly vicious loop, like a DOS attack, rare scenario encountered,
some time ago, where the remote software (based on linux ax25 stack) went
nuts on some of us. Possible ax25 libs were updated, but the software on
the other end not compiled in a long time and running old libs ? We will
never know to be honest, but the situation was very real, yup.
8) Very basic implementation of Multi Factor Authentication (MFA) - why not ?
(note this is very much a prototype, and needs to evolve over time)
9) Important changes to the JNOS httpvnc (web based user BBS) service
Now using POST instead of GET in the form submission, so you won't be
seeing any user credentials and commands in the URL anywmore, it's all
hidden in the message body now. The original version had user callsign
and password exposed in the URL which was just bad, but my knowledge of
HTTP programming was quite limited at the time I wrote the original
prototype, so really it is a huge security improvment.
NOTE : Data is still cleartext over your network since this is HTTP ...
This version also quickly shuts down those annoying and bandwidth consuming
favicon http requests that firefox likes to send out in huge volumes, yeah.
Added a CTRL-A checkbox so a user can abort any SEND (SP, SR, SB) commands.
Made adjustments to timeout values in the code, removed some pwait() calls
which didn't seem necessary anymore, and now setting the 'Server:' field in
the HTTP response header to reflect the more recent JNOS version 2.0m ...
Cleaned up debugging and general logging to the JNOS logfile.
10) Important changes to the SID Capture feature.
The original prototype was written more to help me debug stuff at the time,
but I figured it might come in handy for others, but the last enhancements
actually were not really great. In the interest of getting more information
about the hosts connecting to us, the focus on the connecting callsign was
lost, the information displayed was confusing, you had no idea who the call
was in many cases, and it turns out in the end that I introduced bugs into
the code, so the information at times was even wrong here and there.
This new version has a much better user friendly layout, being more in line
with what I originally wanted to do way back then. Now you get the callsign,
the time of connect, the full SID sent to us, and connection details, as in
was this a netrom connect, a radio port, a wormhole, telnet connect, etc ?
For example, on the JNOS console of my development system :
jnos> mbox sid > /tmp/sid8.txt
Then from the linux prompt, I can retrieve the content as follows :
root@slackware:/jnos/src/dev_2.0m.4# more /tmp/sid8.txt
[FBB-7.0.10-AB1FHMRX$]
gb7cip 20:06:02 GB7CIP @ GB7CIP
[JNOS-2.0.6.URO.C-B1FHIM$]
ve3cgh 11:37:17 ve3cgh.ampr.org
[TNOS-3.00-FHIMW$]
ve2har 18:57:57 VE2HAR-8 @ VE2HAR-9
[FBB-7.05G-AB1FHM$]
ve2pkt 17:47:34 VE2PKT @ VE2PKT
[OPENBCM-1.08-5-G2F4A-AB1D1FHMRW$]
i0ojj 20:15:10 host-79-52-228-200.retail.telecomitalia.it
[JNOS-2.0M-B1FHIM$]
ve3tok 20:24:55 port.ve3mch.ampr.org
[JNOS-2.0M.5C-B1FHIM$]
n2nov 20:25:21 N2NOV-4 on port newyork
ve3cgr 17:58:20 jnos.ve3cgr.ampr.org
aa6hf 20:24:03 AA6HF-8 on port cal
i0ojj 20:13:19 i0ojj.ampr.org
[BPQ-6.0.20.10-B1FIHJM$]
va3tok 20:14:05 linux.ve3mch.ampr.org
[JNOS-2.0M.5B-B1FHIM$]
n2nov 18:09:25 1d N2NOV-4 on port newyork
[FBB-7.07-AB1FHM$]
ve3tok 20:11:25 linux.ve3mch.ampr.org
[WL2K-5.0-B2FWIHJM$]
wl2k 03:39:54 1d winlink-lb-628697408.us-east-1.elb.amazonaws.com
11) Security - make sure you configure users in ftpusers with BBS permissions
only for stations you have authorized incoming forwarding with. This will
protect against rogue or ignorant incoming connects from any stations who
could then proceed to send a SID, possibly followed by illegal 3rd party
forwarding or forwarding of malicious messages.
for BBS permissions OR 0x02000 - so 0x0407f in ftpusers becomes 0x0607f
Up till now, JNOS has always allowed this, but now JNOS will send a terse
message to the 'offending' station first, instead of the SID, disrupting
the message flow - it might require some refinement, let me know please.
These events are also logged to the JNOS logfile.
IF this feature causes you grief, then disable it in config.h with :
#define J2_DONT_ENFORCE_BBS_USER
12) Added EHLO support to SMTP server. I discovered this by accident when my
android email app refused to talk to my JNOS, so tcpdump showed me exactly
the problem, easy enough to add the command. Quite honestly, I thought it
was there already, oops :|
13) Instead of hardcoding NETROM parameters, I know several folks have had it
done, please consider using the following NEW commands in autoexec.nos :
netrom obsoinit <value> default is 6, for NEDA use 5
netrom obsominbc <value> default is 5, for NEDA use 3
Same with acktime, use the EXISTING command instead of hardcoding it :
netrom acktime <value> default is 3000, for NEDA (?)
14) Couple of 'stability' mods to netrom code.
15) Better error logging during saving of the BID to the history file.
16) Removed first column (gateway ip address) from the 'genencaptxt' file.
(now it matches the exact same format as a real encap.txt)
17) If you are running two systems with the same Call Sign
Please consider staggering your sequence numbers, since the sequence number
pool is now into the several million range, not constrained to the old 1 to
99999 and back. For example, in my /jnos/spool/mqueue/sequence.seq, I reset
the value to 16801420, which starts my base36 bid at ANNNN, way ahead.
If anyone sees a flaw in this, please talk to me :]
Not so sure one should be running multi BBS with same callsigns, but ...
18) Some tweaks to APRS code, for instance making sure to remove trailing 0xc0
characters from the end of APRS data coming in via a WinRPR interface, and
also breaking out callsign list management routines - which are no longer
specific to the APRS aspect of JNOS, also used for IP access and Winlink
call lists, so they got moved to the new j2KLMlists.[ch] source files.
19) Fixed some more compiler and linker warnings, some dependant on how one
modified their config.h file - originally these never would have showed
for the more standard configurations (if there is such a thing). I also
added some TNODE 'mods' from Brian (N1URO).
20) Important for ARM processors, the makefile now FORCES signed char, the
reason being the linux version of JNOS always assumed signed char, but
this is a big problem for ARM and Raspberry PI based hardware, which
actually assumes unsigned char intead - more efficient apparently.
So BEFORE this got enforced, PI users were complaining about all sorts
of strange behavior with JNOS and/or outright continuous crashing ...
21) How to update your JNOS 2.0m.4 system (or just compile fresh)
WARNING : only apply this update on 2.0m.4 systems, nothing earlier !
Run rsync on your source tree like you usually would, for example :
cd <your JNOS source>
rsync -av www.langelaar.net::jnos2 .
Note the following new possibilities for your config.h file :
#define WINRPR /* kiss over tcp/ip interface to WinRPR */
#define J2MFA /* prototoype multi factor authentication */
#define TNODE /* Brian's TNODE mods */
#define J2_DONT_ENFORCE_BBS_USER /* use only if it gives you grief */
#define EA5HVK_VARA /* ip bridge tcp/ip interface for VARA */
Hopefully I have not missed anything (sorry), then compile as usual :
make clean
./configure
make
22) No more patch files, all moved into a patches subdirectory again ...
(the README files in some of them might come in handy, who knows)
no more patching required AND check for RDATECLI in config.h - August 21, 2020
------------------------------------------------------------------------------
1) The rsync area is now @ version 2.0m.4 - no more patching required !
All 4 patch files since 2.0m have been moved to a new patches subdirectory,
and simply there for historic reasons now, NO need to extract them anymore.
Keep this in mind when you go over the 'differences' further below.
One important item that I forgot to add to the configure script, was to
check if the existing config.h has #define RDATECLI and if so, warn the
user they need to #undef RDATECLI instead - the reason for this is that
the stime() function no longer exists in the more recent gcc versions.
As a result, you may get an unresolved reference to stime() during the
linkage portion of the compile. It isn't a simple change, and since we
already have 'ntpd' on the linux side, there is no point in supporting
the JNOS 'rdate' command anymore. So please check your config.h file.
differences between 2.0m.4 and 2.0m.3 - August 3, 2020
------------------------------------------------------
1) This is a patch to put on top of JNOS 2.0m.3 and strictly deals with
a couple of compiler and linker problems when using gcc version 10.
Thanks to Kayne (N9SEO) for reporting this on Manjaro linux.
2) How to update your existing version 2.0m.3 installation :
#
# you don't have to patch anymore as of August 20, 2020
# WARNING : your existing source MUST be at version 2.0m.3 !
#
cd < your jnos source directory >
rsync -av www.langelaar.net::jnos2 .
#
# you don't have to patch anymore as of August 20, 2020
# tar xvzf jnos_2.0m.4_patch.tar.gz
#
# BUT check your config.h - make sure you have #undef RDATECLI
make clean
./configure
make
cleaning up the JNOS 2.0 installer and documentation for it, July 8, 2020
--------------------------------------------------------------------------
1) removed 'jnosinstaller.c' and the 'installerv2.1' subdirectory from the
rsync area, replacing them with a new installerv2.2.tar.gz package.
The documentation and links have been redone for the updated JNOS installer
on the official JNOS 2.0 website, it should be much less hassle to use, and
you can once again download it from the installer page as well.
The installer no longer ships with a generic JNOS binary, it now comes
with a dummy JNOS (script) basically telling you to compile your own.
NOTE : the makefile will still try to compile the jnosinstaller, just
ignore that for now, I will remove it on the next JNOS update.
The installer is very simplistic, perhaps primitive. The whole idea behind
it was just to give new JNOS people something to start with, letting them
build on the autoexec.nos and such - I hope it is of use to some of you.
differences between 2.0m.3 and 2.0m - July 5, 2020
--------------------------------------------------
1) JNOS can now download messages for multiple Winlink User Accounts
All winlink calls are now configured in one command, for example :
mbox winlinkcalls VE4KLM VE4PKT VE4NOD
Here, VE4KLM is my JNOS winlink account, and VE4PKT and VE4NOD are
the other user accounts for which I want to download messages for.
Of course the other user accounts are optional and not required.
You must create a JNOS winlink user account for each user you wish
to download messages for - example in my case I would do this :
./jnospwmgr -a ve4klm -w
./jnospwmgr -a ve4pkt -w
./jnospwmgr -a ve4nod -w
Note, I have pluralized the original 'mbox winlinkcall call' command.
2) JNOS 2.0 Log Triggers - this is new code which gives JNOS the ability to
run commands based on what it sees in the main log file - in real time.
a) notify me 'instantly' if Ron's system times out during a session
log trigger add "VE3CGR&timed out&" "mailmsg ve4klm \"ve3cgr timeout\""
this looks for 2 phrases "VE3CGR" AND "timed out" and invokes the
JNOS mailmsg console command to email me saying we've timed out.
note the use of & for BOTH phrase, it's case sensitive (currently), and
also note you can include spaces in a phrase. The command only happens
if BOTH phrases match !
b) run a shell script if any particular words show up in the log
log trigger add "error|warning|WARNING|" "sh ./notifyme.sh"
this looks for 3 phrases "error" OR "warning" OR "WARNING" and runs
the shell script 'notifyme.sh'. The script will run if ANY single
phrases is matched.
At present you can NOT mix use of the '&' and '|' operators.
If you have only one phrase, you still need to terminate with an operator,
either one will do. The whole matching algorithm needs work, stay tuned.
Documentation could be better, but the examples should help for now.
(just enter 'log' at JNOS console for usage information)
3) Moving away from hard coded usage() functions for JNOS console commands.
This opens up the door for users to customize the usage dialogue to their
own needs, including writing them in different languages. The plan is to
also add control codes for paging, color, and so on down the road.
Note there is a new 'usage' subdirectory in the rsync area, and I will be
adding files to it as each release comes up. Just 'cp -r usage /jnos/usage'
or copy them to whatever your JNOS root directory happens to be.
4) You can now Save and Load the axheard list, to and from file. I felt it was
important to keep the new commands within the 'ax25 heard' context, so I've
changed the syntax over previous versions of JNOS and it's now this :
jnos> ax25 heard
Usage : ax heard < show | dest > [<iface>]
ax heard < save | load >
The filename is 'AxHeardFile' right now, will make it more flexible later.
This is very experimental. The time stamp on the load might be off in
certain cases. Would it be useful to have a Save and Load per iface ?
5) I have enhanced the information available in the SID capture feature.
6) The makefile now enforces the compiler option '-fsigned-char' so if
you're running a PI or any ARM based system, it should be okay now.
7) How to update your existing version 2.0m or later installation :
#
# you don't have to patch anymore as of August 20, 2020
# WARNING : your existing source MUST be at version 2.0m or later !
#
cd < your jnos source directory >
rsync -av www.langelaar.net::jnos2 .
#
# you don't have to patch anymore as of August 20, 2020
# tar xvzf jnos_2.0m.3_patch.tar.gz
#
do you have an existing config.h ? maybe compare it to config.h.default ?
(perhaps you are missing out on a feature, or not, maybe try these below)
#define BACKUP_AXHEARD /* save and load axheard list feature */
#define JNOS_LOG_INCOMING_LOCAL_PORTS /* experimental port logging */
#define J2_SID_CAPTURE /* capturing and logging of SID information */
time skew warnings are normal, probably means you downloaded something I may
have just updated within the last several hours, and depending on time zone.
make clean
./configure
make
cp -rp jnos jnospwmgr jnosinstaller usage < your jnos runtime directory >
To back out of this, just repeat above procedure BUT without the 'tar'.
<< end of differences between 2.0m.3 and 2.0m >>
Announcment regarding 2.0n development - May 27, 2020
-----------------------------------------------------
This whole 2.0n and new password management is a bit too much perhaps for the
majority of JNOS users out there, and I simply got carried away with the work
done on it. There is an actual concern this will scare people off, so time to
rethink all of this and stick with the 'traditional approach', starting again
with version 2.0m, and leaving the ftpusers and popusers approach 'as is'.
The idea is to repackage the work done for version 2.0n, making it available
as a 'JNOS 2.0 Security Kit' for people to put on top of 2.0m and subsequent
versions IF they want more security. I like this idea, so that's the plan.
The Security Kit will definitely remain in use on any of my JNOS systems.
I just need some time to re-package the code, so 2.0n.beta is 'no more'.
Any features and fixes not related to the new password management will
be kept of course, and be released sometime soon as version 2.0m.1 ...
(for example, the JNOS log triggers code)
Thanks to everyone for your support :]
a few changes to 2.0n.beta - May 09, 2020
-----------------------------------------
No more popusers file, added a new option '-m' to jnospwmgr utility.
(encrypted, but not hashed as I would like to do, but not today)
Removed '-#' option for permissions, and '-r' syntax has changed for jnospwmgr utility.