KSP SLIP (tm) A SLIP Door for Bulletin Board Systems Version 3.7 Copyright (C) 1995-96 All Rights Reserved by KEY SOFTWARE PRODUCTS 40 Atherton Court Redwood City, California 94061 BBS/FAX: 415-364-9847 KSP SLIP is a trademark of Key Software Products. PCL4C is a trademark of MarshallSoft Computing. WATTCP is a trademark of Erick Engelke. Power C is a trademark of Mix Software. Multi-C is a trademark of Mix Software. DESQview is a trademark of Quarterdeck Office Systems. Lantastic is a trademark of Artisoft, Inc. Novell is a trademark of Novell Corp. Banyan Vines is a trademark of Banyan Inc. TABLE OF CONTENTS CHAPTER 1 - INTRODUCTION ........................... 1 1.1 Compatibility with BBS Software ............... 2 1.2 Hardware Requirements ....................... 2 1.3 Software Requirements ....................... 2 1.4 Other KSP Software ........................... 3 1.4.1 KSP Telnet ............................. 3 1.4.2 KSP FTP ................................ 3 1.4.3 KSP Mail ............................... 3 1.4.4 KSP HOST ............................... 3 1.4.5 So Many CD's ............................ 4 CHAPTER 2 - INSTALLATION ........................... 5 2.1 Packet Driver Shims for Novell ................. 5 2.2 Packet Driver Shim for Novell w/Token-RingSNAP .. 6 2.3 Packet Driver Shims for Lantastic .............. 6 2.3.1 Changes to CONFIG.SYS ................... 6 2.3.2 Changes to PROTOCOL.INI ................. 7 2.4 Packet Driver Shims for Banyan Vines ............ 8 2.5 Other Things to Configure ..................... 8 CHAPTER 3 - THE WATTCP CONFIGURATION FILE ............. 9 3.1 Multiple Nodes and the "include" Directive ...... 10 3.2 Using a BOOTP Server .......................... 10 3.3 Manual Configuration ........................ 10 3.3.1 The PC's Host Name ....................... 11 3.3.2 The PC's Domain Name ..................... 11 3.3.3 The PC's IP Address ...................... 11 3.3.4 The Name Server's IP Address .............. 12 3.3.5 The Router's IP Address .................. 12 3.3.6 The PC's Network Mask .................... 12 3.4 TCP/IP Parameters (optional) ................. 12 3.4.1 Timeouts .............................. 13 3.4.2 Maximum Segment Size (MSS) ............... 13 3.5 SLIP Operating Parameters .................... 13 3.5.1 Dynamic Parameters ..................... 14 3.5.2 Blocking Access to Certain Sites .......... 14 3.5.3 Exceptions to Blocking .................. 16 3.5.4 Combining Blocking + Forwarding + Exceptions 16 3.5.5 Session Time Limit ...................... 17 3.5.6 Session Reserve Time .................... 17 3.5.7 Inactivity Limit ....................... 17 3.5.8 Minimum Baud Rate ....................... 18 3.5.9 Operating Hours ........................ 18 3.5.10 Startup Message ....................... 18 3.5.11 Minimum Baud Rate Message ............... 19 3.5.12 Operating Hours Message ................ 19 3.5.13 User Session Logging ................... 19 3.5.14 SLIP Packet Monitor .................... 19 TABLE OF CONTENTS 3.5.15 Non-Standard Port/Fossil Break Detect ... 20 3.5.16 Eliminating the Startup Count-Down ...... 20 3.5.17 Silencing the BBS console bell ........... 20 3.5.18 Disabling the Local Screen .............. 21 3.5.19 Hanging Up When Exiting From the Door ...... 21 CHAPTER 4 - INSTALLING THE SLIP DOOR COMMAND ........... 22 4.1 Command Line Parameters ...................... 22 4.1.1 The /MAXMINS Parameter .................. 22 4.1.2 The /CONFIG Parameter ................... 22 4.1.3 KSP-SLIP.EXE Exit Codes ................. 23 4.1.4 Checking Packet Counts (PKTCOUNT.EXE) .... 23 CHAPTER 5 - INSTALLING YOUR ACCESS KEY ................ 24 CHAPTER 6 - CUSTOMIZING THE DISPLAY FILES ............. 25 6.1 PCBoard Display Macros ....................... 25 6.2 Macros Unique to KSP SLIP ...................... 25 6.3 Justification and Spacing .................... 25 6.3.1 No Justification ....................... 26 6.3.2 Left Justification ..................... 26 6.3.3 Center Justification ................... 26 6.3.4 Right Justification .................... 26 6.4 The DISPLAY Program .......................... 27 APPENDIX 1 - HOW TO REACH US .......................... 28 APPENDIX 2 - GETTING UPDATES VIA THE INTERNET .......... 29 APPENDIX 3 - LEGAL STUFF ............................ 30 Oct 03, 1996 KSP SLIP (tm) v3.7 1 CHAPTER 1 - INTRODUCTION Many BBS's now offer E-Mail access to the Internet. But few if any offer a real TCP/IP connection. As compared to mere E-Mail access, providing a TCP/IP connection opens up a large number of new possibilities to callers, such as the ability to remote login to Internet hosts in foreign countries using Telnet, or to access files on those hosts using FTP, or to search for information using Gopher, Archie, and the new multimedia hypertext browser, Mosaic. KSP SLIP establishes a logical two-way connection between the user's serial line and the Internet: +----------+ | User's | | | Local Area Network Modem <----->| KSP SLIP |<----+ connected to the | | | Internet +----------+ | BBS Machine As indicated, the physical connection between the BBS machine and the Internet is usually by means of an Ethernet card attached to a local area network that is attached to the Internet. However, this connection could instead be simply a separate modem connection to a commercial Internet access provider, such as NETCOM. TCP/IP encapsulates data in packets and transfers those packets according to a specific communication protocol. Data on the serial line between the BBS and the caller must obey this protocol; KSP SLIP does this using a popular protocol called SLIP (Serial Link Internet Protocol). Of course the caller must also be using software at his end that also supports SLIP; there are several shareware products for this purpose, available from the Key Software Products BBS. KSP SLIP meets the following BBS-specific needs: 1. Terminates the BBS session when user's time limit expires. 2. Terminates the BBS session when user hangs up. 3. Terminates when there's no activity for a sysop-specified period of time. 4. Records the SLIP session in a log file. 5. Provide colorized or parameterized messages to user. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 2 6. Restrict users by baud rate. 7. Restrict hours of operation. KSP SLIP is shareware. The unlicensed version is fully functional except that it imposes a maximum of five minutes per SLIP session. Once licensed, the user is limited only by the amount of time remaining in his BBS session. KSP SLIP was implemented using Erick Engelke's Waterloo TCP library, MarshallSoft Computing's PCL4C Personal Communications library, and Mix Software's Power C compiler and Multi-C multi-threaded code library. 1.1 Compatibility with BBS Software KSP SLIP is compatible with any BBS software that can generate a DOOR.SYS file. It works with a BBS configured to use the standard COM1 through COM4 ports, or will automatically detect and use a Fossil driver. 1.2 Hardware Requirements KSP SLIP inherently requires that the PC running your BBS software have a physical connection to a TCP/IP network - normally the Internet. Ideally, this connection is by means of an adapter card connected to an Ethernet at your company or school (and then through a "gateway" to the Internet). It is also possible to connect to the Internet through a commercial Internet Access Provier via a dial-up SLIP (Serial Line Internet Protocol) connection. This approach requires a second serial port, modem, and telephone line dedicated to this purpose. Information on finding such a provider is available on the KSP BBS. 1.3 Software Requirements KSP SLIP runs on top of another piece of software called a "packet driver". The packet driver presents a standard software interface to KSP SLIP, regardless of the type of hardware interface that connects the PC to the network. Public domain packet drivers exist for SLIP links and most Ethernet cards. If your BBS uses a multi-tasking operating system to run multiple nodes on a single PC, then you will need a "packet multiplexer". A packet multiplexer designed specifically for Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 3 use with KSP network products running under DESQview is available as a freeware package distributed as KSPMUX*.ZIP, where the "*" is the version number. KSP SLIP is DESQview "aware" to provide better performance in a multitasking environment. If your PC is connected to a non-TCP/IP proprietary network (such as Novell or Lantastic), you will probably need a packet driver "shim". KSP SLIP does NOT require that you purchase a separate TCP/IP package, such as that sold by Novell, Artisoft, or IBM. KSP SLIP should happily coexist with any of these packages, however. An assortment of public domain packet drivers, multiplexers, and shims are available on the KSP BBS. 1.4 Other KSP Software Key Software Products offers a number of other products for BBS's: 1.4.1 KSP Telnet A door program that allows callers to connect to remote computers anywhere on the Internet via your BBS. Available now on our BBS. 1.4.2 KSP FTP A door program that allows callers to transfer files to/from remote computers anywhere on the Internet via your BBS. 1.4.3 KSP Mail A Multi-Threaded Server for SMTP Mail and NNTP Usenet news. Replaces UUCP, its monthly fees, and slow transfer rates! No more unwanted newsgroups! Instant mail without waiting for scheduled events! Works with any BBS software that presently uses UUCP. Requires a 24hr TCP/IP Internet connection. Can now receive NNTP news feeds! Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 4 1.4.4 KSP HOST An inbound Telnet server for MS/DOS Bulletin Board Systems. Every node can answer both telnet and modem calls! Requires a fossil driver on each node, a 24 hour TCP/IP connection to the Internet, and a local area network that supports NetBios such as Novell or Lantastic. 1.4.5 So Many CD's A PCBoard PPE to handle off-line CD-Roms. Seamlessly integrated into PCBoard. Users post requests for off-line files and have then returned as attachments to messages. Configurable message pack-out dates automatically keep your hard disk from getting cluttered. Available now on our BBS. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 5 CHAPTER 2 - INSTALLATION Before installing KSP SLIP as a BBS door, you must first install: 1. The network interface hardware. 2. A corresponding packet driver. 3. A packet driver shim (if needed). 4. A packet multiplexer (if needed). Detailed directions for these preliminary steps are available in separate documentation that comes with the corresponding hardware or software. It's most common that multi-node BBS's are interconnected with Ethernet and either Lantastic or Novell. Unfortunately, these two network operating systems were designed using their own proprietary protocols rather than the TCP/IP protocol and their own proprietary software rather than packet drivers to talk to their Ethernet interface cards. However, a piece of software called a packet driver "shim" can be used to let both TCP/IP and their proprietary protocol coexist. 2.1 Packet Driver Shims for Novell Novell's network software is installed in layers as TSRs in the order shown below. These commands are usually found either in the AUTOEXEC.BAT file or in another batch file in a directory typically called C:\NWCLIENT. LSL NE2000 }-- specific to your interface card IPXODI VLM The packet driver shim (ODIPKT) logically sits on top of IPXODI, providing a packet driver interface for software such as KSP SLIP: LSL NE2000 +--- Frame Type (0-3) IPXODI | ODIPKT 2 97 }--- The packet driver shim VLM | +----- Packet Vector Interrupt (96-127) (See comment below about hex vs. decimal) Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 6 The ODIPKT command line parameters may vary according to which version of the software you have and how your hardware is configured. The "Frame Type" parameter should correspond to the position of ETHERNET_II among the frame types specified in NET.CFG; zero (0) selects the first frame type, one (1) the second, and so on. The "Packet Vector Interrupt" number should correspond to an unused interrupt vector. Note that older versions of ODIPKT insist that this number be given in decimal (96-127) rather than in hex (0x60-0x7F). The necessary packet driver shim can be downloaded from the Key Software Products BBS as file ODI-SHIM.ZIP. 2.2 Packet Driver Shim for Novell w/Token-RingSNAP Another shim called ODITRPKT exists for Novell that should be used if the underlying network is Token-Ring_SNAP. Installation is similar to ODIPKT as described above, except that the first command line parameter must correspond to the Token-Ring_SNAP frame type in NET.CFG, and starts at "1" rather than "0". This shim can be downloaded from the Key Software Products BBS as file TKN-SHIM.ZIP. 2.3 Packet Driver Shims for Lantastic Using a packet driver shim with Lantastic requires that Lantastic be installed using NDIS (Network Driver Interface Specification) Support. The necessary packet driver shim can be downloaded from the Key Software Products BBS as file DIS-SHIM.ZIP. NDIS allows you to stack multiple protocols on a single adapter. This lets you use multiple protocol drivers (such as LANtastic and TCP/IP) on the same adapter. You can also use NDIS to include third-party adapters that have NDIS drivers in your LANtastic network. Supported adapter types include Ethernet, Token-Ring and ARCNET (R) adapters. The software and documentation necessary to add NDIS support to an existing Lantastic network is available free of charge from Artisoft. Once you have NDIS installed and working with Lantastic, adding the shim is a simple matter of editing PROTOCOL.INI (part of the NDIS support) and CONFIG.SYS. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 7 2.3.1 Changes to CONFIG.SYS With NDIS installed, there will be two device driver lines in your CONFIG.SYS file that look something like the following: DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\AEXNDIS.DOS The file listed in the second line may differ if you are not using Artisoft's interface card; in that case, this file would typically be replaced by a NDIS driver supplied by the card manufacturer. The packet driver shim itself is installed as a third device driver after the first two, as in: DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\AEXNDIS.DOS DEVICE=C:\DRIVERS\DIS_PKT.DOS }--- The packet driver shim 2.3.2 Changes to PROTOCOL.INI The PROTOCOL.INI file is a text file created (usually in the C:\LANTASTI directory) as part of the NDIS installation. Before adding the packet driver shim, it typically looks like the following, but with the "iobase" and "interrupt" parameters changed according to your hardware, or with the entire "[AEXNDIS_NIF]" section replaced if you are not using an Artisoft interface card. [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES [AEXNDIS_NIF] DRIVERNAME = AEXNDS$ IOBASE = 0x300 INTERRUPT = 15 Adding the packet driver shim requires adding another section to the PROTOCOL.INI file: [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 8 [AEXNDIS_NIF] <---+ DRIVERNAME = AEXNDS$ | IOBASE = 0x300 | INTERRUPT = 15 | These names must match! | [PKTDRV] | DRIVERNAME = PKTDRV$ | BINDINGS = AEXNDIS_NIF <---+ INTVEC = 0x61 CHAINVEC = 0x66 NOVELL = Y Note that the name "AEXNDIS_NIF" must exactly match the spelling used as the title of the previous section, "[AEXNDIS_NIF]"; if you are not using Artisoft interface cards, then both occurences will use some other identifier. The "INTVEC" parameter may be anything from 0x60 to 0x80; you may have to experiment to find an unused interrupt number. 2.4 Packet Driver Shims for Banyan Vines Although Key Software Products has never used it, and thus cannot offer help on its installation, a packet driver shim does exist for Banyan Vines and can be downloaded from the Key Software Products BBS as file BAN-SHIM.ZIP. 2.5 Other Things to Configure Once your network is up and running with a packet driver or a packet driver shim, there are basically two additional steps: 1. Create a WATTCP.CFG configuration file. 2. Configure KSP SLIP as a BBS door. As discussed in the next chapter, you may not need a WATTCP.CFG configuration file if you have a BOOTP server. There is a useful program called TCPINFO available on the KSP BBS. If you have no WATTCP.CFG file, it will tell you (after a maximum of 30 seconds) if it was able to automatically configure itself via a BOOTP server. If you have a WATTCP.CFG file, it will determine whether or not you have configured that file properly. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 9 CHAPTER 3 - THE WATTCP CONFIGURATION FILE In order to run, KSP SLIP needs to know some information about your network, and tries to find this in a configuration file called WATTCP.CFG. KSP SLIP looks in three directories to locate this file. First, it checks for an environment variable called WATTCP.CFG that specifies the directory. Second, it looks in the current (default) directory. Third, if still not found, it looks in the directory that contains the executable (KSP-SLIP.EXE). The following example may be helpful for those using the environment variable approach: If you place WATTCP.CFG in your PCB directory, then your AUTOEXEC.BAT file should contain the following command: set WATTCP.CFG=C:\PCB Note that there is no trailing "\" after the directory name! If KSP SLIP still can't find the configuration file, it will attempt to automatically configure itself by looking for a "BOOTP" server on your network. (BOOTP is a standard protocol that obtains your "IP address" and other information about your PC from a BOOTP server.) If there is no BOOTP server, or if your PC is not registered in its database, then you must create a configuration file. The configuration file contains one entry per line. A sample configuration file is included in this distribution, but the values MUST be modified to suit your particular environment or else KSP SLIP will not work! The syntax of every entry follows the following format: [ directive = [ "data" | data] ] [ # comment | ; comment ] I.e., if a directive is not followed by data, the directive is ignored. Similary, lines without directives are ignored. The directive is NOT case sensitive; the data IS case sensitive. e.g., netmask=255.255.252.0 domainslist=ksp.com ; Our domain Whitespace is normally removed from data; data containing blanks must be surrounded by quotes. An unquoted '#' or ';' marks the beginning of a comment. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 10 3.1 Multiple Nodes and the "include" Directive There must be one WATTCP.CFG file for each BBS node since each node has to be configured with a unique hostname and IP address. All other configuration parameters are usually set at the same values for all nodes. Rather than duplicating these common entries in each WATTCP.CFG file, you can set-up a master configuration file that gets "included" in each of the node-specific files. For example, the node-specific file (WATTCP.CFG) might look like: include=c:\ksp\master.cfg hostname=ourbbspc myip=125.283.210.17 This makes it much easier to make changes since you only have to modify a single file (MASTER.CFG). 3.2 Using a BOOTP Server It's always a good idea to have a configuration file whether or not you use a BOOTP server. If you choose to use a configuration file and want to tell it to use the BOOTP server, this option allows you to specify your the IP address of your BOOTP server. Example: bootp=129.255.0.128 You should specify the domain name manually as described in the next section since the BOOTP protocol doesn't provide that information. Example: domainslist=ksp.com NOTE: An "IP address" is a logical addressing scheme used on TCP/IP networks such as the Internet. Each computer connected to the Internet is assigned a unique IP address. Your local network "guru" or access provider should be able to provide you with those IP addresses you need. IMPORTANT: The IP addresses given in this document are only examples. Do NOT attempt to use them - they will NOT work and your network administrator will probably get VERY upset! Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 11 3.3 Manual Configuration If you don't have a BOOTP server, or if your PC is not registered with a BOOTP server, then you must use the following directives to configure KSP SLIP. The values of these parameters are important, and KSP SLIP will NOT function properly without the proper values. If you are not familiar with the terminology, or if you are unsure of the proper values, please consult with your network access provider. 3.3.1 The PC's Host Name This is the network name of the PC that runs your BBS (and thus KSP SLIP). If your BBS is implemented by a network of PC's, then each PC should have its own unique host name. Example: hostname=bbs Note that the host name does not include the domain name suffix. For example, the hostname of machine '"bbs.ksp.com" is simply "bbs". 3.3.2 The PC's Domain Name This is the network name of the subnet to which your PC (and possibly others) are connected. Example: domainslist=ksp.com Note that the domain name does not include the host name prefix. For example, the domain name of machine '"bbs.ksp.com" is "ksp.com". 3.3.3 The PC's IP Address This is the unique IP address assigned to your PC. Example: my_ip=100.2.37.4 Your local network "guru" or access provider should be able to provide you with the proper IP address of your PC. Note that you should have a different IP address for each node in your BBS. Note: As an alternative, you may also set the IP address using an environment variable, as in: Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 12 set ksp-ip=100.2.37.4 3.3.4 The Name Server's IP Address This is the unique IP address assigned to a network name nerver. You may specify more than on nameserver by using more than one "nameserver" line. Example: nameserver=111.21.108.110 Your local network "guru" or access provider should be able to provide you with the proper IP addresses of appropriate network name servers. 3.3.5 The Router's IP Address This is the unique IP address assigned to the network router. Syntax: gateway = ipaddr [ , subnet [ , subnet_mask ] ] Examples: gateway=129.97.176.1 gateway=129.97.176.2, 129.97.0.0 gateway=129.97.176.2, 129.97.0.0, 255.255.0.0 Usually the (destination) subnet and subnet mask need not be specified, and is used to create a "default". The other forms are used to specify one or more other gatewaya for particular subnets. Your local network "guru" or access provider should be able to provide you with the proper IP address of the network router. 3.3.6 The PC's Network Mask Network masks are used to distinguish destination IP addresses that are on the local subnet from those that are not. This option may not be required, depending on your network topology. Example: netmask=255.255.254.0 Your local network "guru" or access provider should be able to provide you with the proper netmask if needed. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 13 3.4 TCP/IP Parameters (optional) KSP SLIP will work without using the following parameters, but they are provided if you wish to change them. 3.4.1 Timeouts Most network operations (such as establishing a connection to a remote host) have a maximum time before a timeout error occurs. The default value is 30 seconds; a smaller value is unwise, but larger values may be necessary for particularly bad connections. Example: sockdelay=40 3.4.2 Maximum Segment Size (MSS) The default value of MSS is 1400. If you know what maximum segment size means and know what size you want, you can change it: Example: mss=512 Note: Some Internet access providers configure their dial-up slip and ppp accounts with a very small segment size. You may need to set mss as low as 212 if your Internet connection is through such a connection. 3.5 SLIP Operating Parameters The remaining parameters in WATTCP.CFG are operating parameters for KSP SLIP that define limits and display files needed while KSP SLIP is running. Each follows the format: ksp-slip.= where and are replaced by appropriate strings. Some operating parameters have counterparts in other members of the KSP family of network application programs. Rather than have multiple entries in the WATTCP.CFG file for each application, such parameters can be specified globally using the format: ksp.= Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 14 This global setting can be overridden for a specific application by using the application-specific form at a subsequent line in WATTCP.CFG. 3.5.1 Dynamic Parameters Configuration file parameters can be made "dynamic". Such parameters are ignored unless activated by an associated command line option: /CONFIG= where "" is a non-zero integer. Dynamic configuration parameters are those that specify a number in square backets as in: ksp-slip[].= The number specified in the configuration parameter must match that in the command line option or else the configuration parameter will be ignored. This also works for dynamic global parameters of the form: ksp[].= 3.5.2 Blocking Access to Certain Sites Syntax: ksp-slip.blocked_tcp=[,[,]] or: ksp-slip.blocked_udp=[,[,]] Where: and are each of the form [:] Example: (see below) Purpose: Specifies a blocked TCP (or UDP) site and mask, and a new forwarding site; each site is specified as an IP address and optional port number. May be repeated to block additional sites. No access to sites matching one of these specs will be allowed (see "ksp-slip.allowed_tcp"" and "ksp-slip.allowed_udp"), although such access may be optionally forwarded to another site. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 15 Any value may be omitted; commas are sometimes required when then default mask is implied by omission. Defaults are as follows: = : = : = 0.0.0.0 (not legal) = 0 (match any port number) = 255.255.255.255 (match ALL bits of ) = 0.0.0.0 (don't forward this packet) = 0 (use original destination port) A match occurs when the site's IP address and the address of an entry in the file are the same everywhere there are 1's in the binary representation of ; the site's port number must match only if the latter is non-zero. Matching occurs in the same order that entries appear in the WATTCP.CFG configuration file; when a original IP address and port match multiple entries, the first match found is the one that's used. Consider the following examples: 1.2.3.4 No access to this IP address. 1.2.3.4:21 No access to port 21 at this IP. 1.2.3.4,,5.6.7.8:21 All packets addressed to 1.2.3.4 are forwarded to 5.6.7.8, port 21 1.2.3.0,255.255.255.0 No access to 1.2.3.0 through 1.2.3.255 1.2.3.0:21,255.255.255.0 Same as last, but only port 21. Comment: If no forwarding address is specified, KSP-SLIP returns a type 3 ("host unreachable") ICMP error packet to the caller's slip client software, with explanation code 10 ("communication with destination host is administratively forbidden"). Although the caller's client software may present a corresponding error Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 16 message to the user, some (such as Trumpet Winsock) will simply ignore such ICMP packets. In the latter case, the user may not understand why there's no response from the remote host, and thus some explanation (such as a posted bulletin) should be provided on the BBS. Comment: Nameservers use UDP port 53 translate domain names into IP addresses. The nameservers listed in your WATTCP.CFG file are automatically considered as exceptions (see below) to your UDP blocking restrictions; there is no need to specify such exceptions explicitly. You may wish to consider, however, specifying an general exception for all UDP port 53 access regardless of IP address in case the remote SLIP user has configured a different nameserver in their setup. Comment: If is specified as 0.0.0.x where 0 < "x" < 256, then rather than forwarding the blocked packet to this IP address, KSP-SLIP will exit with an errorlevel of "x". 3.5.3 Exceptions to Blocking Syntax: ksp-slip.allowed_tcp=[,] or: ksp-slip.allowed_udp=[,] Where: = [:] Example: (see examples for "ksp-slip.blocked_tcp") Purpose: Specifies an exception to the TCP or UDP blocking restrictions. May be repeated as necessary to list more than one exception. Note that there is no "" parameter. These parameters are only useful in combination with blocking parameters. 3.5.4 Combining Blocking + Forwarding + Exceptions The following combination causes all telnet and ftp access to be redirected to 129.20.31.12 and all http (Web) access to be redirected to 210.200.54.2. Any other TCP access is redirected to 200.73.49.32; the last entry, however, specifies an exception to these rules and allows any kind of access to machines 137.40.15.0 through 137.40.15.255 Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 17 ksp-slip.blocked_tcp=0.0.0.0:23,0.0.0.0,129.20.31.12 ; telnet ksp-slip.blocked_tcp=0.0.0.0:21,0.0.0.0,129.20.31.12 ; ftp ksp-slip.blocked_tcp=0.0.0.0:80,0.0.0.0,210.200.54.2:81 ; http ksp-slip.blocked_tcp=0.0.0.0,0.0.0.0,0,200.73.49.32 ; default ksp-slip.allowed_tcp=137.40.15.0,255.255.255.0,0 Note that the mask is 0.0.0.0 in each of the first four lines causes all of the IP address bits to be ignored; i.e., that the IP address is a "don't care". The fifth line uses a mask of 255.255.255.0; this requires only the first 24 bits of the IP address to match (corresponding to a class C subnet). These entries have no effect on ARP or UDP protocol access; thus there is no need to include an "allowed_tcp" entry for your router(s) (gateways) or name server(s). 3.5.5 Session Time Limit Syntax: ksp-slip.max_mins= Example: ksp-slip.max_mins=30 Purpose: Overrides the time remaining as specified in DOOR.SYS if lower. If omitted, time remaining is that specified by DOOR.SYS. 3.5.6 Session Reserve Time Syntax: ksp-slip.reserve_mins= Example: ksp-slip.reserve_mins=3 Purpose: Reduces the time available in the door so that if time runs out, the user still has a small amount of time left on the BBS. This is useful, for example, if your BBS offers a Time Bank so that users can use it to withdraw extra time. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 18 3.5.7 Inactivity Limit Syntax: ksp-slip.idle_mins= Example: ksp-slip.idle_mins=10 Purpose: Establishes an upper limit on how long the session can remain inactive before it is terminated. If omitted, no inactivity limit is imposed. 3.5.8 Minimum Baud Rate Syntax: ksp-slip.minbaud=[,] Example: ksp-slip.minbaud=9600 Example: ksp-slip.minbaud=9600,100 Purpose: Specifies a minimum baud rate required to use the gateway, and an optional security level required to override the minimum baud rate. If omitted, no minimum baud rate will be required. 3.5.9 Operating Hours Syntax: ksp-slip.ophours= Example: ksp-slip.ophours=21:00-23:00 Purpose: To establish the hours of operation for the gateway; attempts to use the gateway at other times will be disallowed. Times must be specified in 24 hour format. If omitted, the gateway may be used at any time. Note: If start time is after the stop time, the hours of operation will be interpreted as all but those in the window specified. I.e., setting ophours to 03:20-03:00 will allow operation anytime except 03:00-03:20. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 19 3.5.10 Startup Message Syntax: ksp-slip.startup_msg= Example: ksp-slip.startup_msg=c:\ksp-slip\startup.msg Purpose: Specifies the location of a display file sent to the user when the gateway is initialized. If omitted, no display file is sent. 3.5.11 Minimum Baud Rate Message Syntax: ksp-slip.minbaud_msg= Example: ksp-slip.minbaud_msg=c:\ksp-slip\minbaud.msg Purpose: Specifies the location of a display file sent to the user if the his baud rate is less than that required by the "ksp-slip.minbaud" option (described earlier). If omitted, no display file is sent. 3.5.12 Operating Hours Message Syntax: ksp-slip.ophours_msg= Example: ksp-slip.ophours_msg=c:\ksp-slip\ophours.msg Purpose: Specifies the location of a display file sent to the user if the he attempts to use the gateway at other than the hours specified by the "ksp-slip.ophours" option (described earlier). If omitted, no display file is sent. 3.5.13 User Session Logging Syntax: ksp-slip.log_dir= Example: ksp-slip.log_dir=c:\ksp-slip Purpose: Specifies the name of a directory where a log of user sessions will be kept. The log files are named KSP-SLIP.???, where "???" is the BBS node number. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 20 3.5.14 SLIP Packet Monitor Syntax: ksp-slip.status= Example: ksp-slip.status=direct Purpose: Enables local console display of SLIP packet counts and selects output method. Options are "direct" (fastest), "bios", and "ansi" (slowest). If running under a multi-tasker, you may need to specify "ansi" or "bios"; otherwise use "direct". 3.5.15 Non-Standard Port/Fossil Break Detect Syntax: ksp-slip.serial_port=, Example: ksp-slip.serial_port=3F8,5 Purpose: Used to override serial port and IRQ values implied by "COMx" in DOOR.SYS to support non-standard configurations that are NOT using a fossil driver. Also used WITH a fossil driver to add serial break detection as required to return to BBS without hanging up. The port address must be specified in hex, and the interrupt request line number must be specified in decimal. 3.5.16 Eliminating the Startup Count-Down Syntax: ksp-slip.countdown= Example: ksp-slip.countdown=no Purpose: Used to eliminate the default "Press any key to begin" message and nine-second countdown at startup. Default is 'yes'. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Oct 03, 1996 KSP SLIP (tm) v3.7 21 3.5.17 Silencing the BBS console bell Syntax: ksp-slip.local_bell=