HOWTO: Getting Started with BulletProof FTP Server

Thank you for your interest in BulletProof FTP Server.

Below is a list of HOWTO articles that have been written over the years to help customers in getting up and running with BulletProof FTP Server.
Note: Some of the screen-shots show older versions of the software. The UI hasn’t changed much between different versions, but you might find some of the buttons labeled differently than what appears.

  • Download, Install and Adding First User
  • Opening Your Firewall
  • Licensing
  • Upgrading
  • Windows System Service
  •  

    Download, Install and Adding First User

    HOWTO: Downloading BPFTP Server 2010
    http://blog.builtbp.com/2010/09/howto-downloading-bpftp-server-2010/

    HOWTO: Installing BPFTP Server 2010
    http://blog.builtbp.com/2010/09/howto-installing-bpftp-server-2010/

    HOWTO: Adding a User
    http://blog.builtbp.com/2010/09/howto-adding-a-user/

     

    Opening Your Firewall

    It’s VERY common that people think only one-port is needed for ftp (default: tcp/ip 21). However, this is not true.

    FTP requires at least two ports, one for the control-port (used to login and issue commands, default tcp/ip 21) and a data-port (default tcp/ip 30000 to 30100). One data-port is needed for every concurrent data-connection, for this reason we suggest using a range of 100 ports which will handle most needs.

    HOWTO: Windows Firewall and BPFTP Server 2011
    http://blog.builtbp.com/2011/06/windows-firewall-and-bulletproof-ftp-server/

    HOWTO: Windows Firewall
    http://blog.builtbp.com/2010/09/howto-windows-firewall/

    HOWTO: Setting up NAT/Passive/Firewall Support
    http://blog.builtbp.com/2010/09/howto-setting-up-natpassivefirewall-support/

     

    Licensing

    HOWTO: Enter Your Subscription-Code
    http://blog.builtbp.com/2013/05/howto-enter-your-subscription-code/

    HOWTO: Purchase an Upgrade to your License
    http://blog.builtbp.com/2014/02/howto-purchase-an-upgrade-to-your-license/

    HOWTO: Remove Your License-Code
    http://blog.builtbp.com/2013/05/howto-remove-your-license-code/

     

    Upgrading

    FAQ: Can I Upgrade and retain all my Users, Groups and Settings?
    http://blog.builtbp.com/2011/12/faq-can-i-upgrade-and-retail-all-my-users-groups-and-settings/

    FAQ: Where does BPFTP Server store the Users, Groups and Settings?
    http://blog.builtbp.com/2011/12/faq-where-does-bpftp-server-store-the-users-groups-and-settings/

    HOWTO: Overridding the Storage-Path for Settings, Users and Groups
    http://blog.builtbp.com/2011/10/howto-override-storage-path-for-settings-users-and-groups/

     

    Windows System Service

    HOWTO: Windows System-Service
    http://blog.builtbp.com/2011/09/howto-windows-system-service/

     

    FEATURE: “reload” command-line parameter

    This HOWTO video shows the process of executing the “reload” command at the command line to reload changes made to the USERS file.

    1) BPS currently running as a SERVICE
    2) Logging into BPS using “ftp.exe”
    3) While the ftp-client is still connected
    4) Change the “bpftpserver-users.ini” and edit the password
    5) Issue the “bpftpserver -reload” command
    6) BPS launches another instance to instruct the current instance to reload the configuration
    7) The original ftp-client is still connected
    8) Disconnect original ftp-client and try to login as old password (doesn’t work, since it was changed)
    9) Try to login as the new password, it works.

    HOWTO: Add Anonymous ftp-user to BPFTP Server

    1) Switch to "User Manager" 2) Click "Add User" 3) Enter the name for the account as "anonymous"
    1) Switch to “User Manager”
    2) Click “Add User”
    3) Enter the name for the account as “anonymous”
    1) Switch to "Login" 2) Turn OFF the requirement for a "Password" for the account...
    1) Switch to “Login”
    2) Turn OFF the requirement for a “Password” for the account…
    1) Switch to "Access" 2) Right-Click in the empty part of the window. 3) Click Add.
    1) Switch to “Access”
    2) Right-Click in the empty part of the window.
    3) Click Add.
    1) Choose the directory you want the anonymous user to access. Recommend: c:\ftp\anonymous
    1) Choose the directory you want the anonymous user to access.
    Recommend: c:\ftp\anonymous
    1) It's recommended that the anonymous user have the following rights to only allow the "uploading" of files to your ftp-server. TIP: This will keep people from using your ftp-server as a "dump-site" for trading of nefarious files. 2) Click "Save and Close"
    1) It’s recommended that the anonymous user have the following rights to only allow the “uploading” of files to your ftp-server.
    TIP: This will keep people from using your ftp-server as a “dump-site” for trading of nefarious files.
    2) Click “Save and Close”

    ROUTERS: Inactivity-Timeout and Keep-Alives

    Inactivity-Timeout and Keep-Alives

    426 Connection closed; transfer aborted. Error #10057

    During a data-transfer (directory-listings or file-transfers), the control-connection (tcp/ip default 21, used to login and issue commands) is IDLE.

    When this control-connection is IDLE, other pieces of networking-equipment between yourself and the ftp-client could choose to close idle connections with a function called “Inactivity Timeout”. This “Inactivity Timeout” can be found in the ftp-client’s first hop to the internet (their wifi/nat router), it could be found in the upstream routers through their ISPs, it can also be found in your own first-hop to the internet. Basically they are everywhere, but the first place is to set this value in your own hardware that provides routing to the internet (example below).

    To combat this, the NOOP command (aka Keep-Alive) was made for ftp-clients in the RFC spec. During lengthy transfers, the ftp-client needs to send a NOOP command across the ftp-control-connection; this will keep the connection active with periodic “chatter”.

    NOOP command listed in RFC spec of commands:
    http://en.wikipedia.org/wiki/List_of_FTP_commands

    Inactivity Timeout: OpenWRT
    Inactivity Timeout: OpenWRT
    Inactivity Timeout: OpenWRT (CONSOLE)
    Inactivity Timeout: OpenWRT (CONSOLE)

    FEATURE: Allow Multiple Instances

    “Allow Multiple Instances” is a new function as of v2014.1.0.15 that allows you to run multiple copies of the software, each with it’s own set of Settings, Users/Groups. This is very useful for organizations which provide ftp-services for their clients and would like to keep the groups of ftp-users in their own separate instance.

    It’s also very useful for controlling bandwidth used by each instances, as multiple IPs can be bound to the computer’s NIC, allowing for fine-grained control of bandwidth, traffic shapping, etc in their networking-hardware; each instance would then use the “Multi-IP” setting to only listen to specific IPs. (Management -> Settings -> Multi-IP)

    Allow Multiple Instances: Create Shortcut
    Allow Multiple Instances: Create Shortcut
    Allow Multiple Instances: Edit Shortcut
    Allow Multiple Instances: Edit Shortcut
    Allow Multiple Instances: Name Shortcut
    Allow Multiple Instances: Name Shortcut
    Allow Multiple Instances: Shortcut Properties
    Allow Multiple Instances: Shortcut Properties
    Allow Multiple Instances: Shortcut Double-Click to Start
    Allow Multiple Instances: Shortcut Double-Click to Start
    Allow Multiple Instances: Import, Automatic Search for Installations
    Allow Multiple Instances: Import, Automatic Search for Installations
    Allow Multiple Instances: Import, Manually from Specified Folder
    Allow Multiple Instances: Import, Manually from Specified Folder
    Allow Multiple Instances: Example Files for Import
    Allow Multiple Instances: Example Files for Import
    Allow Multiple Instances: Importing Example Files
    Allow Multiple Instances: Importing Example Files
    Allow Multiple Instances: Confirmation of Instance Storage-Path
    Allow Multiple Instances: Confirmation of Instance Storage-Path
    Allow Multiple Instances: Verification of Instance Storage-Path in Windows Explorer
    Allow Multiple Instances: Verification of Instance Storage-Path in Windows Explorer

    TIPS: Poor Network Performance in Windows under Virtual Machine

    TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access

    Sounds super awesome huh?!? But what is it?

    I have around 20 virtual-machines, running under VMware Workstation, they allow me to test BulletProof FTP Server for Windows under all the different versions, editions and flavors of Windows that now exist. It’s exhausting actually, mostly because I need to perform Windows Updates every few months.

    The host for all these virtual-machines, as well as my development, runs on a custom built ASUS Rampage III with Intel Core i7 970 with 6/12 physical/logical cores, 24 GB DDR2 RAM, storage is via ARC-1880i in RAID0+1 of 4x Samsung SSD. Why does any of that matter? Because, I’m trying to underscore that it’s a blazing fast computer.

    But I noticed some network-speed problems, specially under Windows 2008 R1 and R2. Part of the issue was that “vmware tools” on the machines were not updated (do this asap, it will run much better), but Windows Update was taking almost an hour; just to see if there were updates. I dig some digging and found a bunch of articles, linked below. If you are having network-performance issues, please look to see if you are affected by this feature…

    NOTE: TCP Chimney Offload does not appear to be a feature that is unique to Windows 2008, as I’ve found it set to “automatic” in default installs of Windows 7, 8, Server 2008; “disabled” in Vista.

    HOWTO: Is the MAGIC on?

    c:\] netsh int tcp show global
    Querying active state...

    TCP Global Parameters
    ----------------------------------------------
    Receive-Side Scaling State : enabled
    Chimney Offload State : automatic
    NetDMA State : enabled
    Direct Cache Acess (DCA) : disabled
    Receive Window Auto-Tuning Level : normal
    Add-On Congestion Control Provider : none
    ECN Capability : disabled
    RFC 1323 Timestamps : disabled
    ** The above autotuninglevel setting is the result of Windows Scaling heuristics
    overriding any local/policy configuration on at least one profile.

    HOWTO: Turn Off the MAGIC

    c:\] netsh interface tcp set global rss=disabled chimney=disabled autotuninglevel=disabled
    Ok.

    Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008
    http://support.microsoft.com/kb/951037

    Poor network performance on Windows 2008 Server virtual machine (1009517)
    http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009517

    Windows Server 2008 R2 Windows updates very slow download time
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/ca80c34c-a4e5-4027-880a-9646aa80b352/windows-server-2008-r2-windows-updates-very-slow-download-time

    NETSH to disable advanced features
    http://social.technet.microsoft.com/Forums/exchange/en-US/968afa2d-e326-49f2-b6a8-1f264e82beea/netsh-to-disable-advanced-features?forum=exchange2010

    The effect of TCP Chimney offload on viewing network traffic
    http://blogs.technet.com/b/networking/archive/2008/11/14/the-effect-of-tcp-chimney-offload-on-viewing-network-traffic.aspx

    HOWTO: Purchase an Upgrade to your License

    BulletProof FTP Server is licensed via different Editions and include unique features.

    As an example, while using the software you encounter a feature that isn’t available in your current license. You purchased the “Professional Edition”, but you recently discovered the very powerful “Management -> Events Manager”, and you’d like to email someone whenever a file is uploaded.

    No problem! We’ve built the software to allow upgrading your license and we’ll apply 100% of your original purchase towards the upgrade! This allows you the flexibility to scale up, at anytime, without a penalty!

    Upgrade License (Step 1 of 8)

    Upgrade License (Step 2 of 8)

    Upgrade License (Step 3 of 8)

    Upgrade License (Step 4 of 8)

    Upgrade License (Step 5 of 8)

    Upgrade License (Step 6 of 8)

    Upgrade License (Step 7 of 8)

    The "Technical Support Permission Key" is: 902djlx0qojs
    The “Technical Support Permission Key” is:
    902djlx0qojs

    KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage

    KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage

    In order to provide information on Server Monitor -> Files Uploaded/Downloaded, the software writes entries into secondary files stored in the Storage-Location directory. These files contain one-line per file uploaded/downloaded and as the usage of the program increases, these files get bigger and bigger. Start-Up of the program will be effected as these files increase in size and the time to load the file into memory increases (and the footprint in memory increases).

    Server Monitor -> Files Downloaded/Uploaded
    Server Monitor -> Files Downloaded/Uploaded

    To resolve this problem, it’s necessary to manually archive these files to another location; this will “reset” the statistics found in Server Monitor -> Files Uploaded/Downloaded.

    You can manually archive these files:
    1) Closing BulletProof FTP Server and ensure the SERVICE is not current running/active
    2) Use My Computer or a Command-Prompt and navigate to the Storage-Location.
    3) Locate the files named below and move them to some archive directory of your choosing (or delete them):

    bpftpserver-common-downloads.ini
    bpftpserver-common-uploads.ini

    4) Start BulletProof FTP Server

    NOTE: In a later version, this will be resolved with a re-organization and re-write of this function in order to save the information in a way that doesn’t affect performance.