THE INFORMATION IN THIS ARTICLE APPLIES TO:
DISCUSSION
Below is a checklist of suggestions and guidelines for installing,
configuring, and deploying EFT in a production environment, including
best practices for security (after the Configuration Checklist).
Development Lab Environment
As with any mission-critical software or hardware, it is recommended
that a testing, validation, development, or usability lab be established
to provide a "sandbox" into which EFT and DMZ Gateway Server
software can be deployed. This initial deployment allows for validation
of the interoperability with other dependent components as well the validation
of expected usage scenarios.
The lab environment should emulate (if not duplicate) the production
environment at a network topography and application level. To do this,
a clear vision of the production network and the proposed deployment of
EFT and DMZ Gateway must exist. Typical deployments of EFT and DMZ Gateway
consist of many other components from the enterprise, including Active
Directory Server, SQL Server, SMTP Server, and a storage system such as
a SAN. For DMZ Gateway, a firewall such as Microsoft ISA might be applicable.
Finally, some deployments also include Clustering,
in which case various components are replicated to provide clustered resources.
For increased business continuity and risk mitigation, you should use
the development lab environment as the starting point for any configuration
changes in the system. That is, make the change in development and validate
it prior to making the change in production.  A
good testing tool is CuteFTP.
Configuration Checklist
The installation and configuration of EFT in either a lab or a production
environment should be validated by EFT administrators/operators to ensure
that the functions are working as expected.
    
    
    
    
    
        
        
            |  | Make sure that the EFT Server service is
            started on
            the computer. | 
        
            |  | Make sure that the service is listening
            on the expected IP:PORT socket addresses on EFT. (To view the
            listening sockets, use "netstat -ona" from a command
            line or an application such as PrcView or TcpView.) | 
        
            |  | Check the Event Viewer log to ensure that
            there are no errors in the Application log related to EFT or DMZ
            Gateway. | 
        
            |  | Confirm that the
            administration interface shows the status of the system
            when it is launched and connected
            to EFT. | 
        
        
            |  | For each Site on EFT, ensure that the expected
            user accounts exist. | 
        
            |  | To ensure that authentication is working
            as expected, attempt to log in to EFT as a user account on the
            system (using any protocol). | 
        
            |  | To confirm that permissions for the user
            account are working as expected, attempt a file transfer. | 
        
        
            |  | For each protocol enabled on EFT, attempt
            a connection directly to EFT using a client that supports that
            protocol. | 
        
            |  | For each protocol enabled through DMZ Gateway,
            attempt a connection to the appropriate DMZ Gateway IP:PORT and
            confirm that this route works as expected. | 
        
        
            |  | View the audit traces generated by the validation
            steps above. | 
        
            |  | Confirm that the Auditing
            and Reporting module database has been populated with
            appropriate data (using either EFT Reporting interface or direct
            access to the SQL Server being used). | 
        
            |  | Confirm that the text log
            files generated by EFT have been populated with the appropriate
            data. | 
        
        
            | Each customer has a unique set of Event Rule/workflow requirements, but these are the general validation steps. Confirm the following are working as expected: | 
        
            |  | E-mail notifications. Test e-mail notifications by triggering an Event Rule that has an e-mail notification Action to confirm that Event Rules fire and that the SMTP configuration is correct. 
 
 | 
        
            |  | PGP operations. Confirm
            that OpenPGP keys
            are configured properly. | 
        
            |  | Move/Copy/Download
            actions. Initiate Event Rules that perform remote
            file uploads/copies/download so
            that connectivity originating from EFT to a remote system is properly
            configured. In this step, also confirm that a log file is
            generated that audits outbound connection information (a "cl*.log"
            file in the designated Server Log File location). | 
        
            |  | Custom
            Commands. EFT is responsible for triggering those external
            commands, so that is what should be validated with respect to
            EFT. Any actions carried out by those external tools should be
            validated independently. Confirm that a "CMDOUT.LOG"
            file is generated as the result of an invoked Custom
            Command. | 
        
            |  | Folder
            Monitor Rules. Ensure that the Event Rules are properly
            enabled and responsive to files added to the folder
            being monitored. | 
        
            |  | Failover Testing | 
        
            |  | For failover cluster deployments, the failover
            and failback operations of the cluster should be confirmed. After
            a failover/failback, confirm that the newly active server behaves
            properly; that is, the failover is transparent and the configuration/operation
            is as expected. This can be summarized by the prior set of
            tests operating against the newly active node in the cluster. | 
        
        
            |  | If you expect high volumes of traffic or
            back-end processing within EFT, you should verify that the resource
            utilization levels on the Server are within acceptable tolerances.
            There are numerous load-testing tools available, ranging from
            simple batch files running command-line FTP to highly complex
            synthetic transaction generators. Globalscape's Quality Assurance
            team performs load testing of our servers as part of our standard
            validation process for releasing software. | 
        
        
            |  | Review Knowledgebase article #10438, Tuning Windows for TCP/IP performance | 
        
            |  | Review Knowledgebase article #11214, Performance Tuning EFT HA Native mode | 
        
        
            |  | It is always recommended to separate EFT’s configuration share and site data shares to different servers. | 
        
            |  | If possible, use a share server that is exclusive to EFT’s configuration. This directly improves stability. DFS is not a supported platform for shared config. Refer to knowledgebase article #11569 Known Issues Using DFS on EFT for more information. | 
    
