home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / TGARTS.ZIP / ACS.DOC next >
Text File  |  1999-12-13  |  22KB  |  394 lines

  1.  
  2.    Everything you wanted to know about Telegard ACS but was afraid to ask
  3.    by Scott Adams (Telegard Beta Site)
  4.                                                 
  5.       This article will attempt to describe the ACS system that is used
  6.    by the Telegard BBS Software.  Hopefully this article will help you
  7.    to organize and improve your system in various ways.
  8.  
  9.     * What is ACS?
  10.  
  11.       Some out there might not even know what ACS is much less understand
  12.    how to use it.  ACS is a old BBS software term that came about when the
  13.    first modern BBS softwares came out in the late '80s.  What it exactly
  14.    stands for is lost for history.  But most believe it stands for Access
  15.    Control System or Access Central System.  Don't worry what it stands
  16.    for but what it does.  ACS is a style of organization and security for
  17.    BBS software.  We will touch on the Telegard ACS here in this article.
  18.  
  19.     * Who should use the ACS system?
  20.  
  21.       Every Telegard sysop out there should utilize the full ACS system
  22.   to their advantage to improve their security and organization.
  23.  
  24.     * Why use the ACS System?
  25.  
  26.       The three main reasons to use the ACS for your BBS are:
  27.  
  28.       o Organization:  You should use it to group things into Telegard
  29.   groups or conferences.
  30.       o Security: ACS will allow you to have a totally secure system.
  31.       o Control: Through ACS you can control things your BBS does like
  32.    events, chats and other things.
  33.  
  34.     * When should ACS be used?
  35.  
  36.       This is a personal decision but the more you get into the ACS and
  37.    understand its uses then you should use it at all times to your full
  38.    advantage.  It is not required to use any of the ACS on your bbs but
  39.    if you do not you could have a very unorganized and insecure system.
  40.    The default Telegard setup (out of the box) uess preset ACS for menus
  41.    and things already so don't panic if you don't.   The default ACS
  42.    setup will be enough for you to work Telegard right from the start.
  43.    But you should eventually organize and customize your system.
  44.  
  45.     * How can I use this ACS stuff?
  46.  
  47.       By now I hope you are interested in the ACS system.  If so then good
  48.    it takes a dedicated sysop to customize a bbs and to win in the end.
  49.    First thing you should do is print or view the ACS.REF reference file
  50.    which is located in your Telegard \Docs directory (docs is off your
  51.    main Telegard directory).  This file contains the various codes and
  52.    terms and is the reference sheet you will need to use the ACS system.
  53.    That file contains all the documentation on the ACS system you will
  54.    ever need.  When new versions of Telegard come out you should check
  55.    this sheet for changes or additions.
  56.       I will show examples and use of the ACS functions for the following
  57.    areas of Telegard:
  58.          * Menus     * Events
  59.          * Doors     * Security
  60.          * Messages  * Scripts
  61.          * Files     * Other
  62.  
  63.       An example of a ACS string or line is:  s50&G@.
  64.       Don't panic if this conufuses you It first.  This line is read or
  65.    translated as "security level 50 AND Group @".
  66.  
  67.       For ACS to work all values in the line or statement MUST apply or
  68.    the operation will not work.  So from the above the user must have
  69.    SL 50 AND be IN group @ to work for this ACS item.
  70.  
  71.        ACS case sensitivity does not matter much so you can use uppercase
  72.    or lowercase parameters.
  73.  
  74.       The first thing we should cover is the hardest concept of ACS that
  75.    most new sysops have - operators.  This system is just like Mathematical
  76.    operators however so if you understand that you should have no problems.
  77.    The order the ACS is read is the same as mathematics and beyond the
  78.    scope of this article.  The operators are:
  79.  
  80.                  relational
  81.       operator    meaning      example
  82.         &          AND         s50&FB
  83.         |          OR          s50|GC
  84.         !          NOT         s60&!FZ
  85.         ()         Grouped ACS s50(C@|CG)
  86.         ^          TRUE        ^
  87.         %          FALSE       %
  88.  
  89.         The AND operator (&) means the values are together grouped.  Here is
  90.    a tip if you are limted on ACS space.  The & operator does not need to
  91.    be on the line in many cases.  It is assumed by default to be that way.
  92.    When to use it however is in cases where you need to group or have a
  93.    complex ACS string.  So the above s50&FB line is the same as s50FB.
  94.    All the other operators though are not assumed and should be used.  The
  95.    AND means that ALL must apply to work.  If one item in the section is
  96.    false then the acs will fail.  In th ebove if the user is SL 60 and
  97.    does not have flag B then the ACS fails.
  98.         The OR operator (|) means the values can be EITHER or to work.  In
  99.    the above example - s50|GC means the user must have security level 50
  100.    OR be in group C.  If either are true then the ACS will work.  If both
  101.    apply then it works but if both fail then the ACS will fail.
  102.         The NOT operator (!) is used when you need to exclude something
  103.    the user might have.  The above s50&!FZ (the & can be deleted) is read
  104.    as "security level 50 and above AND must not have flag Z".  If the
  105.    user has flag Z then the ACS fails but if he doesn't and is SL50+ then
  106.    it will work.
  107.         The grouping () operators are like math to organize items.  Telegard
  108.    ACS will perform all the ACS items in that () group before it performs
  109.    the rest of the items.  In the above example s50(C@|CG) it is read as
  110.    "user is in group @ OR group G AND (implied) is security level 50 or
  111.    above".  If any item in the () group fails then the ACS fails before
  112.    the outer parts are even checked.  Some might have done (s50&C@)|(s50&CG)
  113.    which is the same but takes up alot more space.  So you can see how
  114.    a simple () group can save space.
  115.         True (^) and false (%) are the least used acs items because they
  116.    can be confusing at times.  The default setup for TG has an example
  117.    of both in the message editor.  Load up the default message base
  118.    and you will see reading/posting ACS lines.  It will be ^ and then
  119.    network acs below is %.  Generally these operators are used as a sole
  120.    operator.   The reading default means that everyone will have the access
  121.    to read that sub since the ACS is true.  I personally would stay away
  122.    from these 2 since they can be misleading and confusing and just use
  123.    the others to their fullest.
  124.  
  125.       You should develop a ACS access and user scheme for your bbs.  You
  126.    will notice Telegard has a Validation system (hit S from WFC then V)
  127.    which you can setup 26 validation levels.  You might want to give
  128.    a certain level say V for visiting sysops and A-E for regular users and
  129.    G-I for special users and Y-Z for co and sysop.  This way you can just
  130.    validate (through function keys or Call back door) to certain pre defined
  131.    levels.  I recommend before you customize your ACS system you devise a
  132.    plan for your BBS.  Ask yourself what will unvalidated users be at (by
  133.    default that's just s25 (security level 10)).  What will be your validated
  134.    users that pass your inspection or Callback door (normally this is s50)).
  135.    Should some users have flags?  Many questions like this should be planed
  136.    out before customization.
  137.  
  138.       Now we should give examples of their uses to show you the power
  139.    of the ACS.  By default telegard has ACS pretty much everyone to
  140.    secure basic setup.  If you are a new sysop and using default menus
  141.    then take a look at the menu editor and the various menus.  You
  142.    will notice the menu itself (hit T to toggle the display during
  143.    the editing of a menu) has a ACS and each menu item/command can
  144.    have its own ACS item.  If you have a menu which you don't want
  145.    certain users to access (say the sysop menu or a private chat
  146.    menu for selected users) you could give it an acs of say "FA" which
  147.    means they must have Flag A to access the menu, otherwise they will
  148.    not be able to access it.  This gives you control for which users
  149.    can use which sections of your bbs.  Each menu command should have
  150.    its own ACS.  Blank ACS means that EVERYONE will have access to use
  151.    this item which is obviously dangerous.  So you should edit the
  152.    ACS to fit your validation/user access scheme.  IF you want only
  153.    validated users to access the bbs list then give it your ACS for
  154.    validated users (say s50 by itself).  The most common reason ACS is
  155.    used in menus is to control access to certain parts of Telegard by
  156.    the sysop.  Without this system in place your users would access many
  157.    things you don't want them to.  Some examples I personally use follow.
  158.    I use a menu FIRST.MNU that is loaded BEFORE my main menu (my start
  159.    menu which can be defined in Telegard).  In this menu I perform
  160.    various checks on users and then perform actions depending on that
  161.    access or their validation level.  I am showing here screen shots:
  162.  
  163.        3. Keys       FIRSTCMD
  164.        4. Command    -L - Display a line of text
  165.        5. Options    "> You need to first read the BBS Rules! <"
  166.        6. Access     "FY!S11"
  167.  
  168.        This menu item which is run on the first time the menu is loaded
  169.    (via FIRSTCMD for details read \docs\menus.ref) is to tell the user
  170.    they will need to read the rules first.  The Access for this is
  171.    in item 6 and is read as "user has Flag Y AND (assumed) is NOT above
  172.    security level 11".  If the ! was missing it would only work for SL11+
  173.    but this is for NEW USERS (ie sl10 here).  The Flag Y is used for
  174.    my new user validation level (A) adn will be eventually removed in a later
  175.    menu item in this FIRST menu. If the user is SL1-10 but does not have
  176.    flag y this line will not show up since both are required.  The reason
  177.    is the user needs only to read the rules ONCE.    Once the rules are
  178.    read I remove the flag from their account via:
  179.  
  180.                 3. Keys       FIRSTCMD
  181.                 4. Command    OF - Set AR Flags (Set 2)
  182.                 5. Options    "-Y"
  183.                 6. Access     "!S11"
  184.  
  185.       Again see menus.ref for details.
  186.       The menu will also display a file to GUEST users using the guest
  187.    account.  Guest account (validation level H here has flag G given
  188.    to this one slot).  Thus:
  189.  
  190.            3. Keys       FIRSTCMD
  191.            4. Command    -F - Display file (def. Paging)
  192.            5. Options    "guest"
  193.            6. Access     "FG"
  194.  
  195.        Will only display the file if they have flag G otherwise the menu
  196.     item fails its ACS and is ignored.
  197.  
  198.        Lastly in our example of the menus use I will show that if the
  199.      user has read the rules and is a NEW user they will then be shown
  200.      a file explaining they must use the Callback door.
  201.  
  202.            3. Keys       FIRSTCMD
  203.            4. Command    -F - Display file (def. Paging)
  204.            5. Options    "use.msg"
  205.            6. Access     "!s11"
  206.       Then the main menu is loaded which if they are a new user due to the
  207.    ACS setup of this menu (main.mnu) they can only use the Callback door
  208.    and a few other commands.  They can enter various parts like the bbs
  209.    list and view the list but due to the ACS of the bbslist.mnu can NOT
  210.    add to the menu.  They can view the online games list but NOT play
  211.    in any games.  Same for guests they can not download and not play
  212.    in any games.  I hope these short examples will show the power of the
  213.    ACS system that can be used in the menus.
  214.       Doors or Online Games like LORD, BRE and such can be controled
  215.    through ACS items as well.  You might have some adult doors which
  216.    can only be allowed in by say a Male of age 18 or above (no females).
  217.    How would you do this?  Consulting the ACS.ref you see A which is
  218.    the Age acs parameter and G which is the Gender parameter.  For this
  219.    particular door you would use "s50a18gM" which is read as "the user
  220.    must have security level 50 (validated user) AND be of age 18 or older
  221.    AND be of a male gender".  There are ways you can even control door
  222.    use during time periods of the day.  I will let you consult acs.ref
  223.    to see if you can figure out how on your own.
  224.       Message and file bases work the same way in terms of ACS.  ACS works
  225.    well here with groupings or conferences.  If you have more than one
  226.    message or file network (say Fidonet, ABCNet, XYZNet) you should group
  227.    all their message and file bases of that individual network into their
  228.    own groups or conferences.  This is done through the system manager ->
  229.    group manager.  For example create groups A (ABCNet), F (Fido), and
  230.    X (XYZNet).  You would then assign the reading/posting ACS to only
  231.    those groups.  You should also create a Global or Superconference in
  232.    which once joined you can read every message or file base there is
  233.    and they should have access to (so group G is global for example).  Here
  234.    is an example of a few message bases:
  235.  
  236.         A. Description    Fringe Gatemail -Netmail
  237.         G. Posting ACS    "s50"
  238.         H. SysOp ACS      "s255"
  239.         I. Network ACS    "%"
  240.  
  241.         The ACS in message bases are G-I.  Posting ACS is the ACS for
  242.    the user to post in that message base while Sysop ACS is for co-sysop
  243.    message base commands.  Network ACS is used mainly in offline mail
  244.    readers.  As you can see a user must be validated (sl50+) to post in
  245.    this message base.
  246.  
  247.         A. Description    Fringe Sci-fi
  248.         E. Area type      Local
  249.         F. Reading ACS    "s50(C@|CG|CH)"
  250.         G. Posting ACS    "s50(C@|CG|CH)"
  251.         H. SysOp ACS      "s255"
  252.         I. Network ACS    "%"
  253.  
  254.         This is a local message base that is for sci-fi related topics.
  255.    From F-I you can see the ACS items.  Here is an example of the grouping
  256.    I use on my bbs.  From the reading/posting ACS the user must be SL 50+
  257.    AND be in either group (Cx is group ACS item) @ (which is default to
  258.    be the main or local group OR in the Global group (CG) or in the sci-fi
  259.    echos group (CH-I store only sci-fi echos in this group).  This allows
  260.    the user to access the base in those 3 groups but not in say Fido which
  261.    is the F group (CF for ACS).  
  262.         Groups or conferences are highly suggested for every bbs to help
  263.    you organize things.  You should have one group for every network at
  264.    the bare minimum.  Plus one for local bases (not echomail - default @)
  265.    and a global/superconference for all the echos.  This will help you and
  266.    your users to find message bases faster for reading and posting.  With
  267.    the newest version of Telegard you can have distinct File and message
  268.    base groups.  So jump in and experiment with each and use them to your
  269.    full advantage.
  270.         File bases have the same ACS method as the message bases and I will
  271.     show one example here:
  272.  
  273.         A. Description    Uploads Go Here!
  274.         B. Filename       UPLOADS
  275.         G. List ACS       "s10"
  276.         H. Names ACS      "s60"
  277.         I. Upload ACS     "FU"
  278.         K. Download ACS   "s50"
  279.         L. SysOp ACS      "s250"
  280.         
  281.       This is my uploads directory which is the only file base files can
  282.    be uploaded to directly.  ACS in file bases are options G-L as you can
  283.    see from the above.  List ACS (G) is the ACS for users to list the file
  284.    base in newscans or via the file commands otherwise they do not see it.
  285.    By the above example a unvalidated user can view this particular base.
  286.    Names ACS is the ACS required to view uploader names on the files
  287.    in this case its a higher level than validated users.  Upload ACS is the
  288.    acs required to upload files to this base.  You will notice it is FU which
  289.    is read as "user must have flag U"  I don't allow everyone to upload but
  290.    certain users that I give them the U flag otherwise they can't upload at
  291.    all.  Download ACS is that which is required to download files from.  In
  292.    this case you must be validated to download from here.  Sysop ACS is for
  293.    file base co-sysops or sysops to do the various sysop functions.  So in
  294.    conclusion a user can view the base but not download until validated
  295.    and not view uploader names until he reaches SL 60 or above.
  296.       Telegard events are very versatile and powerful.  Without going into
  297.    large details that are beyond the scope of this article the events allow
  298.    you to schedule various things like chats or times certain users can
  299.    be online.  I will show just one example of an ACS event.  This is an
  300.    event in which only users with the defined ACS can login.  This example
  301.    I made up to show:
  302.  
  303.           A. Active          Yes
  304.           B. Description     Adult Female hour at BBS
  305.           C. Event type      Login ACS Restriction (A)
  306.           D. Execute time    01:00
  307.           E. Duration        30 minutes
  308.              Event Range     01:00..01:30
  309.          F. Options         s50GFa18
  310.          G. Days active     -----F-
  311.          K. Nodes           Node 1
  312.  
  313.       In this example I allow only females (GF acs) who are validated (s50)
  314.    and are age 18 or above (a18) to login.  The ACS is in item F.  This
  315.    means the bbs only allows these females from 1 to 1:30pm on fridays to
  316.    login and no one else.
  317.       The powerful scripting language also allows you to use ACS in its
  318.    scripts.  An example comes default with Telegard and that's the logon.scr
  319.    which controls the logon sequence.
  320.  
  321.       ; LOGON.SCR                                     Last Modified:
  322.       ;                                               July 13, 1998
  323.       [snip of other items]
  324.       ;
  325.       ACS R8 PUTNL "`07Account limits ......: `0B~RC calls per day
  326.         and ~RT minutes per call"                                       
  327.       ACS !R8 PUTNL "`07Account limits ......: `0B~RC calls per day
  328.         and ~RT minutes per day"
  329.  
  330.       Note: The ACS lines are actually ONE line.
  331.  
  332.       The Rx acs item in acs.ref is a flag check for restrictions.  In this
  333.    case R8 means the user (if he has the restriction) is limited to time
  334.    per call per the system setup.  The logon script will check for the
  335.    restfiction and if so display to the user their minutes per day otherwise
  336.    the other one (!R8 - NOT restricted) then they are showed minutes per day.
  337.       There are many other areas where the ACS in Telegard can be used.  For
  338.    example every language file you can can have its own ACS so that only
  339.    certain users with that ACS might see their own language files and
  340.    strings.  Every Telegard node (if multi-node) can have its own node
  341.    ACS to restrict some nodes to only allow certain users.  File protocols
  342.    like Zmodem can also be used with ACS restrictions.  Even the voting
  343.    booth can allow you to restrict who can vote and which users can add
  344.    their voting answers.  This is only a portion of the various methods
  345.    and areas you can use it.
  346.       Telegard is already quite secure on its own but if you need further
  347.    documentation on Telegard security consult the FAQ set that is posted
  348.    in the Fido Tg_support echo by Carol Shenkenberger or can be found
  349.    to download as well.  But be warned if you good up the ACS security
  350.    can be compromised.  Don't let this dismay your action of using it though.
  351.    The most common mistakes are typos in the ACS string so verify it before
  352.    you begin.  If you use a1850 and it should've meant a18s50 then the ACS
  353.    will only allow those over age 1850 so it will mess up unless the S is
  354.    in there.  
  355.       By now you should have some understanding of how ACS works in Telegard.
  356.    I will now cover some ACS items from acs.ref that might be vague and give
  357.    an example.
  358.       #C - say you want to display a line of text for only users who used
  359.    the Callback door but were long distance.  The Callback door gave the user
  360.    "LCBV" so you could use #C"LCBV" in your ACS string.
  361.       B  - Baud rate check.  Say you have slow 2400 bps callers and want
  362.    to tell them doors will be slow via a ansi file.  The ACS string would
  363.    then be B24.
  364.       C/D- Group ACS.  The difference is that Cx is used for message groups
  365.    and Dx is used for the file group.
  366.       E/F- User flag ACS.  There are two sets of flags every user can have
  367.    giving them up to 52 flags per user.  E is for flag set 1 and F for 2.
  368.       G  - Gender ACS.  Only 2 values here F)emale or M)ale.
  369.       H  - Hour of day.  Say you want to allow a door use after a certain
  370.    hour of the day you can do it with this ACS.  For example H10 would
  371.    allow use of the door after 10am.
  372.       I  - User ID.  This could be useful for displaying a file to a certain
  373.    user via the logon.scr.
  374.       J/K- Board ACS.  You would use this if you wish to check to see if
  375.    the user is on a particular message/file base.
  376.       Y  - Hours of the day.  This ACS item is useful to for example allow
  377.    a door to be accessed only after noon.  Since noon is 12 hours after
  378.    midnight it would be 720 minutes so you could use Y720 as the string.
  379.       The other ACS items should be self-explanatory and easy to understand.
  380.  
  381.       In conclusion the Telegard ACS system is by far the most powerful tool
  382.    in the customization of Telegard and security.  So use it wisely and to
  383.    your full advantage for a full and complete bbs setup.
  384.  
  385.       To contact me if you have comments or feedback:
  386.                 
  387.       Scott Adams - Fringe BBS
  388.       email: longshot@darktech.org
  389.       website: http://users.cybermax.net/~longshot
  390.       ICQ #: 24436933  FidoNet netmail : 1:112/91
  391.       IRC Nick: Longshot
  392.       FidoNet Telegard support echo - TG_support
  393.  
  394.