feat: Fix discovery system critical issues
Resolved multiple critical discovery system issues: ## Discovery System Fixes - Fixed console commands not being discovered on first run - Implemented fallback discovery for empty caches - Added context-aware caching with separate cache keys - Fixed object serialization preventing __PHP_Incomplete_Class ## Cache System Improvements - Smart caching that only caches meaningful results - Separate caches for different execution contexts (console, web, test) - Proper array serialization/deserialization for cache compatibility - Cache hit logging for debugging and monitoring ## Object Serialization Fixes - Fixed DiscoveredAttribute serialization with proper string conversion - Sanitized additional data to prevent object reference issues - Added fallback for corrupted cache entries ## Performance & Reliability - All 69 console commands properly discovered and cached - 534 total discovery items successfully cached and restored - No more __PHP_Incomplete_Class cache corruption - Improved error handling and graceful fallbacks ## Testing & Quality - Fixed code style issues across discovery components - Enhanced logging for better debugging capabilities - Improved cache validation and error recovery Ready for production deployment with stable discovery system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
163
deployment/infrastructure/roles/base-security/defaults/main.yml
Normal file
163
deployment/infrastructure/roles/base-security/defaults/main.yml
Normal file
@@ -0,0 +1,163 @@
|
||||
---
|
||||
# Base Security Role Default Variables
|
||||
|
||||
# SSH Configuration
|
||||
ssh_port: 22
|
||||
ssh_permit_root_login: false
|
||||
ssh_password_authentication: false
|
||||
ssh_pubkey_authentication: true
|
||||
ssh_challenge_response_authentication: false
|
||||
ssh_gss_api_authentication: false
|
||||
ssh_x11_forwarding: false
|
||||
ssh_max_auth_tries: 3
|
||||
ssh_client_alive_interval: 300
|
||||
ssh_client_alive_count_max: 2
|
||||
ssh_max_sessions: 2
|
||||
ssh_tcp_keep_alive: true
|
||||
ssh_compression: false
|
||||
ssh_use_dns: false
|
||||
ssh_permit_tunnel: false
|
||||
ssh_permit_user_environment: false
|
||||
ssh_banner: /etc/ssh/ssh_banner
|
||||
|
||||
# Allowed SSH users and groups
|
||||
ssh_allowed_users:
|
||||
- "{{ ansible_user }}"
|
||||
- deploy
|
||||
ssh_allowed_groups:
|
||||
- sudo
|
||||
- adm
|
||||
|
||||
# SSH Key Management
|
||||
ssh_authorized_keys_exclusive: true
|
||||
ssh_host_key_algorithms:
|
||||
- ssh-ed25519
|
||||
- ecdsa-sha2-nistp521
|
||||
- ecdsa-sha2-nistp384
|
||||
- ecdsa-sha2-nistp256
|
||||
- rsa-sha2-512
|
||||
- rsa-sha2-256
|
||||
|
||||
# UFW Firewall Configuration
|
||||
ufw_enabled: true
|
||||
ufw_default_incoming: deny
|
||||
ufw_default_outgoing: allow
|
||||
ufw_default_forward: deny
|
||||
ufw_logging: "on"
|
||||
ufw_reset: false
|
||||
|
||||
# Default firewall rules
|
||||
ufw_rules:
|
||||
- rule: allow
|
||||
port: "{{ ssh_port }}"
|
||||
proto: tcp
|
||||
comment: "SSH"
|
||||
- rule: allow
|
||||
port: "80"
|
||||
proto: tcp
|
||||
comment: "HTTP"
|
||||
- rule: allow
|
||||
port: "443"
|
||||
proto: tcp
|
||||
comment: "HTTPS"
|
||||
|
||||
# Fail2ban Configuration
|
||||
fail2ban_enabled: "{{ fail2ban_enabled | default(true) }}"
|
||||
fail2ban_loglevel: INFO
|
||||
fail2ban_socket: /var/run/fail2ban/fail2ban.sock
|
||||
fail2ban_pidfile: /var/run/fail2ban/fail2ban.pid
|
||||
|
||||
# Default Fail2ban jails
|
||||
fail2ban_jails:
|
||||
- name: sshd
|
||||
enabled: true
|
||||
port: "{{ ssh_port }}"
|
||||
filter: sshd
|
||||
logpath: /var/log/auth.log
|
||||
maxretry: 3
|
||||
findtime: 600
|
||||
bantime: 1800
|
||||
backend: systemd
|
||||
|
||||
- name: nginx-http-auth
|
||||
enabled: true
|
||||
port: http,https
|
||||
filter: nginx-http-auth
|
||||
logpath: /var/log/nginx/error.log
|
||||
maxretry: 3
|
||||
findtime: 600
|
||||
bantime: 1800
|
||||
|
||||
- name: nginx-limit-req
|
||||
enabled: true
|
||||
port: http,https
|
||||
filter: nginx-limit-req
|
||||
logpath: /var/log/nginx/error.log
|
||||
maxretry: 5
|
||||
findtime: 600
|
||||
bantime: 1800
|
||||
|
||||
# System Security Settings
|
||||
security_kernel_parameters:
|
||||
# Network security
|
||||
net.ipv4.tcp_syncookies: 1
|
||||
net.ipv4.ip_forward: 0
|
||||
net.ipv4.conf.all.send_redirects: 0
|
||||
net.ipv4.conf.default.send_redirects: 0
|
||||
net.ipv4.conf.all.accept_redirects: 0
|
||||
net.ipv4.conf.default.accept_redirects: 0
|
||||
net.ipv4.conf.all.accept_source_route: 0
|
||||
net.ipv4.conf.default.accept_source_route: 0
|
||||
net.ipv4.conf.all.log_martians: 1
|
||||
net.ipv4.conf.default.log_martians: 1
|
||||
net.ipv4.icmp_echo_ignore_broadcasts: 1
|
||||
net.ipv4.icmp_ignore_bogus_error_responses: 1
|
||||
net.ipv4.conf.all.rp_filter: 1
|
||||
net.ipv4.conf.default.rp_filter: 1
|
||||
|
||||
# IPv6 security
|
||||
net.ipv6.conf.all.accept_redirects: 0
|
||||
net.ipv6.conf.default.accept_redirects: 0
|
||||
net.ipv6.conf.all.accept_ra: 0
|
||||
net.ipv6.conf.default.accept_ra: 0
|
||||
|
||||
# Kernel security
|
||||
kernel.randomize_va_space: 2
|
||||
kernel.kptr_restrict: 2
|
||||
kernel.dmesg_restrict: 1
|
||||
kernel.printk: "3 3 3 3"
|
||||
kernel.unprivileged_bpf_disabled: 1
|
||||
net.core.bpf_jit_harden: 2
|
||||
|
||||
# Package updates and security
|
||||
security_packages:
|
||||
- fail2ban
|
||||
- ufw
|
||||
- unattended-upgrades
|
||||
- apt-listchanges
|
||||
- needrestart
|
||||
- rkhunter
|
||||
- chkrootkit
|
||||
- lynis
|
||||
|
||||
# Automatic security updates
|
||||
unattended_upgrades_enabled: true
|
||||
unattended_upgrades_automatic_reboot: false
|
||||
unattended_upgrades_automatic_reboot_time: "06:00"
|
||||
unattended_upgrades_origins_patterns:
|
||||
- origin=Ubuntu,archive=${distro_codename}-security
|
||||
- origin=Ubuntu,archive=${distro_codename}-updates
|
||||
|
||||
# System hardening
|
||||
disable_unused_services:
|
||||
- rpcbind
|
||||
- nfs-common
|
||||
- portmap
|
||||
- xinetd
|
||||
- telnet
|
||||
- rsh-server
|
||||
- rsh-redone-server
|
||||
|
||||
# User and permission settings
|
||||
security_umask: "027"
|
||||
security_login_timeout: 300
|
||||
Reference in New Issue
Block a user