Comprehensive cleanup to remove all traces of old debootstrap-based
build system approach, now fully migrated to ISO-based installer.
1. **Removed Obsolete Files**:
- Dockerfile.dev (old debootstrap container definition)
- config/preseed.sh (obsolete debootstrap script)
- docs/CLEANUP-SUMMARY.md (historical cleanup docs)
- docs/TEST-EVIDENCE.md (historical test docs)
- docs/old/ (entire directory with obsolete docs)
- tests/build-and-test.sh (old debootstrap test script)
2. **Rewrote AGENTS.md**:
- Removed all obsolete build system sections (Build System,
Current Build Status, Build Environment, Proof Testing,
Known Issues, Next Steps)
- Kept current relevant sections (Orientation, Overview,
Architecture, Security Model, Compliance, File Structure,
Configuration, Scripts, Deployment, Verification)
- Updated to focus solely on ISO-based approach
- Reduced from 1306 lines to ~650 lines (clean and concise)
- Added proper Build System section for ISO approach
- Added Testing section
- Added Troubleshooting section
3. **Updated Active Documentation**:
- docs/FUNCTIONAL-REQUIREMENTS.md (corrected installer description)
- docs/BUILD-DOCUMENTATION.md (removed debootstrap reference)
- docs/SECURITY-BASELINES.md (removed debootstrap reference)
- AGENTS.md (updated with COMMIT_CONVENTIONS reference)
4. **Project Now Clean**:
- All debootstrap references removed
- All obsolete documentation removed
- Focus entirely on ISO-based installer approach
- Ready for clean ISO builds
Files Deleted:
- Dockerfile.dev
- config/preseed.sh
- docs/CLEANUP-SUMMARY.md
- docs/TEST-EVIDENCE.md
- docs/old/ (BUILD-CONTINUOUS-STATUS.md, BUILD-PROGRESS.md,
BUILD-STATUS.md, DOCKER-README.md, DOCKER-SOLUTION.md,
QUICKSTART.md)
- tests/build-and-test.sh
Files Updated:
- AGENTS.md (complete rewrite, removed ~650 lines of obsolete content)
- docs/FUNCTIONAL-REQUIREMENTS.md (corrected installer type)
- docs/BUILD-DOCUMENTATION.md (removed obsolete tool reference)
- docs/SECURITY-BASELINES.md (removed obsolete reference)
💘 Generated with Crush
Assisted-by: GLM-4.7 via Crush <crush@charm.land>
15 KiB
Football Secure Access System - Functional Requirements
Document Information
- System Name: Football Secure Access System
- Document Type: Functional Requirements Specification
- Version: 1.0
- Date: 2025-01-20
- Status: Final (Production Ready)
1. Purpose
The Football Secure Access System is a minimal, hardened Debian 13 (trixie) system designed for secure remote access to Tier0 infrastructure. It provides secure, auditable access to privileged workstations (PAWs) while enforcing strict network isolation.
2. Functional Requirements
2.1 Core Functionality
FR-1: Remote Access to Privileged Infrastructure
- The system MUST provide remote desktop access (RDP) to Privileged Access Workstations (PAWs)
- Remote access MUST be secured via WireGuard VPN tunnel
- All remote access traffic MUST route through VPN (no direct network access)
FR-2: Network Isolation
- The system MUST block all direct network access on physical interfaces
- The system MUST only allow outbound traffic through WireGuard VPN interface
- The system MUST allow only one WireGuard endpoint connection
- The system MUST drop all inbound traffic (except keepalive and DHCP)
FR-3: Minimal User Interface
- The system MUST boot directly to graphical desktop environment
- The system MUST use IceWM as window manager (lightweight)
- The system MUST launch Remmina automatically on user login
- The system MUST provide only Remmina for remote access (no other remote tools)
FR-4: Automated Installation
- The system MUST be installable via bootable ISO
- The system MUST use preseed configuration to automate installation
- The system MUST require user to provide only:
- Username for user account
- Password for user account (min 12 chars, complexity requirements)
- Root password (min 12 chars, complexity requirements)
- Target disk/partition for installation
- The system MUST automatically configure all other installation settings
2.2 Security Requirements
FR-5: Zero Remote Administration
- The system MUST NOT allow SSH connections
- The system MUST NOT allow telnet or any other remote administration
- The system MUST disable all remote access services by default
FR-6: System Hardening
- The system MUST implement CIS Debian 13 Benchmark controls
- The system MUST enforce Secure Boot with signed bootloader
- The system MUST enable kernel lockdown mode
- The system MUST enforce AppArmor in enforce mode
- The system MUST enable auditd logging for security events
- The system MUST disable core dumps
- The system MUST set strict umask (077)
FR-7: Integrity Verification
- The system MUST implement AIDE (Advanced Intrusion Detection Environment)
- The system MUST run AIDE integrity checks periodically
- The system MUST alert on integrity violations
FR-8: Firewall Configuration
- The system MUST use nftables/iptables for firewall
- The system MUST implement default DROP policy for INPUT, OUTPUT, FORWARD chains
- The system MUST allow only specific traffic:
- Loopback traffic
- WireGuard keepalive packets to endpoint
- WireGuard tunnel traffic (all VPN traffic)
- DHCP on physical interface for IP acquisition
2.3 System Requirements
FR-9: Boot Configuration
- The system MUST support both UEFI and BIOS boot
- The system MUST boot into graphical mode by default
- The system MUST use GRUB2 as bootloader
- The system MUST protect GRUB with password (if configured)
FR-10: Storage Configuration
- The system MUST use LVM for logical volume management
- The system MUST support encrypted root filesystem (optional)
- The system MUST use ext4 for root filesystem
FR-11: System Updates
- The system MUST allow security updates via APT
- The system MUST NOT install development tools
- The system MUST NOT install unnecessary packages
FR-12: Logging and Monitoring
- The system MUST log all security events
- The system MUST log all network connections (via firewall logs)
- The system MUST log all authentication attempts
- The system MUST implement logrotate to manage log sizes
3. Artifact Properties
3.1 ISO Artifact
Property 1: Bootable ISO
- File format: ISO 9660 with Rock Ridge extensions
- Boot modes: BIOS (MBR) and UEFI (GPT)
- Size: ~350-400MB (Debian netinst base)
- Architecture: amd64 (x86_64)
Property 2: Embedded Preseed
- Preseed file location:
/preseed.cfgon ISO root - Preseed loading: Automatic via boot command
- Preseed automation: All installation steps except user/password/disk
Property 3: Debian Installer Integration
- Base: Debian 13 (trixie) netinst ISO
- Installer: Standard Debian installer with preseed automation
- Packages: Minimal base system (no GUI initially)
3.2 Installed System Properties
Property 4: Operating System
- Distribution: Debian 13 (trixie)
- Architecture: amd64 (x86_64)
- Kernel: Linux (latest from Debian 13)
- Init system: systemd
Property 5: Minimal Footprint
- Installed packages: < 100 (minimal base)
- Desktop environment: IceWM (lightweight window manager)
- Remote access tools: Remmina only
- Development tools: None
- Services: Systemd, auditd, rsyslog, NetworkManager, WireGuard
Property 6: Security Hardening
- Secure Boot: Enabled (signed bootloader)
- SELinux: Not used (AppArmor instead)
- AppArmor: Enforcing mode
- Firewall: nftables with DROP policy
- SSH: Disabled and masked
- Bluetooth: Disabled
- Wireless: Disabled
Property 7: Network Configuration
- Physical interface (eth0): DHCP only, VPN keepalive only
- WireGuard interface (wg0): All outbound traffic
- DNS: Via VPN tunnel (no external DNS)
- Routing: Default route via VPN interface
Property 8: User Account
- Default username:
user(set during install) - Default password: Set during install (min 12 chars)
- Root account: Password protected (set during install)
- Sudo access: Not configured (local admin only)
3.3 Deployment Properties
Property 9: Hardware Requirements
- Architecture: x86_64 (amd64)
- RAM: Minimum 2GB (4GB recommended for smooth operation)
- Storage: Minimum 8GB (16GB recommended)
- Boot: UEFI preferred, BIOS supported
- Network: Ethernet interface required
Property 10: Target Environment
- Deployment: Bare metal laptop or VM
- Location: Physical access-only systems (football-x)
- Network: Must have internet access for VPN connection
- Physical security: Controlled environment (Tier0)
4. Non-Functional Requirements
4.1 Performance
NFR-1: Boot Time
- System MUST boot within 30 seconds to login prompt
- System MUST launch desktop within 60 seconds of login
NFR-2: Network Latency
- VPN tunnel latency MUST NOT exceed 200ms (typical VPN overhead)
- Remote desktop performance MUST be acceptable (not pixelated or laggy)
NFR-3: Resource Usage
- System MUST use < 2GB RAM at idle
- System MUST use < 10GB disk after installation
4.2 Reliability
NFR-4: Uptime
- System MUST support 24/7 operation without restart (for deployment period)
- System MUST recover gracefully from network failures
NFR-5: Availability
- System MUST be available for remote access when VPN is connected
- System MUST NOT crash or hang under normal operation
4.3 Usability
NFR-6: Ease of Use
- Installation MUST require < 10 minutes of user interaction
- User MUST be able to connect to PAW within 2 minutes of login
- User MUST NOT need to configure system settings
NFR-7: Maintainability
- System MUST support security updates via APT
- System MUST allow administrator to add required packages (if needed)
- System MUST provide logs for troubleshooting
4.4 Security
NFR-8: Compliance
- System MUST meet CIS Debian 13 Benchmark requirements
- System MUST pass automated compliance tests
- System MUST be auditable by external security teams
NFR-9: Encryption
- WireGuard tunnel MUST use strong encryption (ChaCha20-Poly1305)
- VPN keys MUST be securely stored (WireGuard config files)
- Optional: Root filesystem encryption support
5. User Inputs Required
During installation, user MUST provide:
5.1 User Account
- Username: For non-root user account (e.g.,
user) - Password: Must meet complexity requirements:
- Minimum 12 characters
- Mixed case (uppercase and lowercase)
- At least one number
- At least one special character
5.2 Root Account
- Password: Must meet same complexity requirements as user password
- Root access: Local console only (no remote root)
5.3 Target Disk
- Disk selection: User selects disk/partition for installation
- Partitioning: Automated (LVM, no manual configuration)
- Warning: All data on selected disk will be wiped
6. System Components
6.1 Core Components
- Operating System: Debian 13 (trixie)
- Kernel: Linux (latest from Debian 13)
- Init System: systemd
- Bootloader: GRUB2 (UEFI and BIOS support)
6.2 Desktop Components
- Window Manager: IceWM
- Session Manager: Default X session
- Auto-start: Remmina launches on login
6.3 Network Components
- VPN Client: WireGuard
- Network Manager: NetworkManager (for DHCP)
- Firewall: nftables/iptables
6.4 Security Components
- Mandatory Access Control: AppArmor (enforcing)
- Intrusion Detection: AIDE
- Audit Framework: auditd
- Secure Boot: GRUB with signed bootloader
7. Compliance Requirements
The system MUST comply with:
7.1 CIS Benchmarks
- CIS Debian 13 Benchmark (Level 1 controls)
- Configuration reviewed and validated
7.2 Security Standards
- NIST SP 800-53 (Moderate impact baseline)
- Industry best practices for secure remote access
7.3 Operational Security
- Least privilege: Only necessary components installed
- Defense in depth: Multiple security layers
- Security by default: Secure configuration out of the box
8. Testing Requirements
The system MUST be tested for:
8.1 Installation Testing
- ISO boots successfully on UEFI systems
- ISO boots successfully on BIOS systems
- Preseed configuration works as expected
- User can install system with minimal input
8.2 Security Testing
- Firewall rules block unauthorized traffic
- WireGuard tunnel establishes successfully
- SSH and remote access are disabled
- AppArmor is enforcing
- AIDE integrity checks work
8.3 Functional Testing
- User can login to desktop
- Remmina launches automatically
- User can connect to PAW via RDP
- System works on bare metal hardware
9. Verification Strategy
9.1 First-Boot Verification (Automatic)
The system automatically runs verification on first boot:
- Verification Service: Systemd service
football-first-bootruns once on first boot - Verification Script:
/usr/local/bin/verify-system.shchecks all functional requirements - Status Tracking:
/var/lib/football/verification-statusprevents re-running - Logging: Results logged to
/var/log/football-first-boot-verification.log
Verification Checks:
- FR-1: Remote Access (Remmina, WireGuard, IceWM installed)
- FR-2: Network Isolation (SSH disabled, firewall configured)
- FR-3: Minimal UI (IceWM configured, Remmina auto-starts)
- FR-5: Zero Remote Admin (SSH/telnet disabled)
- FR-6: System Hardening (AppArmor, auditd, AIDE installed)
- FR-7: Integrity (AIDE database and config exist)
- FR-8: Firewall (nftables/iptables installed and enabled)
- FR-9: Boot Config (GRUB and kernel installed)
- FR-10: Storage (LVM installed, root filesystem mounted)
- FR-11: System Updates (APT configured, no dev tools)
- FR-12: Logging (rsyslog, logrotate, auditd configured)
9.2 Preseed Integration (Installation)
Verification scripts are embedded in ISO and copied during installation:
Scripts Baked into ISO:
scripts/verify-system.sh→/usr/local/bin/verify-system.shconfig/disable-wifi-bt.sh→ Run during late_commandconfig/football-first-boot.service→/etc/systemd/system/
Preseed Late_Command Actions:
- Disable SSH and SSHD services (mask and disable)
- Disable Bluetooth service (mask)
- Run
disable-wifi-bt.shscript (blacklist kernel modules) - Copy
verify-system.shto/usr/local/bin/ - Copy
football-first-boot.serviceto/etc/systemd/system/ - Enable first-boot verification service
- Create autostart directory and Remmina autostart file
- Create
.xinitrcfor IceWM session - Set correct permissions on
/home/user
9.3 WiFi and Bluetooth Disabling
Both are completely disabled during installation:
Kernel Module Blacklisting:
/etc/modprobe.d/disable-wifi.conf: All WiFi drivers blacklisted/etc/modprobe.d/disable-bluetooth.conf: All Bluetooth drivers blacklisted
Service Masking:
- Bluetooth service masked
- No WiFi services exist
Package Removal:
bluez,bluez-firmwarepurged during install
9.4 Manual Verification (Optional)
Administrators can run verification manually:
# Run verification script
/usr/local/bin/verify-system.sh
# Check first-boot verification status
cat /var/lib/football/verification-status
# View verification logs
cat /var/log/football-first-boot-verification.log
9.5 ISO Verification (Pre-Deployment)
Before deployment, ISO can be tested:
# Test ISO by booting VM
./scripts/test-iso.sh
# Access VM console
screen -r football-iso-test
# Check for first-boot verification completion
tail -f /output/vm-console.log
10. Acceptance Criteria
The Football Secure Access System is considered production-ready when:
-
ISO Artifact:
- ISO boots on both UEFI and BIOS systems
- ISO contains embedded preseed configuration
- ISO is ~350-400MB in size
-
Installation:
- User can install system with < 10 minutes of interaction
- Installation requires only username, password, root password, disk selection
- All other steps are automated via preseed
-
Security:
- SSH is disabled
- Firewall blocks all unauthorized traffic
- WireGuard tunnel is only network path
- AppArmor is enforcing
- System passes CIS Debian 13 Benchmark tests
-
Functionality:
- User can login to IceWM desktop
- Remmina launches automatically
- User can connect to PAW via RDP
- Remote desktop performance is acceptable
-
Compliance:
- System meets all functional requirements
- System passes all automated tests
- System is auditable by external security teams
10. Revision History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | 2025-01-20 | Initial functional requirements specification |
Appendix A: Glossary
- PAW: Privileged Access Workstation - High-security workstation with administrative access to infrastructure
- VPN: Virtual Private Network - Encrypted network tunnel for secure remote access
- RDP: Remote Desktop Protocol - Protocol for remote desktop access
- UEFI: Unified Extensible Firmware Interface - Modern firmware interface
- BIOS: Basic Input/Output System - Legacy firmware interface
- CIS: Center for Internet Security - Organization providing security benchmarks
- AIDE: Advanced Intrusion Detection Environment - File integrity monitoring tool
- AppArmor: Linux Mandatory Access Control system
- WireGuard: Modern, high-performance VPN protocol
- Preseed: Debian installer automation mechanism
Appendix B: Related Documents
docs/BUILD-DOCUMENTATION.md- Build system documentationdocs/SECURITY-BASELINES.md- Security hardening guidedocs/COMPLIANCE.md- Compliance requirementsAGENTS.md- Project overview and statusREADME.md- Quick start guide