BlackMoon FTP Server Features

Features
Open and extensible SQL database for server and account settings Unlike many servers which use by default proprietory file formats or simple ini files, BlackMoon FTP server uses an open and extensible database format for storing all accounts and server information. With your sensitive data all in one location creating and restoring backups is easy. Using a real database also allows server administrators to add extend or integrate their custom fields or tables without affecting the server database. Databases can safely and securely be accessed over a network and protected with a username and password either through a system dsn or a direct connection string. With BlackMoon FTP server, your user database can be kept on a separate computer which can be assessed by multiple BlackMoon FTP Servers all over the network.

The ftp server intelligently creates all the required tables automatically, no manual creation required. Newer versions will add tables and fields as required without affecting older versions in case you need to rollback.
Virtual Folders and Merging Folders

BlackMoon has a powerful and easy to use virtual folder system. Virtual folders are folders that appear to be part of the root folder but are physically located elsewhere on the drive. BlackMoon's virtual folder system supports UNC paths and virtual subfolders. No ini files to edit, all configuration is done through the GUI and all permissions are just a button click away.

Merge folders are also supported. Merge folders allow the contents of two physically separate folders to appear as one to the ftp client. The number of folders to be merged is unlimited. Merge folders can be added and removed to the root folder or other virtual folders.

The root folder and other virtual folders have their permissions independent of each other. Folders under the root or virtual folders inherit permissions from their parents. To set permissions for subfolders, the administrator simply navigates the folder tree, enables the subfolder permission and sets the appropriate permissions for the selected subfolder.

Changing the properties of root or virtual folders is just a right click away. Display names, paths and even UNC path login and password settings can be modified without deleting and readding the folders
System Integration BlackMoon supports many administrative features in windows2000, xp and 2003. It uses the event logging API to log server errors and notify administrators of important server activity. These can be viewed with the system event viewer. The ftp service is installed as a ssytem service and configured by default to restart the service automatically in case of an unexpected failure. The service and the GUI can be configured independently to automatically start on reboot. No hacks or 3rd party service installers required.

Access to network drives is supported by directly entering the UNC path (eg \\computer\folder) instead of relying on windows explorer to map the drives like many other servers do.

With blackmoon multiple ftp servers in the network can share a single database and still maintain separate server settings.
Support for FTP Protocol and addon extensions BlackMoon supports all the major features of the ftp protocol as defined in rfc959. In addition to that it follows draft extension covering new features like SSL and TLS specifications. Other extensions include SSCN (the support for SSL enabled server to server file transfers), MLIST / MLSD ( platform independent file listing specifications ), MDTM, SIZE, XCRC and more.
Folder configuration options
BlackMoon supports a host of folder configuration options, including setting the default folder permissions for newly created accounts, the default root folder for newly created standalone accounts or groups, the ability to store and display unix style file ownership information on ntfs partitions and moving deleted files to the recyle bin.
Standalone, groups and os accounts BlackMoon supports three types of user accounts:
  • Standalone accounts: These accounts are what the name describes, standalone.

  • Group accounts: These accounts belong in a group. Their main settings are configured from the groups setting. Group accounts are meant for accounts that share a common configuration. The folders and a few other settings can be individually configured for each account in the group. Group accounts can either use the folder configuration specified for the group, the accounts own folder configuration or merging of the account and group folder configurations.

  • OS Accounts: This type of account is usually meant for an active directory database or NT user database. It is meant to be a oneshot configuration for any user that authenticates from the active directory or group.

All the three types support a multitude of configuration options, including folder settings, ratio & quotas, bandwidth controls, bans, blocked and allowed file types, site commands, domain access and more
Extenstive and informative server monitoring Graphical User Interface The server is separated into two separate applications; The FTP Service and the Monitoring Graphical User Interface. Because the GUI is a separate application, it can work locally or remotely from another computer over the internet.

