Security - RDS (Remote Development Services)
Configure remote development access and security settings
Overview
Remote Development Services (RDS) is a ColdFusion feature that allows IDE tools like Adobe Dreamweaver, CFBuilder, and CFEclipse to connect remotely to your ColdFusion server for file browsing, database queries, and debugging. While useful for development, RDS provides significant server access and must be carefully controlled in production environments.
RDS Configuration Settings
Control whether RDS is enabled and configure authentication requirements.
Enable RDS
Staging: Disabled or restricted by IP
Development: Enabled with strong password
RDS Password
- Use password manager to generate and store complex password
- Never use the same password as the ColdFusion Administrator
- Rotate password regularly (every 90 days minimum)
- Never share RDS passwords via email or chat
- Change immediately if compromise suspected
Enable Separate Password for RDS and Admin
What RDS Provides Access To
Understanding the scope of access granted when RDS is enabled.
File System Access
- Capabilities
- Browse, read, edit, create, delete files
- Scope
- Full server file system (subject to OS permissions)
- Risk Level
- Critical
Allows complete file system manipulation including CFM templates, configuration files, and data.
Database Access
- Capabilities
- Query all configured datasources
- Scope
- Full database read/write access
- Risk Level
- Critical
Direct SQL execution against all configured databases with datasource privileges.
Code Execution
- Capabilities
- Execute CFML code on server
- Scope
- Run arbitrary code with server privileges
- Risk Level
- Critical
Can execute CFML code snippets directly on the server for testing.
Debugging Access
- Capabilities
- Remote debugging sessions
- Scope
- Inspect variables, step through code
- Risk Level
- High
View application variables, session data, and execution flow in real-time.
Server Information
- Capabilities
- View server configuration details
- Scope
- Settings, mappings, datasources
- Risk Level
- High
Exposes server configuration that aids in reconnaissance for attacks.
Configuring RDS in Development Tools
Adobe ColdFusion Builder / CFEclipse
Connecting to ColdFusion server via RDS:
RDS Server Configuration in CFBuilder:
1. Open RDS Configuration:
Window → Preferences → ColdFusion → RDS Configuration
2. Add New Server:
- Server Name: Development Server
- Host Name: dev.example.com (or localhost)
- Port Number: 8500 (default) or custom port
- Context Root: /CFIDE (default)
- RDS Password: [your RDS password]
3. Test Connection:
Click "Test Connection" to verify settings
4. Advanced Options:
- Use HTTPS: Enable for remote servers
- Timeout: 30 seconds (default)
- Use Proxy: If behind corporate proxy
Security Note:
Always use HTTPS for RDS over internet connections
to prevent password interception.Adobe Dreamweaver
Setting up RDS for file browsing and database connectivity:
Dreamweaver RDS Configuration:
1. Site Setup → Servers → Add New Server
2. Basic Settings:
- Server Name: CF Dev Server
- Connect Using: FTP or Local/Network
3. Advanced Settings:
- Server Model: ColdFusion
- Access: RDS
4. RDS Connection:
- Host: dev.example.com
- Port: 8500
- Security: Use Secure Connection (HTTPS)
- Password: [RDS password]
- Context Root: /CFIDE
5. Test Connection
Features Enabled:
✓ Browse server files via RDS tab
✓ Execute database queries
✓ View datasources
✓ Live data preview in design viewSecurity Best Practices
Production Environment
- Disable RDS completely - No exceptions for production
- Verify RDS is disabled in administrator before deployment
- Block RDS ports (default 8500) at firewall level
- Remove or restrict /CFIDE directory web access
- Include RDS disabled check in deployment checklist
- Monitor logs for any RDS connection attempts
Development Environment
- Enable RDS only on local development machines
- Use strong, unique passwords (16+ characters)
- Enable separate RDS and admin passwords
- Never expose RDS ports to the internet
- Use VPN for remote RDS access if absolutely required
- Restrict access by IP address when possible
- Disable RDS when not actively developing
- Use HTTPS for all RDS connections
- Rotate RDS passwords quarterly
Alternatives to RDS
More secure with granular access control
Direct database connection with better security
CommandBox server for local development
RDS Port and Network Configuration
Default RDS Ports
# Block RDS ports from external networks
# Allow only from specific IP (replace with your IP)
# Block RDS HTTP port from all
iptables -A INPUT -p tcp --dport 8500 -j DROP
# Allow RDS from trusted IP only
iptables -I INPUT -p tcp -s 192.168.1.100 --dport 8500 -j ACCEPT
# Block RDS HTTPS port from all
iptables -A INPUT -p tcp --dport 8501 -j DROP
# Allow RDS HTTPS from trusted IP only
iptables -I INPUT -p tcp -s 192.168.1.100 --dport 8501 -j ACCEPT
# Allow from local network (adjust subnet as needed)
iptables -I INPUT -p tcp -s 192.168.1.0/24 --dport 8500 -j ACCEPT
iptables -I INPUT -p tcp -s 192.168.1.0/24 --dport 8501 -j ACCEPT
# Save rules
service iptables save# PowerShell commands for Windows Firewall
# Block RDS HTTP port
New-NetFirewallRule -DisplayName "Block RDS HTTP" `
-Direction Inbound -LocalPort 8500 -Protocol TCP -Action Block
# Allow RDS from specific IP
New-NetFirewallRule -DisplayName "Allow RDS from Dev IP" `
-Direction Inbound -LocalPort 8500 -Protocol TCP `
-Action Allow -RemoteAddress 192.168.1.100
# Block RDS HTTPS port
New-NetFirewallRule -DisplayName "Block RDS HTTPS" `
-Direction Inbound -LocalPort 8501 -Protocol TCP -Action Block
# Allow RDS HTTPS from specific IP
New-NetFirewallRule -DisplayName "Allow RDS HTTPS from Dev IP" `
-Direction Inbound -LocalPort 8501 -Protocol TCP `
-Action Allow -RemoteAddress 192.168.1.100Common Issues & Solutions
Cannot Connect to RDS
- Verify RDS is enabled in ColdFusion Administrator
- Check ColdFusion service is running
- Confirm correct port number (8500 default)
- Verify firewall allows RDS port from your IP
- Test connectivity:
telnet server.com 8500 - Check RDS password is correct
- Review ColdFusion logs for authentication failures
RDS Authentication Failed
- Verify RDS password in CF Administrator (Security → RDS)
- Ensure "Use a separate password for RDS" is configured correctly
- Check for special characters that may need escaping
- Reset RDS password in administrator and retry
- Clear IDE's saved RDS credentials and re-enter
- Check for account lockout after multiple failed attempts
RDS Security Audit Failed
- Disable RDS immediately on production servers
- Verify RDS disabled: check Security → RDS in administrator
- Block ports 8500/8501 at firewall level
- Restrict /CFIDE directory access in web server config
- Review access logs for unauthorized RDS usage
- Document remediation for audit report
- Add RDS check to deployment verification checklist
Verifying RDS Status
/**
* Check if RDS is enabled on the server
* Useful for deployment verification scripts
*/
function isRDSEnabled() {
try {
// Create admin API object
adminAPI = createObject("component", "cfide.adminapi.administrator");
// Login to admin API (requires admin password)
adminAPI.login("your_admin_password");
// Create security API object
securityAPI = createObject("component", "cfide.adminapi.security");
// Get RDS security settings
rdsSettings = securityAPI.getRDSecurity();
return rdsSettings.RDSEnabled;
} catch (any e) {
writeLog(file="rds-check", type="error",
text="Failed to check RDS status: #e.message#");
return false;
}
}
// Usage in deployment script
if (isRDSEnabled()) {
writeLog(file="deployment", type="error",
text="SECURITY ALERT: RDS is enabled on production!");
// Fail deployment or send alert
}