home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / network / fingerd / fingerd.doc < prev    next >
Text File  |  1993-09-30  |  22KB  |  598 lines

  1.  
  2.                 "FINGERD:  A FINGER Server for OS/2"
  3.  
  4.                        U S E R   M A N U A L
  5.  
  6.                    FIRST EDITION - August 1, 1993
  7.  
  8.                by R L Samuell  (samuell@cis.uab.edu)
  9.  
  10.  
  11.  
  12. 1 - GENERAL
  13.  
  14. This document is a user manual for the FINGERD program.  It 
  15. includes information of a general nature about the program as well 
  16. as specific details on features and options, program operation, files
  17. and parameters, and program administration.
  18.  
  19. Before using the FINGERD program, please read the notices and 
  20. license in subsection 1.6.  I develop programs for several reasons:
  21. The computing challenge, the provision of something useful for others,
  22. the satisfaction of artistic desire, and, of course, in some cases,
  23. the renumeration.  Please honor me as a person and my work as a
  24. personal endeavor, and abide by the notices and license set forth in
  25. this document.
  26.  
  27.  
  28. 1.1 - INTRODUCTION
  29.  
  30. FINGERD is a program that provides user information about the OS/2
  31. system where it is running in response to a 'finger' query from 
  32. another system.
  33.  
  34.  
  35. 1.2 - TERMINOLOGY
  36.  
  37. FINGERD is an acronym for FINGER Daemon.  In the architecture of 
  38. client-server applications, FINGERD is also called a FINGER server 
  39. while the program making a 'finger' query is called a FINGER client.
  40.  
  41.  
  42. 1.3 - REQUIREMENTS
  43.  
  44. FINGERD is written in the REXX command language.
  45.  
  46. It runs under OS/2 2.0 GA with IBM's TCPIP 1.2.1 with the latest CSDs 
  47. applied.
  48.  
  49. Also, it requires the installation of the latest version of IBM's 
  50. Employee Written Software (EWS) RxSock package which may be 
  51. downloaded from any of the various Anonymous FTP sites that offer 
  52. OS/2 software.
  53.  
  54. FINGERD monitors port 79.
  55.  
  56.  
  57. 1.4 - OVERVIEW
  58.  
  59. Please note that if you run FINGERD on your system, then you agree
  60. to the terms and conditions set forth in Subsection 1.6 of this 
  61. document.
  62.  
  63. FINGERD supports the following general options which are explained 
  64. in Section 3:
  65.  
  66.     /B incorporates bulletins in every reply to a client query.
  67.  
  68.     /C allows remote control of certain features.
  69.  
  70.     /L logs client access.
  71.  
  72.     /N beeps when accessed by a client.
  73.  
  74.     /R restricts access to only certain client addresses.
  75.  
  76.     /V manages the volume of messages generated in the program window.
  77.  
  78.     /X executes a program to dynamically generate a reply to a client.
  79.  
  80. Also, under certain circumstances, FINGERD treats files with the 
  81. following extensions located in its installation directory in a special 
  82. way.  These files and various program parameters are described in 
  83. Section 4:
  84.  
  85.     .BUL contain BULLETIN information.
  86.  
  87.     .CMD contain the OS/2 procedures executed to get USERID data.
  88.  
  89.     .FNG contain pre-written USERID data.
  90.  
  91.     .HST contains the list of restricted client host addresses.
  92.  
  93.     .LOG contains the history of client accesses.
  94.  
  95. See Subsection 4.3 for recovery procedures which may be required 
  96. when certain failures occur.
  97.  
  98. See subsection 5.1 for installation procedures.
  99.  
  100.  
  101. 1.5 - HISTORY
  102.  
  103. FINGERD 1.0 is the initial public version of this software.
  104.  
  105.  
  106. 1.6 - NOTICES AND LICENSE
  107.  
  108. FINGERD program is FREEWARE but that does not mean that you
  109. are free to do whatever you want with it.  
  110.  
  111. NOTICE -- COPYRIGHT 1993 by Robert L. Samuell, III
  112. (1) -- All Rights Reserved.  Publication of this document or
  113.            FINGERD software in whole or in part in any form, 
  114.            electronic or printed, in any forum, public or private, 
  115.            is expressly prohibited without the explicit permission
  116.            of the author.
  117. (2) -- The latest version of documentation for FINGERD may be
  118.            obtained by Anonymous FTP at 138.26.65.78.
  119.  
  120. LICENSE -- TERMS and CONDITIONS
  121. (1) -- You are not allowed to modify any portion of this program
  122.            other than the values of variables defined in the section
  123.            entitled 'Parameterize.'
  124. (2) -- This program is available for you to use free of charge.
  125. (3) -- Any distribution of this program must include both program
  126.            and documentation, in the latest versions, unchanged.
  127. (4) -- Commercial sale or re-sale of this program is allowed
  128.            only with the approval of the author.
  129. (5) -- DISCLAIMER: No warranties or guarantees are expressed or 
  130.            implied.  And the author assumes no liability for ANY damage
  131.            or loss whatsoever arising from the use of this program.
  132.            Furthermore, the author is under no obligation to provide
  133.            support of any kind.  This disclaimer applies to any support
  134.            that is provided.
  135. (6) -- ACCEPTANCE:  By using or distributing this program, you 
  136.            agree to these terms.
  137.  
  138.  
  139. 1.7 - REGISTRATION
  140.  
  141. When you have installed FINGERD and intend to use it on your
  142. system, please register your system by 'fingering' the following
  143. user ID on the author's system from the system where you have
  144. installed the FINGERD software:
  145.  
  146.           regist01@twinbrook.cis.uab.edu
  147.  
  148. Later, your system will be 'backfingered' to verify that FINGERD
  149. has been installed and it will then be added to the list of
  150. registered systems.
  151.  
  152. This will help the author keep a list of sites running the OS/2
  153. FINGER Server for maintenance purposes.  
  154.  
  155.  
  156.  
  157. 2 - FEATURES AND OPTIONS
  158.  
  159.  
  160. FINGERD provides a variety of features and configuration options 
  161. beyond those normally associated with the traditional 'finger' 
  162. function.
  163.  
  164.  
  165. 2.1 - BASIC QUERIES
  166.  
  167. FINGERD supports two basic types of queries from a client:  
  168. the USERID query and the NULL query.
  169.  
  170. In the USERID query case, the client sends upto 8 significant 
  171. characters of user or other identifier to the server.  If the identifier 
  172. is meaningful to the server, then it replies with a response 
  173. associated with the designated identifier.  If the identifier is not 
  174. meaningful to the server, then a response indicating that the 
  175. identifier is 'unknown' is provided.
  176.  
  177. In the NULL query case, the client sends no significant information 
  178. to the server.  And the server replies with a general response 
  179. provided by the FINGERD administrator.
  180.  
  181. See Subsection 4.1 for information on how to set up response files
  182. for the NULL and USERID queries.
  183.  
  184. The REMOTE CONTROL query is described in subsection 2.9.
  185.  
  186.  
  187. 2.2 - CLIENT LOGGING
  188.  
  189. Optionally, FINGERD provides a feature that records information 
  190. associated with each client request.
  191.  
  192. This option is specified by entering the '/L' switch (without quotes) 
  193. on the command line when FINGERD is started.  This option can be 
  194. toggled ON or OFF remotely if the REMOTE CONTROL option has 
  195. been specified.
  196.  
  197. When logging has been specified, a line of information is written to 
  198. the file FINGERD.LOG for each query received by the server while 
  199. the logging feature is ON.  This .LOG information record is described 
  200. in Subsection 4.1.
  201.  
  202.  
  203. 2.3 - CLIENT RESTRICTION
  204.  
  205. FINGERD also provides the option for restricting replies.  This is 
  206. accomplished by using a table of potential client addresses.
  207.  
  208. In this table, each client address is represented in the form of its 
  209. standard four-number Internet host identifier, for example:
  210.  
  211.                             138.26.65.78
  212.  
  213. The FINGERD program can be configured to use this restriction 
  214. table in one of two ways:  To allow only those hosts listed in the 
  215. restriction table to finger the server or to disallow (which is to not
  216. allow) only the listed hosts.
  217.  
  218. If only listed client hosts are to be allowed the finger privilege,
  219. then the restriction option is specified by entering the '/Rallow'
  220. switch (without quotes) on the command line when FINGERD is started.  
  221. This option may be abbreviated to '/Ra.'
  222.  
  223. If only listed hosts are to be refused the client finger privilege,
  224. then the restriction option is specified by entering the '/Rdisallow' 
  225. switch (without quotes) on the command line when FINGERD is 
  226. started.  This option may be abbreviated to '/Rd.'
  227.  
  228. Restriction can be toggled ON or OFF if the REMOTE CONTROL 
  229. option has been specified but changing the intent of the table 
  230. between 'allow' and 'disallow' is not permitted.
  231.  
  232. The restriction table is built during initialization from entries in
  233. the host file FINGERD.HST.  See Subsection 4.3.
  234.  
  235.  
  236. 2.4 - BULLETINS
  237.  
  238. FINGERD provides an option for incorporating one or two of three 
  239. kinds of bulletins in any reply to a client:  a HEADING BULLETIN 
  240. and/or a TRAILING BULLETIN or an ONLY BULLETIN.
  241.  
  242. Whenever the HEADING option is specified, a HEADING BULLETIN 
  243. always precedes the server's specific reply.  This option is specified 
  244. by entering the '/Bheading' switch (without quotes) on the command
  245. line when FINGERD is started.  This option may be abbreviated to 
  246. '/Bh.' 
  247.  
  248. Whenever the TRAILING option is specified, a TRAILING BULLETIN 
  249. always follows the server's specific reply.  This option is specified
  250. by entering the '/Btrailing' switch (without quotes) on the command
  251. line when FINGERD is started.  This option may be abbreviated to
  252. '/Bt.' 
  253.  
  254. Whenever the ONLY option is specified, an ONLY BULLETIN always 
  255. supersedes the server's specific reply.  This option is specified by 
  256. entering the '/Bonly' switch (without quotes) on the command line 
  257. when FINGERD is started.  This option may be abbreviated to '/Bo.' 
  258.  
  259. The content of each type of bulletin is stored in a file with the 
  260. extension .BUL which is located in the FINGER directory.  See 
  261. Subsection 4.4.
  262.  
  263. Both HEADING and TRAILING BULLETINS may be specified.  If 
  264. specified, the ONLY BULLETIN will supersede all other types of 
  265. bulletins.
  266.  
  267. If REMOTE CONTROL is specified, then the option of including any 
  268. type of bulletin may be toggled ON or OFF.
  269.  
  270.  
  271. 2.6 - ACTIVITY NOTIFICATION
  272.  
  273. FINGERD provides an option for notifying the operator of the server 
  274. computer that the server has received and responded to a client 
  275. request.
  276.  
  277. This notification consists of a two-tone sequence of beeps.
  278.  
  279. This option is specified by entering the '/N' switch (without quotes) 
  280. on the command line when FINGERD is started.  The option can be 
  281. toggled ON or OFF remotely if the REMOTE CONTROL option has 
  282. been specified.
  283.  
  284.  
  285. 2.7 - MESSAGE MANAGEMENT
  286.  
  287. FINGERD provides an option for managing the volume of messages
  288. generated by FINGERD in its window when the program is running.
  289.  
  290. With this option specified, various FINGERD processing is displayed
  291. in the FINGERD window as it happens.
  292.  
  293. This option is specified by entering the '/V' switch (without quotes) 
  294. on the command line when FINGERD is started.  This option can be 
  295. toggled ON or OFF remotely if the REMOTE CONTROL option has 
  296. been specified.
  297.  
  298. This option and the logging option operate independently.  Logging
  299. creates a permanent record of each finger request while message
  300. management provides more information on how requests are being 
  301. handled.
  302.  
  303.  
  304. 2.8 - DYNAMIC RESPONSE
  305.  
  306. FINGERD provides an option for dynamically generating information 
  307. for some USERID as the result of executing a .CMD file.
  308.  
  309. The results of the .CMD file execution are sent to the client as the
  310. response for the specified USERID.  Because of the input-output
  311. activity associated with this process, dynamic responses for
  312. USERIDs should be avoided except where a static response cannot
  313. be used.
  314.  
  315. This option is specified by entering the '/X' switch (without quotes) 
  316. on the command line when FINGERD is started.  The option can be 
  317. toggled ON or OFF remotely if the REMOTE CONTROL option has 
  318. been specified.
  319.  
  320. See Subsection 4.5 for an explanation of how to set up .CMD files
  321. used by this option.
  322.  
  323.  
  324. 2.9 - REMOTE CONTROL
  325.  
  326. FINGERD provides an option for remotely controlling the operation
  327. of the FINGER server itself.
  328.  
  329. Remote control is accomplished by fingering the FINGERD host with
  330. a dummy USERID which is a six-character password plus a one- or
  331. two-character control code.
  332.  
  333. See Subsection 4.6 for an explanation of how to set up the control
  334. password.  The following is a list of control codes and what they do:
  335.  
  336.          CODE                 ACTION
  337.  
  338.           C         turns OFF remote control
  339.           L         toggles logging ON and OFF
  340.           N         toggles notification ON and OFF
  341.           R         toggles restrictions ON and OFF
  342.           V         toggles verbose output ON and OFF
  343.           X         toggles dynamic response ON and OFF
  344.  
  345. This option is specified by entering the '/C' switch (without quotes) 
  346. on the command line when FINGERD is started.  The option can be 
  347. toggled ON or OFF remotely if the REMOTE CONTROL option has 
  348. been specified.
  349.  
  350.  
  351.  
  352. 3 - OPERATION
  353.  
  354.  
  355. FINGERD operates as a server application quietly listening for a 
  356. client query.
  357.  
  358.  
  359. 3.1 - NORMAL
  360.  
  361. FINGERD can be started by issuing a START command from the 
  362. OS/2 command line prompt, in a .CMD OS/2 procedure file, or by 
  363. including its icon in the System Start Up folder.
  364.  
  365. Initially, the program sets the options specified when it was started 
  366. and establishes its required network initialization.
  367.  
  368. Normally, after initialization, FINGERD waits until a client connects. 
  369. It then processes the client's 'finger' request, returns a response, 
  370. and disconnects the client.
  371.  
  372. FINGERD can be terminated normally by closing the application or 
  373. keying a CONTROL-C key combination when the application window 
  374. has the keyboard focus.
  375.  
  376.  
  377. 3.2 - EXCEPTIONS
  378.  
  379. If, during initialization or normal operation, a networking problem is
  380. detected, then FINGERD will signal a halt and will abort returning a 
  381. non-zero EXIT code.
  382.  
  383.  
  384. 3.3 - RECOVERY
  385.  
  386. Sometimes when FINGERD terminates either normally or from an 
  387. exception, it will be necessary to do some housekeeping before it 
  388. can be restarted.  This housekeeping can be accomplished through 
  389. the use of two programs:  NETSTAT and KILLSOCK.
  390.  
  391. The NETSTAT program is included with IBM's TCPIP software.  
  392. NETSTAT can be used to display the status of network socket 
  393. connections.  This status will be displayed by specifying the '-s' 
  394. switch (without the quotes) when the NETSTAT program is entered 
  395. at the command line prompt.  In reviewing this status report, you will
  396. want to identify any 'hanging' sockets associated with port 0079.
  397.  
  398. THE KILLSOCK program is included with the RxSock package.  
  399. KILLSOCK can be used to clear any 'hanging' sockets.  This clearing 
  400. is accomplished by specifying the number(s) of any 'hanging' 
  401. sockets each separated by a space on the command line when the
  402. KILLSOCK program is run.
  403.  
  404. These recovery procedures will be needed whenever you start 
  405. FINGERD and discover that it has aborted with some error condition.  
  406. Perform the recovery procedures and then try FINGERD again.
  407.  
  408.  
  409.  
  410. 4 - FILES AND PARAMETERS
  411.  
  412.  
  413. Various parameters and types of files control the operation of
  414. the FINGERD program.  FINGERD parameters are REXX variables having
  415. default values that may be modified by the user prior to program
  416. installation.  Types of files are distinguished by their file
  417. extension and are located in the designated FINGERD directory.  This
  418. directory is designated by the REXX variable 'fdir' which has the
  419. default value of 'C:\FINGER\'.  For the purposes of this section,
  420. this directory will be called the FINGER directory.
  421.  
  422.  
  423. 4.1 - USER FINGER INFORMATION (.FNG)
  424.  
  425. User finger information is stored in files with the .FNG extension
  426. located in the FINGER directory.  The file name must be the same as
  427. the user ID for which information is to be provided. For example, the
  428. file named OS2USER.FNG will contain information that is provided in
  429. response to a client supplying the user ID of OS2USER.
  430.  
  431. Information provided in response to a NULL query (which is a finger
  432. request without any user ID) or an unknown USERID query must be 
  433. contained in a file named NULL.FNG or UNKNOWN.FNG, respectively, 
  434. located in the FINGER directory.
  435.  
  436. The contents of a user finger information file may be any free-form
  437. text information of any reasonable length.
  438.  
  439. Files with the .FNG extension should not be generated dynamically.
  440. This may be accomplished using .CMD files and is described in
  441. Subsection 4.5.
  442.  
  443.  
  444. 4.2 - CLIENT LOG (.LOG)
  445.  
  446. When the client-logging option is turned on, log information is
  447. written to the file named FINGERD.LOG located in the FINGER directory.
  448.  
  449. One line of log information is written to the log file for each client
  450. request received.
  451.  
  452. For each client request, a line of the log file will include the
  453. following text fields in left-to-right order:
  454.  
  455. (1) the date and time that the client request was received,
  456. (2) the request code,
  457. (3) the IP client address,
  458. (4) the client name, and
  459. (5) the data comprising the client request.
  460.  
  461. The request code consists of a one-character alphabetic identifying
  462. the request type which may be followed by a one-character operation
  463. code.  The request types are designated as a NULL query (N), known
  464. user ID (I), and unknown user ID (U).  The operation codes are
  465. designated as client restricted by being in the list (+) or not in the
  466. list (-), and the ONLY BULLETIN superseded the reply (!).
  467.  
  468. The FINGERD.LOG file is opened when FINGERD starts and remains open
  469. until FINGERD ends.  The TYPE command can be used to display the
  470. contents of the log at any time.
  471.  
  472.  
  473. 4.3 - HOST RESTRICTION LIST (.HST)
  474.  
  475. Entries in the file named FINGERD.HST are used during the FINGERD
  476. initialization phase to build the client restriction table described
  477. in Subsection 2.3.
  478.  
  479. Each line of the FINGERD.HST file contains as the first field of the
  480. line the IP client address of the client to be allowed or disallowed.
  481. The remainder of the line is ignored.  This field may be terminated
  482. by a space or a tab character.
  483.  
  484. The format requirements of the FINGERD.HST file are compatible with
  485. the format of the standard TCPIP HOSTS file.
  486.  
  487.  
  488. 4.4 - BULLETINS (.BUL)
  489.  
  490. Finger bulletin information is stored in text files with the .BUL
  491. extension located in the FINGER directory.  The file name of a .BUL
  492. file corresponds to one of the three kinds of bulletins presently
  493. supported by FINGERD.  These bulletin file names are HEADING.BUL,
  494. TRAILING.BUL, and ONLY.BUL.
  495.  
  496. The contents of a bulletin information file may be any free-form text
  497. information of any reasonable length.
  498.  
  499.  
  500. 4.5 - DYNAMIC INFORMATION (.CMD)
  501.  
  502. User finger information is generated dynamically by files with the
  503. .CMD extension located in the FINGER directory.  The file name must be
  504. the same as the user ID for which information is to be provided.  For
  505. example, the file named OS2USER.CMD will generate user information
  506. that is provided in response to a client supplying the user ID of OS2USER.
  507. When the .CMD file is executed, its STDOUT will be sent as
  508. the response to the USERID query.
  509.  
  510. If both .FNG and .CMD files exist in the FINGERD directory, then the
  511. contents of the .FNG file will be returned as the response and the
  512. .CMD file will be ignored and not executed.
  513.  
  514. Information provided in response to a NULL query or an unknown query
  515. may be generated dynamically by providing .CMD files with the file names
  516. of NULL.CMD or UNKNOWN.CMD, respectively, in lieu of the
  517. NULL.FNG and UNKNOWN.FNG files.
  518.  
  519.  
  520. 4.6 - REMOTE CONTROL PASSWORD
  521.  
  522. The remote control password is specified by the value of the REXX
  523. variable 'password' in the FINGERD.CMD file.
  524.  
  525. If no remote control capability is desired, then the value of the
  526. 'password' variable must be set to the null string which is designated
  527. by two consecutive single quotes as ''.
  528.  
  529. If the remote control capability is desired, then the value of the
  530. 'password' variable must be set to a six-digit alphanumeric string
  531. which includes only numbers and upper case alphabetics.
  532.  
  533.  
  534.  
  535. 5 - ADMINISTRATION
  536.  
  537.  
  538. The administration of FINGERD is a relatively simple process
  539. involving installation, maintenance, and error-handling procedures.
  540.  
  541.  
  542. 5.1 - INSTALLATION
  543.  
  544. The distribution set of FINGERD files includes:
  545.  
  546.     FINGERD.DOC - the file containing this document
  547.     FINGERD.CMD - the FINGERD program
  548.        NULL.FNG - the default null query response file
  549.     UNKNOWN.FNG - the default unknown USERID query response file
  550.     OS2USER.FNG - a sample USERID query response file
  551.     HEADING.BUL - a sample HEADING bulletin file
  552.  
  553. To install FINGERD on your OS/2 system with the simplest configuration
  554. follow these instructions:
  555.  
  556.     (1)  Verify that you are running OS/2 2.0 GA or later, TCPIP 1.2.1
  557.            with April 1993 CSDs or later, and the latest version of
  558.            the RxSock IBM EWS freeware package.
  559.     (2)  Create the FINGER directory on drive C by using the MKDIR
  560.            command to create C:\FINGER.
  561.     (3)  Copy all files included in the FINGERD distribution set of
  562.            files into the FINGER directory.
  563.     (4)  Modify the default files NULL.FNG and UNKNOWN.FNG to suit
  564.            your system needs.
  565.     (5)  Create a USERID finger information file for each user for
  566.            which you will provide a response to a finger request.
  567.     (6)  Begin FINGERD by issuing the following command from the
  568.            OS/2 command prompt:
  569.  
  570.                 start c:\finger\fingerd.cmd
  571.  
  572. Configuration options you may want to consider include:
  573.  
  574.       -  Specify command line option '/L' to turn client-logging ON.
  575.       -  Set up a different FINGER directory.
  576.       -  Set up client restriction using a .HST file.
  577.       -  Allow remote control of FINGERD operation.
  578.       -  Enable audible notification of client request.
  579.  
  580.  
  581. 5.2 - MAINTENANCE
  582.  
  583. The only maintenance required for FINGERD if no options are specified
  584. is the management of appropriate USERID information files.
  585.  
  586. If the client-logging option has been specified, then a periodic
  587. check on the size of the FINGERD.LOG is recommended.
  588.  
  589.  
  590. 5.3 - PROBLEMS
  591.  
  592. If you have problems with FINGERD and you have registered
  593. your system, then e-mail me at:
  594.  
  595.         samuell@cis.uab.edu
  596.  
  597. I cannot guarantee a timely or helpful reply but I will try.
  598.