Numerous other features can be validated within EFT. The above set represents
the key elements that are most often used and are the most critical to
successful operation in a production environment.
Security
Best Practices Checklist
The following settings are recommended for increased security.
    
    
    
    
    
        
        
            |  | Create a specific AD
            account on which EFT’s service is to run with the minimum
            necessary permissions. | 
        
            |  | Create an Event Rule to back
            up the entire Server configuration to a separate drive at
            least daily. | 
        
            |  | Do not use any default administrator names
            (e.g., "admin"). | 
        
            |  | Do not use the default
            administration port (1100). | 
        
            |  | Only turn on remote
            administration if necessary. If remote administration is needed,
            then ban
            all IPs except those trusted IPs necessary to access the server
            for administration. | 
        
            |  | Turn
            on SSL/TLS if using remote administration. | 
        
            |  | Create sub-administrator
            accounts with the least amount of privileges necessary for
            help desk or operational administrators. | 
        
            |  | Do not give sub-administrators access to
            COM or the ARM (report) module unless absolutely necessary | 
        
            |  | If giving ARM (report) access to a sub-administrator,
            use the ReportsConnectionString registry
            override to define an alternate (least privileged) database connection
            string for database queries. | 
        
            |  | Set administrator
            passwords to expire every 90 days (or according to internal
            best practices/policies). | 
        
            |  | Enable and define a complex security scheme for administrator passwords to include a minimum password length of 12 to 16 characters. | 
        
            |  | Prohibit reuse of previous 99 passwords. | 
        
            |  | Lockout administrators for an extended period
            after multiple failed
            login attempts. | 
        
            |  | Run a PCI
            DSS report to detect any lax security configuration settings
            (either manually or on a schedule
            with an Event Rule). | 
        
            |  | Periodically check the Globalscape
            support site for the latest version and upgrade accordingly.
            One or more high priority fixes for security vulnerabilities
            are often included. | 
        
        
            |  | Expire accounts that are inactive for 90 days. | 
        
            |  | Set
            user passwords to expire every 60 or 90 days. | 
        
            |  | Enable and define a complex password security scheme for users. | 
        
            |  | Prohibit reuse of previous 99 passwords. | 
        
            |  | When using HTTP/S and/or SFTP protocols,
            require that the user reset their password upon initial use (requires
            KIA support by the SFTP client. FTP/S protocol does not support
            password reset upon initial login). | 
        
            |  | Briefly lockout users after repeated failed
            logins. | 
        
            |  | Automatically
            ban IP addresses with repeated failed username attempts. | 
        
            |  | E-mail
            user login credentials separately or only send username and
            communicate password via phone or other means (i.e., out-of-band
            delivery). | 
        
            |  | Allow users to reset their passwords and force them to do so upon first login. | 
        
        
            |  | Segregate
            user’s folders. (Do not share folders/resources across users
            when possible.) | 
        
            |  | Restrict users to their home folders and
            set
            the home folder as ROOT for that user. | 
        
            |  | Use Settings Templates to inherit
            user permissions rather than modifying them for each user. | 
        
            |  | Use Groups
            to simplify control over user access to resources. | 
        
            |  | Limit resource permissions
            to the minimum necessary. | 
        
        
            |  | Enable verbose
            logging (Log Type). | 
        
            |  | Rotate
            logs daily and encrypt+sign
            using an Event Rule. | 
        
            |  | Always use extended auditing (ARM). | 
        
            |  | Examine audit logs at least weekly for anomalous
            behavior | 
        
        
            |  | Encrypt data at rest using EFS encryption,
            OpenPGP, or 3rd-party encryption. | 
        
            |  | Keep data separate (DAS/SAN/NAS). | 
        
            |  | Define data
            recovery procedures in case of data corruption/loss/theft. | 
        
            |  | Scan uploaded files for viruses (3rd-party
            tool required). | 
        
            |  | Never store data in the DMZ,
            even temporarily. (Instead, install DMZ Gateway® in the DMZ and then store/manage data on EFT and other storage locations.) | 
        
            |  | Create a legacy data clean-up
            rule according to your company policy. | 
        
            |  | Enable data
            wiping for sanitizing deleted data. | 
        
            |  | Add a banned file type rule and disallow
            all extensions except those required by the business. | 
        
        
            |  | Be extremely selective when choosing which
            IPv4 or IPv6 addresses to bind to for a specific Site (listener).
            Only bind to IPv6 addresses if your organization is aware of and
            mitigating against IPv6-specific attacks at the edge of your network. | 
        
            |  | If possible, allow only secure protocols
            (SSL/TLS, SSH,
            HTTPS,
            AS2). | 
        
            |  | Disable all unused services or features
            that may adversely affect security, including Web
            Services, any unused protocol listeners, and using
            username and password credentials for use in Event Rule context
            variables, if not needed by any Event Rule. | 
        
            |  | Always choose the strongest ciphers, hashes, and key lengths.   The following are considered weak ciphers:  
                TLS_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TTLS_RSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_RSA_WITH_AES_256_GCM_SHA384 Not configuring SSL/TLS securely increases the likelihood that user credentials would be compromised by decrypting the session. If these ciphers are not required for supporting older browsers disable them. Additional changes may be required to avoid specific attacks. For example, to mitigate the BEAST exploit, move RC4 (a lesser strength but non-CBC cipher) to the top of the SSL/TLS cipher priority list, followed by AES 256, then AES128, etc. | 
        
            |  | In the Server Security tab, enable the most secure SSL/TLS Compatibility settings as needed for your environment. Do not enable Clear Command Channel
            (CCC) nor unprotected data channel (PROT C), unless needed in your environment. | 
        
            |  | Disallow site-to-site
            (FXP) support for FTP/S protocol listeners, and block
            client anti-timeout attempts. | 
        
            |  | Have your server’s SSL/TLS certificate signed by Certificate Authority (CA). | 
        
            |  | If possible, require that the connecting
            clients provide a certificate proving their identify in addition
            to their authentication credentials. | 
        
            |  | Mask the server's identity by using generic
            banner messages. | 
        
            |  | Specify a maximum limit for connections and transfers for each template. | 
        
            |  | Specify a maximum limit of 5 connections and transfers for each user. | 
        
            |  | Enable EFT’s
            Denial of service settings, disconnecting and banning users
            that issue an excessive numbers of invalid commands (weighted
            over a given period) and permanently banning IP addresses that
            exceed the server's Flood/hammer value. Non HTTP/S setups should
            set the Flood/hammer
            slider to Very High, vs. the default Medium setting. | 
        
            |  | Specify allowed
            IP address ranges for user/partner connections when possible,
            denying connections from all other IP addresses. | 
    
