HOWTO: Share a UNC Folder via FTP

In the latest version of BulletProof FTP Server, you can also offer a UNC Share to your FTP-Clients.. even when the BPFTP Server is running as Windows System-Service!

This posting builds upon a previous article on how to expose Drive-Letters using “Virtual Folders” in BulletProof FTP Server, by showing how to use UNC Paths as well…

HOWTO: Using Virtual-Folders to Share Additional Drives/Folders via FTP
http://blog.builtbp.com/2011/12/howto-using-virtual-folders-to-share-additional-drivesfolders-via-ftp/

HOWTO: Windows System-Service. Also, please see the extended list of postings related to running BPFTP Server as a Windows System-Service:
http://blog.builtbp.com/2011/09/howto-windows-system-service/
http://blog.builtbp.com/category/bpftp-server/windows-system-service/

HOWTO: Using Virtual-Folders to Share Additional Drives/Folders via FTP

BulletProof FTP Server supports the ability to create “Virtual Folders” for your ftp-users to access additional drives, folders and network-shares; allowing your ftp-users access to a wide variety of folder-locations on your local computer, as well as mounted-shares in your network.

Example Usage:

  • Providing Access to Web-Server documents via FTP
  • Accessing the files on your home-computer from work
  • Allowing telecommuters to update company files, spreadsheets, etc from home
  • Facilitating the transfer of very large files over the internet (too big for email)
  • Trade files between friends and family using their web-browser

Additional Info:
TIPS: How to serve your Network-Drives via FTP
HOWTO: Share a UNC Folder via FTP

TIPS: How to serve your Network-Drives via FTP

BulletProof FTP Server has the ability to serve files on your Mapped Network Drive via FTP. But you will need to add some special parameters to make sure that the credentials for the mapped drive are saved and the connection is toggled as persistent.

This is best done via the command-line (CLI) using the NET.EXE USE command.

Take the following example:

c:> %SystemRoot%\system32\net.exe use h: \\myserver\myshare /user:myusername /persistent:yes

In this example we are mapping drive-letter “H:” to a computer named “myserver” with a share-name of “myshare”, where the credentials needed to login to the machine are specified as “myusername” (if you were part of a domain, it would be “mydomain\myuser). The “/persistent:yes” instructs Windows to reconnect the drive at login.

Full Docs on the NET.EXE USE command:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_use.mspx?mfr=true

Microsoft Windows, by default, disconnect network-drives after X minutes of inactivity. Remapping the drive is done quickly and usually without any interruption. However if you have any problems, it’s recommended that you increase the default 600 seconds (10 minutes) to a larger number:
Mapped Drive Connection to Network Share May Be Lost

HOWTO: Overridding the Storage-Path for Settings, Users and Groups

The latest version of BulletProof FTP Server (by default) stores everything related to the program’s operation, including “Settings, Users and Groups” in the non-roaming, local user storage location %LOCALAPPDATA%. This allows for a constant, microsoft certified location for the storage of files and settings related to a program. This path is user-specific, in that, it is private to the OS-USER that you use to login to Windows. In some environments, you may want to change this location to something that complies with your own standards .. or perhaps you would like to run the SERVICE as a different user than the GUI.

Starting with BulletProof FTP Server v2010 (including later versions), the path for storing the “Settings, Users and Groups” was changed as a result of security improvements to Windows (starting with Vista). Previously, the BulletProof FTP Server stored everything in the “Installation-Directory” for the software. However, with the development of User-Access-Control (UAC) in Windows Vista/2008, the storage-path for these files were redirected to the Virtual Store. This redirection of file-writes to now protected paths, such as the %ProgramFiles%, proved to be very cumbersome of difficult for our customers to manage. For this reason, we embraced the new location Microsoft has specified and developed the ability to OVERRIDE it for customers that wanted to retain control of this location.

Table-Listing of Storage-Locations over the past several versions of BulletProof FTP Server:
Q: Can I backup the Settings, Users and Groups?

In the following example, you are stepped through the process of “Overriding the Storage-Path” in the program and the subsequent process that BulletProof FTP Server goes through to migrate the files containing the “Settings, Users and Groups”. Please note, this process can also be used to restore a backed up copy of your files.

HOWTO: Windows System-Service

BulletProof FTP Server 2011 can also run as a Windows System-Sevice, allowing you to serve up ftp-content from your computer without having to login to the system. This is a very handy feature for businesses that rely upon a FTP-Server to communicate with customers, receive files from automated processes or just-plain access your HOME computer from WORK.

Setting up Windows System-Service Support is very easy, but it does mean a little-bit of leg work on your end to satisfy Microsoft Windows’ security.

Click on a thumbnail to expand the image and see more information and instructions.

HOWTO: Upgrade your license from HOME to CORP

First, thank you very much for upgrading to the CORP version! Your support helps to fund development and keep new versions coming out with the same pace of changing technology!

