Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

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 revisionPrevious revision
Next revisionBoth sides next revision
server:ftp [2010/03/15 15:45] digitalmanserver:ftp [2019/06/19 17:25] – A first cut. Some content pasted from http://synchro.net/docs/file_section.html#SynchronetFTPServer digital man
Line 1: Line 1:
 ====== FTP Server ====== ====== FTP Server ======
  
 +The Synchronet FTP Server is a native server ([[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/src/sbbs3/ftpsrvr.c|written in C]]) which supports the [[wp>File Transfer Protocol|FTP]] and [[wp>FTPS]] TCP protocols for file transfer.
 +
 +===== Anonymous Logins =====
 +So-called "Anonymous FTP" logins (client-login using the user-ID "anonymous", "ftp", or "guest") are supported when the BBS user database contains a "Guest" user account.
 +
 +Traditionally, the user's email address is given as the password during "anonymous FTP" logins. To block specific email addresses from being used in this manner, add the address(es) to your ''[[dir:text]]/email.can'' file.
 +
 +===== Sysop Access =====
 +
 +To login with system operator access, the user must login with a user account that
 +has a security level of 90 or higher and provide a password of "//<user-pass>//://<sys-pass>//" where //<user-pass>// is the user's personal password and //<sys-pass>// is the system password as configured in [[util:SCFG]]->System.
 +
 +A successful sysop login will generate a login message stating "Sysop access granted"
 +
 +  230-Sysop access granted.
 +
 +Logging in with just a personal password will give the user/sysop normal (non-sysop) access.
 +
 +Sysop access allows the FTP user to mount local file systems and execute administrative commands via the FTP server.
 +
 +When logged-in with sysop access, the user has access to the following additional FTP commands:
 +  SMNT
 +  SITE EXEC
 +
 +==== Local File System Access ====  
 +
 +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:''.
 +
 +===== Configure =====
 +The Synchronet FTP server is configured via settings in the ''[[FTP]]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file.
 +
 +<file sbbs.ini>
 +[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
 +        ; see docs/tcpip_faq.html for details
 +        ; the LOOKUP_PASV_IP option can be useful for dynamic IPs
 + PasvIpAddress = 0.0.0.0
 + PasvPortLow = 1024
 + PasvPortHigh = 65535
 +
 +        ; Sound/wave files to play on specific events (Windows only):
 + AnswerSound = 
 + HangupSound = 
 + HackAttemptSound = 
 +
 +        ; Dynamically generated index files
 + IndexFileName = 00index
 + HtmlIndexFile = 00index.html
 + HtmlIndexScript = ftp-html.js
 +; Supported options (separated with |):
 +; DEBUG_RX
 +; DEBUG_DATA
 +; INDEX_FILE
 +; DEBUG_TX
 +; ALLOW_QWK
 +; NO_LOCAL_FSYS
 +; DIR_FILES
 +; KEEP_TEMP_FILES
 +; HTML_INDEX_FILE
 +; LOOKUP_PASV_IP
 +; NO_HOST_LOOKUP
 +; NO_RECYCLE
 +; NO_JAVASCRIPT
 +; MUTE
 +Options = INDEX_FILE | HTML_INDEX_FILE | ALLOW_QWK
 +</file>
 +
 +==== Options ====
 FIXME FIXME
 +
 +===== Aliases =====
 +You can create a list of file aliases that will appear in your FTP root 
 +directory for:
 +  * Quick and easy access to often downloaded user files
 +  * Static filenames that corresponds to a dynamically changing filenames
 +  * Download access to files on the local disk not in the BBS file database 
 +
 +Edit the file ''[[dir:ctrl]]/[[config:ftpalias.cfg]]'' with a text editor ([[monitor:SBBSCTRL]]->FTP->Edit->Filename Aliases).
 +
 +The ''ftpalias.cfg'' file format is one file or directory alias per line, in the form:
 +  <alias>  <path>  [description]
 +  
 +The //<alias>// field is not case-sensitive and may **not** contain spaces. This is the filename that will appear in listing of your FTP root directory.
 +
 +The //<path>// field is either the full path and filename to a file on a
 +local file system (e.g. ''C:\DOCS\MYFILE.TXT'' or ''/docs/myfile.txt'') or a virtual path to a file in the
 +BBS file database. Virtual paths are specified as
 +  bbs://lib/dir/filename
 +  
 +where lib is the library short name, dir is the directory internal code and
 +filename is the actual filename of the referenced file (may be the long
 +filename, but may not contain spaces). 
 +
 +The //[description]// field is the optional description of the file that will be used in 
 +the dynamically generated Auto Index file (if you have this option enabled).
 +Descriptions of "hidden" indicate files or directories that are not be included in listings.
 +
 +Blank lines are ignored.
 +
 +Lines beginning with a semicolon ('';'') character are considered comments and are ignored.
 +
 +Example Alias:
 +  sbbs_for_dos.zip   bbs://main/sbbs/sbbs230b.zip   Current version for SBBS for DOS
 +
 +===== Supported Commands =====
 +FIXME
 +
  
 ===== See Also ===== ===== See Also =====
   * [[:faq:files|Files FAQ]]   * [[:faq:files|Files FAQ]]
   * [[:faq:tcpip|TCP/IP FAQ]]   * [[:faq:tcpip|TCP/IP FAQ]]
 +  * [[:module:makeguest]]
   * [[:server:|Servers]]   * [[:server:|Servers]]
  
 {{indexmenu_n>3}} {{indexmenu_n>3}}