-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchanges.txt
More file actions
3235 lines (2205 loc) · 150 KB
/
changes.txt
File metadata and controls
3235 lines (2205 loc) · 150 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
Important : refresh this page on every visit - to make sure you get the latest information
differences between 2.0m.5F and 2.0m.5E - December 4, 2020
----------------------------------------------------------
This is basically version 2.0m.5E, but 'cleaned up' ...
Defines I had hardcoded in makefile have been moved out, so users can now
do it properly in their config.h file. Working on more compiler warnings.
Once this is all done, all the patch files will be stowed away again,
and 2.0m.5F will become the next official version, it's been a while.
December 10 - another update to the j2addendum.txt under documentation.
(and added to the rsync area, so people maybe notice it more)
December 13 - a few more fixes added to patch file, check README ...
differences between 2.0m.5E and 2.0m.5D - November 24, 2020
-----------------------------------------------------------
An implementation of Multi Factor Authentication (MFA) for JNOS 2.0 - why not ?
Check rsync area for a new 'update_jnos.2.0m.5E.tar.gz' file.
Please refer to the following URL for complete usage instructions :
https://www.langelaar.net/jnos2/documents/working.txt
This is an edit of some documentation I started last summer.
UPDATED : Nov 29, fixed a few mistakes, cosmetics, MFAfixed <= 10 chars for now.
differences between 2.0m.5D and 2.0m.5C - November 12, 2020
-----------------------------------------------------------
These are refinements to the 2.0m.5C patch, but technically we need to change
the version number to reflect this, a new 'update_jnos.2.0m.5D.tar.gz' file.
1) New Robust Packet Interface (KISS over TCP/IP) to WinRPR Software
Actually starting playing with this on November 3, after getting a packet
message from Jan (PA3GJX) saying it was available - this is very exciting.
Had it working literally the same day, just a stripped down version of my
AGWPE interface code. What is really important to realize here is that the
new interface is a full blown AX.25 port, so you can do full packet stuff
on it - just like HF packet.
For basic configuration and notes, please check :
https://www.langelaar.net/jnos2/robustpacket
For the WinRPR software download, please visit :
https://www.hamradio.me/graphs/WinRPR_Alpha_Software/
Post note : I started using WinRPR with NOSaprs shortly after releasing the
new WinRPR interface. And so my system now igates APRS robust packet traffic
heard on 30 meters, to the APRS internet system. At some point I would like
to use WinRPR to do message forwarding with other BBS systems, we'll see.
2) 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. Huge security improvment.
NOTE : Data is still cleartext over your network since this is HTTP ...
This version quickly shuts down those very 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.
3) 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, and is 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
4) Removed first column (gateway ip address) from the 'genencaptxt' file, now it
matches the exact same format as a real encap.txt - already under RSYNC area.
5) BIG OOPS - Brian (N1URO) had some TNODE mods that were supposed to be part of
the version 2.0m.5 update, but I just discovered they were never put in, even
though I had mentioned '#define TNODE' if you want those mods in play. I have
made sure to add the source files to this latest update - sorry about that.
differences between 2.0m.5C and 2.0m.5B - November 1, 2020
----------------------------------------------------------
These are refinements to the 2.0m.5B patch, but technically we need to change
the version number to reflect this, a new 'update_jnos.2.0m.5C.tar.gz' file.
1) WARNING : 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.
2) Couple of mods to the DUPE control code, see the README for details.
3) 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,
thought it was there already, oops :|
4) Couple of 'stability' mods to netrom code, see the README for details.
differences between 2.0m.5B and 2.0m.4 - October 26, 2020
---------------------------------------------------------
1) 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.
2) 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.
Still debating whether to defer (instead of refuse) the excess messages ...
3) Better error logging during saving of the BID to the history file.
4) 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 (?)
5) If you want to use Brian's (N1URO) mods for TNODE, then define TNODE in
your config. h or in your makefile before you compile your code.
6) 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 ...
7) How to update your JNOS 2.0m.4 system
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 .
After the rsync is complete, you should notice a new file called :
update_jnos.2.0m.5B.tar.gz
Extract the files using :
tar xvzf update_jnos.2.0m.5B.tar.gz
If you need TNODE stuff, then add #define TNODE to config.h first
Compile as usual :
make clean
./configure
make
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.
The '-r' no longer specifies a solitary path, rather, it's what you would have put into your
fptusers file originally - in other words the primary 'path permission' or multiple sets of,
as briefly indicated in the JNOS user manual. I can't think of any other way to do this at
this time, so for example :
./jnospwmgr -a ve4klm -r "/jnos/public/ve4klm 0x040ff" -g "ban this guy"
Also removed any kludge code I put in to deal with FTP issues, that code is no longer needed
now that the path permission issues are properly resolved (I hope so), please report issues.
You should not have to change any user password files, UNLESS, you want to specify multiple
path / permissions for any of them, either use the updated jnospwmgr binary or hand edit.
Lastly, this release contains the JNOS 2.0 Log Triggers code, more documentation is coming
on this later, in the meantime, you can refer to this NOS-BBS posting on how to use it :
http://lists.tapr.org/pipermail/nos-bbs_lists.tapr.org/2020-April/005534.html
I have updated the gzip tar file '2.0n.beta.update.tar.gz', and the github repository.
(8 files in main jnos source directory, 2 files in j2pwmgrV2 directory)
significant change to 2.0n.beta - March 22, 2020
------------------------------------------------
Replaced the use of MD5() with SHA512() in the main portion of the JNOS Password Management
routines. It's literally a drop in replacement. This does not affect MD5AUTHENTICATE and/or
WINLINK_SECURE_LOGIN functionality, BUT you will have to import your original ftpusers file
again, and recreate any additional users (including winlink) if you had any setup before.
Yeah sorry, it's been a few 'iterations' I guess :]
I have updated the gzip tar file '2.0n.beta.update.tar.gz', and the github repository.
(4 files in j2pwmgrV2 directory - j2adduser.c, j2chkuser.c, j2md5bh.c, j2pwmgr.c)
Maximum password length is 60, that's way overkill, but this was a necessary change.
differences between 2.0n.beta and 2.0m - February 28, 2020
----------------------------------------------------------
What started off as 2.0m.1 is now 2.0n.beta
This is a radical change to the JNOS user password authentication, which instantly
warrants a change to the version MAJOR - it most certainly is not a MINOR change.
This is something I have been wanting to do for a long time. It is a bit technical
and might be a handful for some. For that I apologize. Please contact me if you have
any concerns or are struggling with it - BUT (respectfully asking) not before you've
given it your all - I just don't have the time anymore, too many things going on.
Highlights of this update are :
No more ftpusers file, it's gone
The BBS user passwords are now hashed (not encrypted), no more cleartext
(however if MD5AUTHENTICATE is defined, we have no choice but to include
the encrypted passwords as 'extra information' to the new system)
The Winlink CMS password is properly encrypted again
The AXHEARD list can now be saved to file or loaded from file, there are
some notes on this towards the end of this section. Note, this required
some restructuring of the console 'ax heard' commands, it made sense.
I have enhanced the information shown by the 'mbox sid' console command
Documentation -> "https://www.langelaar.net/jnos2/documents/jnos.2.0n.password.management.txt"
This update is only available as a patch, and must only be applied to the official 2.0m version.
WARNING : do NOT use this on any earlier versions !!!
Just change directory to your JNOS source and do something like this :
wget "https://www.langelaar.net/jnos2/downloads/linux/2.0n.beta.update.tar.gz" --no-check-certificate
Now run these commands below :
tar xvzf 2.0n.beta.update.tar.gz
edit your config.h (or config.h.default if you don't have one yet), and make sure this entry exists :
#define GET_PASSWORD_FROM_J2PWMGR
make clean
./configure
make
NOTE : please MAKE SURE you create a new 'users' subdirectory in your JNOS root directory
(a small oversite on my part, I will correct it later)
The configure script now warns you if you have INP2011 defined - recommend you #undef INP2011
(old code, my attempt @ supporting INP3 protocol long ago, some people are reporting JNOS crashing)
The makefile now enforces the compiler option '-fsigned-char' so if you are running a PI or
any ARM based system, you should be fine as far as that issue is concerned.
I have tested this with gcc 6.3.1 (devtoolset-6), it compiles, the link will fail, BUT
the solution is simple, edit your makefile to make sure 'LCURSES = -lncurses -ltinfo'
I have not tested convers, and done limited testing on ftp user logins.
DO NOT use this update IF any of the following apply to your setup :
1) This update breaks SMTP_VALIDATE_LOCAL_USERS - new function needs to be written
2) This update breaks PPP - userlookup needs to be rewritten
Save and Load ax25 Heard List
The ax25 heard list can now be saved to a file or loaded (restored) from a file.
Add '#define BACKUP_AXHEARD' to your config.h for this feature.
Decided to also revamp the 'ax heard' command at the JNOS console, since there are
now several commands available, all of which really should be categorized as being
subcommands of 'ax heard' - so with this update, the new syntax is as follows :
Usage : ax heard < show | dest > [<iface>]
ax heard < save | load >
The 'dest' and 'hearddest' commands are gone, absorbed by the above syntax.
The heard data is kept in a new 'AxHeardFile' in the JNOS root directory.
There might still be some issues with improper time stamps, please let me know.
differences between 2.0m and 2.0k.3B - November 27, 2019
--------------------------------------------------------
NOTE : version bumped up to 2.0m (skipped the L since in lowercase it looks too
much like the number one or the letter 'i'), call me mercurial (?)
IMPORTANT : this started off as Beta release end of September, with additional mods
added towards the end of October, and was made available through a new
rsync module, 'jnos2NR' during that time. As of November 27, this code
is now an official release, the Beta designation has been dropped, so
please revert back to the standard rsync module 'jnos2' for download.
cd <empty directory> ; rsync -av www.langelaar.net::jnos2 .
WARNING : do NOT patch this version with ANY previous release updates !
(in other words do not use tun.c fix, tnlink patch, whatever)
1) Some changes to the way JNOS is compiled - a new './configure' script
After you download the release, if you try to run make, it will tell you to
run './configure' first - this is new to version 2.0m and onwards. The script
checks to see if the necessary linux development packages are installed - if
they are missing, it will tell you that, and you won't be able to continue.
The 'make' will only work if './configure' successfully makes it to the end.
At present, the script only checks for ncurses, and open-ssl (only if the
winlink secure login is defined in config.h) - yes, it scans your config.h
file. Also, if config.h does not exist, the script now puts in the default,
not the makefile anymore as in past versions.
You can run './configure' as many times as you want, but I suggest if you
make changes to your existing config.h or whatever, then do a 'make clean'
first, then run the './configure' script. You will have to anyways, since
the 'make clean' forces you to run the script again.
NOTE : the configure script is matched to the makefile, you must update
both files or else './configure' will complain about it and stop.
2) The 'tun.c' compile issues are resolved, no more patching needed.
Moved a couple of structure definitions out of the ax25.h and tcp.h
header files, creating two new header files - ifax25.h and iftcp.h
There is no longer any need for the tun_sp2l.c patch which I first put
out back in June of 2017, for those trying to compile JNOS 2.0k.1 on a
debian-stretch-DI-rc4-i386 distro at the time, the idea was to replace
the existing tun.c with my patch version - was a kludge fix at best.
3) JNOS should (probably) be run as a non-root user, here is how to do it :
This change was actually provided to me by KB8OJH (Ethan Blanton) back in
January of 2018, and I have been running it on my development system, it's
just that I completely forgot to put it into my rsync areas, till now. My
profuse apologies for this 'terrible' oversight. Please visit his website
at https://kb8ojh.net, there is some cool information on there.
Very simple to implement, the procedure is as follows :
NOTE : these are examples based on my system, most likely you will need
to change these, or probably you just should change them to suite
your JNOS runtime environment. Again - these are just examples.
a) create a new JNOS user and group
jnos:x:1001:1001::/home/jnos:/bin/bash
jnos:x:1001:
b) change ownership of the entire JNOS runtime area
chown -R jnos:jnos /jnos/rte
c) as root user, configure a tunN interface, and just leave it there forever.
ip tuntap add mode tun dev tun4
ifconfig tun4 192.168.200.200 pointopoint 192.168.200.201 mtu 1500 up
WARNING : make sure you pick a number N that does not conflict with any
other tun interfaces that might be running - OpenVPN comes to
mind for example, some VM subsystems might use tun as well ?
d) modify autoexec.nos, add an extra parameter to the 'attach tun' entry,
and make sure to comment out the point to point ifconfig.
So what was previously run as root, for example, below :
attach tun tun0 1500 0
shell ifconfig tun0 192.168.200.200 pointopoint 192.168.200.201 mtu 1500 up
will now just become a one line entry, below :
attach tun tun0 1500 0 tun4
4) The '#define B2F' is now permanent in config.h - do NOT #undef it
For now I have decided to make #define B2F a permanent define, which basically
relegates the '#ifdef B2F' found all over the code to identifying the areas of
code specific to B2F operation. If you #undef B2F, you will actually break the
checksum processing in the B1F protocol, so it is best to leave it in place.
Thanks to N6MEF (Michael Fox) for accidently discovering the B1F issue :)
I might even remove the B2F definition in a future release, it does not hurt to
leave this code in place, it's pretty well established by now, so this minimizes
the risk of messing up any of the existing forwarding code.
Which brings us to the next point below ...
5) Introducing the new '#define WINLINK_SECURE_LOGIN' in config.h
The only reason the openssl developmenet package is required when compiling JNOS
is because we need the md5 hash routines to support the 'Winlink Secure Login'.
For those who want to pull mail off the CMS servers, you need to have this
defined, or else the CMS servers will refuse to let you go any further. Yes,
you can actually still 'kick wl2k' - search for December 15, 2017 further
down in this file on how to setup for CMS forwarding - but it will fail.
Previously '#define B2F' was used to encase the Winlink Secure Login code.
(but now that it's permanent, we have this new define in place)
6) Bit of a surprise, recent versions of linux are no longer supporting the old
setkey () and encryp () functions, which has presented me with the problem of
not being able to encrypt my JNOS 2.0 password management database. Passwords
are still mangled, that's not the issue, but for now I've had to comment out
the part which encrypts the mangled values - don't want a 'rushed solution'.
Looking for a replacement - basically libcrypt (-lcrypt) is no more ...
IMPORTANT (if you forward with a Winlink CMS) :
It just means you will have to wipe the /jnos/users directory and run
the j2pwmgr utility again to recreate the Winlink Secure Login passwd
information. Unfortunately the files in the directory from before are
not going to be compatible with this newest version, sorry for that.
7) Support for RMS call (already available in previous release), BUT ...
The only thing to note is that there is no more 'tnlink' subdirectory,
the source is now part of the main release. Do NOT use the patch from
previous version 2.0k.3B - do not use any patch on the new 2.0m !
If you wish to support Packet Winlink users on your own JNOS, now you can :)
Originally the define was going to be '#define RMSCALL', but I have decided
to instead use '#define TNCALL' since the feature can be used with ANY telnet
service for that matter, even another BBS (how I tested original prototype).
Please check the release notes for 2.0k.3B (further down) on how to use this.
8) New way to configure White Page (WP) processing, read carefully please
The rewrite file is very important and gives the ultimate flexibility in defining
what your specific JNOS system should process as far as White Page (WP) updates.
Here is the portion of my rewrite file that I am currently testing with :
#
wp@ww whitepages
wp@eu whitepages
wp@ve4klm whitepages
wp@ve4klm.#wpg.mb.can.noam whitepages
#
*@ve4klm.#wpg.mb.can.noam ve4klm
#
Files : smtpserv.c, smtpcli.c, wpages.c
Detailed Documentation for JNOS 2.0 white pages can be found here :
https://www.langelaar.net/jnos2/archive/documents/practical/wpages
9) A fix to wildmat.c, added on October 22, thanks to VE3CGR (Ron), who reported
this long ago, any time he ran the expire command, JNOS would crash. Regarding
his configuration, he uses NNTP services and his expire.dat is loaded with tons
of NNTP group names, some with a '?' character as part of the name, triggering
the crash.
It's a simple fix, but quite honestly, any of the wildcard stuff turns my brain
to jello. I still don't understand the changes made in 2014 for N6MEF (Michael),
but I have been told it's still in use, and working for them - so that's good.
10) Now checking for missing BID on ALL incoming S proposals - not just SB, but
also SP, which folks mistakenly use sometimes when sending bulletins. A fix
to mboxmail.c was provided by N1URO (Brian Rogers), added on October 16.
11) Fixed several potential string buffer overflows as reported by the compiler.
12) Investigating removal of passwords from ftpusers and incorporating them into
the same JNOS 2.0 Password Management Database as currently used for saving
the Winlink password. At the same time, I am removing the encryption of any
passwords and replacing them with hash:salt information instead, as per the
recommendations of several high profile security institutions, meeting the
need that nobody, not even the administrator, will be able to determine a
users password (because HASH values only go in one direction).
One could even consider multiple iterations, one could include the CPU id
of the physical computer or some other identifier unique to the JNOS host
setup, locking the password hashes to the specific server JNOS runs on.
As much as I want to entertain the idea of using HMAC-SHA-256, PBKDF2, or
whatever the flavour of the year, the code can get complex, so for a first
time prototype, MD5 is fine - it's JNOS, not a financial institution :|
13) Investigating the use of multiple REWRITE_TO (in rewrite file) for redundant
message passing, in case a recipient handling host is down and we simply must
get it passed some other way ? For example, my rewrite could be :
*.usa.noam aa6hf#RDN#n1uro
and have #RDN# processed by the smtp client and server within JNOS ?
(nothing concrete, just a very intriguing idea at this time)
addition to 2.0k.3B (version left as is) - August 10, 2019
----------------------------------------------------------
1) Here is the Beta version of JNOS RMS support, the only thing that leaves to
be done is when the Winlink (RMS) Express client has finished a Packet Winlink
session, the packet side does not disconnect immediately, and depends on the
client to timeout, or the sysop on the client end needs to STOP the session
manually - this after the forwarding has finished.
I want to release this now, since some people are asking about it, and I will
not be able to work on it for the next few weeks, so now is the time I guess.
Again, this feature is released as a subdirectory, so when you rsync the
official release, you will see a new tnlink subdirectory with 10 files.
IF you are interesting in using your JNOS as an RMS node, copy the 10 files
to your main source area, add the following define to your config.h file :
#define TNCALL
Edit the makefile and add the tnlink.o object to the end of the SERVERS
section, so that 'wpages.o merge.o sort.o ufgets.o' will now look like
'wpages.o merge.o sort.o ufgets.o tnlink.o' instead.
Then do 'make' to compile a new JNOS binary.
WARNING : you must have the latest official source from rsync if you are
to copy these files, if you have an older version, you're playing
with fire, things might compile (or not), but you may wind up with
an unstable JNOS binary or one that crashes left right and center.
Choose a callsign you want Winlink (RMS) Express clients to connect to,
then add an entry similar to the following to your autoexec.nos file :
ax25 tncall ve4klm-11 cms.winlink.org 8772 cronly
Obviously I'm using VE4KLM-11 for mine - make sure you change to your own call.
NOTE : I am assuming you have the 'ax25 mycall' parameter configured in
your autoexec.nos file. It's used for the CMS application login.
I have it working with the latest Winlink Express 1.5.22.0 client.
PLEASE : send me reports and feedback, thank you.
addition to 2.0k.3B (version left as is) - August 7, 2018
---------------------------------------------------------
1) This is something I've been wanting to do for a very long time ...
I finally got tired of entering the NODES command at the BBS prompt, only
to watch several hundred entries stream by and miss the one I want, so now
you can pass a substring to look for (not the same as a pattern), ie :
Area: ve4klm (#1) >
nodes uro
NJDURO:MB7NJD-5 QSOCCT:N1URO-11 SQLURO:N1URO-13 MFNOS:N1URO-14
RSBYPI:N1URO-2 X-URO:N1URO-3 BBSURO:N1URO-4 UNIVLE:N1URO-5
DXURO:N1URO-6
*** 9 nodes displayed
The 'nodes *' remains the same, the substring filter is case insensitive.
For the JNOS console, it's a bit more complicated. To accomodate the feature
into the 'netrom route' console command, the command syntax required fixing.
Up till now, most people are probably used to entering just 'netrom route'
to get a node dump, just like if you typed in 'nodes' at the BBS prompt. I
know it might be convenient, but it breaks syntax convention and makes it
difficult to add new features, so sorry - you can't do that anymore :)
Now you have to enter 'netrom route nodes', and if you want to pass the
substring (like you would at the BBS prompt), then it would look like :
jnos> netrom route nodes VK
DOTXRP:VK2DOT-1 DOTFBB:VK2DOT-6 DOTN:VK2DOT-7 DOTCH:VK2DOT-8
HGRBBS:VK6HGR-14 HGRNOD:VK6HGR-15 NODHDM:VK7HDM-4
*** 7 nodes displayed
This is because 'netrom route' actually has 4 other subcommands, so putting
in the 'nodes' subcommand brings it all to a nice consistent interface such
that if you enter just 'netrom route' you see ALL available subcommands.
NOTE : 3 new files (mboxgate.c, netrom.h, nrcmd.c) in 2.0k.3 subdirectory
differences between 2.0k.3B and 2.0k.2 - July 24, 2018
------------------------------------------------------
1) This is beta code to preserve the CASE of the message id (BID) for any
messages originating from outside. Don't touch the case of the BID when
it comes in, and don't touch it on the way out.
I have been running this for a whole week with a few forwarding partners,
and so far it seems to be doing the job.
This patch is strictly about uppercase/lowercase BID - nothing else.
The format of the BID and/or R: line content is another can of worms :)
Use following command to retrieve files :
rsync -av www.langelaar.net::jnos2/2.0k.3 .
NOTE : it will create a subdirectory called 2.0k.3 (4 files)
correction to 2.0k.2 (version left as is) - March 25, 2018
----------------------------------------------------------
1) I forgot to include 'null terminate fix' in one file, an important one
at that (aprs.c), and the NOSaprs version will also stay as is @ 2.0h
correction to 2.0k.2 (version left as is) - December 21, 2017
-------------------------------------------------------------
1) Completely forgot to look for the 'smtp:' prefix that some people
use to have winlink deliver third party mail over B2F forwarding,
so please note an updated fbbfwd.c source file.
differences between 2.0k.2 and 2.0k.1 - December 15, 2017
---------------------------------------------------------
NOTE : This update is simply a quick fix for some immediate issues ...
(if you're not doing winlink, not doing APRS, then don't bother)
1) Important updates regarding Winlink and their recent CMS switch over.
a) My existing forward.bbs configuration stopped working on me, so looking at
the raw data, seems the new CMS setup is sending me a leading CR character
before the Callsign prompt (in my JNOS setup anyways). I have corrected my
entry in forward.bbs to accomodate this. The following is now what I use :
-------
wl2k
telnet cms.winlink.org 8772 cronly
+Callsign :
*10
..YOURCALLSIGN
+Password :
@10
.CMSTelnet
wl2k
-------
NOTES : '*' takes care of the leading CR character mentioned above
'.' before the callsign is used to setup the EOL sequence
I'm embarrassed to admit, my forward.bbs before this point was garbage. I
should be surprised it even worked. The '+' entry simply sets up a search
string. You still have to (MUST) use the '@' or '*' entry to actually wait
for the string to appear before the script continues on - something I had
failed to do, so basically the script would connect, force feed callsign
and password to the CMS system without waiting for it's prompts :]
To initiate forwards with winlink, simply use 'mbox ki Wl2k | wl2k'.
b) The bigger problem is the appearance of a ';PM' directive in the forward
session, which breaks the forwarding between JNOS and the winlink CMS :
MBOX (wl2k) FBB error, last read : ;PM: VE4KLM S2X704ESAGW6 202
maiko@xxxxxx.xxxx.ca //WL2K testing email pickup via nos system