Prescriptive Guidance for Maintenance
The following are guidelines for maintaining the good health of an EFT
and DMZ Gateway deployment and reducing long-term costs of maintenance
and operation.
    - 
    Configuration Backup
    - For disaster recovery and business continuity, it is important to
    keep backups of the Server and DMZ Gateway configuration. Backing
    up the configuration can be accomplished with a variety of tools such
    as Symantec Backup Exec, Ghost / VMWare to make images of the system, or even a simple script
    file. 
- 
    Database Backup and
    Truncation - If you are using the Auditing and Reporting module
    (ARM), the database to which the audit records are stored should include
    EFT ARM tables as part of the typical database maintenance plan. This
    includes proper monitoring of the tables and transaction logs, backing
    up the data and having a retention policy to archive (or purge) old
    data. 
- 
    Data Archival and
    Retention - You should put into place and enforce a policy
    by which old data is periodically archived and/or purged, because
    no disk is limitless and performance can degenerate as more files
    are added to EFT. Therefore, a storage management policy should include
    regular inspection of available hard disk space and health (error
    count, fragmentation, etc.) as well as archiving and/or purging user
    data and Server Log Files (CMDOUT.log found in the application folder,
    and all other logs found in the Log folder specified on the Server). 
- 
    Restarting Services
    - Given the facility of the Microsoft Cluster in failing over and
    failing back while providing high resource availability, it is recommended
    that you design a maintenance schedule in which the EFT service is
    cycled at least once per quarter to once per month. Failing over to
    the backup node, restarting the service, then failing back and restarting
    the other node would suffice in re-establishing a baseline state of
    the EFT service to ensure optimal health. 
