Both sides previous revisionPrevious revisionNext revision | Previous revision |
server:ftp [2020/12/29 23:32] – [Configure] Remove references to 00index.html and JS digital man | server:ftp [2024/10/21 22:33] (current) – [sbbs.ini] Add NO_FTPS option digital man |
---|
| |
Local file system access is enabled by default. Local file system access can be disabled with the ''NO_LOCAL_FSYS'' ''Options'' flag in the ''[FTP]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file or by un-checking the "Local File System" checkbox in the [[monitor:sbbsctrl|Synchronet Control Panel]]->FTP->Configure dialog. | Local file system access is enabled by default. Local file system access can be disabled with the ''NO_LOCAL_FSYS'' ''Options'' flag in the ''[FTP]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file or by un-checking the "Local File System" checkbox in the [[monitor:sbbsctrl|Synchronet Control Panel]]->FTP->Configure dialog. |
| |
When local file system access is enabled, a user with sysop access can "mount" a local file system using the FTP ''CWD'' or ''XCWD'' commands to change to "local://<path>//" where //<path>// is the local file system directory to mount. An alternative method of mounting the local file system is to use the ''SMNT //<local-dir>//'' command. To re-mount (switch back to) the BBS file system, the ''SMNT bbs:'' command can be used or ''CWD''/''XCWD'' command with a path beginning with ''bbs:''. | When local file system access is enabled, a user with sysop access can "mount" a local file system using the FTP ''CWD'' or ''XCWD'' commands to change to "local://<path>//" where //<path>// is the local file system directory to mount. An alternative method of mounting the local file system is to use the ''SMNT //<local-dir>//'' command. To re-mount (switch back to) the BBS file system, the ''SMNT bbs:'' command can be used or ''CWD''/''XCWD'' command with a path beginning with ''bbs:''. |
| |
| |
===== Configure ===== | ===== Configure ===== |
The Synchronet FTP server is configured via settings in the ''[[FTP]]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file. | |
| |
<file sbbs.ini> | The Synchronet FTP server can be configured via [[util:SCFG]]:Servers->FTP Server: |
[FTP] | |
AutoStart = true | |
Port = 21 | |
MaxClients = 10 | |
MaxInactivity = 300 | |
QwkTimeout = 600 | |
MinFileSize = 0 | |
MaxFileSize = 0 | |
Interface = | |
| |
; Passive transfer settings to work-around broken/stupid firewall/NAT devices | <file> |
; the LOOKUP_PASV_IP option can be useful for dynamic IPs | ╔══════════════════════════════════════════════╗ |
PasvIpAddress = 0.0.0.0 | ║ FTP Server ║ |
PasvPortLow = 1024 | ╠══════════════════════════════════════════════╣ |
PasvPortHigh = 65535 | ║ │Enabled Yes ║ |
| ║ │Log Level Informational ║ |
| ║ │Network Interfaces 0.0.0.0, :: ║ |
| ║ │Control Port 21, Data: 20 ║ |
| ║ │Passive Interface (IPv4) 0.0.0.0 ║ |
| ║ │Passive Port Range 1024 - 65535 ║ |
| ║ │Auto-generate Index File 00index ║ |
| ║ │QWK Message Packet Transfers Yes ║ |
| ║ │QWK Message Packet Timeout 10 minutes ║ |
| ║ │Max Clients 100 ║ |
| ║ │Max Inactivity 5 minutes ║ |
| ║ │Max Concurrent Connections Unlimited ║ |
| ║ │Sysop File System Access Yes ║ |
| ║ │Allow Bounce Transfers No ║ |
| ║ │Lookup Client Hostname Yes ║ |
| ║ │Failed Login Attempts... ║ |
| ╚══════════════════════════════════════════════╝ |
| </file> |
| |
; Sound/wave files to play on specific events (Windows only): | ... via [[monitor:SBBSCTRL]]:FTP->Configure: |
AnswerSound = | |
HangupSound = | |
HackAttemptSound = | |
| |
; Dynamically generated index files | {{:server:sbbsctrl.320.ftp.config.png?|}} |
IndexFileName = 00index | |
; Supported options (separated with |): | |
; DEBUG_RX | |
; DEBUG_DATA | |
; INDEX_FILE | |
; DEBUG_TX | |
; ALLOW_QWK | |
; NO_LOCAL_FSYS | |
; DIR_FILES | |
; KEEP_TEMP_FILES | |
; LOOKUP_PASV_IP | |
; NO_HOST_LOOKUP | |
; NO_RECYCLE | |
; MUTE | |
Options = INDEX_FILE | ALLOW_QWK | |
</file> | |
| |
==== Options ==== | ... or via manual editing of the ''[FTP]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file. |
FIXME | |
| ==== sbbs.ini ==== |
| |
| The ''[ftp]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file supports the following configuration settings (''key = value'' lines): |
| |
| ^ Key ^ Default Value ^ Description ^ |
| | AutoStart | true | Automatically start up the server (manual is only supported in [[monitor:sbbsctrl]]) | |
| | Interface | [global] | Comma-separated list of IPv4 and IPv6 network interfaces to listen on for incoming TCP connections | |
| | Port | 21 | Control TCP Port | |
| | MaxClients | 10 | Maximum number of simultaneous incoming TCP sessions supported | |
| | MaxConcurrentConnections | 0 | Maximum number of concurrent connections from the same IP address (0 = unlimited) | |
| | MaxInactivity | 300 | Maximum amount of TCP session inactivity before timeout and disconnection (in seconds) | |
| | QwkTimeout | 600 | Maximum amount of time to wait for QWK packet creation (in seconds) | |
| | SemFileCheckFrequency | [global] | Frequency (in seconds) of checks for semaphore files | |
| | MinFileSize | 0 | Minimum uploaded file size, in bytes (0 = no-minimum) | |
| | MaxFileSize | 0 | Maximum uploaded file size, in bytes (0 = no-maximum) | |
| | PasvIpAddress | 0 | IPv4 address to advertise for PASV client data connections (0 = auto) | |
| | PasvPortLow | 1024 | Lowest TCP port number to use for PASV data connections | |
| | PasvPortHigh | 65535 | Highest TCP port number to use for PASV data connections | |
| | HostName | [global] | DNS Hostname of server | |
| | IndexFileName | 00index | Filename to use for auto-generated downloadable file listings | |
| | AnswerSound | | WAV file to play (on Windows) when answering incoming connections | |
| | HangupSound | | WAV file to play (on Windows) when clients disconnect | |
| | HackAttemptSound | | WAV file to play (on Windows) upon detected suspected hack attempt | |
| | TempDirectory | [global] | Directory to use for temporary file storage | |
| | LogLevel | [global] | Minimum severity of log messages to be displayed / stored | |
| | BindRetryCount | [global] | Maximum number of TCP port bind attempts before failure | |
| | BindRetryDelay | [global] | Delay (in seconds) between TCP port bind retries | |
| | LoginAttempt* | [global] | Failed login attempt throttling / filtering / banning | |
| | Options | ''ALLOW_INDX_FILE | ALLOW_QWK'' | FTP server option flags (see below for details) | |
| |
| === Options === |
| |
| The ''Options'' key of the ''[ftp]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file supports the following option flags (separated by a ''|'' character): |
| |
| ^ Option ^ Description ^ |
| | DEBUG_RX | Log all received commands (Debug log level) | |
| | DEBUG_TX | Log all transmissions (Debug log level) | |
| | DEBUG_DATA | Log all DATA channel activity | |
| | INDEX_FILE | Auto-generate index (listing) files for optional download | |
| | ALLOW_QWK | Allow download/upload of QWK/REP packets | |
| | ALLOW_BOUNCE | Allow authenticated non-guest/anonymous users to use FTP Bounce (FXP) functionality - not recommended | |
| | NO_LOCAL_FSYS | Disable local file system access (for sysops) | |
| | KEEP_TEMP_FILES | Don't delete temporary files, for debug purposes | |
| | LOOKUP_PASV_IP | Resolve public IP address for PASV response | |
| | NO_FTPS | Disable AUTH TLS support - not recommended | |
| | NO_HOST_LOOKUP | Do not resolve/log hostnames of incoming TCP connections | |
| | NO_RECYCLE | Do not allow this server to be automatically recycled by external event | |
| | MUTE | Disable all sound (WAV) files from playing | |
| |
===== Aliases ===== | ===== Aliases ===== |
Example Alias: | Example Alias: |
sbbs_for_dos.zip bbs://main/sbbs/sbbs230b.zip Current version for SBBS for DOS | sbbs_for_dos.zip bbs://main/sbbs/sbbs230b.zip Current version for SBBS for DOS |
| |
| ===== Display Files ===== |
| |
| The Synchronet FTP server can optionally send text files from your ''[[dir:text]]'' directory to the FTP client/user under certain conditions: |
| |
| ^ Filename ^ Description ^ |
| | ''ftplogin.txt'' | Sent before the username and password is requested | |
| | ''ftphello.txt'' | Sent upon successful login | |
| | ''ftpbadlogin.txt'' | Sent upon unsuccessful login attempt | |
| | ''ftpbye.txt'' | Sent upon logoff (before server acknowledgment of the ''QUIT'' command) | |
| |
===== Supported Commands ===== | ===== Supported Commands ===== |