home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / bbs / fn132bin / fdman / chapter.10 < prev    next >
Text File  |  1991-09-03  |  28KB  |  572 lines

  1.  
  2.  
  3. Chapter 10:  Anti-Ruggie Measures                                        133
  4.  
  5.  
  6.  
  7.  
  8. 10  Anti-Ruggie Measures
  9.  
  10.  
  11.    __Ruggie__ is short for  ``rug-rat''; it's a somewhat mutated  term which
  12. now refers to any brat, twit, twerp, loser, wanker,  nud, idiot, len, moron,
  13. or  generally, any  walking waste  of protoplasm.    These  types of  people
  14. (often, though  by no means exclusively,  kids who've just been given  their
  15. first modem for Christmas)  may suddenly spring up and begin to  plague your
  16. BBS. They may do any  one of a number of things, from logging in  and asking
  17. stupid questions,  to putting  drivel in the  discussion rooms, to  strewing
  18. megabytes of  profanity all over your  board.  If  they do the former,  then
  19. you may  simply want  to take  them aside,  so  to speak,  and answer  their
  20. questions.  If they do something like the latter, then read on.
  21.  
  22.  
  23.  
  24. 10.1  Philosophy
  25.  
  26.    ``But  first, a  brief  philosophical interlude.''    The  developers  of
  27. Fnordadel have  been running conversation-only BBSes  for a number of  years
  28. (the Round  Table, Royce's  board, went  up in  August of  1984, and  Secret
  29. Service, Adrian's board, has been around since March of 1986).   In all that
  30. time,  a philosophy of  ``open'' Sysoping  has prevailed.    That is,  we've
  31. always disliked the validation  style of BBSes---the kind where you  have to
  32. leave ten  pages of  personal information  before the Sysop  will grant  you
  33. access to his  system.  We prefer to  run systems where anyone can  create a
  34. new account at  any time, without Sysoply  intervention, and then dive  into
  35. most of what goes on with the system.
  36.  
  37.    The problem with this, of  course, is that undesirables tend to  slip in.
  38. Any ruggie can  call in and leave his  drivel or profanity at any time,  and
  39. there ain't  much that the Sysop  can do about  it.   About the most he  can
  40. do, on a  standard Citadel, is delete  the offending messages as soon  as he
  41. sees them,  hopefully before they  got sent anywhere  if the rooms  affected
  42. are networked,  and  pray the ruggie  doesn't call  back.   Or  he can  turn
  43. his system into a  ``closed'', validation-style system, which may not  be an
  44. attractive option.  It certainly isn't to us.
  45.  
  46.    Here in Edmonton, we've had a pretty determined gang  of ruggies plaguing
  47. the boards  for a  couple of  years, and  it was primarily  these twits  who
  48. prompted the  development of Fnordadel's  anti-ruggie features which  aren't
  49. found on other Citadels.
  50.  
  51.    *Please note:* no  security measures ever  devised can stop a  determined
  52. incursion,  so  we advise  you  to be  pretty  low-key about  what  security
  53. measures you may have in place, to avoid tempting people to break them.
  54.  
  55.  
  56.  
  57. Chapter 10:  Anti-Ruggie Measures                                        134
  58.  
  59.  
  60.  
  61.  
  62. 10.2  The Secret Weapons
  63.  
  64.    Here, then,  are the tools at  your disposal.   Use any combination  that
  65. works for you without causing your regular users undue discomfort.
  66.  
  67.  
  68. 10.2.1  Paranoid mode
  69.  
  70.    Standard Fnordadel requires that  users login using their  password only;
  71. if people are intelligent  in choosing their passwords, this works  fine and
  72. is quicker than having to  type in one's user name as well.   Unfortunately,
  73. many people  are not  the least bit  intelligent when  it comes to  password
  74. choosing (or  anything else, for  that matter), so  it leaves a  resourceful
  75. ruggie with  some golden opportunities to  hack someone's account and  cause
  76. chaos.
  77.  
  78.    If  you define  the variable  #getname  to have  the  value `1'  in  your
  79. `ctdlcnfg.sys'  (referred to  in the  literature as  ``paranoid mode'',  for
  80. hysterical...   err...  historical reasons),  Fnordadel will ask for  both a
  81. name and a password when logging users in.  This means  that a ruggie has to
  82. guess not only  a user's password, but  to which user the password  belongs.
  83. This is pretty tough.
  84.  
  85.  
  86.  
  87. 10.2.2  Messages per room per call
  88.  
  89.    A favourite  ruggie  trick is  to use  an automated  macro  to enter  one
  90. message (frequently  something short but  obscene) into  one or more  rooms,
  91. over  and over  and  over again;  the  goal being  to  scroll all  the  real
  92. messages out of your message base.
  93.  
  94.    To combat  this, Fnordadel  allows you  to define the  maximum number  of
  95. messages which  any given user can  enter in any  given room during any  one
  96. login session.   (The  Mail> room is  an exception;  see the next  section.)
  97. Simply  define the  `ctdlcnfg.sys'  variable #msgenter  to be  your  desired
  98. maximum.   For most systems,  a number like  `4' or `5'  is pretty good;  it
  99. allows the  legitimate users plenty of  leeway for verbosity, while  helping
  100. to contain the  damage done by a  vandal.  Deleting  4 or 5 messages from  a
  101. few rooms  is much  better than deleting  hundreds, or  having to nuke  your
  102. message base because it's full of ``Sysop Sucks Eggs'' messages.
  103.  
  104.    Setting this parameter  to `0' means there is  no limit on the number  of
  105. messages enterable by  anybody.  Even if  the value is non-zero,  all Aides,
  106. Co-Sysops and the Sysop are exempt from the limit.   Hopefully you won't all
  107. run wild.
  108.  
  109.  
  110.  
  111. Chapter 10:  Anti-Ruggie Measures                                        135
  112.  
  113.  
  114.  
  115.  
  116. 10.2.3  Mail messages per call
  117.  
  118.    The  parameter  #mailenter  in  `ctdlcnfg.sys'  works  exactly  like  its
  119. counterpart msgenter  described above.    It controls only  the Mail>  room,
  120. however, and  thus allows you to  independently alter users' use of  private
  121. mail.  Not only  can this be used to stop vandals from flooding  your decent
  122. users with  junk mail, it can  be used to control  non-ruggies who may be  a
  123. bit too enthusiastically posting private messages.
  124.  
  125.    Again, setting  this parameter  to `0'  means there  is no  limit on  the
  126. number of  messages enterable by  anybody.  Aides,  Co-Sysops and the  Sysop
  127. are exempt from the limit in any case.
  128.  
  129.    Another parameter to consider  in this area is allmail.   If set  to `1',
  130. the  parameter allows  all users  full access  to entering  messages in  the
  131. Mail> room.   If set to  `0', however, users are  not able to enter mail  to
  132. anybody except `Sysop',  unless you manually give them mail  privileges (see
  133. Section 5.2 [User Status  Commands], page 80).  Naturally,  Aides, Co-Sysops
  134. and the  Sysop always have  full Mail>  access.   See `flipbits.man' if  you
  135. need a way to set the mail access flag for all users in one swell foop.
  136.  
  137.  
  138. 10.2.4  Maximum number of calls per day
  139.  
  140.    This parameter  is called  #maxcalls in  `ctdlcnfg.sys', and  is used  to
  141. limit the total  number of calls any  user (except Aides, Co-Sysops and  the
  142. Sysop, of course) may make in a given day.   Again, setting the parameter to
  143. `0' means there is no limit.
  144.  
  145.  
  146.  
  147. 10.2.5  Maximum connect time per day
  148.  
  149.    This parameter  is  called #maxtime  in `ctdlcnfg.sys',  and  is used  to
  150. limit  the total  connect time  any user  (except Aides,  Co-Sysops and  the
  151. Sysop, of  course) may use  up in  a given day.   The  value is in  minutes.
  152. Again, setting the it to `0' means there is no limit.
  153.  
  154.    This measure  is like  the others,  in that  it is  non-intrusive---users
  155. will  not be  booted  off the  system the  second  they exceed  their  daily
  156. allotment of connect  time.  Instead, they  will be allowed to  finish their
  157. current login session.   But if they call  back the same day, they  will not
  158. be permitted entry.   This seems  to us like a  good mix of control for  the
  159. Sysop vs.  consideration for the users.
  160.  
  161.    A related parameter that you might want to look at is  mincalltime.  This
  162. value is  in minutes,  and specifies the  minimum connect  time you wish  to
  163. ``charge'' a user  on any call,  no matter how short it  is.  (For  example,
  164. if you  set this variable  to `5', all  calls of five  minutes or less  will
  165. be charged as  five minutes.)  The  lowest acceptable value is `1',  but you
  166. can set it higher  if you're concerned about users that call  frequently but
  167. spend very little time connected.
  168.  
  169.  
  170.  
  171. Chapter 10:  Anti-Ruggie Measures                                        136
  172.  
  173.  
  174.  
  175.  
  176. 10.2.6  Maximum number of close calls per day
  177.  
  178.    Now we get really  tricky.  First of all,  you say, ``What the heck  is a
  179. `close call'?   I just about  got hit by a  truck, is that what you  mean?''
  180. Not quite.    We define a  close call  to be any  call made  by a user  that
  181. occurs  a certain  small amount  of time  after the  termination of  his/her
  182. last  call.   Ruggies  frequently do  this, as  you'll know  if you  examine
  183. your `calllog.sys' file after ruggie problems---you'll probably  see lots of
  184. (usually short)  calls, one after  the other.   They will  do this for  sure
  185. if you  have defined the msgenter  parameter, since that value  unreasonably
  186. limits the number of drivelous messages they can post during one call.
  187.  
  188.    Well,  there's  hope.     Simply   define  the  `ctdlcnfg.sys'  parameter
  189. #closetime to  be the number  of minutes separating what  you think are  two
  190. calls that  are ``close''.   We suggest  something like 10  minutes.   Next,
  191. define the parameter maxclosecalls  to be the maximum number of  close calls
  192. that users will be allowed on a daily basis.   We suggest a number somewhere
  193. between 3 and 5 if you're having problems, but be  aware that you'll also be
  194. putting the clamps on any decent users that have bad  line noise problems or
  195. call-waiting on their  phone lines (they'll get disconnected  frequently and
  196. probably try calling back right away).
  197.  
  198.    If either of the  above parameters is set to  `0', there is (you  got it)
  199. no limit.   Also,  predictably, Aides,  Co-Sysops and  the Sysop are  exempt
  200. from the limit.  Be aware, when setting maxclosecalls,  that all users start
  201. each day  with this  stat set to  `1'.   Their first  call is by  definition
  202. close to itself.  Make sense?
  203.  
  204.  
  205. 10.2.7  Daily download limit
  206.  
  207.    For those users  that may be downloading stuff  like crazy, you may  want
  208. to set a  limit on how much  they can do in a  day.  Use the  `ctdlcnfg.sys'
  209. parameter  #download, which  is  a number  defining  the maximum  number  of
  210. kilobytes of  files downloadable by  any user  (except Aides, Co-Sysops  and
  211. the Sysop) per day.  If the value is `0', there is, of course, no limit.
  212.  
  213.  
  214.  
  215. 10.2.8  Twit status
  216.  
  217.    This is the ``twit-bit''; it's a flag in the user log  record to tell the
  218. system that the  user is, as they  say, a twit.   To set it, use  the [T]wit
  219. toggle command  from the [U]ser  status sub-menu under  the Sysop menu  (see
  220. Section 5.2 [User Status Commands], page 80).
  221.  
  222.    What does  the twit-bit do,  you ask?   The most  useful function of  the
  223. twit-bit  is to  cause all  messages entered  by twits  to be  saved not  to
  224. the message  base, but  to the Great  Bit Bucket In  The Sky.   (I.e.,  they
  225. are  thrown away  the nanosecond  the user  hits [S]ave.)    Note that  this
  226. is different  from the purge  feature, covered  in Section 10.2.10  [Message
  227. purging],  page 137,  where local  messages from  undesirables are  actually
  228. saved, but then automatically deleted later.
  229.  
  230.    In  addition,    certain  Fnordadel   functions  will   be   mysteriously
  231. inoperative or different for a twit.
  232.  
  233.  
  234.  
  235. Chapter 10:  Anti-Ruggie Measures                                        137
  236.  
  237.  
  238.  
  239.  
  240.   o A twit may not use the [C]hat command.
  241.  
  242.   o He/she may not upload or download files.
  243.  
  244.   o Doors are inaccessible to a twit.
  245.  
  246.   o The command  `.RG' for reading  all new messages  on the system will  be
  247.     mapped to [N]ew.
  248.  
  249.   o A twit will not be allowed to use .E(nter) R(oom).
  250.  
  251.   o As a sort of  side-effect, no new users will be allowed to login  to the
  252.     system immediately after a twit has [T]erminated.   (This is to stop his
  253.     buddies, or  new aliases with  him attached.)   As soon as one  existing
  254.     user  signon has  occured,  new  users will  once  again be  allowed  to
  255.     login.   (This function assumes  that you're not running your  Fnordadel
  256.     in validation mode.  See Section 10.2.14 [Closed system], page 140.)
  257.  
  258.  
  259. 10.2.9  Inheritance
  260.  
  261.    Another  favorite  trick   of  ruggies  is   to  play  around  with   the
  262. .T(erminate) S(tay)  feature---that form  of .T(erminate)  which allows  the
  263. user  to  stay connected  and  login  again (presumably  under  a  different
  264. alias).
  265.  
  266.    Fnordadel makes  an  assumption which  is pretty  accurate,  most of  the
  267. time.   It  assumes that  anyone who  logs in after  a twit  has used  `.TS'
  268. is also  a twit, and assigns  him/her twit status just  as if the Sysop  had
  269. manually done so.
  270.  
  271.    Currently,  Fnordadel  allows only  twit  status  to  be  inherited;  the
  272. capability may be extended to include purging and whatever else may arise.
  273.  
  274.  
  275.  
  276. 10.2.10  Message purging
  277.  
  278.    This is  probably the  goofiest  yet most  useful of  the ruggie  control
  279. features,  mainly because it's  the most  devious.   Essentially, it  allows
  280. Fnordadel  to  automatically  delete  all  messages  from  specified  users,
  281. immediately  upon said  users' disconnection  from  the system.    Also,  if
  282. you set  the `ctdlcnfg.sys'  parameter #purgenet  to `1',  all incoming  net
  283. messages  (except in  Mail>) from  specified users  *or net  nodes* will  be
  284. purged.
  285.  
  286.    Place a file called `purge.sys'  into your #sysdir.  It should  contain a
  287. list of  user or node  names, one per  line, to whom  the purge will  apply.
  288. Case is irrelevant, since all name comparisons  during searches ignore case.
  289. Now invoke citadel with `+purge' on the command line.
  290.  
  291.    When Fnordadel is  brought up it reads  the contents of `purge.sys'  into
  292. memory.  When  a user [T]erminates, or a network session finishes,  the list
  293. is checked.   New  messages from  the desired users  and nodes are  deleted,
  294. except for  those posted  in the  Mail> room  (this gives them  a chance  to
  295. talk to  you and redeem themselves).   The  deleted messages will appear  in
  296.  
  297.  
  298.  
  299. Chapter 10:  Anti-Ruggie Measures                                        138
  300.  
  301.  
  302.  
  303.  
  304. Aide> in the case  of locally-entered messages; they will be marked  by `The
  305. following message deleted from xyz> by Citadel'.
  306.  
  307.    You can  modify this  behavior by  setting the  `ctdlcnfg.sys' variable
  308. #vaporize to `1'.   If you do this, your system will actually  ``roll back''
  309. all messages  (including those in Mail>)  entered by the ruggie,  reclaiming
  310. the space  they took  up in  the message  base.   This action  is logged  in
  311. Aide>.   Note that  if the user  caused any Aide>  messages to be  generated
  312. during  his/her stay,  they  will be  lost  along will  all the  other  user
  313. messages when the vaporization  occurs.  This fact is logged in  Aide> also,
  314. but  the lost  Aide> messages  themselves are  not recoverable,  unless  you
  315. are archiving the  room.  See  Section 4.2.1 [Sysop room-editing  commands],
  316. page 70.
  317.  
  318.    Normal purging takes a little time, but vaporize mode  takes even longer.
  319. Use with  caution (if  it screws  up, it  will probably  toast your  message
  320. base),  and only  if you  are being  plagued  with so  many ruggie  postings
  321. that they're  causing serious space  wastage in your message  base.   Better
  322. yet, if you're having  this much trouble, consider moving and  changing your
  323. identity.
  324.  
  325.    The  purge  list  can be  maintained  by  using  a  text  editor  on  the
  326. `purge.sys'  file when  the BBS  is down;  and  by the  use  of the  [P]urge
  327. sub-menu under the Sysop menu when when the BBS is up.   See Section 10.2.12
  328. [Purge and Westwict menus], page 139, for details on how the menu works.
  329.  
  330.    The purge  feature works fairly well;  however, it  does nothing to  make
  331. your message  base impervious to having  loads of crap  dumped in it in  the
  332. first place.   If  you want to  stop the messages  from being entered  while
  333. still keeping  your system  up, you  have only  two choices:   use the  twit
  334. status bit  a lot  (see Section  10.2.8 [Twit status],  page 136)  or go  to
  335. validation mode (see Section 10.2.14 [Closed system], page 140).
  336.  
  337.    Note also that Fnordadel makes no check to see that  names in `purge.sys'
  338. are those  of existing  users on  your system;  this allows you  to add  the
  339. names of ruggies who  may have been terrorising other boards but  not yours.
  340. You can prepare in advance  for their arrival.  Also, once a ruggie  has hit
  341. your system,  he may  leave it  alone long  enough for his  user account  to
  342. scroll out of your user file.  If he ever signs  back on with the same name,
  343. however, he will still be purged immediately.
  344.  
  345.    Finally, the  purge function can  be applied to  incoming net traffic  as
  346. well as  locally-entered messages.    This can be  effective in  eliminating
  347. dreck from  problem net nodes  to which  you don't connect  directly.   Even
  348. better,  net messages  eliminated  by the  purger never  make  it into  your
  349. message base, so they  cause no space wastage.  They are  either permanently
  350. lost, or  saved each in its  own offline file  for you to manually  process.
  351. See  #purgenet  and  #keepdiscards in  Section  8.1.2  [Optional  Networking
  352. Parameters], page 98, and the [D]iscarded messages menu  in Section 8.2 [The
  353. Net Menu], page 104.
  354.  
  355.  
  356.  
  357. Chapter 10:  Anti-Ruggie Measures                                        139
  358.  
  359.  
  360.  
  361.  
  362. 10.2.11  Login restrictions
  363.  
  364.    This doesn't  really qualify  as an  anti-ruggie feature,  in the  truest
  365. sense, but we'll put it here anyway because it's similar.
  366.  
  367.    Put a  file called `restrict.sys'  in your #sysdir  containing a list  of
  368. user names, one  per line.  When Fnordadel  is brought up it reads  the list
  369. into  memory.   If  you specify  `+restrict' on  the  citadel command  line,
  370. or if  you manually  turn on  restrictions using the  [W]estwict command  in
  371. the Sysop  menu, then  Fnordadel will  restrict logins to  only those  users
  372. named in `restrict.sys'.   All other attempted logins, whether by  new users
  373. or  by existing  users,  will  be refused---the  system  will spit  out  the
  374. `restrict.blb' file,  located in  your #helpdir,  or a  simple ``sorry,  the
  375. system is closed'' message if it can't find `restrict.blb'.
  376.  
  377.    In  the  ruggie-control  sense,  login  restrictions  could  be  used  to
  378. restrict  access to  your  system to  only those  users  that you  know  are
  379. ``safe'', without having  to actually process their applications  and create
  380. their  accounts yourself  (as required  by ``validation''  mode).   As  with
  381. purging,  it has  the advantage  that you  may  specify the  names of  users
  382. who have  never logged in,  so you can  ``reserve a spot''  for them, as  it
  383. were.  (Of course, this is itself a security hole,  because a ruggie can try
  384. to guess  who you've got  in your restrict  list...  but  let's not get  too
  385. paranoid.)
  386.  
  387.    Login restrictions were  originally put in during  a round of hacking  on
  388. the  software in  which we  were constantly  interrupted  during testing  by
  389. users calling  the board;  we  wanted to  reserve the  board for  ourselves,
  390. without disabling  it.   Another possible use for  login restrictions is  to
  391. designate a certain  time period for ``members  only'' or some such;  simply
  392. set up a pair of  events which exit to a command shell, where a  script file
  393. copies a new `restrict.blb' into place, and then reruns citadel.   The first
  394. event set the restriction  to ``members only'', and the second  event resets
  395. things to open access.  The possibilities are endless!
  396.  
  397.  
  398. 10.2.12  Purge and Westwict menus
  399.  
  400.    The purge and  restrict lists may be  manipulated using these two  menus.
  401. Their operation is identical.  The commands are:
  402.  
  403.       [A]dd name to list
  404.       [D]elete name from list
  405.       [S]witch function on/off
  406.       [V]iew list in RAM
  407.       [W]rite list to disk
  408.       e[X]it menu
  409.  
  410. [A]dd name to list
  411.            This allows  you to add another  name to the list.   No check  is
  412.            made to  see whether  the name  is that  of a  currently-existing
  413.            user; this is deliberate.  (See below).
  414.  
  415. [D]elete name from list
  416.            Use this to remove someone from the list.
  417.  
  418.  
  419.  
  420. Chapter 10:  Anti-Ruggie Measures                                        140
  421.  
  422.  
  423.  
  424.  
  425. [S]witch function on/off
  426.            This toggles purging/restrictions on  or off.  If it is  off, the
  427.            list will still be  kept in memory, so the feature can  be turned
  428.            on again at any time.
  429.  
  430. [V]iew list in RAM
  431.            This displays  a list of the names  currently in the list  stored
  432.            in memory.
  433.  
  434. [W]rite list to disk
  435.            After  you've made  some changes  to  the list,  you'll  probably
  436.            want to  make them  permanent.   Use  this command  to write  the
  437.            contents of  the list  in RAM  to disk (as  the file  `purge.sys'
  438.            or  `restrict.sys'.)    The  old  file, if  it  exists,  will  be
  439.            overwritten.
  440.  
  441. e[X]it menu
  442.            Exit back to the main Sysop menu.
  443.  
  444.  
  445. 10.2.13  Network security
  446.  
  447.    If you  suspect another Citadel  net node is  actively causing you  grief
  448. (or if you just want  to play it safe/paranoid), there are a few  things you
  449. can do to  protect your system.  The  first is to set up net  passwords with
  450. the systems you normally net with, assuming you  trust them (see [P]asswords
  451. in Section  8.3 [Editing Nodes], page  107.)   There have been incidents  in
  452. the past where unscrupulous  Sysops set up systems that looked  exactly like
  453. other systems,  and then dialed  in to places in  order to intercept  shared
  454. rooms and Mail>,  and generally cause chaos.   Net passwords were put  in to
  455. prevent this behavior.
  456.  
  457.    Two  other  things  you  can  do  are  to  set   the  anonnetmail  and/or
  458. #anonfilexfer parameters  in `ctdlcnfg.sys'.   These  parameters, if set  to
  459. `0',  will make  your system  reject attempted  incoming net  mail and  file
  460. transfer requests,  respectively, if  the sending  node is not  in your  net
  461. list.    This prevents  rogue systems  from scrolling  your  Mail> room  and
  462. message base,  or filling  up all  available disk  storage.   It would  also
  463. prevent the ``junk  mail'' phenomenon, which  is already a problem with  fax
  464. machines.  Heaven help us all if it hits BBS networks.
  465.  
  466.  
  467.  
  468. 10.2.14  Closed system
  469.  
  470.    So, let's say  that everything else has failed.   The ruggies have  found
  471. out about  all of  the above features,  and have  found workarounds for  all
  472. of them.   Or they  haven't, but have enough  time and perseverence to  keep
  473. plugging away with  every automated macro and  trick they can come up  with.
  474. What do you do now?
  475.  
  476.    Much as  we hate  to suggest  it, the  best option is  probably to  close
  477. your  system.   To  do so,  simply change  the value  of the  `ctdlcnfg.sys'
  478. variable #loginok  to 0.   This will prevent  new users from creating  their
  479. own accounts; they will  only be able to leave mail to the Sysop  to request
  480. that you create an account for them.  You will  then have total control over
  481.  
  482.  
  483.  
  484. Chapter 10:  Anti-Ruggie Measures                                        141
  485.  
  486.  
  487.  
  488.  
  489. who gets access to your system; unfortunately, you'll also  have opened up a
  490. whole new can of  problem worms, such as ruggies who request  bogus accounts
  491. by just  randomly pulling names  from the phone  book.   At this point,  you
  492. should be  talking to  your phone  company about getting  an unlisted  phone
  493. number, and perhaps a line trace.  They might be willing to help you out.
  494.  
  495.    In  conjunction  with  this  step,  you  may  also  need  to  define  the
  496. `ctdlcnfg.sys' parameter  called #anonmailmax,  which controls  the size  of
  497. mail messages  enterable by users  that aren't  logged in.   This will  help
  498. prevent  ruggies who  can no  longer log  in from  causing  you problems  in
  499. Mail>, the last room available to them.
  500.  
  501.  
  502.  
  503. 10.3  Other Hints and Notes
  504.  
  505.   o When using  the purge feature  on incoming net  traffic, make sure  that
  506.     none of the  user names in your purge  list is the same as any  net node
  507.     you get messages from.  The results are obvious, and highly annoying.
  508.  
  509.     Also, the net  purge currently is set to be very literal  about matching
  510.     user  names  on other  nodes---no  substring matching  is  done.    This
  511.     prevents messages  from `Dr. Zamboni' from  being blown away along  with
  512.     those from  `Dr. Zam'.  However,  it is marginally possible (due  to all
  513.     the strange and  wonderful variants of Citadel out there)  that messages
  514.     from  `Dr. Zam'  would  not be  purged due  to  some software  somewhere
  515.     sticking extra crap  in the user name field,  e.g.  `Dr. Zam  @ Foobar'.
  516.     This isn't  supposed to happen,  but it might.   We'll figure  something
  517.     out to get around it when/if it becomes a problem.
  518.  
  519.   o When users exceed  any of the limit values you have defined,  the system
  520.     keeps track of the excess amount over and  above the maximums, and rolls
  521.     that amount  forward to future days.   This is  done like so:  When  the
  522.     user calls back any  day after today (could be many days from  now), the
  523.     system subtracts from  his/her accumulated stats the maximum  values you
  524.     set.    It then checks  to see  if the  user should  be allowed  access;
  525.     if not,  the new  lower limit values  are saved and  the user is  logged
  526.     off.  Thus users who abuse your system  (especially in the total connect
  527.     time  area) could  penalize themselves for  several days.    Note:   The
  528.     system does not care if the user calls back  tomorrow or four weeks from
  529.     now.  No extra deductions from the user's  accumulated stats are made if
  530.     he/she waits for several days or weeks to call back.
  531.  
  532.     Also note:   If a user makes a  call and is prevented access due  to one
  533.     or  another of your  defined limits,  the call is  counted and  recorded
  534.     against their time and number of calls limits,  even though the user was
  535.     not allowed onto the system.
  536.  
  537.     Final  note:   If  you  don't like  this  behavior of  rolling  overages
  538.     forward,  you can  get rid  of it  using the  `ctdlcnfg.sys' parameter
  539.     #autozerolimit.     If  set to  `1',  this  flag  tells  the  system  to
  540.     graciously wipe out all the user's limit  values and start from scratch,
  541.     rather than bringing forward any extra amounts.
  542.  
  543.  
  544.  
  545. Chapter 10:  Anti-Ruggie Measures                                        142
  546.  
  547.  
  548.  
  549.  
  550.   o If  you need  to manually  reset  a user's  limit statistics,  for  some
  551.     reason,  you can do  so using the  [R]eset daily  limits command of  the
  552.     user status  menu.   You can look  at a user's  current stats using  the
  553.     [V]iew user  status command  in the same  menu.   See Section 5.2  [User
  554.     Status Commands], page 80.
  555.  
  556.   o The system pauses  for about 20 seconds on bad passwords,  to discourage
  557.     password  guessing.    After  a certain  number  of bad  login  attempts
  558.     (currently 3), the system will disconnect the caller.
  559.  
  560.   o If you're having ruggie problems and haven't got  as far as closing your
  561.     system yet, you'll want to make sure that  you aren't being too careless
  562.     with the new users' privileges.   The `ctdlcnfg.sys' variable #allnet is
  563.     a good  one to check; if  it's set to `1',  all new users are given  net
  564.     privs (and  can therefore  enter net messages  in shared rooms,  whether
  565.     the room is  autonet or not).   If you net long-distance rooms  (or even
  566.     just  local ones), it  would be both  a profound  annoyance for all  the
  567.     other Sysops,  and a possibly  expensive proposition in  the case of  LD
  568.     netting, to send  out a flood of messages from a ruggie who  was allowed
  569.     to post  net messages in  a shared room.   Be careful.   (See Chapter  8
  570.     [Networking], page 96.)
  571.  
  572.