Overview
TeamSpeak 6 Server includes multiple security features to protect your server from unauthorized access and attacks. This guide covers IP filtering, brute force protection, HTTPS configuration, and other security best practices.IP Allow List and Block List
Control which IP addresses can access your Server Query interface using allow lists (whitelist) and block lists (blacklist).IP Allow List
The allow list specifies IP addresses that are exempt from query flood protection and rate limiting.File path listing IP addresses exempt from Server Query flood protection.Environment Variable:
TSSERVER_QUERY_ALLOW_LISTAllow List File Format
Create a text file with one IP address per line:IP Block List
The block list specifies IP addresses that are completely blocked from accessing the Server Query interface.File path listing IP addresses blocked from the Server Query interface.Environment Variable:
TSSERVER_QUERY_DENY_LISTBlock List File Format
Create a text file with one IP address per line:Reloading IP Lists
Changes to IP list files require a server restart to take effect:Consider implementing a process to regularly review and update these lists based on security logs.
Brute Force Protection
TeamSpeak 6 Server includes built-in brute force protection for Server Query authentication attempts.Default Brute Force Protection
By default, brute force checking is enabled and monitors failed authentication attempts:- Tracks failed login attempts per IP address
- Implements exponential backoff after repeated failures
- Temporarily blocks IPs after threshold is exceeded
Disabling Brute Force Protection
Disables brute force checking on Server Query connections.Environment Variable:
TSSERVER_QUERY_SKIP_BRUTE_FORCE_CHECKWhen to Disable Brute Force Protection
Only disable brute force protection in these scenarios:- Internal networks: Server is only accessible within a trusted private network
- Development: Testing automated scripts that make many authentication attempts
- Custom protection: You’ve implemented external brute force protection (e.g., fail2ban)
Alternative Protection Methods
Instead of disabling brute force protection:- Use IP allow lists for trusted automation tools
- Implement SSH key authentication for Server Query SSH
- Use strong passwords for query accounts
- Monitor logs for suspicious authentication patterns
HTTPS Configuration
Secure your HTTP Server Query interface with HTTPS encryption.Enabling HTTPS
Enables the HTTPS Server Query interface.Environment Variable:
TSSERVER_QUERY_HTTPS_ENABLEDHTTPS Port Configuration
Port for HTTPS Server Query connections.Range: 1 - 65535Environment Variable:
TSSERVER_QUERY_HTTPS_PORTHTTPS Binding Address
IP addresses to bind for HTTPS Server Query connections.Environment Variable:
TSSERVER_QUERY_HTTPS_IPSSL Certificate Configuration
Path to the SSL certificate file for HTTPS.Environment Variable:
TSSERVER_QUERY_HTTPS_CERTPath to the private key file for the SSL certificate.Environment Variable:
TSSERVER_QUERY_HTTPS_PRIVATE_KEYObtaining SSL Certificates
Using Let’s Encrypt
Obtain free SSL certificates using Certbot:Let’s Encrypt certificates expire after 90 days. Set up automatic renewal using certbot’s renewal timer.
Using Self-Signed Certificates
For testing or internal use, create a self-signed certificate:SSH Server Query Security
The SSH Server Query interface provides encrypted communication by default.SSH Key Configuration
Path to the SSH RSA host key file.Environment Variable:
TSSERVER_QUERY_SSH_RSA_KEYGenerating SSH Host Keys
If the server doesn’t automatically generate host keys:Query Admin Password
Secure the built-in serveradmin account with a strong password.Sets or overrides the password for the serveradmin Server Query account.Environment Variable:
TSSERVER_QUERY_ADMIN_PASSWORDPassword Best Practices
- Use passwords at least 16 characters long
- Include uppercase, lowercase, numbers, and special characters
- Store passwords in a secure password manager
- Rotate passwords regularly
- Never commit passwords to version control
Using Environment Variables for Secrets
Network Security
Firewall Configuration
Limit access to Server Query ports:Reverse Proxy Configuration
Use a reverse proxy for additional security:Security Monitoring
Enable Query Command Logging
Logs every command received on the Server Query interface.Environment Variable:
TSSERVER_QUERY_LOG_COMMANDSCommand logging helps detect suspicious activity but increases log file size. Enable for security audits or incident investigation.
Monitor Authentication Failures
Regularly review logs for failed authentication attempts:Implement Fail2Ban
Automatically ban IPs with repeated failed attempts:Security Best Practices
Access Control
- Limit Server Query access to trusted IP addresses using allow lists
- Use SSH or HTTPS instead of plain HTTP for Server Query
- Disable unused interfaces (HTTP if only using SSH)
- Use strong passwords for all query accounts
- Implement key-based authentication where possible
Network Isolation
- Place servers in DMZ or isolated network segments
- Use VPN access for administrative connections
- Implement network segmentation between voice and query interfaces
- Use firewall rules to restrict port access
Monitoring and Auditing
- Enable command logging for security audits
- Monitor authentication failures in real-time
- Review IP block/allow lists regularly
- Audit permission changes via logs
- Set up alerts for suspicious activity
Regular Maintenance
- Update SSL certificates before expiration
- Rotate passwords quarterly
- Review access logs monthly
- Update server software promptly
- Test backup restoration procedures
Troubleshooting
Can’t Connect to HTTPS Query
-
Verify HTTPS is enabled:
-
Check certificate paths:
-
Verify certificate permissions:
-
Check firewall rules:
IP Allow List Not Working
- Verify file path is correct in configuration
- Check file format (one IP per line)
- Ensure file has Unix line endings (LF, not CRLF)
- Restart server after modifying the file
- Check file permissions (server must be able to read it)
Brute Force Protection Blocking Legitimate Users
- Add trusted IPs to allow list
- Temporarily disable brute force protection for troubleshooting
- Review logs to identify root cause of failures
- Verify credentials are correct
- Check for automated scripts causing repeated failures
Related Topics
- Server Query Authentication - Configure Server Query access
- HTTPS Query Interface - HTTP and HTTPS configuration details
- SSH Query Interface - SSH configuration and key management
- Permissions - Configure permission system security