It will display:
  • The main server text logs which includes client activity and status messages from the server.

  • Uploaded, downloaded, currently uploading and downloading file lists. The information in the lists includes the filenames, percentages uploaded or download, and bytes transferred.

  • Currently connect client lists, including their login times and current activity

  • Server status; current bandwidth, transfers, clients, server uptime, online status and ports being used by the server

  • 3D graphical statistics showing daily, monthly, and yealy connection and file transfer statistics including top ten lists for files and bytes transferred

  • A ban management screen view active bans from client accounts. Server bans are temporary so no management is required as they are automatically deleted

All active clients are shown in a tree view in the main GUI arranged by accounts. Clicking on the ip representing the connection will show the most recent client activity logs. Other sub nodes will display files transferred and status information for the selected connection. Right clicking on active connect will display a menu which allows the administrator to forcefully disconnect the user, abort the current file transfer, or even adjust the session properties.

[screenshots]
Automatic Date & Time Activations and Configurable Login Periods The server administrator can configure the server to activate and operate between two date/time periods. While outside the time periods setup by the administrator the server will run but remain offline and not accept any incoming connections.

It also supports configurable login periods. In a 24 hour, 7 day grid, blocks of 1 hour periods can be enabled or disabled when the server should be online and offline.

Limit access to server resources with ratios and quotas The ratio feature allows the ftp server administrator to encourage sharing by defining a simple rule such as, for every 3 files downloaded, 1 file must be uploaded. This rule could be applied to kilobytes too.  Ratios can be enforced per session (the duration of the connection) or for all sessions.

Quotas enables ftp administrators to enforce the fair distribution of server resources such as disk space. The ftp server supports many types of quotas including disk quotas, daily, weekly and montly file/kilobyte upload/download quotas.

[screenshot]
Hostname and IP access restrictions The ability to restrict who can log into the ftp server is an important one. The server can block or allow access depending on host name or ip address. Wildcards are fully supported. For example you could block everyone from getting into the server and only allow users from "*.aol.com" to connect. This can by done by ip address too, for example "192.168.*". [screenshot]

IP and hostnames can also be excluded from certain server restrictions namely, hammering ban, retry bans, exclusion from block server to server transfer commands and exclusions from being subjected to bandwidth restrictions. [screenshot]
Automatically ban password probes and hammering ips The server can be configured to ban ip addresses that attempt one or more connections in a set interval. For example, ban any ip addresses that connect 10 times in 30 seconds.

Password probing ips can also be automatically banned too. There are options to temporarily ban any ip address that fail x consercertive logins. The temporary ban duration is also configurable and the GUI will display status information when the ban is activated and when it is expired.




Store user passwords in different password formats By default user passwords are stored as plaintext in the database. If an administrator wants passwords to not be visible or secure in the database, MD5 hashes or SHA-1 Hashes of the passwords can be used also. The server password format can be changed at anytime without affecting already created accounts.
Plugin addon scripts written in vbscript, jscript, perl or python

The ability to easily write addon script is one of the major features unique to BlackMoon.

Scripts can be written in any activescripting language, some of which are vbscript, perl, jscript and python. Scripts can do anything you wish them to, for example email an administrator after a file has been uploaded, or process or move a file after an upload. Scripts can also communicate back to the ftp client and block or allow a certain action to take place.

The entire scripting api is available in the help file. Some of the script included by default is an mp3 music sorter, an sfv file checker, a welcome message script that displays all kinds of data about the client's previous activity, a script that can search for files only in the folders allowed to the ftp client and many more.

The entire scripting subsystem can also be enabled or disabled with a click of a button.

The server comes with sample scripts and documentation and full email support to help administrators write their custom addon modules to the server
Realtime server statistics reporting An COM server is included called "bmftprealtimestats" that provides services to external applications, scripts or web applications to retrieve realtime statistics from the server or other standalone services like adding and deleting users.

A webserver application could for example retrieve data on how much bandwidth is being currently used, how many users are logged in, server logs, connected client logs, their ip addresses, current folder they are browsing and even current activity from the realtimestatistics application.

Standalone services such as adding and deleting users, retrieving a list of users are also supported.