Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
8.0 KiB
Table of Contents
- 1. CISS.debian.live.builder
- 2. Repository Structure
- 3.1. Top-Level Layout
- 3.2. Directory Semantics
- 3.2.1. .gitea/ — CI/CD Orchestration
- 3.2.2. config/ — Live-Build Configuration
- 3.2.3. docs/ — Documentation Corpus
- 3.2.4. lib/ — Shell Library Modules
- 3.2.5. scripts/ — Operational Helpers
- 3.2.6. var/ — Variables & Defaults
- 3.3. Key Files
- 3.4. Conventions & Build Logic
- 3.5. Cross-References (Documentation)
- 3.6. Licensing & Compliance
1. CISS.debian.live.builder
Centurion Intelligence Consulting Agency Information Security Standard
Debian Live Build Generator for hardened live environment and CISS Debian Installer
Master Version: 8.13
Build: V8.13.768.2025.12.06
2. Repository Structure
Project: Centurion Intelligence Consulting Agency Information Security Standard (CISS) — Debian Live Builder
Branch: master
Repository State: Master Version 8.13, Build V8.13.768.2025.12.06 (as of 2025-10-11)
3.1. Top-Level Layout
CISS.debian.live.builder/
├─ .archive/ # Archived artefacts or historical assets
├─ .gitea/ # Gitea CI/CD metadata (workflows, triggers, templates)
│ ├─ ISSUE_TEMPLATE/
│ ├─ properties/{json, lua}
│ ├─ TO DO/{dockerfile, render-md-to-html.yaml}
│ ├─ trigger/{t_generate_.yaml}
│ └─ workflows/{generate_.yaml, linter_char_scripts.yaml, render-.yaml}
├─ .pubkey/ # Public keys (e.g., for CI or verification)
├─ config/ # Live-build configuration (boot, hooks, includes, package lists)
│ ├─ bootloaders/{grub-efi, grub-pc, splash.png}
│ ├─ hooks/live/.chroot # Ordered chroot hooks (0000_* … 99xx_)
│ ├─ includes.binary/boot/grub/config.cfg
│ ├─ includes.chroot/{etc, preseed, root}
│ └─ package-lists/{live.list.amd64.chroot, live.list.arm64.chroot, live.list.common.chroot}
├─ docs/ # Project documentation (audits, change log, policies)
│ ├─ AUDIT_.md, BOOTPARAMS.md, CHANGELOG.md, CODING_CONVENTION.md, ...
│ ├─ SECURITY/, LICENSES/, graphviz/, screenshots/
├─ lib/ # Shell library modules used by the builder
├─ scripts/ # Helper/orchestration scripts (e.g., network, live-boot)
├─ var/ # Variable sets and early/global defaults (*.var.sh)
├─ .editorconfig
├─ .gitignore
├─ .shellcheckrc
├─ .version.properties
├─ CISS.debian.live.builder.spdx # SPDX bill of materials / license manifest
├─ LICENSE
├─ SECURITY.md
├─ README.md
├─ config.mk.sample
├─ ciss_live_builder.sh # Main entrypoint / wrapper
├─ makefile
├─ meta_sources_debug.sh
├─ LIVE_ISO_TRIXIE_0.private # CI artefact markers
├─ LIVE_ISO_TRIXIE_1.private # CI artefact markers
└─ LIVE_ISO.public # CI artefact markers
Note: The ISO marker files (
LIVE_ISO.*) are produced by CI workflows for convenient retrieval of generated images.
3.2. Directory Semantics
3.2.1. .gitea/ — CI/CD Orchestration
workflows/: Declarative Gitea Actions to lint shell scripts, render Graphviz/DNSSEC status, and generate PUBLIC/PRIVATE (TRIXIE) ISOs reproducibly.trigger/: Manual/auxiliary trigger manifests (t_generate_PUBLIC.yaml,t_generate_PRIVATE_trixie_{0,1}.yaml,t_generate_dns.yaml) to drive pipeline variants.ISSUE_TEMPLATE/: Issue and pull request templates to standardize change management.properties/andTODO/: Auxiliary config fragments (JSON/Lua) and maintenance utilities (e.g.,render-md-to-html.yaml).
3.2.2. config/ — Live-Build Configuration
bootloaders/: Boot assets for GRUB in EFI and PC modes, incl. a branded splash image.hooks/live/: Ordered*.chroothooks implementing system configuration and hardening during image creation; the numeric prefixes dictate execution (e.g.,0000_basic_chroot_setup.chroot,0810_chrony_setup.chroot,0900_ufw_setup.chroot,9930_hardening_ssh.chroot,9950_hardening_fail2ban.chroot).includes.binary/boot/grub/: Static GRUB configuration embedded in the binary image (config.cfg).includes.chroot/: Files copied into the live system’s root:etc/(APT configuration,live/,modprobe.d/, network, SSH,sysctl.d/, systemd drop-ins, banners),preseed/(installer preseeding and supporting artifacts),root/(administrator dotfiles and keys).
package-lists/: Architecture-specific and common package manifests (amd64,arm64,common) used bylive-build.
3.2.3. docs/ — Documentation Corpus
Audit reports (DNSSEC, Lynis, SSH, TLS, Haveged), BOOTPARAMS, CHANGELOG, CODING_CONVENTION, CONTRIBUTING, REFERENCES; plus SECURITY/, LICENSES/, architecture diagrams under graphviz/, and illustrative screenshots/.
3.2.4. lib/ — Shell Library Modules
Composable, single-purpose modules used by the wrapper and CI steps (argument parsing and validation, kernel/CPU mitigation checks, provider support, lb config/build scaffolding, usage/version banners, sanitization and traps, SSH/root-password hardening, ultra-hardening profile, etc.).
3.2.5. scripts/ — Operational Helpers
Ancillary scripts for DHCP supersedes, resolver bootstrapping, and live-boot verification; targeted paths such as scripts/etc/network/ and scripts/live-boot/ encapsulate deploy-time adjustments and integrity checks.
3.2.6. var/ — Variables & Defaults
Layered variable sets (early.var.sh, global.var.sh, bash.var.sh, color.var.sh) providing early-boot defaults, global tuning, and TTY/UI niceties.
3.3. Key Files
ciss_live_builder.sh— Primary entrypoint; orchestrates argument parsing, environment preparation,lb config/lb buildexecution and post-processing.makefile&config.mk.sample— Make-based convenience wrapper and a sample configuration surface.README.md,SECURITY.md,LICENSE,CISS.debian.live.builder.spdx— Project overview, security policy, licensing, and SPDX manifest for compliance.- ISO markers:
LIVE_ISO.public,LIVE_ISO_TRIXIE_{0,1}.privatereflect CI pipeline outputs.
3.4. Conventions & Build Logic
- Hook Ordering: Numeric prefixes (
0000_…→99xx_…) strictly determine execution sequencing withinconfig/hooks/live/. Early hooks establish base state (initramfs modules, checksums), mid-range hooks integrate security services (AppArmor, Chrony/NTPsec, Lynis, UFW, Fail2Ban, SSH auditing), late hooks enforce hardening and cleanup (SSH tightening, memory-dump policies, service disablement). - Binary vs. Chroot Includes: Assets under
includes.binary/affect the ISO’s bootloader stage;includes.chroot/become part of the runtime filesystem. - Architecture Scoping: Package lists are split into
*amd64*,*arm64*, and*common*to keep images minimal and deterministic. - CI/CD: Reproducible ISO builds are executed via Gitea workflows; dedicated
trigger/manifests parameterize public vs. private images and auxiliary rendering jobs (e.g., DNSSEC status, Graphviz diagrams).
3.5. Cross-References (Documentation)
- Boot Parameters: see
docs/BOOTPARAMS.md. - Audits:
docs/AUDIT_*.md(DNSSEC, Lynis, SSH, TLS, Haveged). - Coding & Contribution:
docs/CODING_CONVENTION.md,docs/CONTRIBUTING.md. - Change Log & References:
docs/CHANGELOG.md,docs/REFERENCES.md.
3.6. Licensing & Compliance
The repository is SPDX-compliant; source files carry SPDX identifiers. See CISS.debian.live.builder.spdx and LICENSE for details.
no tracking | no logging | no advertising | no profiling | no bullshit