TRON ver 1.0b, a DLG BBS/OS security tool, © 1992 by Jeff Grimmett. Introduction: Tron is the first in a series of security tools for DLG sysops. This particular program is intended to watch for certain names and/or phone numbers and notify you if any matches occur. Tron ALSO can be set to, if a match is detected, kick the user off the system IMMEDIATELY. Notification takes place via an entry in the DLG log, plus an entry in the sysop's Event.Log. Requirements: DLG 0.975b or better, and that's about it. Configuration: Tron requires at least two data files. These data files must be (with one exception, discussed below) located in your DLGConfig:Misc directory: Tron.Nam is a list of names for Tron to compare against the user's name. It is a plain text file, editable by the sysop using any text editor. Tron.Fon is a list of phone numbers to compare against the user's phone number. It is a plain text file, as well. Tron also has the capability to use alternate name files (method of specifying discussed below). This is handy if you have a list of some people (say, visiting celebs or DLG sysops) that you merely want notified of, as well as a twit list which you want to kick off immediately. However, if none is specified, DLGConfig:Misc/ Tron.Nam will be used. ==>Tron also requires the creation of a custom log entry for it to use. I have designated here a custom log entry of 201 to correspond to "TronEvent" with a minimum level of 255 to view it. Tron does not require you to put it in any particular place, although it is probably wise to keep it in DLG: or C:. Options: Tron is called from the command line or a batch file only. There are three REQUIRED arguments, and four OPTIONAL arguments. Proper syntax is: Tron -p -l -s [-g -f -n ] [-a ] -p is the port that the program will check. In a batch or menu command line, this is usually replaced with %PORT. -l is the number of the custom log entry you will have to create from the Sysop menu. I use log entry 201, which is configured to read "TronEvent". You can use whatever you want, as long as the numbers match. -s is your name with the underscore. For instance, for me it would be Jeff_Grimmett. This is important, as this is used to find YOUR event.log. All of the above options are REQUIRED. Although they can be entered in any order, ALL THREE must be somewhere in there or Tron will display my colorful template screen :) The following options are, well, optional... -a If this option is specified, the specified alternate NAME file will be used. This is handy for different levels of protection. One list could contain your TWITS whom you wish to boot off immediately. Another list could contain a list of users who you want to scrutinize closely. If this is not specified, Tron.Nam will be used. -n When this switch is set, the user's name will be compared with those in either Tron.Nam or a list specified by -a. -f When this switch is set, the user's phone number will be compared with those in Tron.Fon. -g If this switch is set, the user will be immediately kicked off the system -- IF either -f, -d, or -n are set AND IF a match is detected. Otherwise, it won't do a thing. THEORY of OPERATION: Tron uses several DLG resources in the pursuit of its duties; here are a few relevant ones: ALL OPTIONS: All options require the name of you, the sysop, in order to properly enter an event in your event.log. The next time you log on, you'll see the contents of this file, unless you use the Quick-In method (and who doesn't?) Tron uses DLG:WriteLog to enter a custom log event in your DLG log file. Tron uses the port number to derive the user's name and, indirectly, the user's phone number. MATCHING/DUPE CHECKING: In the event of a match in either twit, or phone checking, Tron uses WriteLog to note one of two events (Lookout Name, Locked Out Phone, or Duplicate Phone), and directly enters a line into your event.log to catch your attention. GOODBYE: This function utilizes the DLG module, DLG:TKill. APPLICATIONS: Tron has many possible applications. It may be used in several batch files, performing different functions, due to the flexibility of the command switches. Name checking: As mentioned above, you can maintain several lists of names to check for, each having a different meaning. One application would be, of course, a TWIT LIST installed in Login.DLGBatch. This would keep undesireable users OFF your system. Another application could be in NewUser.DLGBatch, where you could have the program inform you of the arrival of people whom you wish to give the special treatment, such as a list of DLG sysops. Yet another application would be in Login.DLGBatch, where you could designate certain users as bearing close scrutiny but not yet confirmed twits.... Phone Numbers: Most useful for new users in NewUser.DLGBatch, this could safeguard you against known 'phreaker' phone numbers. These are just the obvious applications. More than likely, you'll think of even more interesting applications.... History: SecTool1 1.0a, 14 Feb 1992 Arexx prototype. Ugly, but it works.... SecTool1 1.0c, 20 Feb 1992 C conversion. Still works.... SecTool1 1.0d, 22 Feb 1992 Enhanced command line parsing. More options than you can shake a stick at. Limited release version. SecTool2 1.0 25 Feb 1992 First Phone number oriented version. Cheesy but it works. Tron 1.0, 29 Feb 1992 All functions of both SecTool1 and SecTool2 combined. Additional options added. Some options removed to save clutter. No known Enforcer hits. Hooks for BlackList database and Callback verifier added for future expansion. Ready for release. Tron 1.0b, 11 Apr 1992 Severe depression. Can't get dupe checking working reliably. Decided to release WITHOUT that stuff, will release an additional utility later called YORI to do the dupe checking. Final Notes: This program was developed using the SAS/C Development package, version 5.10b with ANSI compliant libraries. If you're thinking of developing using C, I highly recommend it. Caveats: As always, nothing is perfect. A particular weakness of this program is that names and phone numbers used in the lockout/twit lists must EXACTLY match or no action is taken. I've thought of a few ways around this, but for now I thought it would be a good idea to test the basic program first :) Also, you MUST enter the proper command line and have a custom log entry defined for this program, or the results in your log will be unpredictable. Several of the folks that have downloaded Tron 1.0a from my system have reported "garbage" in thier logs, and this or improper passing of the port are the only things I can think of that would cause that. Also, as always, I take no responsibility on myself for damage incurred as a result of use of this program. It has been tested on both an 020 A2500 under 1.3.3 and an A3000 under 2.04, and various modules on other systems as well. If you discover a bug, by all means let me know and I'll correct it. However, in the final analysis you pays yer nickel and you takes yer chances... Distribution: This program is freely distributable to other DLG sysops and via any File Distribution system on the understanding that NO BBS ADS may be included with it and all files in this distrubution are included: DLG (dir) Tron Tron.Doc DLGConfig (dir) Misc (dir) Tron.Fon Tron.Nam Source is freely available to anyone that asks, but is not distributable -- not because there are any great secrets in it, but because I need a signed statement that you won't laugh too hard upon viewing it :) Requests for source code can be sent to the address below, or via the DLG_DEV echo. Suggestions welcomed. Appologies As can be noted, there was a bit of a gap between 1.0 and 1.0b. There were several reasons for this, part of which were the fact that I can't seem to nail the duplicate phone number algorythm down right. As such, I have removed that code in order to get Tron out on the street and working for sysops out there. My appologies both for the delay and the slightly degraded feature list. Jeff Grimmett 9121 Kenwood Drive #5 Spring Valley, CA 91977 SuperBitMap BBS (1:202/1005)