Synchronet v3.17b-Win32 (install) has been released (Jan-2019).

New Synchronet YouTube channel

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
config:sbbs.ini [2018/01/23 22:35]
digital man Clarify that multiple interfaces may be specified, separated by commas, IPv4 and/or IPv6
config:sbbs.ini [2019/03/24 00:14] (current)
digital man Document the OutboundInterface key (was called OutgoingV4 till recent)
Line 1: Line 1:
-====== sbbs.ini ======+====== sbbs.ini ​file ======
  
-The Synchronet BBS (SBBS) Initialization File is the mother of all Synchronet configuration files and is located in the ''​[[dir:​ctrl]]''​ directory.+The Synchronet BBS (SBBS) Initialization File (''​sbbs.ini''​) ​is the mother of all Synchronet ​v3 configuration files and is located in the ''​[[dir:​ctrl]]''​ directory.
  
 ===== Filename ===== ===== Filename =====
Line 7: Line 7:
 The base filename of the initialization file is ''​[[dir:​ctrl]]/​sbbs.ini''​. ​ The base filename of the initialization file is ''​[[dir:​ctrl]]/​sbbs.ini''​. ​
  
-The standard host/​platform variations of the initialization filenames are also supported. See [[INI_files#​filenaming|INI Filenaming]] for details.+The standard host/​platform variations of the initialization filenames are also supported. See [[INI_files#​filenaming|.ini filenaming]] for details.
  
 ===== Defaults ===== ===== Defaults =====
Line 27: Line 27:
 The ''​[Global]''​ section contains keys whose values will serve as default values for like-named keys in other server sections in the ''​[[config:​sbbs.ini]]''​ file.  The ''​[Global]''​ section contains keys whose values will serve as default values for like-named keys in other server sections in the ''​[[config:​sbbs.ini]]''​ file. 
  
-These keys are:+The supported ''​[Global]'' ​keys are:
  
-=== Hostname ​===+=== HostName ​===
  
 Default: <​none>​ Default: <​none>​
  
-The public Internet ​hostname ​of this server.+The public Internet ​DNS host name of this server.
  
-If not set, the hostname ​configured in [[util:​SCFG]]->​Networks->​Internet E-mail Address will be used.+If not set, the host name configured in ''​[[util:​SCFG]]->​Networks->​Internet E-mail->​System ​Address'' ​will be used
 + 
 +**Note**: 
 +The ''​[Global] HostName''​ setting may be overridden by a ''​HostName''​ value in the subsequent server sections of this file.
  
 === Interface === === Interface ===
  
-Default: ​<any>+Default: ​''​0.0.0.0,::''​ (any/all IPv4 or IPv6 interface)
  
-The IPv4 and/or IPv6 address ​of the network interfaces to listen for incoming TCP/IP connections ​on.+The IPv4 and/or IPv6 addresses ​of the network interfaces to listen ​on for incoming TCP/IP connections.
  
-If multiple ​address ​are specified, they are to be separated by commas (this is true of all the ''​*Interface''​ values in this file).+If multiple ​addresses ​are specified, they are to be separated by commas (this is true of all the ''​*Interface''​ values in this file).
  
-If not set, any and all network interfaces available will be listened ​on.+The address value ''​0''​ or ''​0.0.0.0''​ indicates //all IPv4 interfaces//​. The address value ''::''​ indicates //all IPv6 interfaces//​. 
 + 
 +If this value is not set, any and all IPv4 and IPv6 network interfaces available will be listened ​to for incoming connections. 
 + 
 +**Note**: 
 +Although TCP port numbers may be specified (with ''//<​address>//://​port//''​ syntax) in the ''​*Interface''​ values of the subsequent server sections of this file, the ''​[Global] Interface''​ value **must not** have any port numbers specified. 
 + 
 +=== OutboundInterface === 
 + 
 +Default: ''​0.0.0.0''​ (any available IPv4 interface) 
 + 
 +The IPv4 address of the network interface to use for outgoing TCP/IP connections.
  
 === CtrlDirectory === === CtrlDirectory ===
Line 60: Line 74:
 If you do override this, do NOT use the system-wide temp dir (e.g.: ''/​tmp''​ or ''​windows\temp''​),​ use a subdirectory instead. Synchronet assumes it is the only user of this directory/​subdirectory for its temporary files only. If you do override this, do NOT use the system-wide temp dir (e.g.: ''/​tmp''​ or ''​windows\temp''​),​ use a subdirectory instead. Synchronet assumes it is the only user of this directory/​subdirectory for its temporary files only.
  
 +**Note**:
 +The ''​[Global] TempDirectory''​ value may be overridden by a ''​TempDirectory''​ value in the subsequent server sections of this file.
  
 === SemFileCheckFrequency === === SemFileCheckFrequency ===
Line 67: Line 83:
  
 The interval, in seconds, betweeen [[semfiles|semaphore file]] checks. If you want to reduce the amount of disk I/O while the BBS is idle, you can increase this value. If you set this value below 1, the BBS server threads will use the default value (2). The interval, in seconds, betweeen [[semfiles|semaphore file]] checks. If you want to reduce the amount of disk I/O while the BBS is idle, you can increase this value. If you set this value below 1, the BBS server threads will use the default value (2).
 +
 +**Note**:
 +The ''​[Global] SemFileCheckFrequency''​ value may be overridden by a ''​SemFileCheckFrequency''​ value in the subsequent server sections of this file.
  
 === BindRetryCount === === BindRetryCount ===
Line 75: Line 94:
  
 Increase this value if you get errors binding to ports on reloads (especially on *nix). Increase this value if you get errors binding to ports on reloads (especially on *nix).
 +
 +**Note**:
 +This setting may be overridden by a ''​BindRetryCount''​ value in the subsequent server sections of this file.
  
 === BindRetryDelay === === BindRetryDelay ===
Line 81: Line 103:
   
 Delay (in seconds) between bind retries. Delay (in seconds) between bind retries.
 +
 +**Note**:
 +This setting may be overridden by a ''​BindRetryDelay''​ value in the subsequent server sections of this file.
  
 === LogLevel === === LogLevel ===
Line 89: Line 114:
 Supported log levels in decreasing severity (ala [[:​monitor:​syslog]]):​ Supported log levels in decreasing severity (ala [[:​monitor:​syslog]]):​
   Emergency, Alert, Critical, Error, Warning, Notice, Informational,​ Debugging   Emergency, Alert, Critical, Error, Warning, Notice, Informational,​ Debugging
 +  ​
 +**Note**:
 +This setting may be overridden by a ''​LogLevel''​ value in the subsequent server sections of this file.
  
 === JavaScriptMaxBytes === === JavaScriptMaxBytes ===
Line 95: Line 123:
  
 Maximum allocation of memory per JavaScript run-time. Maximum allocation of memory per JavaScript run-time.
 +
 +**Note**:
 +Each ''​[Global] JavaScript*''​ setting may be overridden by a corresponding ''​JavaScript*''​ value in the subsequent server sections of this file.
  
 === JavaScriptContextStack === === JavaScriptContextStack ===
Line 136: Line 167:
  
 The number of milliseconds to pause after a failed login attempt. The number of milliseconds to pause after a failed login attempt.
 +
 +**Note**:
 +Each ''​[Global] LoginAttempt*''​ setting may be overridden by a corresponding ''​LoginAttempt*''​ value in the subsequent server sections of this file.
  
 === LoginAttemptThrottle === === LoginAttemptThrottle ===
Line 156: Line 190:
 Set to ''​0''​ to disable automatic banning. Set to ''​0''​ to disable automatic banning.
  
-NOTE: Failed logins using any of the filtered user IDs (from ''​[[config:​name.can]]''​) will automatically trigger a temporary ban. +**Note**: Failed logins using any of the filtered user IDs (from ''​[[config:​name.can]]''​) will automatically trigger a temporary ban.
- +
-NOTE: Added in v3.17 (May-2016)+
  
 === LoginAttemptTempBanDuration === === LoginAttemptTempBanDuration ===
Line 164: Line 196:
  
 The  length (in seconds) of a temporary IP ban based on either multiple consecutive failed login attempts or any failed login attempt using a banned user ID (from ''​[[config:​name.can]]''​). The  length (in seconds) of a temporary IP ban based on either multiple consecutive failed login attempts or any failed login attempt using a banned user ID (from ''​[[config:​name.can]]''​).
- 
-NOTE: Added in v3.17 (May-2016) 
  
 === LoginAttemptFilterThreshold === === LoginAttemptFilterThreshold ===
Line 172: Line 202:
 The number of consecutive unique failed login attempts from the same host before auto-filtering the host's IP address in the ''​[[config:​ip.can]]''​ file. The number of consecutive unique failed login attempts from the same host before auto-filtering the host's IP address in the ''​[[config:​ip.can]]''​ file.
  
-For this auto-filtering feature to work with the Synchronet v3.16c Terminal Server (Telnet, RLogin, and SSH login attempts), the sysop must set [[util:​SCFG]]->​Nodes->​Node 1->​Toggle Options->​Always Prompt for Password to "​Yes"​.+For this auto-filtering feature to work with the Synchronet v3.16c Terminal Server (Telnet, RLogin, and SSH login attempts), the sysop must set ''​[[util:​SCFG]]->​Nodes->​Node 1->​Toggle Options->​Always Prompt for Password'' ​to "​Yes"​.
  
 Set to ''​0''​ to disable automatic filtering of IP addresses due to failed login attempts. Set to ''​0''​ to disable automatic filtering of IP addresses due to failed login attempts.
 +
 ==== [BBS] ==== ==== [BBS] ====
  
Line 180: Line 211:
  
 In addition to the keys listed in the ''​[Global]''​ section, the ''​[BBS]''​ section can contain the following keys with the specified default values: In addition to the keys listed in the ''​[Global]''​ section, the ''​[BBS]''​ section can contain the following keys with the specified default values:
 +
 +=== AutoStart ===
 +
 +Default: ''​true''​
 +
 +Automatically startup the [[server:​Terminal]] Server when Synchronet starts up.
  
 === TelnetInterface === === TelnetInterface ===
Line 185: Line 222:
 Default: value of ''​[Global] Interface''​ Default: value of ''​[Global] Interface''​
  
-The IPv4 and/or IPv6 address ​of the network interfaces to listen for incoming ​[[server:​terminal#​Telnet]] connections on (''​0''​ for //any// interface).+The IPv4 and/or IPv6 addresses ​of the network interfaces to listen ​on for incoming Telnet connections on (''​0''​ for //​any// ​IPv4 interface, and ''::''​ for any IPv6 interface)).
  
 === TelnetPort === === TelnetPort ===
Line 191: Line 228:
 Default: ''​23''​ Default: ''​23''​
  
-The TCP port number on which to listen for incoming ​[[server:​terminal#​Telnet]] connections.+The TCP port number on which to listen for incoming Telnet connections.
  
 === RLoginInterface === === RLoginInterface ===
Line 197: Line 234:
 Default: value of ''​[Global] Interface''​ Default: value of ''​[Global] Interface''​
  
-The IPv4 and/or IPv6 address ​of the network interfaces to listen for incoming ​[[server:​terminal#​RLogin]] connections on (''​0''​ for //any// interface).+The IPv4 and/or IPv6 addresses ​of the network interfaces to listen ​on for incoming RLogin connections on (''​0''​ for //any// interface).
  
 === RLoginPort === === RLoginPort ===
Line 203: Line 240:
 Default: ''​513''​ Default: ''​513''​
  
-The TCP port number on which to listen for incoming ​[[server:​terminal#​RLogin]] connections.+The TCP port number on which to listen for incoming RLogin connections.
  
 === SSHInterface === === SSHInterface ===
Line 209: Line 246:
 Default: value of ''​[Global] Interface''​ Default: value of ''​[Global] Interface''​
  
-The IPv4 and/or IPv6 address of the network interfaces to listen for incoming Secure Shell ([[server:​terminal#​SSH]]) connections on (''​0''​ for //any// interface).+The IPv4 and/or IPv6 address of the network interfaces to listen for incoming Secure Shell (SSH) connections on (''​0''​ for //any// interface).
  
 === SSHPort === === SSHPort ===
Line 215: Line 252:
 Default: ''​22''​ Default: ''​22''​
  
-The TCP port number on which to listen for incoming Secure Shell ([[server:​terminal#SSH]]) connections.+The TCP port number on which to listen for incoming Secure Shell (SSH) connections. 
 + 
 +=== SSHConnectTimeout === 
 + 
 +Default: ''​10''​ (seconds) 
 + 
 +The maximum amount of time allowed for a SecureShell (SSH) connection negotiation to complete. 
 + 
 +=== Pet40Port === 
 + 
 +Default: ''​64''​ 
 + 
 +If a connection is made to the [[:server:Terminal]] server, via any supported protocol, on this TCP port number, the terminal ​will be assumed to be a 40-column CBM/PETSCII (non-ANSI) terminal (e.g. Commodore 64). Setting this port number does not cause the server to //listen// on this port, so if you desire to support CBM/PETSCII terminal-connections,​ you will also need to add this port number to the ''​TelnetInterface''​ list (for example). 
 + 
 +=== Pet80Port === 
 + 
 +Default: ''​128''​ 
 + 
 +If a connection is made to the [[:​server:​Terminal]] server, via any supported protocol, on this TCP port number, the terminal will be assumed to be an 80-column CBM/PETSCII (non-ANSIterminal (e.g. Commodore 128). Setting this port number does not cause the server to //listen// on this port, so if you desire to support CBM/PETSCII terminal-connections, you will also need to add this port number to the ''​TelnetInterface''​ list (for example). 
 + 
 +=== OutboundInterface === 
 + 
 +Default: ''​0.0.0.0''​ (any available IPv4 interface) 
 + 
 +The IPv4 address of the network interface to use for outgoing TCP/IP connections (i.e. for Telnet and RLogin gateway connections).
  
 === FirstNode === === FirstNode ===
Line 221: Line 282:
 Default: ''​1''​ Default: ''​1''​
  
-The number of the first terminal server node serviced by this instance of Synchronet.+The number of the first terminal server node serviced by this instance of Synchronet. The minimum value for this settings is ''​1''​ and the maximum is ''​255''​. 
 + 
 +Normally, this value should be left at ''​1''​. If the sysop wanted to run multiple instances of Synchronet, all sharing the same [[:​dir:​|directory tree]] and data files, then multiple ''​sbbs.ini''​ files would be used (with host-unique [[ini_files#​filenaming]]) and unique (non-overlapping) node ranges specified with the ''​FirstNode''​ and ''​LastNode''​ values in each.
  
 === LastNode === === LastNode ===
Line 227: Line 290:
 Default: ''​4''​ Default: ''​4''​
  
-The number of the last terminal server node serviced by this instance of Synchronet.+The number of the last terminal server node serviced by this instance of Synchronet. ​The minimum value for this settings is ''​1''​ and the maximum is ''​255''​. If this setting'​s value is higher than the total number of nodes configured for the BBS (i.e. in SCFG->​Nodes),​ then it will be automatically adjusted at run time during Terminal Server startup with a logged notice: 
 +  Specified last_node (x) > sys_nodes (y), auto-corrected
  
 === MaxConcurrentConnections === === MaxConcurrentConnections ===
Line 233: Line 297:
 Default: ''​0''​ Default: ''​0''​
  
-If set to a non-zero number, this will limit the number of concurrent connections to the [[server:​Terminal]] Server from a common host/client IP address. Exempt hosts are not connection-limited by this setting. This setting added in Synchronet v3.17.+If set to a non-zero number, this will limit the number of concurrent connections to the [[server:​Terminal]] Server from a common host/client IP address. ​[[config:​ipfilter_exempt.cfg|Exempt hosts]] are not connection-limited by this setting. This setting ​was added in Synchronet v3.17.
  
 === OutbufHighwaterMark === === OutbufHighwaterMark ===
  
-Default: ''​0''​ or ''​1024''​ +Default: ''​0''​ or ''​1024'' ​(bytes)
  
 === OutbufDrainTimeout === === OutbufDrainTimeout ===
  
-Default: ''​10''​+Default: ''​10''​ (milliseconds) 
 + 
 +=== SemFileCheckFrequency === 
 + 
 +Default: value of ''​[Global] SemFileCheckFrequency''​ 
 + 
 +=== TempDirectory === 
 + 
 +Default: value of ''​[Global] TempDirectory''​ 
 + 
 +=== HostName === 
 + 
 +Default: value of ''​[Global] HostName''​
  
 === ExternalTermANSI === === ExternalTermANSI ===
  
 Default: ''​pc3''​ (Linux) or ''​cons25''​ (FreeBSD) Default: ''​pc3''​ (Linux) or ''​cons25''​ (FreeBSD)
 +
 +When the BBS is running on a *nix-like OS, this value determines the value of the ''​TERM''​ environment variable that will be set when invoking interactive external programs for users with terminals supporting ANSI.
  
 === ExternalTermDumb === === ExternalTermDumb ===
  
 Default: ''​dumb''​ Default: ''​dumb''​
 +
 +When the BBS is running on a *nix-like OS, this value determines the value of the ''​TERM''​ environment variable that will be set when invoking interactive external programs for users with terminals that **do not** support ANSI.
  
 === DOSemuPath === === DOSemuPath ===
  
 Default: ''/​usr/​bin/​dosemu.bin''​ (Linux) or ''/​usr/​local/​bin/​doscmd''​ (FreeBSD) Default: ''/​usr/​bin/​dosemu.bin''​ (Linux) or ''/​usr/​local/​bin/​doscmd''​ (FreeBSD)
 +
 +When the BBS is running on a *nix-like OS and built with DOS emulator support (e.g. ''​USE_DOSEMU''​ defined on Linux), this value determines the default path of the DOS emulator to be executed when a non-native program (e.g. 16-bit MS-DOS door game) will be invoked by the BBS.
  
 === AnswerSound === === AnswerSound ===
Line 260: Line 341:
 Default: //none// Default: //none//
  
-Path to a WAVE file to played (locally) when accepting incoming connections.+Path to a WAVE file to played (locally) when accepting incoming connections. Only supported on Windows.
  
 === HangupSound === === HangupSound ===
Line 266: Line 347:
 Default: //none// Default: //none//
  
-Path to a WAVE file to be played (locally) when terminating connections.+Path to a WAVE file to be played (locally) when terminating connections. Only supported on Windows.
  
 === Options === === Options ===
  
-Default: ''​XTRN_MINIMIZED ​| SYSOP_AVAILABLE ​| ALLOW_RLOGIN | ALLOW_SSH''​+Default: ''​XTRN_MINIMIZED''​ 
 + 
 +Recommended:​ ''​XTRN_MINIMIZED ​| ALLOW_RLOGIN | ALLOW_SSH''​
  
 Supported options, separated by the pipe (''​|''​) symbol: Supported options, separated by the pipe (''​|''​) symbol:
Line 276: Line 359:
 ^ Option ​        ^ Description ^ ^ Option ​        ^ Description ^
 |XTRN_MINIMIZED ​ | External program windows are automatically minimized (Windows) | |XTRN_MINIMIZED ​ | External program windows are automatically minimized (Windows) |
-|AUTO_LOGON | Enable automatic login based on IP address (not recommended) | +|AUTO_LOGON | Enable automatic login based on IP address ​for V-exempt users (not recommended) | 
-|DEBUG_TELNET ​    ​| Log Telnet commands and responses (with Debug log level) | +|DEBUG_TELNET ​   | Log Telnet commands and responses (with Debug log-level messages) | 
-|SYSOP_AVAILABLE ​Sysop is available to be paged for chat +|ALLOW_SSH  ​Enable the Secure Shell (SSH) protocol ​for incoming connections ​
-|ALLOW_RLOGIN | Enable the [[server:​terminal#​RLogin]] protocol for incoming connections ​+|ALLOW_RLOGIN | Enable the RLogin protocol for incoming connections |
-|USE_2ND_RLOGIN ​ | Use the 2nd [[server:​terminal#​RLogin]] string as the user name to login with (DEPRECATED:​ this behavior is now hard-coded and non-optional) ​|+
 |NO_QWK_EVENTS ​  | Disable QWK networking events | |NO_QWK_EVENTS ​  | Disable QWK networking events |
-|NO_TELNET_GA ​   ​| Disable ​periodic transmissions ​of the Telnet "Go Ahead" command (Telnet only) |+|NO_NEWDAY_EVENTS| Disable ​daily events from running in this instance ​of Synchronet ​|
 |NO_EVENTS | Disable the Events thread (all timed events) | |NO_EVENTS | Disable the Events thread (all timed events) |
-|NO_HOST_LOOKUP ​ | Do not attempt hostname look-ups on incomming ​connections (log IP addresses only) |+|NO_TELNET_GA ​   | Disable periodic transmissions of the Telnet "Go Ahead" command (Telnet only) | 
 +|NO_HOST_LOOKUP ​ | Do not attempt hostname look-ups on incoming ​connections (log IP addresses only) |
 |NO_SPY_SOCKETS ​ | Disable node spying (on *nix) | |NO_SPY_SOCKETS ​ | Disable node spying (on *nix) |
-|ALLOW_SSH  ​Enable the Secure Shell ([[server:​terminal#​SSH]]) protocol ​for incoming connections ​|+|NO_DOS ​         ​Disable 16-bit DOS Program support ​(eliminate the potential ​for modal error dialogs in 64-bit editions of Windows) ​|
 |NO_RECYCLE ​     | Disable the ability for the terminal server to be recycled | |NO_RECYCLE ​     | Disable the ability for the terminal server to be recycled |
 |GET_IDENT | Use the IDENT protocol on incoming connections | |GET_IDENT | Use the IDENT protocol on incoming connections |
-|NO_JAVASCRIPT ​  | Disable JavaScript support (not recommended) | 
-|NO_DOS ​         | Disable DOS Program support (eliminate the potential for modal error dialogs in 64-bit editions of Windows) | 
 |MUTE | Disable all local sound output | |MUTE | Disable all local sound output |
  

In Other Languages