Second, you’ll need to remove the previous license from the computer. This is done by:

  • Launch the GUI version of BulletProof FTP Server for Windows
  • Clicking the “About” button
  • Now, hold down Ctrl + Shift + Alt and Left-Click the section labeled “Licensed for Use”
  • Click “Yes” to confirm removing the license
  • Then click the “Enter Key” dialog after the program terminates
  • FIX: “Out of Memory” or “Low GDI” with BulletProof FTP Server

    Is BulletProof FTP Server for Windows crashing when you first run it? You might have it freeze during “Loading” or a “Crash Report” comes up saying “Out of Memory”…

    Don’t worry! It’s most likely a problem with running out of GDI-Handles in your installation of Windows…

    You may receive an “Out of Memory” error message because of the desktop heap limitation in Windows Vista or in Windows 7
    http://support.microsoft.com/kb/947246

    “Out of Memory” error message appears when you have a large number of programs running
    http://support.microsoft.com/kb/126962

    NOTE: You CANNOT have the /3GB option specified in the bootloader, this is often used on Exchange Server installations. (MORE INFO)

    This GUIDE will help illustrate the steps to increase the amount of memory..

    Vista Hands On #17: Solving a pesky resource problem
    http://www.zdnet.com/blog/bott/vista-hands-on-17-solving-a-pesky-resource-problem/269

    SharedSection & Max Number of Open Windows on XP & Vista
    http://www.mycsharpcorner.com/Post.aspx?postID=50

    Windows XP flakiness – solved
    http://weblogs.asp.net/kdente/archive/2004/06/04/148145.aspx

    Registry setting keeps Windows from wigging out when you open lots of IE7 tabs
    http://weblogs.asp.net/jgalloway/archive/2008/01/14/registry-setting-keeps-windows-from-wigging-out-when-you-open-lots-of-ie7-tabs.aspx

    INCREASING USER HANDLE AND GDI HANDLE LIMITS
    http://weblogs.asp.net/mikedopp/archive/2008/05/16/increasing-user-handle-and-gdi-handle-limits.aspx

    Many Thanks to AlexanderL for helping to discover a resolution to this problem!

    HOWTO: Remote-Debugging in BPFTP Server

    The latest version of BulletProof FTP Server for Windows has an advanced debugging mode, which will send verbose, detailed information on your configuration, settings and what happens during the program’s execution.

    This is very useful in understanding and solving a problem.

    To toggle this mode, there’s a very simple checkbox under:

    Management -> Server Settings -> General (tab) -> Adv. General Options -> Enable Remote-Debugging

    If you are having Start-Up issues and can’t get the UI to come up for this option, you can also manually activate it:

    1) Open NOTEPAD
    2) Type the word "debug" (or really anything)
    3) Save the Text-File to the installation directory for the software:

    Under Windows (32-bit) the default path is:
    C:\Program Files\BulletProof FTP Server 2011\remotedebug.txt

    Under Windows (64-bit) the default path is:
    C:\Program Files (x86)\BulletProof FTP Server 2011\remotedebug.txt

    Then run through the steps that generate the error or that you have a question about and send us an email with your Computer-Name. This will allow us to pull the logs from the remote-debug-server and analyse the problem. The Computer-Name is obtained by:
    Windows Start -> right-click "My Computer" or "Computer" and choose "Properties"

    NOTES:

  • Please ONLY run under this REMOTE-DEBUG mode for a very short time; Enable it, perform the action which represents the problem, then Disable it. The amount of debugging information sent is extraordinary and running it for 30 minutes with several connected ftp-users will take hours to send the data.
  • FIREWALL: If you are running Windows Firewall or other types of firewalls (hardware or software based), you will need to allow the program to open an OUTBOUND tcp/ip connection to “remotedebug.builtbp.com” on tcp/ip port 30101.
  • When this mode is enabled, you will see a new process appear under “Task Manager -> Processes -> (sort) Image Name” called “CSDISPATCHER.EXE”. This process is responsible for relaying the debugging information from BulletProof FTP Server to the Remote-Debug-Server. Killing this process, will empty the outbound queue of remote-debug-messages.
  • Windows System Service: Logon As Service

    Microsoft is known to be one of the most security (gui) operating-systems on the ‘net. For us old salts, we know it certainly didn’t start that way. Over the last decade, Microsoft has made tremendous strides… but with that comes added levels of complications.

    Take running BPFTP Server as a Windows-System-Service, one of the most common technical-support questions (second to Firewall settings )… It’s a complicated issue.

    In order to run BPFTP Server as a Windows-System-Service, you must give it a USER/PASSWORD to run under. In BulletProof FTP Server 2011, this is done under:

    Management -> Server Settings -> Auto-Start (tab) -> Auto-Start: Windows System Service

    Or, You can change it directly from Windows in:

    Windows Start -> Control Panel -> Administrative Tools -> Services -> BulletProof FTP Server 2011 -> right-click for "Properties" -> "Logon" (tab)


    NOTE: This USER/PASSWORD needs to be the same one you run the GUI version as, since the Settings, Users and Groups are all stored in:

    "%LOCALAPPDATA%\BulletProof Software\BulletProof FTP Server\2011\"

    NOTE: You can get around this, by overriding the “default storage-path” in BulletProof FTP Server 2011 under the following:

    Management -> Server Settings -> General (tab) -> Adv Settings -> Override Storage-Path


    Which brings us to the permission “Logon as Service”… The magically permission that the OS-USER needs to have in Windows in order to run BulletProof FTP Server 2011 as a Windows System Service.

    Microsoft: Logon as Service
    http://technet.microsoft.com/en-us/library/cc739424(WS.10).aspx

    HOWTO: API/CLI into BPFTP Server

    BulletProof FTP Server is an excellent FTP Server for Windows. With the recent development efforts in v2011, we thought it would be a good time to introduce some of the command-line-switches (CLI) for managing BPFTP Server from external programs, web-sites, scripts, etc.

    NOTE: At times you’ll see BulletProof FTP Server for Windows referred to as “BPS”.

    Let’s first start with a brief explanation of the binaries distributed with BulletProof FTP Server for Windows (BPS):

    The default installation location for the program is located in the following location:
    %PROGRAMFILES%\BulletProof FTP Server 2011\

    Depending on your version of Windows, %PROGRAMFILES% is expanded to the following for 32-Bit and 64-Bit versions of Windows:
    C:\Program Files\BulletProof FTP Server 2011\
    C:\Program Files (x86)\BulletProof FTP Server 2011\

    Investigating this location will yield the following executables:
    bpftpserver-2011.exe – Main executable for the program
    bpftpserver-adduser.exe – CLI to manipulating the User & Group Database
    bpftpserver-service.exe – responsible for controlling BPS when it’s running as a Windows System Service
    CSDispatcher.exe – used with “remote debug” for sending log-messages to our remote-server

    MAIN EXECUTABLE

    bpftpserver-2011.exe [OPTION]

    -reload
    Will cause the running instance of BPS to reload the settings, users and group information.

    -online
    Take BPS online and ready for incoming connections.

    -offline
    Take BPS offline and disable the listener from answering incoming connections.

    -exit
    Terminate BPS and stop it’s execution on the system. All users will be forcibly disconnected.

    -close
    Keep BPS online and all active-connections maintain, but disable the listener; resuling in no *new* connections accepted.

    -open
    Renable the listener, allowing new connections to be accepted.

    -startlogging
    Start logging to the log-file defined in the software.

    -stoplogging
    Stop logging to the log-file.

    -kickall
    Kick all currently connected users off of the server.

    -stat
    Regenerate the statistics files for users in the system.

    CLI ADDUSER

    BulletProof FTP Server 2011 command-line utility 'bpftpserver-adduser.exe'
    Copyright (c) 1998-2011 BulletProof Software LLC, All Rights Reserved.

    Command-line utility to manipulate the USER and GROUP database for BulletProof FTP Server 2011.

    Usage: bpftpserver-adduser.exe [OPTION]…

    -list=USERNAME[*,?]
    -name=ACCOUNTNAME
    -enabled
    -disabled
    -login=USERNAME
    -group=GROUPNAME
    -pswd=PASSWORD
    -crypt
    -access=PATH,ACCESSRIGHTS
    -loginmsg=FILENAME
    -speedlimit=[0,1]
    -speedrcv=BYTES-PER-SECOND
    -speedsnd=BYTES-PER-SECOND
    -banfile=FILEMASK[,FILEMASK2,FILEMASK3,...]

    Access = R(ead) W(rite) D(elete) A(ppend) M(ake) L(ist) S(ubdir) K(delete dir)

    First -access will be Home Directory

    Example :
    C:\Program Files (x86)\BulletProof FTP Server 2011\bpftpserver-adduser.exe -name=newuser -enabled -login=newlogin -pswd=newpass -group=demogroup -loginmsg=c:\login.txt -access=c:\ftproot\,RLS -banfile=+*.jpg,+*.gif

    Some explanation of the behavior is important, specifically the “-access” parameter. In the above example the login of “newlogin” for the account “newuser” is given the directory of “c:\ftproot\”

    We’ll break down the command-line, piece by piece

    -name=newuser
    While initially confusing, there’s a difference between an “account-name” and the “login-name”. The account-name refers to a “user-friendly” name for the account, such as “upstairs accountant” and “log-name” is the actual login that used to access the ftp-server; such as “accountant”.

    -enabled
    Will enable the account for login

    -login=newlogin
    The login-name for the user to use to access the ftp-server (see above not for -name)

    -pswd=newpass
    The password for the login

    -group=demogroup
    If the account belongs to a group, you can specify the name of the group (OPTIONAL)

    -loginmsg=c:\login.txt
    Will send a user-specific login-message via the protocol to the user after logging in (OPTIONAL)

    -access=c:\ftproot\,RLS
    Will add an access-right for the account to the directory c:\ftproot\ with the privledges of (R)ead,(L)ist,(S)ubdir . The first access-right specified will be the HOME-DIRECTORY for the user. Additional access-rights can be defined by use the “-access” parameter again. If you are specifying a user-account that already exists, then all access-rights for the account will be deleted and given the access-rights that you define here.

    -banfile=+*.jpg,+*.gif
    Will add a file-mask of files that the user-account is prohibited from uploading or downloading. (OPTIONAL)