I still run an ancient BBS, using Synchronet on OS/2. The problem being that I not only get port scanned an incredible amount of times, but so many things out there now logon as root/root and they think they are on a Linux machine and can then shell script their way into some exploits. Ive tried rate limiting, and other methods, but I end up with so many distributed connections that SIO can’t cope and it’ll crash. A reboot will fix it, of course, but rebooting 2-3 times a day is a bummer. So I thought I’d front my BBS with a stub BBS, which means building Synchronet from source. And while there is some guides on how to do this, I naturally hit some weird undocumented error.
So yeah, get ready for this fun error:
jsapi.cpp: In function ‘JSIdArray* JS_Enumerate(JSContext*, JSObject*)’:
jsapi.cpp:3988:16: error: cannot convert ‘bool’ to ‘JSIdArray*’ in return
return false;
So it turns out that GCC 6 and higher won’t compile the older javascript engine that Synchronet relies on. Ok, so I figured I would just fix the cast and go on my way. But no, as part of the build process once it figures out that I’ve tampered with a file it’ll re-unpack the engine and break on the same error again. And this is why I find things that try to be so ‘easy’ and holding (I’m looking at you Cmake!!!!) end up being totally black box, and absolutely useless.
So what I really need is g++ 4.x, and what is the quickest and easiest way to get the old compiler? Ugh, grab the package from the prior version Jessie. Seriously. Add this into your /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
and then run:
apt-get update && apt-get install g++-4.9
And take the new line out of /etc/apt/sources.list or you will have hell to pay.
After that it was a matter of modifying some of the logon code to streamline the logon process, and to gut the ‘ham radio’ door into something that’ll telnet to the OS/2 BBS. After a bit of work it actually works. I even tested Zmodem, and that works too!
I need some ASCII art or something. That and probably turn off new user registration. Guest access is all anyone can get on the proxy.
I could probably do more here. Years ago I ran some public access Ancient UNIX stuff, but the problems were that it got slammed from the internet. But if Synchronet can keep up with the idiots on the outside, I guess this works as a jump point into something else? I may have to see about adding some 386BSD, and Linux 1.0
And here we are, at the old BBS. I never got that many people to begin with, and I did like having the only OS/2 BBS on the internet up. The other BBS O-Zone seems to have given up, as their domain expired. So it’s just me, once more again.
I’m sure the vast majority of people won’t care, but I guess I finally hit the tipping point where 1996’s SIO just can’t keep up in 2017’s world of relentless port knocking.