- 
    Event Log Alerting
    - EFT will log error conditions to the standard Windows Event Viewer.
    It is recommended that the operations team for an enterprise include
    EFT error checks in their monitoring techniques, looking for an ERROR
    event generated with a source of "EFT," "EFT Enterprise,"
    or "Globalscape." 
Procedure for Cold Standby Setup
Below are few recommendations for achieving a backup server image that
is ready to be turned on quickly and accept "real" traffic.
In all situations, if you are copying a configuration
file from one system to another, care must be taken with hardware-specific
resources, such as IP addresses, physical paths/partitions, and
so on. If possible, it is recommended that the EFT configuration
use the generic "All Incoming" IP Address for incoming
socket connections so that differences in computer IP addresses
do not prevent proper operation of the system if the Cold Standby
comes online.
Furthermore, you must take care with the connections
and IP-access restriction lists between EFT and DMZ Gateway. If
DMZ Gateway is configured to allow only one EFT IP address to
connect to it, then the Cold Standby server must have the same
IP address to connect; alternately, the DMZ Gateway IP access
list must include all possible IP addresses (possibly a Class
C subnet) so that multiple servers from the approved network segment
may connect.
    - 
    Virtualization Software
    - A great solution from a cost- and resource-saving standpoint, virtualization
    software is also quite easy to manage due to the "software"
    nature of the solution. The approach would be to create an image within
    a virtual system (using a tool such as VMWare or Microsoft Virtual
    PC) by installing and activating the EFT or DMZ Gateway software.
    Once this is done, the steps required to bring the system online include
    first copying the configuration files (which were backed up using
    a process described above), then bringing the virtual image online
    and starting the service. 
- 
    System Backup Software
    - Another quick and easy option is to create a disk or system image
    of a configured EFT or DMZ Gateway (using a product such as Norton
    Ghost); when a Cold standby needs to be "stood up" and made
    hot, the image can be installed on a computer, backup configuration
    copied, and the service started. 
- 
    Periodic Backup to
    Cold Standby Machine - If resources permit, the quickest way
    to get a "Cold" computer to become "Hot" is to
    have a computer dedicated to this function. It should have EFT and/or
    DMZ Gateway installed and activated, but the service should be stopped.
    A process to copy the configuration periodically from the "Hot"
    server to the "Cold" server would keep the two in synch,
    and if the "Hot" system goes down, the "Cold"
    system can simply start the service.