Skip to main content

Security Best Practices

This guide provides recommendations for securing your GoMFT installation and maintaining a secure file transfer environment.

Installation Security

Use Docker Security Features

When deploying GoMFT with Docker:

  • Run as Non-Root: Always run the container as a non-root user (see Running as Non-Root)
  • Use Read-Only Filesystem: Mount the filesystem as read-only except for specific data directories
  • Limit Capabilities: Use Docker's --cap-drop to limit container capabilities
  • Set Resource Limits: Prevent resource exhaustion with memory and CPU limits
  • Use Docker Secrets: Store sensitive configuration in Docker secrets instead of environment variables

Example secure docker-compose configuration:

services:
gomft:
image: starfleetcptn/gomft:latest
user: "1000:1000"
read_only: true
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
security_opt:
- no-new-privileges:true
volumes:
- ./data:/app/data
- ./backups:/app/backups
environment:
- TZ=UTC
deploy:
resources:
limits:
cpus: '1'
memory: 1G

Traditional Installation Security

For traditional installations:

  • Dedicated User: Create a dedicated system user for running GoMFT
  • Minimal Permissions: Give the user only the permissions it needs
  • Firewall Rules: Restrict access to only necessary ports
  • SELinux/AppArmor: Use system security modules to limit application scope

Network Security

Use HTTPS

Always use HTTPS for the web interface:

  • Configure TLS: Use a reverse proxy like Nginx or Traefik for TLS termination
  • Strong Ciphers: Use modern, secure cipher suites
  • HSTS: Enable HTTP Strict Transport Security
  • Valid Certificates: Use trusted certificates from Let's Encrypt or other providers

Access Control

  • IP Restrictions: Limit access to trusted IP addresses where possible
  • VPN Access: Consider placing GoMFT behind a VPN for additional security
  • Firewall Rules: Configure firewall rules to restrict access to essential ports only

Authentication and Authorization

Strong Authentication

  • Password Policy: Enforce strong password requirements
  • MFA: Enable Multi-Factor Authentication for all users
  • Session Management: Set appropriate session timeouts
  • Failed Login Limits: Implement account lockouts after several failed attempts

Role-Based Access Control

  • Principle of Least Privilege: Grant users only the permissions they need
  • Separation of Duties: Use roles to separate administrative functions
  • Regular Review: Periodically review user roles and permissions

Credential Management

Secure Storage

  • Encrypted Credentials: Ensure all credentials are encrypted at rest
  • Isolated Storage: Store sensitive credentials in a separate database or secure storage
  • Key Rotation: Regularly rotate encryption keys

Credential Practices

  • Service Accounts: Use service accounts instead of personal accounts for connections
  • Temporary Credentials: Use temporary credentials where supported (e.g., AWS STS)
  • API Keys: Regularly rotate API keys and access tokens
  • Minimal Scope: Grant credentials the minimum required permissions

Transfer Security

Secure Protocols

  • Choose Secure Protocols: Prefer SFTP, FTPS, or HTTPS over unencrypted protocols
  • Disable Legacy Protocols: Disable insecure protocols like FTP where possible
  • Strong Ciphers: Configure secure cipher suites for encrypted protocols

Data Handling

  • Data Classification: Classify data by sensitivity and apply appropriate controls
  • Data Validation: Validate files before processing them
  • Virus Scanning: Implement virus scanning for transferred files
  • Data Loss Prevention: Consider DLP measures for sensitive data

Auditing and Monitoring

Comprehensive Logging

  • Detailed Logs: Enable detailed logging for all operations
  • Secure Log Storage: Store logs securely with access controls
  • Log Rotation: Implement log rotation to manage disk space
  • Tamper Protection: Ensure logs cannot be modified or deleted

Monitoring and Alerting

  • Real-time Monitoring: Monitor for suspicious activities
  • Security Alerts: Configure alerts for security-related events
  • Performance Monitoring: Watch for performance issues that might indicate attacks
  • Regular Review: Establish a process for regular log review

System Security

Regular Updates

  • Update GoMFT: Keep GoMFT updated to the latest version
  • Patch Host System: Keep the host operating system patched
  • Update Dependencies: Keep all dependencies (Docker, etc.) updated

Backup and Recovery

  • Regular Backups: Back up the GoMFT database and configurations regularly
  • Secure Backups: Encrypt backups and store them securely
  • Test Restoration: Regularly test backup restoration
  • Disaster Recovery Plan: Create and maintain a disaster recovery plan

Periodic Security Review

Security Assessments

  • Vulnerability Scanning: Regularly scan for vulnerabilities
  • Penetration Testing: Conduct periodic penetration tests
  • Configuration Review: Review security configurations regularly
  • Compliance Checks: Ensure ongoing compliance with relevant standards

Documentation

  • Security Policies: Document security policies and procedures
  • Configuration Documentation: Maintain documentation of secure configurations
  • Incident Response Plan: Create and maintain an incident response plan

Integrating with Security Tools

GoMFT can be integrated with external security tools:

  • SIEM Integration: Forward logs to Security Information and Event Management tools
  • Vulnerability Scanners: Include GoMFT in vulnerability scanning
  • Compliance Tools: Integrate with compliance monitoring tools

Best Practices for Specific Environments

Cloud Deployment

  • Cloud Security Services: Utilize cloud provider security services
  • Network Security Groups: Configure appropriate network security groups
  • Private Endpoints: Use private endpoints where possible
  • Cloud IAM: Leverage cloud Identity and Access Management

On-Premises Deployment

  • Network Segmentation: Place GoMFT in an appropriate network segment
  • Physical Security: Ensure physical security of the servers
  • Environmental Controls: Implement appropriate environmental controls
  • Backup Power: Ensure backup power for critical systems