In a Nutshell (🌰)
- SSM implements a comprehensive security model for device management
- Credentials are securely stored with encryption
- SSH provides secure device connections with strict key verification
- No permanent agents run on managed devices, reducing the attack surface
Security First Approach
Squirrel Servers Manager (SSM) was designed with security as a core principle. This document outlines the security model used throughout the system to protect your infrastructure.
Credential Management
Secure Storage
SSM uses several layers of security to protect sensitive credentials:
- Ansible Vault Encryption: SSH keys and passwords are encrypted using Ansible Vault
- Database Encryption: Credentials stored in MongoDB use additional encryption (bcrypt)
SSH Key Management
When using SSH keys for device authentication:
- Keys can be generated by SSM or imported from existing keys
- Private keys are encrypted before storage
- Key passphrase support for additional security
- Keys are only decrypted in memory when needed for connections
Authentication & Authorization
User Authentication
SSM implements secure user authentication:
- JWT-based authentication for API access
- Password complexity requirements
- Protection against brute force attacks
- Session management with configurable expiration
Network Security
SSH Connection Security
All device connections use secure SSH:
- Strict host key verification prevents MITM attacks
- Connections close after command execution
- No permanent open ports on managed devices
- Support for non-standard SSH ports
Connection Encryption
SSM ensures all connections are encrypted:
- SSH connections use industry-standard encryption
Agentless Security Benefits
The agentless architecture provides significant security advantages:
- No permanent agents running on target devices
- Lower attack surface with fewer components to exploit
- No need to maintain agent security patches
- No root-level services required on managed devices
Security Best Practices
When deploying SSM, follow these security best practices:
Network Configuration
- Deploy behind a reverse proxy for TLS termination if public access is required
- Use firewall rules to restrict access to the SSM server
- Consider network segmentation to isolate management traffic
Credential Management
- Use SSH keys instead of passwords where possible
- Generate unique SSH keys for SSM rather than sharing existing keys
- Implement a key rotation policy for sensitive environments