               **********************************************
               **          PWA & Syn-Dicate '96            **           
               **                Present                   **
               **          Caller ID Security              **
               **       CIDGATE.PPE & SENTRY.PPE           **
               **  Written by Doctor N. Sane & Gary Meeker **
               **********************************************   

FEATURES:
---------

    CIDGATE.PPE
    -----------  
    
         * Trashcan for incoming calls
         * Displays Caller ID Phone number to Caller (Configurable)
         * Configurable text and Displays
         * Fast operation!
         * Supra or ZyXel compatible
         * Recognizes Long Distance and Private Calls
 
    SENTRY.PPE
    ----------
         
         * Compares CallerID information to User Account
         * Adds Area code to Users that did not enter it
         * Upgrades Newusers if they pass the Sentry (Optional)
         * Formats phone number entries to PCBoard's Standard
            Ex. ( XXX XXX-XXXX)
         * 3 Methods of Dealing with Users that Fail the Sentry
            (Hanging Up, Lowering Security Level or Nothing)
         * Forces Users who fail Sentry to leave a Message explaining why
         * Won't let a Long Distance caller use a LOCAL Account
         * Can set a Pass-thu Security Level (Won't Check account) 
         

REQUIREMENTS
-------------

          * PCBoard 15.+ 
          * Supra or ZyXel Modem
          * Caller ID
          * Caller ID ENABLED in PCBoard
                
CONTENTS
--------

         CIDGATE.PPE -- The executable for CIDGATE
         CIDGATE.CFG -- Sample config file for CIDGATE
         SENTRY.PPE --- The executable for The Sentry
         SENTRY.CFG --- Sample config file for The Sentry
         LOGENTRY.PPE - Executable for The Trashcan Trick (* See Overview)
         FKLINENO.PPE - Executable for The Trashcan Trick (* See Overview)
         README.TXT --- You're reading it
         SAMPLES.ZIP -- Sample Displays for CIDGATE
         |
         >>>> TRASHCAN.LST -- Sample Trashcan List
              BAD.USR ------- Sample Display file for Trashcan
              LDCALL -------- Sample Display for LD using Local account       
              NOCID.TXT ----- Sample Display for No or Garbled CID Info         
              NOPRIV.TXT ---- Sample Display for No Private Calls Allowed   


INSTALLATION
------------

For CIDGATE.PPE:

Installation is very simple.  If you use an ANSI Detector it's even simpler.
If you don't have an ANSI detector, it is recommended you get one. HINT HINT

In your PCBtext file, replace item #149 and change your entry to look like 
this...

%C:\PCB\PPES\BATCH 

(You may want to use another name instead of Batch).   

Then make the file called BATCH (or the file that you want use, just make 
sure it matches your item #149) and put in the following information.

!C:\PCB\PPE\CIDGATE.PPE
!C:\PCB\PPE\(!Put the name of your ANSI Detector here!)

Now if you Do NOT use an ANSI Detector do the same thing for Item #149 
as if you had an ANSI Detector... Then edit the BATCH to Something like 
this...

!C:\PCB\PPE\CIDGATE.PPE
Do want ANSI Color?

That should work providing that the end-of-file marker is RIGHT at the end
of the 'Do you want Color?' Statement. 


For SENTRY.PPE

Installation is even easier!  Simply put at the beginning of your LOGON 
script file.

Here's mine:  (Remember it's just an example!!)

!E:\SENTRY.PPE
!C:\PCB\PPE\ONELINE\ONELINER.PPE
!C:\PCB\PPE\HOSTAGE.PPE

See! Easy...


OVERVIEW
---------

CIDGATE - The Trashcan

The Trashcan works just like the User name TCAN that PCBoard has built in.
Simply edit the TRASHCAN.LST (MUST BE NAMED THIS TO OPERATE CORRECTLY!)
file with the names and numbers you don't like.

Example:

 304 111-1111    NAME - USER NOTE 
 304 222-2222    NAME - USER NOTE
 304 333-3333    NAME - USER NOTE   

Simply put in the "Trash Number" with THE SAME, EXACT FORMAT and enter in a 
small note on WHO it is and Why... Saves time later trying to figure out 
why they were locked out!

You can have up to 100 numbers in the Trashcan... If you need anymore you 
must live in LamerVille, USA or you may need to take your BBS down and look 
into getting a new hobby!! ;>

When CIDGATE comes across a number you have listed here, it immediately 
DISPLAYS the BAD.USR (or WHATEVER YOU NAMED IT) file. This file can have 
text in it telling the Person he/she is no longer welcome or it can run 
PPEs.  Which is the way I went.

Example:

!E:\FKLINENO.PPE
!E:\LOGENTRY.PPE

What happens here is...  The Fake Line Noise PPE is executed. HSGMT put this
little gem out not too long ago and it does the trick!  Throws a little bit 
of garbage and then hangs up on them!  Use this method if you like to see 
them call several times a week trying to get on. ;> 

After that runs.. LOGENTRY.PPE is executed which will leave a message to 
you telling you who it was AND will make an entry in your CALLER. log
file telling you a Trashcan caller has called... Looks something like this.

Example:

**************************************************************
                                                              
      ****************************************                
      *** WARNING: Trashcan Call received! ***                
      ****************************************                
                                                              
      Modem: CARRIER 14400 PROT: LAP-M CONNECT 38400          
      CID: DATE = 0101 TIME = 0301 NMBR = 3041111111          
      03:01 Carrier Lost ...                                  

**************************************************************

I would suggest putting Logentry in ANY Text you might make. That way you
will always have a record when one of your TCAN users call.

If a call that is received is NOT in the Trashcan then the phone number is
displayed to the caller. This is a configurable option and you may turn this 
function off.

CIDGATE will also hangup ANYTIME a garbled Caller ID packet is received and
displays a text telling the user so.  I mean.. What's the point of letting 
someone log on with NO CALLER ID information when the reason you installed
this PPE was to monitor everyone when they log on!

CONFIGURATION
-------------

Here's a sample of the Config file..

1
YES
NOCID.TXT
BAD.USR    
Welcome Long Distance Caller!
Private Connection
NO
NOPRIV.TXT


_____________________________________________________
1. 1 for Supra, 2 for ZyXel
2. Display phone number to Caller (YES/NO)
3. Name of NO CallerID file that is Displayed (NO PATH!)
4. Name of Trashcan User file that is Displayed (NO PATH!)
5. What is says to Long Distance Callers
6. What it says to Private Callers (If #7 is YES)
7. Allow Private Callers (YES/NO)
8. Name of Private Call file that is displayed (NO PATH) (If #7 is NO)


Edit this file to suit your needs.

That's basically what CIDGATE does.. Now on to The Sentry.


OVERVIEW for The Sentry
-----------------------

Sentry is slighty more complicated in it's operation.  But I will try to 
walk you through it.

Basically Sentry takes information created by CIDGATE and uses it to compare 
with the User's Account.  If the numbers match.. Operation is seemless and
uninterrupted, and the user continues through the BBS as if there was nothing
there.  But if there is NO match with the Caller ID, Sentry kicks in.
It tells the User that the number they are calling from is not the number 
they usually call from, then prompts them to tell why the numbers don't match.
Are they at work?  Are they at a friends house?  Are they trying to hack in?
That is what Sentry wants to know and then sends the message to the SysOp.

At this point.. You can have 1 of 3 things happen. They are...

   HANGUP - It will hangup on them AFTER they leave a message.
   CLEAR - It will do nothing.  Let them pass after they have left a message.
   SECURITY - This will lower their security to a level where they are not a
              threat.

FUNCTIONS
---------
Sentry does MANY things...  If a Newuser logs on and for some reason does
not leave their area code in their phone number.  Sentry can look at the 
Caller ID and get the area code they are calling from and append it to their
User Account and format it to PCBoard's Standard  ( XXX XXX-XXXX).

Sentry can also Upgrade the New user's security level if they passed through
Sentry with no problems.  This is configurable from the .CFG file.

Another one of Sentry's functions is the check it can make on Long Distance
callers.  When Sentry learns that a Caller is LD it compares the Account
that is currently being used to a list of LOCAL area codes.  If the Area 
codes match the account being used, Sentry assumes that the LD caller is
using the account illegally, tells him so and Hangs up on him.  After hanging
up Sentry will leave a note in the log about the event...

Example:
                                                              
      *********************************************           
      ** LONG DISTANCE USER USING LOCAL ACCOUNT! **           
      *********************************************           
                                                              

This can be diabled through the config file.  

There are also configurable security levels to bypass this funtion.  
Such as New Users and Users that are LD but in the same Area code.

Any New User has a posibility of being LD but still in the same area code as 
you. That's why the new user level is configurable.  It is suggested that you
use this function ONLY if you have a problem with hacking/password sharing 
problems.

If you use this function and you KNOW you have callers that are in the same
area code but long distance to you.. then you MUST assign these users a 
special security level so Sentry can identify them.


CONFIGURATION
-------------

Here is a sample of the Config file.


60
304
304
304
YES
LDCALL
10
21
CLEAR
10
20
___________

1. Starting Security level for Sentry to pass users UNCHECKED
2. Main Area Code (The one you are in!)
3. * Secondary area code -:> The extra Area codes are in case DIFFERENT ACs
4. * Thirdly Area Code   -:> can call LOCALLY to you.
5. Do you wish LD/LOCAL Checking on? (YES/NO)
6. Name of the file to display when a LD Caller who uses a LOCAL account
7. This is the Security Level of New Users
8. This the Security level of Users that are LD but in the Same Area Code.
9. Put 1 of 3 commands here: HANGUP , CLEAR, SECURITY
   HANGUP will hangup if Caller ID does not match Account.
   CLEAR will simply let them pass and do nothing to them.
   SECURITY will change their secuity level.
10. If the SECURITY command on Line #9 is used, Put the level you wish Sentry
    to change their security level to.
11. If you like, when a NEWUSER passes ALL security checks, SENTRY can 
    upgrade them to your Regular User Level.  If you want this, put the 
    Sec Level on this line or a 0 to NOT use it.


Hope this PPE can be of some use to you... It has solved MANY of my problems
with local scum. ;>


If you have any questions or comments please contact me (Doctor N. Sane) 
one of these fine BBS's...

                     Mooncrow's Aeyrie
                            or
                       Cyber Systems
  
  
These are the places I frequent the most and would be able to give you 
a quicker reply.
