185 Commits

Author SHA256 Message Date
6504aa874e V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m44s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-29 07:18:21 +01:00
b4f7e533e5 V8.13.294.2025.10.28
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-29 07:17:06 +01:00
4c5d917eb6 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@6983534 at 2025-10-28T19:43:03Z on f5d9be774750

Generated at : 2025-10-28T19:43:03Z
Runner Host  : f5d9be774750
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 6983534 HEAD -> master
2025-10-28 19:43:03 +00:00
69835345e7 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@b210d78 at 2025-10-28T18:49:05Z on 1e7ebd3908c0

Generated at : 2025-10-28T18:49:05Z
Runner Host  : 1e7ebd3908c0
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : b210d78 HEAD -> master
2025-10-28 18:49:06 +00:00
b210d784a7 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m51s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m57s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 19:46:59 +01:00
3fe0913dc9 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@311074c at 2025-10-28T18:17:08Z on 0f163f802e10

Generated at : 2025-10-28T18:17:08Z
Runner Host  : 0f163f802e10
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 311074c HEAD -> master
2025-10-28 18:17:08 +00:00
311074c1d3 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m58s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 19:14:45 +01:00
5cdf9f93a1 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@db5e183 at 2025-10-28T17:10:09Z on 70bbf6658e20

Generated at : 2025-10-28T17:10:09Z
Runner Host  : 70bbf6658e20
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : db5e183 HEAD -> master
2025-10-28 17:10:09 +00:00
db5e1836f8 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m6s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 18:07:46 +01:00
65ee8985b8 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@7d142cb at 2025-10-28T16:42:20Z on 244ed6f4936b

Generated at : 2025-10-28T16:42:20Z
Runner Host  : 244ed6f4936b
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 7d142cb HEAD -> master
2025-10-28 16:42:20 +00:00
7d142cb058 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m37s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 17:40:38 +01:00
a7bc6ca2cb DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@4614d65 at 2025-10-28T16:16:55Z on 187a7abd8ae0

Generated at : 2025-10-28T16:16:55Z
Runner Host  : 187a7abd8ae0
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 4614d65 HEAD -> master
2025-10-28 16:16:55 +00:00
4614d65d7c V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m35s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 17:15:07 +01:00
ae8edb028b DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@270be40 at 2025-10-28T15:50:00Z on 41613a630de8

Generated at : 2025-10-28T15:50:00Z
Runner Host  : 41613a630de8
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 270be40 HEAD -> master
2025-10-28 15:50:00 +00:00
270be404be V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m51s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 16:48:05 +01:00
3b8a8bd9e2 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@99cda6c at 2025-10-28T15:24:23Z on 2d3ce8d44224

Generated at : 2025-10-28T15:24:23Z
Runner Host  : 2d3ce8d44224
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 99cda6c HEAD -> master
2025-10-28 15:24:23 +00:00
99cda6c141 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m42s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 16:22:36 +01:00
9481ac092a DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@7c23110 at 2025-10-28T14:58:57Z on e8e1057a5d12

Generated at : 2025-10-28T14:58:57Z
Runner Host  : e8e1057a5d12
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 7c23110 HEAD -> master
2025-10-28 14:58:57 +00:00
7c231100ff V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m47s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 15:56:58 +01:00
e44bef253f DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@9253722 at 2025-10-28T14:32:16Z on 594a54c6dd5c

Generated at : 2025-10-28T14:32:16Z
Runner Host  : 594a54c6dd5c
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 9253722 HEAD -> master
2025-10-28 14:32:16 +00:00
9253722a47 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m55s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 15:30:07 +01:00
5150604a54 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@b2e19ae at 2025-10-28T13:58:32Z on d5de4a6df2bb

Generated at : 2025-10-28T13:58:32Z
Runner Host  : d5de4a6df2bb
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : b2e19ae HEAD -> master
2025-10-28 13:58:32 +00:00
b2e19ae41b V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m46s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 14:56:23 +01:00
33a013c158 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@47eaa39 at 2025-10-28T13:18:18Z on 0f483759483a

Generated at : 2025-10-28T13:18:18Z
Runner Host  : 0f483759483a
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 47eaa39 HEAD -> master
2025-10-28 13:18:18 +00:00
47eaa39e3d V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m51s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 14:16:22 +01:00
8b2809f4de DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@12f366e at 2025-10-28T12:58:17Z on 152f3ccd3d61

Generated at : 2025-10-28T12:58:17Z
Runner Host  : 152f3ccd3d61
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 12f366e HEAD -> master
2025-10-28 12:58:17 +00:00
12f366e842 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m0s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 13:55:39 +01:00
075f0ad6e3 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@1540036 at 2025-10-28T12:41:31Z on 09a0e3e11144

Generated at : 2025-10-28T12:41:31Z
Runner Host  : 09a0e3e11144
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 1540036 HEAD -> master
2025-10-28 12:41:31 +00:00
1540036410 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m42s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 13:39:37 +01:00
f00c8fd690 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@fd94e0a at 2025-10-28T12:22:38Z on 4abb28d4ed77

Generated at : 2025-10-28T12:22:38Z
Runner Host  : 4abb28d4ed77
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : fd94e0a HEAD -> master
2025-10-28 12:22:38 +00:00
fd94e0aea0 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m1s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 13:20:23 +01:00
c2e5f83fbf DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@dd79251 at 2025-10-28T11:48:12Z on 93cdf3674717

Generated at : 2025-10-28T11:48:12Z
Runner Host  : 93cdf3674717
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : dd79251 HEAD -> master
2025-10-28 11:48:12 +00:00
dd79251eb7 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m37s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 12:46:23 +01:00
2d9bb3840a DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@83ce94b at 2025-10-28T11:40:10Z on d6e06e4e5e8c

Generated at : 2025-10-28T11:40:10Z
Runner Host  : d6e06e4e5e8c
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 83ce94b HEAD -> master
2025-10-28 11:40:10 +00:00
83ce94b842 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m34s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 12:38:31 +01:00
b0f7ee8c07 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@2b5fbde at 2025-10-28T11:35:51Z on 36d512e01002

Generated at : 2025-10-28T11:35:51Z
Runner Host  : 36d512e01002
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 2b5fbde HEAD -> master
2025-10-28 11:35:51 +00:00
2b5fbde43f V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m2s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 12:33:33 +01:00
7c3c3654dc DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@cbbd855 at 2025-10-28T11:03:13Z on e6cb37f09b5e

Generated at : 2025-10-28T11:03:13Z
Runner Host  : e6cb37f09b5e
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : cbbd855 HEAD -> master
2025-10-28 11:03:13 +00:00
cbbd855ca7 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m38s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 12:01:27 +01:00
d7c94122d0 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@0bf6aec at 2025-10-28T10:45:04Z on 58b7564fe416

Generated at : 2025-10-28T10:45:04Z
Runner Host  : 58b7564fe416
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 0bf6aec HEAD -> master
2025-10-28 10:45:04 +00:00
0bf6aec92f V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m43s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 11:43:15 +01:00
b88084e699 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@0f41a67 at 2025-10-28T10:42:56Z on 85536a6016de

Generated at : 2025-10-28T10:42:56Z
Runner Host  : 85536a6016de
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 0f41a67 HEAD -> master
2025-10-28 10:42:56 +00:00
0f41a67b01 V8.13.294.2025.10.28
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m3s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 11:40:33 +01:00
1e2e124352 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@94a3bc4 at 2025-10-28T09:52:38Z on 918ccd9c94ef

Generated at : 2025-10-28T09:52:38Z
Runner Host  : 918ccd9c94ef
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 94a3bc4 HEAD -> master
2025-10-28 09:52:38 +00:00
94a3bc40c3 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@2f9ecd4 at 2025-10-28T08:59:19Z on ac638dacd784

Generated at : 2025-10-28T08:59:19Z
Runner Host  : ac638dacd784
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 2f9ecd4 HEAD -> master
2025-10-28 08:59:19 +00:00
2f9ecd4dee DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@7a0fc61 at 2025-10-28T08:58:08Z on 99b86a727dee

Generated at : 2025-10-28T08:58:08Z
Runner Host  : 99b86a727dee
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 7a0fc61 HEAD -> master
2025-10-28 08:58:08 +00:00
7a0fc6127d V8.13.294.2025.10.28
Some checks failed
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m6s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m18s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Has been cancelled
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-28 09:56:37 +01:00
354e78c5a2 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@2f94fc9 at 2025-10-27T07:27:14Z on 6514b326b66c

Generated at : 2025-10-27T07:27:14Z
Runner Host  : 6514b326b66c
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 2f94fc9 HEAD -> master
2025-10-27 07:27:14 +00:00
2f94fc9e7e DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@072372f at 2025-10-27T06:24:39Z on 55f6ff02055c

Generated at : 2025-10-27T06:24:39Z
Runner Host  : 55f6ff02055c
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 072372f HEAD -> master
2025-10-27 06:24:39 +00:00
072372f69b Merge remote-tracking branch 'origin/master'
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m56s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 1h4m41s
2025-10-27 06:22:39 +00:00
b6748c4c50 V8.13.292.2025.10.27
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-27 06:22:29 +00:00
33ab1affa3 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@18f7afa at 2025-10-27T06:22:13Z on 62dce5ebb206

Generated at : 2025-10-27T06:22:13Z
Runner Host  : 62dce5ebb206
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 18f7afa HEAD -> master
2025-10-27 06:22:13 +00:00
18f7afa640 V8.13.292.2025.10.27
Some checks failed
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m6s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-27 06:20:43 +00:00
307b2a74aa DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@87d954f at 2025-10-26T20:32:44Z on afb267196bd3

Generated at : 2025-10-26T20:32:44Z
Runner Host  : afb267196bd3
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 87d954f HEAD -> master
2025-10-26 20:32:44 +00:00
87d954f0e6 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@6894fda at 2025-10-26T19:38:19Z on b805b6b74da0

Generated at : 2025-10-26T19:38:19Z
Runner Host  : b805b6b74da0
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 6894fda HEAD -> master
2025-10-26 19:38:19 +00:00
6894fda632 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@a46507e at 2025-10-26T19:36:32Z on 52e41093cf9a

Generated at : 2025-10-26T19:36:32Z
Runner Host  : 52e41093cf9a
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : a46507e HEAD -> master
2025-10-26 19:36:32 +00:00
a46507ec0b V8.13.290.2025.10.26
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m0s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 56m5s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-26 19:35:56 +00:00
e81f85f4bf DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@c4ac2fc at 2025-10-26T18:41:00Z on 91df351a1b5c

Generated at : 2025-10-26T18:41:00Z
Runner Host  : 91df351a1b5c
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : c4ac2fc HEAD -> master
2025-10-26 18:41:01 +00:00
c4ac2fc6b6 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@f7b58dd at 2025-10-26T18:40:14Z on 22a74190abe5

Generated at : 2025-10-26T18:40:14Z
Runner Host  : 22a74190abe5
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : f7b58dd HEAD -> master
2025-10-26 18:40:14 +00:00
f7b58dd58b V8.13.290.2025.10.26
Some checks failed
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m0s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m47s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Has been cancelled
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 57m38s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-26 18:39:04 +00:00
6ca1dc23a0 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@884fa4a at 2025-10-25T07:03:46Z on e7c9ecf770f3

Generated at : 2025-10-25T07:03:46Z
Runner Host  : e7c9ecf770f3
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 884fa4a HEAD -> master
2025-10-25 07:03:46 +00:00
884fa4a7c1 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@70b76b6 at 2025-10-25T06:10:24Z on 253a286cdc92

Generated at : 2025-10-25T06:10:24Z
Runner Host  : 253a286cdc92
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 70b76b6 HEAD -> master
2025-10-25 06:10:24 +00:00
70b76b63b2 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m37s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 54m55s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-25 07:08:26 +01:00
831b097308 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@011fa4b at 2025-10-25T05:16:47Z on 52e058f715a0

Generated at : 2025-10-25T05:16:47Z
Runner Host  : 52e058f715a0
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 011fa4b HEAD -> master
2025-10-25 05:16:47 +00:00
011fa4b611 V8.13.288.2025.10.24
Some checks failed
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m25s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-25 06:15:15 +01:00
597bf1eaa3 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@2a2a498 at 2025-10-24T22:08:26Z on c788149229d3

Generated at : 2025-10-24T22:08:26Z
Runner Host  : c788149229d3
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 2a2a498 HEAD -> master
2025-10-24 22:08:26 +00:00
2a2a498345 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@ea8845c at 2025-10-24T21:15:09Z on 7f6c98210f46

Generated at : 2025-10-24T21:15:09Z
Runner Host  : 7f6c98210f46
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : ea8845c HEAD -> master
2025-10-24 21:15:09 +00:00
ea8845c95b V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m2s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m30s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 22:12:52 +01:00
660ff2842d DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@87c563c at 2025-10-24T20:24:13Z on 27a5ae524566

Generated at : 2025-10-24T20:24:13Z
Runner Host  : 27a5ae524566
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 87c563c HEAD -> master
2025-10-24 20:24:13 +00:00
87c563c8d7 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@93fbf25 at 2025-10-24T19:30:44Z on 026d271a05fc

Generated at : 2025-10-24T19:30:44Z
Runner Host  : 026d271a05fc
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 93fbf25 HEAD -> master
2025-10-24 19:30:44 +00:00
93fbf258f2 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m58s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m38s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 20:28:40 +01:00
b52ae63248 V8.13.288.2025.10.24
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 20:07:06 +01:00
935fc97215 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@0f85ba6 at 2025-10-24T19:04:20Z on 1429f44f78b9

Generated at : 2025-10-24T19:04:20Z
Runner Host  : 1429f44f78b9
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 0f85ba6 HEAD -> master
2025-10-24 19:04:20 +00:00
0f85ba60b2 V8.13.288.2025.10.24
Some checks failed
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m49s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Failing after 20m4s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 20:02:05 +01:00
fcd1756cce DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@a2451de at 2025-10-24T18:31:53Z on ac751a88416b

Generated at : 2025-10-24T18:31:53Z
Runner Host  : ac751a88416b
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : a2451de HEAD -> master
2025-10-24 18:31:53 +00:00
a2451de100 V8.13.288.2025.10.24
Some checks failed
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m18s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 19:29:05 +01:00
c6eebb4eb5 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@8b4b13d at 2025-10-24T17:59:41Z on 5a28bcbbcc96

Generated at : 2025-10-24T17:59:41Z
Runner Host  : 5a28bcbbcc96
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 8b4b13d HEAD -> master
2025-10-24 17:59:41 +00:00
8b4b13dd4d V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m52s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 18:57:42 +01:00
ec8538a6ed DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@c19f663 at 2025-10-24T17:55:54Z on 0626a1cc7b8a

Generated at : 2025-10-24T17:55:54Z
Runner Host  : 0626a1cc7b8a
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : c19f663 HEAD -> master
2025-10-24 17:55:54 +00:00
c19f66319d V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m41s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 18:53:43 +01:00
7a71c4e27a DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@3e440a1 at 2025-10-24T15:10:59Z on 4097c93312af

Generated at : 2025-10-24T15:10:59Z
Runner Host  : 4097c93312af
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 3e440a1 HEAD -> master
2025-10-24 15:10:59 +00:00
3e440a1f0f V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m51s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 16:08:45 +01:00
2c35919528 DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@64499c0 at 2025-10-24T14:50:34Z on c496f6c8deff

Generated at : 2025-10-24T14:50:34Z
Runner Host  : c496f6c8deff
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : 64499c0 HEAD -> master
2025-10-24 14:50:34 +00:00
64499c02f5 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@e9dee01 at 2025-10-24T13:54:59Z on 2634a37c4985

Generated at : 2025-10-24T13:54:59Z
Runner Host  : 2634a37c4985
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : e9dee01 HEAD -> master
2025-10-24 13:55:00 +00:00
e9dee013ee DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@9b68f61 at 2025-10-24T13:04:36Z on dbe43e57077f

Generated at : 2025-10-24T13:04:36Z
Runner Host  : dbe43e57077f
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 9b68f61 HEAD -> master
2025-10-24 13:04:36 +00:00
9b68f61a43 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m16s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 14:02:14 +01:00
74e504164a DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@900e7a0 at 2025-10-24T13:01:23Z on 4cda477912c9

Generated at : 2025-10-24T13:01:23Z
Runner Host  : 4cda477912c9
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 900e7a0 HEAD -> master
2025-10-24 13:01:23 +00:00
900e7a0902 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m59s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m41s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 55m33s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 13:59:17 +01:00
73578d777e DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@02425e4 at 2025-10-24T12:57:52Z on e54d31373aa4

Generated at : 2025-10-24T12:57:52Z
Runner Host  : e54d31373aa4
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 02425e4 HEAD -> master
2025-10-24 12:57:52 +00:00
02425e4b31 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m46s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 13:55:53 +01:00
4a679a222f DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@026c6af at 2025-10-24T12:48:33Z on b99decf8dfb1

Generated at : 2025-10-24T12:48:33Z
Runner Host  : b99decf8dfb1
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : 026c6af HEAD -> master
2025-10-24 12:48:33 +00:00
026c6af8df DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@48ce7c2 at 2025-10-24T12:22:16Z on 653a8088152a

Generated at : 2025-10-24T12:22:16Z
Runner Host  : 653a8088152a
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 48ce7c2 HEAD -> master
2025-10-24 12:22:16 +00:00
48ce7c2328 V8.13.288.2025.10.24
Some checks failed
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m4s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 13:20:04 +01:00
615204c0b9 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@571a94d at 2025-10-24T12:16:10Z on 88856015a9ef

Generated at : 2025-10-24T12:16:10Z
Runner Host  : 88856015a9ef
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 571a94d HEAD -> master
2025-10-24 12:16:10 +00:00
571a94d7e8 V8.13.288.2025.10.24
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m49s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 13:14:02 +01:00
cca580000c DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@5248d0c at 2025-10-24T11:52:30Z on f9ef56bd61fe

Generated at : 2025-10-24T11:52:30Z
Runner Host  : f9ef56bd61fe
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 5248d0c HEAD -> master
2025-10-24 11:52:31 +00:00
5248d0c60c DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@a2898a9 at 2025-10-24T10:56:02Z on 71bcd59af796

Generated at : 2025-10-24T10:56:02Z
Runner Host  : 71bcd59af796
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : a2898a9 HEAD -> master
2025-10-24 10:56:03 +00:00
a2898a9be0 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@7764321 at 2025-10-24T09:59:28Z on a9bc0bef2258

Generated at : 2025-10-24T09:59:28Z
Runner Host  : a9bc0bef2258
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 7764321 HEAD -> master
2025-10-24 09:59:28 +00:00
776432110a DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@923ce8a at 2025-10-24T09:58:54Z on cc6a8941a3d5

Generated at : 2025-10-24T09:58:54Z
Runner Host  : cc6a8941a3d5
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 923ce8a HEAD -> master
2025-10-24 09:58:54 +00:00
923ce8afa8 V8.13.288.2025.10.24
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m28s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m0s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 56m36s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 55m52s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-24 10:57:02 +01:00
d33b0bff4d DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@e01edb4 at 2025-10-23T09:27:05Z on 80a2890b0d3b

Generated at : 2025-10-23T09:27:05Z
Runner Host  : 80a2890b0d3b
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : e01edb4 HEAD -> master
2025-10-23 09:27:05 +00:00
e01edb4bee DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@929415d at 2025-10-23T08:31:24Z on 9550cf8783f5

Generated at : 2025-10-23T08:31:24Z
Runner Host  : 9550cf8783f5
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 929415d HEAD -> master
2025-10-23 08:31:24 +00:00
929415d37f DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@1d63afb at 2025-10-23T07:36:43Z on 753a8373239d

Generated at : 2025-10-23T07:36:43Z
Runner Host  : 753a8373239d
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 1d63afb HEAD -> master
2025-10-23 07:36:43 +00:00
1d63afbe2e DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@e13765d at 2025-10-23T06:44:27Z on a457db7c1601

Generated at : 2025-10-23T06:44:27Z
Runner Host  : a457db7c1601
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : e13765d HEAD -> master
2025-10-23 06:44:27 +00:00
e13765da6b DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@ca212c9 at 2025-10-23T06:43:02Z on 9b746706f4f7

Generated at : 2025-10-23T06:43:02Z
Runner Host  : 9b746706f4f7
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : ca212c9 HEAD -> master
2025-10-23 06:43:02 +00:00
ca212c9a27 V8.13.280.2025.10.23
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 55s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m21s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 54m32s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 55m42s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-23 07:41:43 +01:00
ce19ab9311 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@62b295b at 2025-10-23T00:24:38Z on 67dbdf8c1211

Generated at : 2025-10-23T00:24:38Z
Runner Host  : 67dbdf8c1211
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 62b295b HEAD -> master
2025-10-23 00:24:38 +00:00
62b295ba79 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@bad373d at 2025-10-22T23:33:01Z on 41fe01f4af19

Generated at : 2025-10-22T23:33:01Z
Runner Host  : 41fe01f4af19
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : bad373d HEAD -> master
2025-10-22 23:33:01 +00:00
bad373d0ea V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m5s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 53m51s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-23 00:30:47 +01:00
fe25a4ebd6 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@ab29182 at 2025-10-22T23:13:37Z on 0ac31a213037

Generated at : 2025-10-22T23:13:37Z
Runner Host  : 0ac31a213037
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : ab29182 HEAD -> master
2025-10-22 23:13:37 +00:00
ab291828e8 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@7ef1d52 at 2025-10-22T22:38:02Z on 091337167c72

Generated at : 2025-10-22T22:38:02Z
Runner Host  : 091337167c72
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 7ef1d52 HEAD -> master
2025-10-22 22:38:02 +00:00
7ef1d52bf8 V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m45s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 23:36:12 +01:00
298dc531db DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@91e2e53 at 2025-10-22T22:18:31Z on a9d2066f881d

Generated at : 2025-10-22T22:18:31Z
Runner Host  : a9d2066f881d
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 91e2e53 HEAD -> master
2025-10-22 22:18:31 +00:00
91e2e53335 V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m49s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 57m7s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 23:16:34 +01:00
e5b336da1b DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@117054e at 2025-10-22T21:52:10Z on 134e219e0b7a

Generated at : 2025-10-22T21:52:10Z
Runner Host  : 134e219e0b7a
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 117054e HEAD -> master
2025-10-22 21:52:10 +00:00
117054ed5b V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m3s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 22:49:54 +01:00
07489889ab DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@640a4ee at 2025-10-22T20:38:02Z on ddc50655f65b

Generated at : 2025-10-22T20:38:02Z
Runner Host  : ddc50655f65b
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 640a4ee HEAD -> master
2025-10-22 20:38:02 +00:00
640a4ee1cc V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m56s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 21:35:34 +01:00
cc6a47ebc0 DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@403ff69 at 2025-10-22T10:28:54Z on 9ef87739cd8f

Generated at : 2025-10-22T10:28:54Z
Runner Host  : 9ef87739cd8f
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : 403ff69 HEAD -> master
2025-10-22 10:28:54 +00:00
403ff69cd6 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@f627bac at 2025-10-22T09:33:37Z on fbc5e45eab7a

Generated at : 2025-10-22T09:33:37Z
Runner Host  : fbc5e45eab7a
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : f627bac HEAD -> master
2025-10-22 09:33:37 +00:00
f627bac5e7 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@5b0484d at 2025-10-22T08:38:48Z on c607fa64c4c2

Generated at : 2025-10-22T08:38:48Z
Runner Host  : c607fa64c4c2
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 5b0484d HEAD -> master
2025-10-22 08:38:48 +00:00
5b0484daeb DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@e917ac5 at 2025-10-22T08:23:56Z on 77e0013c59e3

Generated at : 2025-10-22T08:23:56Z
Runner Host  : 77e0013c59e3
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : e917ac5 HEAD -> master
2025-10-22 08:23:56 +00:00
e917ac59fb V8.13.272.2025.10.22
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m2s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 09:21:38 +01:00
61599102dd DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@b390b48 at 2025-10-22T07:44:25Z on 8d1fd2efe626

Generated at : 2025-10-22T07:44:25Z
Runner Host  : 8d1fd2efe626
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : b390b48 HEAD -> master
2025-10-22 07:44:25 +00:00
b390b484ac DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@f18d76e at 2025-10-22T07:43:17Z on 3ae4ed7537db

Generated at : 2025-10-22T07:43:17Z
Runner Host  : 3ae4ed7537db
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : f18d76e HEAD -> master
2025-10-22 07:43:17 +00:00
f18d76eb2a Merge remote-tracking branch 'origin/master'
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 53s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m0s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 54m45s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 55m15s
2025-10-22 08:42:22 +01:00
347b8a774c V8.13.272.2025.10.22
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-22 08:41:51 +01:00
1a9c0041dc DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@9753e4f at 2025-10-21T23:05:44Z on 24ac2198525d

Generated at : 2025-10-21T23:05:44Z
Runner Host  : 24ac2198525d
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : 9753e4f HEAD -> master
2025-10-21 23:05:44 +00:00
9753e4f73c DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@6b351d0 at 2025-10-21T22:10:26Z on 791207c2e9e8

Generated at : 2025-10-21T22:10:26Z
Runner Host  : 791207c2e9e8
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 6b351d0 HEAD -> master
2025-10-21 22:10:26 +00:00
6b351d0675 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@3e4a00d at 2025-10-21T21:40:27Z on de9bad005c95

Generated at : 2025-10-21T21:40:27Z
Runner Host  : de9bad005c95
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 3e4a00d HEAD -> master
2025-10-21 21:40:27 +00:00
3e4a00dc55 V8.13.256.2025.10.21
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m8s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-21 22:38:12 +01:00
36bd43bde9 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@a959c70 at 2025-10-21T21:28:38Z on 684fb8237795

Generated at : 2025-10-21T21:28:38Z
Runner Host  : 684fb8237795
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : a959c70 HEAD -> master
2025-10-21 21:28:38 +00:00
a959c7070a V8.13.256.2025.10.21
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m22s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-21 22:26:09 +01:00
b59a5a6d0c DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@4a025f0 at 2025-10-21T21:14:45Z on 9c4d2ec511e6

Generated at : 2025-10-21T21:14:45Z
Runner Host  : 9c4d2ec511e6
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 4a025f0 HEAD -> master
2025-10-21 21:14:45 +00:00
4a025f0151 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@0252979 at 2025-10-21T20:19:33Z on fcfcce15ee68

Generated at : 2025-10-21T20:19:33Z
Runner Host  : fcfcce15ee68
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 0252979 HEAD -> master
2025-10-21 20:19:33 +00:00
0252979034 V8.13.256.2025.10.21
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m45s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m42s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 55m12s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-21 21:17:41 +01:00
314ba8493e DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@f8d9fa9 at 2025-10-21T20:13:32Z on bb00c2def80c

Generated at : 2025-10-21T20:13:32Z
Runner Host  : bb00c2def80c
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : f8d9fa9 HEAD -> master
2025-10-21 20:13:32 +00:00
f8d9fa9c99 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@2a866d7 at 2025-10-21T19:53:54Z on f2570d71cffe

Generated at : 2025-10-21T19:53:54Z
Runner Host  : f2570d71cffe
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 2a866d7 HEAD -> master
2025-10-21 19:53:54 +00:00
2a866d7520 V8.13.256.2025.10.21
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m0s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m4s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-21 20:52:39 +01:00
343ae97968 DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@f343e06 at 2025-10-19T14:10:13Z on 06785a8a5992

Generated at : 2025-10-19T14:10:13Z
Runner Host  : 06785a8a5992
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : f343e06 HEAD -> master
2025-10-19 14:10:13 +00:00
f343e06ce5 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@26983d4 at 2025-10-19T13:15:16Z on 849496817bfe

Generated at : 2025-10-19T13:15:16Z
Runner Host  : 849496817bfe
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 26983d4 HEAD -> master
2025-10-19 13:15:16 +00:00
26983d4f01 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@7abe899 at 2025-10-19T12:20:50Z on 68267e03acfb

Generated at : 2025-10-19T12:20:50Z
Runner Host  : 68267e03acfb
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 7abe899 HEAD -> master
2025-10-19 12:20:50 +00:00
7abe899a9a DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@debdfa0 at 2025-10-19T11:28:29Z on 015c60ffe6bf

Generated at : 2025-10-19T11:28:29Z
Runner Host  : 015c60ffe6bf
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : debdfa0 HEAD -> master
2025-10-19 11:28:29 +00:00
debdfa0b14 V8.13.224.2025.10.19
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m41s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 54m25s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 54m55s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-19 12:26:40 +01:00
5888af923b DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@c6bdf8e at 2025-10-19T10:13:18Z on 722793b4ba75

Generated at : 2025-10-19T10:13:18Z
Runner Host  : 722793b4ba75
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : c6bdf8e HEAD -> master
2025-10-19 10:13:18 +00:00
c6bdf8edda DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@f58c14c at 2025-10-19T09:19:55Z on d81749abef49

Generated at : 2025-10-19T09:19:55Z
Runner Host  : d81749abef49
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : f58c14c HEAD -> master
2025-10-19 09:19:55 +00:00
f58c14c406 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@44056d4 at 2025-10-19T08:26:13Z on e56104c1bdb8

Generated at : 2025-10-19T08:26:13Z
Runner Host  : e56104c1bdb8
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 44056d4 HEAD -> master
2025-10-19 08:26:13 +00:00
44056d4e76 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@52670ef at 2025-10-19T08:25:36Z on a3396494e4b0

Generated at : 2025-10-19T08:25:36Z
Runner Host  : a3396494e4b0
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 52670ef HEAD -> master
2025-10-19 08:25:36 +00:00
52670eff77 V8.13.224.2025.10.19
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m8s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m45s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 53m19s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-19 09:24:19 +01:00
3c663234e6 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@d652d0d at 2025-10-19T07:36:37Z on d815e570c6a8

Generated at : 2025-10-19T07:36:37Z
Runner Host  : d815e570c6a8
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : d652d0d HEAD -> master
2025-10-19 07:36:37 +00:00
d652d0dece DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@be06208 at 2025-10-19T06:47:16Z on 84f063649d06

Generated at : 2025-10-19T06:47:16Z
Runner Host  : 84f063649d06
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : be06208 HEAD -> master
2025-10-19 06:47:16 +00:00
be06208118 V8.13.224.2025.10.19
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m58s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-19 07:45:11 +01:00
887f7a0b14 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@b69b15a at 2025-10-19T06:43:28Z on 5ed31b2764ba

Generated at : 2025-10-19T06:43:28Z
Runner Host  : 5ed31b2764ba
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : b69b15a HEAD -> master
2025-10-19 06:43:28 +00:00
b69b15a786 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@1a903ae at 2025-10-19T06:42:39Z on 363294eca703

Generated at : 2025-10-19T06:42:39Z
Runner Host  : 363294eca703
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : 1a903ae HEAD -> master
2025-10-19 06:42:39 +00:00
1a903aeb8d V8.13.224.2025.10.19
Some checks failed
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m13s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m2s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-19 07:41:20 +01:00
b37a98a7aa DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@daed41d at 2025-10-19T06:21:01Z on 8ee22671acb2

Generated at : 2025-10-19T06:21:01Z
Runner Host  : 8ee22671acb2
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : daed41d HEAD -> master
2025-10-19 06:21:01 +00:00
daed41deee DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@ba12db9 at 2025-10-19T06:20:38Z on 47bf390c7655

Generated at : 2025-10-19T06:20:38Z
Runner Host  : 47bf390c7655
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : ba12db9 HEAD -> master
2025-10-19 06:20:38 +00:00
ba12db9b14 Merge remote-tracking branch 'origin/master'
Some checks failed
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m25s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m48s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Has been cancelled
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Has been cancelled
2025-10-19 07:19:11 +01:00
f7a82f9c1c V8.13.224.2025.10.19
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-19 07:18:43 +01:00
dd4756f631 DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@2351f5e at 2025-10-18T21:38:44Z on 656eb662139b

Generated at : 2025-10-18T21:38:44Z
Runner Host  : 656eb662139b
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : 2351f5e HEAD -> master
2025-10-18 21:38:44 +00:00
2351f5e93b DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@121e623 at 2025-10-18T20:44:32Z on edad4b799bc8

Generated at : 2025-10-18T20:44:32Z
Runner Host  : edad4b799bc8
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 121e623 HEAD -> master
2025-10-18 20:44:32 +00:00
121e623694 DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@1a8047c at 2025-10-18T19:49:25Z on 856f2cde5e95

Generated at : 2025-10-18T19:49:25Z
Runner Host  : 856f2cde5e95
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : 1a8047c HEAD -> master
2025-10-18 19:49:25 +00:00
1a8047c60d DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@2db18b0 at 2025-10-18T18:48:02Z on e106927be6c6

Generated at : 2025-10-18T18:48:02Z
Runner Host  : e106927be6c6
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 2db18b0 HEAD -> master
2025-10-18 18:48:02 +00:00
2db18b0a1a V8.13.192.2025.10.18
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m0s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 55m8s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 54m4s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-18 19:45:35 +01:00
cecf412388 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@d79429f at 2025-10-18T18:08:38Z on fe69da2e292f

Generated at : 2025-10-18T18:08:38Z
Runner Host  : fe69da2e292f
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : d79429f HEAD -> master
2025-10-18 18:08:38 +00:00
d79429f1ed Merge remote-tracking branch 'origin/master'
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m54s
2025-10-18 19:06:42 +01:00
cfb73eade8 V8.13.192.2025.10.18
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-18 19:06:18 +01:00
299206355c DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@d97d420 at 2025-10-18T18:05:08Z on 90c1f0e8c8d2

Generated at : 2025-10-18T18:05:08Z
Runner Host  : 90c1f0e8c8d2
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : d97d420 HEAD -> master
2025-10-18 18:05:08 +00:00
d97d4206d7 V8.13.192.2025.10.18
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m47s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-18 19:03:14 +01:00
80ca95ade9 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@3cb5969 at 2025-10-18T17:42:09Z on 551ee7d373dd

Generated at : 2025-10-18T17:42:09Z
Runner Host  : 551ee7d373dd
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 3cb5969 HEAD -> master
2025-10-18 17:42:09 +00:00
3cb59698cf V8.13.192.2025.10.18
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m45s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-18 18:40:07 +01:00
9ea13fade8 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@cbcab8c at 2025-10-18T17:05:55Z on 26d66e893d14

Generated at : 2025-10-18T17:05:55Z
Runner Host  : 26d66e893d14
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : cbcab8c HEAD -> master
2025-10-18 17:05:55 +00:00
cbcab8cbf9 DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@d909b17 at 2025-10-18T17:05:04Z on e49c39b776f2

Generated at : 2025-10-18T17:05:04Z
Runner Host  : e49c39b776f2
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : d909b17 HEAD -> master
2025-10-18 17:05:04 +00:00
d909b17de7 Merge remote-tracking branch 'origin/master'
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 1m15s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m4s
2025-10-18 18:03:46 +01:00
6bda13c9dc V8.13.192.2025.10.18
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-18 18:03:07 +01:00
258f350255 DEPLOY BOT : 💙 Auto-Generate PUBLIC LIVE ISO [skip ci]
X-CI-Metadata: master@e3ef763 at 2025-10-16T17:26:56Z on 228cef003ef5

Generated at : 2025-10-16T17:26:56Z
Runner Host  : 228cef003ef5
Workflow ID  : 💙 Generating a PUBLIC Live ISO.
Git Commit   : e3ef763 HEAD -> master
2025-10-16 17:26:56 +00:00
e3ef7631ef DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
X-CI-Metadata: master@ea1dfd7 at 2025-10-16T16:33:53Z on 823faa3203bf

Generated at : 2025-10-16T16:33:53Z
Runner Host  : 823faa3203bf
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : ea1dfd7 HEAD -> master
2025-10-16 16:33:53 +00:00
ea1dfd791b DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
X-CI-Metadata: master@d568ab6 at 2025-10-16T15:39:22Z on 1ff21c66740f

Generated at : 2025-10-16T15:39:22Z
Runner Host  : 1ff21c66740f
Workflow ID  : 🔐 Generating a Private Live ISO TRIXIE.
Git Commit   : d568ab6 HEAD -> master
2025-10-16 15:39:22 +00:00
d568ab64ac DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@29902ee at 2025-10-16T15:11:20Z on e9b6704203fa

Generated at : 2025-10-16T15:11:20Z
Runner Host  : e9b6704203fa
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : 29902ee HEAD -> master
2025-10-16 15:11:20 +00:00
29902eeb7b V8.13.144.2025.10.16
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m38s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-16 16:09:30 +01:00
30f79c7245 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@c8ed90b at 2025-10-16T14:53:15Z on f06890f9b74d

Generated at : 2025-10-16T14:53:15Z
Runner Host  : f06890f9b74d
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : c8ed90b HEAD -> master
2025-10-16 14:53:15 +00:00
c8ed90bf60 V8.13.144.2025.10.16
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m47s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-16 15:51:20 +01:00
36c89e2383 DEPLOY BOT : 🛡️ Shell Script Linting [skip ci]
X-CI-Metadata: master@baea8a6 at 2025-10-16T14:44:09Z on 2f2fd84c099f

Generated at : 2025-10-16T14:44:09Z
Runner Host  : 2f2fd84c099f
Workflow ID  : 🛡️ Shell Script Linting
Git Commit   : baea8a6 HEAD -> master
2025-10-16 14:44:09 +00:00
baea8a673a DEPLOY BOT : 🛡️ Auto-Generate DNSSEC Status [skip ci]
X-CI-Metadata: master@d98ad00 at 2025-10-16T14:43:13Z on a6c3e52d5d4e

Generated at : 2025-10-16T14:43:13Z
Runner Host  : a6c3e52d5d4e
Workflow ID  : 🛡️ Retrieve DNSSEC status of coresecret.dev.
Git Commit   : d98ad00 HEAD -> master
2025-10-16 14:43:13 +00:00
d98ad001a2 V8.13.144.2025.10.16
All checks were successful
🛡️ Retrieve DNSSEC status of coresecret.dev. / 🛡️ Retrieve DNSSEC status of coresecret.dev. (push) Successful in 59s
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m56s
🔐 Generating a Private Live ISO TRIXIE. / 🔐 Generating a Private Live ISO TRIXIE. (push) Successful in 54m32s
💙 Generating a PUBLIC Live ISO. / 💙 Generating a PUBLIC Live ISO. (push) Successful in 52m58s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
2025-10-16 15:41:33 +01:00
118 changed files with 3028 additions and 599 deletions

View File

@@ -21,7 +21,7 @@ usage() {
clear
cat << EOF
$(echo -e "\e[92mCISS.debian.live.builder\e[0m")
$(echo -e "\e[92mMaster V8.13.142.2025.10.14\e[0m")
$(echo -e "\e[92mMaster V8.13.294.2025.10.28\e[0m")
$(echo -e "\e[92mA lightweight Shell Wrapper for building a hardened Debian Live ISO Image.\e[0m")
$(echo -e "\e[97m(c) Marc S. Weidner, 2018 - 2025\e[0m")

View File

@@ -0,0 +1,455 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-08-22; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.294.2025.10.28
name: 🔐 Generating a Private Live ISO TRIXIE.
defaults:
run:
shell: bash
permissions:
contents: write
on:
push:
branches:
- master
paths:
- '.gitea/trigger/t_generate_PRIVATE_trixie_1.yaml'
jobs:
generate-private-cdlb-trixie:
name: 🔐 Generating a Private Live ISO TRIXIE.
runs-on: cdlb.trixie
container:
image: debian:trixie
steps:
- name: 🛠️ Basic Image Setup.
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get upgrade -y
apt-get install -y --no-install-recommends \
apt-utils \
bash \
ca-certificates \
curl \
git \
gnupg \
openssh-client \
openssl \
perl \
sudo \
util-linux
- name: ⚙️ Check GnuPG Version.
shell: bash
run: |
gpg --version
- name: ⚙️ Preparing SSH Setup, SSH Deploy Key, Known Hosts, .config.
shell: bash
run: |
set -euo pipefail
var_wait=$(( RANDOM % 33 ))
printf "⏳ Waiting %s seconds to desynchronize parallel workflows...\n" "${var_wait}"
sleep "${var_wait}"
rm -rf ~/.ssh && mkdir -m700 ~/.ssh
### Private Key
echo "${{ secrets.SSH_MSW_DEPLOY_CORESECRET_DEV }}" >| ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
### Scan git.coresecret.dev to fill ~/.ssh/known_hosts
ssh-keyscan -p 42842 git.coresecret.dev >| ~/.ssh/known_hosts
chmod 600 ~/.ssh/known_hosts
### Generate SSH Config for git.coresecret.dev Custom-Port
cat <<EOF >| ~/.ssh/config
Host git.coresecret.dev
HostName git.coresecret.dev
Port 42842
IdentityFile ~/.ssh/id_ed25519
StrictHostKeyChecking yes
UserKnownHostsFile ~/.ssh/known_hosts
EOF
chmod 600 ~/.ssh/config
### https://github.com/actions/checkout/issues/1843
- name: 🛠️ Using manual clone via SSH to circumvent Gitea SHA-256 object issues.
shell: bash
env:
### GITHUB_REF_NAME contains the branch name from the push event.
GITHUB_REF_NAME: ${{ github.ref_name }}
run: |
git clone --branch "${GITHUB_REF_NAME}" ssh://git@git.coresecret.dev:42842/msw/CISS.debian.live.builder.git .
git fetch --unshallow || echo "Nothing to fetch - already full clone."
- name: 🛠️ Cleaning the workspace.
shell: bash
run: |
git reset --hard
git clean -fd
- name: ⚙️ Importing the 'CI PGP DEPLOY ONLY' key.
shell: bash
run: |
set -euo pipefail
### GPG-Home relative to the Runner Workspace to avoid changing global files.
export GNUPGHOME="$(pwd)/.gnupg"
mkdir -m 700 "${GNUPGHOME}"
echo "${{ secrets.PGP_PUBKEY_CENTURION_ROOT_2025_X448 }}" >| centurion-root.PUB.asc
gpg --batch --import centurion-root.PUB.asc
echo "${{ secrets.PGP_MSW_DEPLOY_CORESECRET_DEV }}" >| ci-bot.sec.asc
gpg --batch --import ci-bot.sec.asc
### Trust the key automatically
KEY_ID=$(gpg --list-keys --with-colons | awk -F: '/^pub:/ {print $5}')
echo "trust-model always" >| "${GNUPGHOME}/gpg.conf"
- name: ⚙️ Configuring Git for signed CI/DEPLOY commits.
shell: bash
run: |
set -euo pipefail
export GNUPGHOME="$(pwd)/.gnupg"
git config user.name "Marc S. Weidner BOT"
git config user.email "msw+bot@coresecret.dev"
git config commit.gpgsign true
git config gpg.program gpg
git config gpg.format openpgp
- name: ⚙️ Preparing the build environment.
shell: bash
run: |
set -euo pipefail
mkdir -p /opt/config
mkdir -p /opt/livebuild
touch /opt/config/password.txt && chmod 0600 /opt/config/password.txt
touch /opt/config/authorized_keys && chmod 0600 /opt/config/authorized_keys
echo "${{ secrets.CISS_DLB_ROOT_PWD_1 }}" >| /opt/config/password.txt
echo "${{ secrets.CISS_DLB_ROOT_SSH_PUBKEY_1 }}" >| /opt/config/authorized_keys
- name: 🔧 Render live hook with secrets.
shell: bash
working-directory: ${{ github.workspace }}
env:
ED25519_PRIV: ${{ secrets.CISS_DLB_SSH_HOST_ED25519_KEY }}
ED25519_PUB: ${{ secrets.CISS_DLB_SSH_HOST_ED25519_KEY_PUB }}
RSA_PRIV: ${{ secrets.CISS_DLB_SSH_HOST_RSA_KEY }}
RSA_PUB: ${{ secrets.CISS_DLB_SSH_HOST_RSA_KEY_PUB }}
CISS_PRIMORDIAL: ${{ secrets.CISS_PRIMORDIAL_PRIVATE }}
CISS_PRIMORDIAL_PUB: ${{ secrets.CISS_PRIMORDIAL_PUBLIC }}
CISS_PHYS_AGE: ${{ secrets.CISS_PHYS_AGE }}
run: |
set -Ceuo pipefail
umask 077
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)"
TPL="${REPO_ROOT}/config/hooks/live/9935_hardening_ssh.chroot.tmpl"
OUT="${REPO_ROOT}/config/hooks/live/9935_hardening_ssh.chroot"
ID_OUT="${REPO_ROOT}/config/includes.chroot/root/.ssh/id_2025_ed25519_ciss_primordial"
ID_OUT_PUB="${REPO_ROOT}/config/includes.chroot/root/.ssh/id_2025_ed25519_ciss_primordial.pub"
SOPS="${REPO_ROOT}/config/hooks/live/0860_sops.chroot"
if [[ ! -f "${TPL}" ]]; then
echo "Template not found: ${TPL}"
echo "::group::Tree of config/hooks/live"
ls -la "${REPO_ROOT}/config/hooks/live" || true
echo "::endgroup::"
exit 2
fi
export ED25519_PRIV="${ED25519_PRIV//$'\r'/}"
export ED25519_PUB="${ED25519_PUB//$'\r'/}"
export RSA_PRIV="${RSA_PRIV//$'\r'/}"
export RSA_PUB="${RSA_PUB//$'\r'/}"
export CISS_PRIMORDIAL="${CISS_PRIMORDIAL//$'\r'/}"
export CISS_PRIMORDIAL_PUB="${CISS_PRIMORDIAL_PUB//$'\r'/}"
export CISS_PHYS_AGE="${CISS_PHYS_AGE//$'\r'/}"
(
cat << EOF >| "${ID_OUT}"
${CISS_PRIMORDIAL}
EOF
) && chmod 0600 "${ID_OUT}"
if [[ -f "${ID_OUT}" ]]; then
echo "Written: ${ID_OUT}"
else
echo "Error: ${ID_OUT} not written."
fi
(
cat << EOF >| "${ID_OUT_PUB}"
${CISS_PRIMORDIAL_PUB}
EOF
) && chmod 0600 "${ID_OUT_PUB}"
if [[ -f "${ID_OUT_PUB}" ]]; then
echo "Written: ${ID_OUT_PUB}"
else
echo "Error: ${ID_OUT_PUB} not written."
fi
perl -0777 -pe '
BEGIN{
$ed=$ENV{ED25519_PRIV}; $edpub=$ENV{ED25519_PUB};
$rsa=$ENV{RSA_PRIV}; $rsapub=$ENV{RSA_PUB};
}
s/\{\{\s*secrets\.CISS_DLB_SSH_HOST_ED25519_KEY\s*\}\}/$ed/g;
s/\{\{\s*secrets\.CISS_DLB_SSH_HOST_ED25519_KEY_PUB\s*\}\}/$edpub/g;
s/\{\{\s*secrets\.CISS_DLB_SSH_HOST_RSA_KEY\s*\}\}/$rsa/g;
s/\{\{\s*secrets\.CISS_DLB_SSH_HOST_RSA_KEY_PUB\s*\}\}/$rsapub/g;
' "${TPL}" > "${OUT}"
chmod 0755 "${OUT}"
#perl -0777 -i -pe '
# BEGIN {
# our $age = $ENV{CISS_PHYS_AGE} // q{};
# }
# s/\{\{\s*secrets\.CISS_PHYS_AGE\s*\}\}/$age/g;
#' -- "${SOPS}"
#chmod 0755 "${SOPS}"
echo "Hook rendered: ${OUT}"
- name: 🛠️ Starting CISS.debian.live.builder. This may take a while ...
shell: bash
working-directory: ${{ github.workspace }}
run: |
set -euo pipefail
chmod 0755 ciss_live_builder.sh
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
### Change "--autobuild=" to the specific kernel version you need: '6.16.3+deb13-amd64'.
./ciss_live_builder.sh \
--autobuild=6.16.3+deb13-amd64 \
--architecture amd64 \
--build-directory /opt/livebuild \
--cdi \
--control "${timestamp}" \
--jump-host ${{ secrets.CISS_DLB_JUMP_HOSTS_1 }} \
--root-password-file /opt/config/password.txt \
--ssh-port ${{ secrets.CISS_DLB_SSH_PORT_1 }} \
--ssh-pubkey /opt/config \
--trixie
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)"
OUT="$REPO_ROOT/config/hooks/live/9935_hardening_ssh.chroot"
rm -f "$OUT"
echo "Hook removed: $OUT"
- name: 📥 Checking Centurion Cloud for existing LIVE ISOs.
shell: bash
env:
NC_BASE: "https://cloud.e2ee.li"
SHARE_TOKEN: "${{ secrets.CENTURION_CLOUD_UL_USER_1 }}"
SHARE_PASS: "${{ secrets.CENTURION_CLOUD_UL_PASSWD_1 }}"
run: |
set -euo pipefail
SHARE_SUBDIR=""
echo "📥 Get directory listing via PROPFIND ..."
curl -s \
--user "${SHARE_TOKEN}:${SHARE_PASS}" \
-X PROPFIND \
-H "Depth: 1" \
"${NC_BASE}/public.php/webdav/${SHARE_SUBDIR}" \
-o propfind_public.xml
echo "📥 Filter .iso files from the PROPFIND response ..."
grep -oP '(?<=<d:href>)[^<]+\.iso(?=</d:href>)' propfind_public.xml >| public_iso_list.txt || true
if [[ -f public_iso_list.txt && -s public_iso_list.txt ]]; then
echo "💡 Old ISO files found and deleted :"
while IFS= read -r href; do
FILE_URL="${NC_BASE}${href}"
echo " Delete: ${FILE_URL}"
if curl -s \
--user "${SHARE_TOKEN}:${SHARE_PASS}" \
-X DELETE "${FILE_URL}"; then
echo " ✅ Successfully deleted: $(basename "${href}")"
else
echo " ❌ Error: $(basename "${href}") could not be deleted"
fi
done < public_iso_list.txt
else
echo "💡 No old ISO files found to delete."
fi
- name: 🛠️ Upload the ISO file to the Centurion Cloud (cloud.e2ee.li) via WebDAV.
shell: bash
env:
NC_BASE: "https://cloud.e2ee.li"
SHARE_TOKEN: "${{ secrets.CENTURION_CLOUD_UL_USER_1 }}"
SHARE_PASS: "${{ secrets.CENTURION_CLOUD_UL_PASSWD_1 }}"
run: |
set -euo pipefail
if [[ $(ls /opt/livebuild/*.iso 2>/dev/null | wc -l) -ne 1 ]]; then
echo "❌ There must be exactly one .iso file in the directory!"
exit 1
else
VAR_ISO_FILE_PATH=$(ls /opt/livebuild/*.iso)
VAR_ISO_FILE_NAME=$(basename "${VAR_ISO_FILE_PATH}")
echo "✅ ISO file found: ${VAR_ISO_FILE_NAME}"
fi
AUTH="${SHARE_TOKEN}:${SHARE_PASS}"
if curl --retry 2 "${NC_BASE}"/public.php/webdav/"${VAR_ISO_FILE_NAME}" \
--upload-file "${VAR_ISO_FILE_PATH}" --user "${AUTH}" > /dev/null 2>&1; then
echo "✅ New ISO successfully uploaded."
else
echo "❌ Uploading the new ISO failed."
exit 1
fi
- name: 🔑 Generating a sha512 Hash of ISO, signing with the 'CI PGP DEPLOY ONLY' key, generate a success message file.
shell: bash
run: |
if [[ $(ls /opt/livebuild/*.iso 2>/dev/null | wc -l) -ne 1 ]]; then
echo "❌ There must be exactly one .iso file in the directory!"
exit 1
else
VAR_ISO_FILE_PATH=$(ls /opt/livebuild/*.iso)
VAR_ISO_FILE_NAME=$(basename "${VAR_ISO_FILE_PATH}")
echo "✅ ISO file found: ${VAR_ISO_FILE_NAME}"
fi
VAR_ISO_FILE_SHA512="${VAR_ISO_FILE_NAME}.sha512"
touch "${VAR_ISO_FILE_SHA512}"
sha512sum "${VAR_ISO_FILE_PATH}" | awk '{print $1}' >| "${VAR_ISO_FILE_SHA512}"
SIGNATURE_FILE="${VAR_ISO_FILE_SHA512}.sign"
touch "${SIGNATURE_FILE}"
export GNUPGHOME="$(pwd)/.gnupg"
gpg --batch --yes --armor --detach-sign --output "${SIGNATURE_FILE}" "${VAR_ISO_FILE_SHA512}"
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
VAR_DATE="$(date +%F)"
PRIVATE_FILE="LIVE_ISO_TRIXIE_1.private"
touch "${PRIVATE_FILE}"
cat << EOF >| "${PRIVATE_FILE}"
# SPDX-Version: 3.0
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
CISS.debian.live.builder ISO :
"${VAR_ISO_FILE_NAME}"
CISS.debian.live.builder ISO sha512 :
$(< "${VAR_ISO_FILE_SHA512}")
CISS.debian.live.builder ISO sha512 sign :
$(< "${SIGNATURE_FILE}")
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
EOF
- name: 🚧 Stash local changes (including untracked).
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
### Temporarily store any local modifications or untracked files.
git stash push --include-untracked -m "ci-temp" || echo "✔️ Nothing to stash."
- name: 🔄 Sync with remote before commit using merge strategy.
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
export GNUPGHOME="$(pwd)/.gnupg"
echo "🔄 Fetching origin/master ..."
git fetch origin master
echo "🔁 Merging origin/master into current branch ..."
git merge --no-edit origin/master || echo "✔️ Already up to date or fast-forward."
echo "📋 Post-merge status :"
git status
git log --oneline -n 5
- name: 🛠️ Restore stashed changes.
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
### Apply previously stashed changes.
git stash pop || echo "✔️ Nothing to pop."
- name: 📦 Stage generated files.
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
PRIVATE_FILE="LIVE_ISO_TRIXIE_1.private"
git add "${PRIVATE_FILE}" || echo "✔️ Nothing to add."
- name: 🔑 Commit and sign changes with CI metadata.
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
export GNUPGHOME="$(pwd)/.gnupg"
if git diff --cached --quiet; then
echo "✔️ No staged changes to commit."
else
echo "📝 Committing changes with GPG signature ..."
### CI Metadata
TIMESTAMP_UTC="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
HOSTNAME="$(hostname -f || hostname)"
GIT_SHA="$(git rev-parse --short HEAD)"
GIT_REF="$(git symbolic-ref --short HEAD || echo detached)"
WORKFLOW_ID="${GITHUB_WORKFLOW:-render-md-to-html.yaml}"
CI_HEADER="X-CI-Metadata: ${GIT_REF}@${GIT_SHA} at ${TIMESTAMP_UTC} on ${HOSTNAME}"
COMMIT_MSG="DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
${CI_HEADER}
Generated at : ${TIMESTAMP_UTC}
Runner Host : ${HOSTNAME}
Workflow ID : ${WORKFLOW_ID}
Git Commit : ${GIT_SHA} HEAD -> ${GIT_REF}
"
echo "🔏 Commit message :"
echo "${COMMIT_MSG}"
git commit -S -m "${COMMIT_MSG}"
fi
- name: 🔁 Push back to repository.
shell: bash
env:
GIT_SSH_COMMAND: "ssh -p 42842"
run: |
set -euo pipefail
echo "📤 Pushing changes to ${GITHUB_REF_NAME} ..."
git push origin HEAD:${GITHUB_REF_NAME}
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml

View File

@@ -25,7 +25,7 @@ body:
attributes:
label: "Version"
description: "Which version are you running? Use `./ciss_live_builder.sh -v`."
placeholder: "e.g., Master V8.13.142.2025.10.14"
placeholder: "e.g., Master V8.13.294.2025.10.28"
validations:
required: true

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
FROM debian:bookworm

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 🔁 Render README.md to README.html.

View File

@@ -11,5 +11,5 @@
build:
counter: 1023
version: V8.13.142.2025.10.14
version: V8.13.294.2025.10.28
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml

View File

@@ -10,6 +10,6 @@
# SPDX-Security-Contact: security@coresecret.eu
build:
counter: 1023
version: V8.13.142.2025.10.14
counter: 1024
version: V8.13.294.2025.10.28
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml

View File

@@ -11,5 +11,5 @@
build:
counter: 1023
version: V8.13.142.2025.10.14
version: V8.13.294.2025.10.28
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml

View File

@@ -11,5 +11,5 @@
build:
counter: 1023
version: V8.13.142.2025.10.14
version: V8.13.294.2025.10.28
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 🔐 Generating a Private Live ISO TRIXIE.
@@ -40,7 +40,7 @@ jobs:
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get update -qq
apt-get upgrade -y
apt-get install -y --no-install-recommends \
apt-utils \

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 🔐 Generating a Private Live ISO TRIXIE.
@@ -40,7 +40,7 @@ jobs:
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get update -qq
apt-get upgrade -y
apt-get install -y --no-install-recommends \
apt-utils \
@@ -152,6 +152,7 @@ jobs:
RSA_PUB: ${{ secrets.CISS_DLB_SSH_HOST_RSA_KEY_PUB }}
CISS_PRIMORDIAL: ${{ secrets.CISS_PRIMORDIAL_PRIVATE }}
CISS_PRIMORDIAL_PUB: ${{ secrets.CISS_PRIMORDIAL_PUBLIC }}
CISS_PHYS_AGE: ${{ secrets.CISS_PHYS_AGE }}
run: |
set -Ceuo pipefail
umask 077
@@ -162,6 +163,7 @@ jobs:
OUT="${REPO_ROOT}/config/hooks/live/9935_hardening_ssh.chroot"
ID_OUT="${REPO_ROOT}/config/includes.chroot/root/.ssh/id_2025_ed25519_ciss_primordial"
ID_OUT_PUB="${REPO_ROOT}/config/includes.chroot/root/.ssh/id_2025_ed25519_ciss_primordial.pub"
SOPS="${REPO_ROOT}/config/hooks/live/0860_sops.chroot"
if [[ ! -f "${TPL}" ]]; then
echo "Template not found: ${TPL}"
@@ -177,6 +179,7 @@ jobs:
export RSA_PUB="${RSA_PUB//$'\r'/}"
export CISS_PRIMORDIAL="${CISS_PRIMORDIAL//$'\r'/}"
export CISS_PRIMORDIAL_PUB="${CISS_PRIMORDIAL_PUB//$'\r'/}"
export CISS_PHYS_AGE="${CISS_PHYS_AGE//$'\r'/}"
(
cat << EOF >| "${ID_OUT}"
@@ -212,6 +215,15 @@ jobs:
' "${TPL}" > "${OUT}"
chmod 0755 "${OUT}"
perl -0777 -i -pe '
BEGIN {
our $age = $ENV{CISS_PHYS_AGE} // q{};
}
s/\{\{\s*secrets\.CISS_PHYS_AGE\s*\}\}/$age/g;
' -- "${SOPS}"
chmod 0755 "${SOPS}"
echo "Hook rendered: ${OUT}"
- name: 🛠️ Starting CISS.debian.live.builder. This may take a while ...

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 💙 Generating a PUBLIC Live ISO.
@@ -40,7 +40,7 @@ jobs:
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get update -qq
apt-get upgrade -y
apt-get install -y --no-install-recommends \
apt-utils \

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
# Gitea Workflow: Shell-Script Linting
#

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 🛡️ Retrieve DNSSEC status of coresecret.dev.

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
name: 🔁 Render Graphviz Diagrams.

1
.gitignore vendored
View File

@@ -10,7 +10,6 @@
# SPDX-Security-Contact: security@coresecret.eu
.checklist/
.idea/
build/
out/
target/
*.DS_Store

View File

@@ -15,5 +15,5 @@ properties_SPDX-License-Identifier="EUPL-1.2 OR LicenseRef-CCLA-1.0"
properties_SPDX-LicenseComment="This file is part of the CISS.debian.installer.secure framework."
properties_SPDX-PackageName="CISS.debian.live.builder"
properties_SPDX-Security-Contact="security@coresecret.eu"
properties_version="V8.13.142.2025.10.14"
properties_version="V8.13.294.2025.10.28"
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf

View File

@@ -6,7 +6,7 @@ Creator: Person: Marc S. Weidner (Centurion Intelligence Consulting Agency)
Created: 2025-05-07T12:00:00Z
Package: CISS.debian.live.builder
PackageName: CISS.debian.live.builder
PackageVersion: Master V8.13.142.2025.10.14
PackageVersion: Master V8.13.294.2025.10.28
PackageSupplier: Organization: Centurion Intelligence Consulting Agency
PackageDownloadLocation: https://git.coresecret.dev/msw/CISS.debian.live.builder
PackageHomePage: https://git.coresecret.dev/msw/CISS.debian.live.builder

View File

@@ -1,5 +1,5 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-14; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-CreationInfo: 2025-10-28; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
@@ -9,8 +9,8 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
This file was automatically generated by the DEPLOY BOT on: "2025-10-14T19:37:03Z"
This file was automatically generated by the DEPLOY BOT on: "2025-10-28T18:49:03Z"
⚠️ The last linter check was NOT successful. ⚠️
The last linter check was successful.
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text

View File

@@ -1,5 +1,5 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-14; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-CreationInfo: 2025-10-24; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
@@ -9,19 +9,19 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
This file was automatically generated by the DEPLOY BOT on: "2025-10-14T22:23:27Z"
This file was automatically generated by the DEPLOY BOT on: "2025-10-24T14:50:31Z"
CISS.debian.live.builder ISO :
"ciss-debian-live-2025_10_14T21_30_07Z-amd64.hybrid.iso"
"ciss-debian-live-2025_10_24T13_56_21Z-amd64.hybrid.iso"
CISS.debian.live.builder ISO sha512 :
442037d11eb48f4adbd1a3da17cf36062ec6be816627c38fe814458840020f212c551b96d5e785c4372fa09fc11fd9529f34166530b1e1f5ce9335abadb5f771
036a1004fee05962610c6e604510bc5293aecf56ddca6cde311179f4b437f6d1d474c6deaca0189de5bea80186068ac82de17b9814fbd6ab2e9ed54e47f3de8f
CISS.debian.live.builder ISO sha512 sign :
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaO7NXwAKCRA85KY4hzOw
IT3LAP4uP8glLMDEpUntKJQTiPqSYjGUyIFoKmsgALGPJcnnoQD/fcz4Mq12mF32
jf4ETKQBqlxuQyLTPvPFhLsrBbDD0AI=
=/UNR
iHQEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaPuSNwAKCRA85KY4hzOw
IXoDAP9cfoBONoT0ckPEZS7Ny/4l3hLGW4hKcJYz/bTJLy9MkAD468vyMLOwI9yM
ipWXHva/2ghh0CqBXzuR+QfSRToABg==
=8+N2
-----END PGP SIGNATURE-----
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text

View File

@@ -1,5 +1,5 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-14; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-CreationInfo: 2025-10-28; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
@@ -9,19 +9,19 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
This file was automatically generated by the DEPLOY BOT on: "2025-10-14T20:32:28Z"
This file was automatically generated by the DEPLOY BOT on: "2025-10-28T09:52:35Z"
CISS.debian.live.builder ISO :
"ciss-debian-live-2025_10_14T19_36_59Z-amd64.hybrid.iso"
"ciss-debian-live-2025_10_28T08_58_22Z-amd64.hybrid.iso"
CISS.debian.live.builder ISO sha512 :
57559f9b9c5e50dad6a5b2023d992c26b8f4d25dd0d45ffa5cfd479ee623287e2c2eead70016267b848c5910db5ba5c4e2dfeeb12cca6f59fe455dad886c51d9
098af6c0d36b41bfe7c03d978eefa721bd39ba4ed4ba26c422fb589a635522369d0f8ef2ca48248cf6f0e11dda55ef748247822f05c6291fd0aca3763ea1abf2
CISS.debian.live.builder ISO sha512 sign :
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaO6zXAAKCRA85KY4hzOw
Idq2AQDRmgHRGnX1bn+cNV5JirecSke0IAwlAjEXOl4tFoQlewEA0s2R1A3OQjIq
fAhdl2wltVNT5+jUg6EUj3FE3kVPaQo=
=fmxg
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaQCSYwAKCRA85KY4hzOw
Ic8eAP98y67arFZCGX/ooghY/eMGbcxWnhJSgfB5uVCgJcBu5wD+ObnpugIPVv/l
OplWsbTlCPA1gMtuJHflKypwlIKQGQU=
=Aehw
-----END PGP SIGNATURE-----
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text

View File

@@ -1,5 +1,5 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-14; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-CreationInfo: 2025-10-28; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
@@ -9,19 +9,19 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
This file was automatically generated by the DEPLOY BOT on: "2025-10-14T21:28:34Z"
This file was automatically generated by the DEPLOY BOT on: "2025-10-28T19:43:00Z"
CISS.debian.live.builder ISO :
"ciss-debian-live-2025_10_14T20_33_51Z-amd64.hybrid.iso"
"ciss-debian-live-2025_10_28T18_48_33Z-amd64.hybrid.iso"
CISS.debian.live.builder ISO sha512 :
4a47a1ed0986b67774047b2bfc6fdd53753fa8f301f8376b23ccde1f5187aeffbca7fce3194a3d7b61278630291a1d2d954a289da712c064326eb6b7020c228c
54765612eabb3cf442f4ecc172aab818d3a39ac6d686741f5c92523e83b297dcd67c290427f0965bced7df466f0b46e59cd81c5123d29044c5b9d07ee13ee82a
CISS.debian.live.builder ISO sha512 sign :
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaO7AggAKCRA85KY4hzOw
IWpdAP4xCxUP4V0lOBE1u7+wEOoEmXiRC10Va4Hf2UXjH1BSVwEAsz/cMaGt+rJT
q0i+5EftPavvIst48aXQsp7QKjyNewM=
=x3/T
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaQEcxAAKCRA85KY4hzOw
ITCiAP9e2/bxJ7t8abtVImKGLnuEUJl82LYGlHi5JLEcdZMXYAEAsI93ja0t7G2m
eMb/3bex3UnB6xwpd9tceBZBK8UDbAQ=
=/fm8
-----END PGP SIGNATURE-----
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text

View File

@@ -2,7 +2,7 @@
gitea: none
include_toc: true
---
[![Static Badge](https://badges.coresecret.dev/badge/Release-V8.13.142.2025.10.14-white?style=plastic&logo=linux&logoColor=white&logoSize=auto&label=Release&color=%23FCC624)](https://git.coresecret.dev/msw/CISS.debian.live.builder)
[![Static Badge](https://badges.coresecret.dev/badge/Release-V8.13.294.2025.10.28-white?style=plastic&logo=linux&logoColor=white&logoSize=auto&label=Release&color=%23FCC624)](https://git.coresecret.dev/msw/CISS.debian.live.builder)
&nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/Licence-EUPL1.2-white?style=plastic&logo=europeanunion&logoColor=white&logoSize=auto&label=Licence&color=%23003399)](https://eupl.eu/1.2/en/) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/opensourceinitiative-Compliant-white?style=plastic&logo=opensourceinitiative&logoColor=white&logoSize=auto&label=OSI&color=%233DA639)](https://opensource.org/license/eupl-1-2) &nbsp;
@@ -11,8 +11,8 @@ include_toc: true
[![Static Badge](https://badges.coresecret.dev/badge/shellformat-passed-white?style=plastic&logo=google&logoColor=white&logoSize=auto&label=shellformat&color=%234285F4)](https://github.com/mvdan/sh) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/Shellstyle-Google-white?style=plastic&logo=google&logoColor=white&logoSize=auto&label=Shellstyle&color=%234285F4)](https://google.github.io/styleguide/shellguide.html)
&nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/Gitea-1.24.6-white?style=plastic&logo=gitea&logoColor=white&logoSize=auto&label=gitea&color=%23609926)](https://docs.gitea.com/) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/IntelliJ-2025.2.3-white?style=plastic&logo=intellijidea&logoColor=white&logoSize=auto&label=IntelliJ&color=%23000000)](https://www.jetbrains.com/store/?section=personal&billing=yearly) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/Gitea-1.24.7-white?style=plastic&logo=gitea&logoColor=white&logoSize=auto&label=gitea&color=%23609926)](https://docs.gitea.com/) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/IntelliJ-2025.2.4-white?style=plastic&logo=intellijidea&logoColor=white&logoSize=auto&label=IntelliJ&color=%23000000)](https://www.jetbrains.com/store/?section=personal&billing=yearly) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/keepassxc-2.7.10-white?style=plastic&logo=keepassxc&logoColor=white&logoSize=auto&label=KeePassXC&color=%236CAC4D)](https://keepassxc.org/) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/netcup-Netcup-white?style=plastic&logo=netcup&logoColor=white&logoSize=auto&label=powered&color=%23056473)](https://www.netcup.com/de) &nbsp;
[![Static Badge](https://badges.coresecret.dev/badge/powered-Centurion-white?style=plastic&logo=europeanunion&logoColor=white&logoSize=auto&label=powered&color=%230F243E)](https://coresecret.eu/) &nbsp;
@@ -26,7 +26,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
This shell wrapper automates the creation of a Debian Bookworm live ISO hardened according to the latest best practices in server
and service security. It integrates into your build pipeline to deliver an isolated, robust environment suitable for
@@ -151,7 +151,7 @@ This means function status of the **CISS.2025.debian.live.builder** ISO after d-
This project adheres strictly to a structured versioning scheme following the pattern x.y.z-Date.
Example: `V8.13.142.2025.10.14`
Example: `V8.13.294.2025.10.28`
`x.y.z` represents major (x), minor (y), and patch (z) version increments.
@@ -290,7 +290,7 @@ apply or revert these controls.
* **Description**: The SSH tunnel and access are secured through multiple layers of defense:
* **Firewall Restriction**: ufw allows connections only from defined jump host or VPN exit node IPs.
* **TCP Wrappers**: `/etc/hosts.allow` and `/etc/hosts.deny` enforce an `ALL: ALL` deny policy, permitting only specified hosts.
* **One-Hit Ban**: A custom Fail2Ban rule `/etc/fail2ban/jail.d/centurion-default.conf` immediately bans any host
* **One-Hit Ban**: A custom Fail2Ban rule `/etc/fail2ban/jail.d/ciss-default.conf` immediately bans any host
that touches closed ports.
* Additionally, the `fail2ban` service is hardened as well according to:
[Arch Linux Wiki Fail2ban Hardening](https://wiki.archlinux.org/title/fail2ban#Service_hardening)

View File

@@ -8,13 +8,13 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2.1. 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.142.2025.10.14** (as of 2025-10-11)
**Repository State:** Master Version **8.13**, Build **V8.13.294.2025.10.28** (as of 2025-10-11)
## 2.2. Top-Level Layout
@@ -69,7 +69,7 @@ CISS.debian.live.builder/
### 2.3.2. `config/` — Live-Build Configuration
- **`bootloaders/`**: Boot assets for GRUB in EFI and PC modes, incl. a branded splash image.
- **`hooks/live/`**: **Ordered** `*.chroot` hooks 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_fail2ban_hardening.chroot`).
- **`hooks/live/`**: **Ordered** `*.chroot` hooks 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 systems root:
- `etc/` (APT configuration, `live/`, `modprobe.d/`, network, SSH, `sysctl.d/`, systemd drop-ins, banners),

View File

@@ -132,6 +132,7 @@ declare -gx VAR_SETUP="true"
source_guard "./lib/lib_check_provider.sh"
source_guard "./lib/lib_check_stats.sh"
source_guard "./lib/lib_check_var.sh"
source_guard "./lib/lib_ciss_upgrades.sh"
source_guard "./lib/lib_clean_screen.sh"
source_guard "./lib/lib_clean_up.sh"
source_guard "./lib/lib_copy_integrity.sh"
@@ -149,6 +150,7 @@ declare -gx VAR_SETUP="true"
source_guard "./lib/lib_sanitizer.sh"
source_guard "./lib/lib_trap_on_err.sh"
source_guard "./lib/lib_trap_on_exit.sh"
source_guard "./lib/lib_update_microcode.sh"
source_guard "./lib/lib_usage.sh"
}
@@ -218,6 +220,7 @@ fi
check_hooks
hardening_ssh
ciss_upgrades
lb_config_start
if [[ "${VAR_SUITE}" == "bookworm" ]]; then
@@ -244,6 +247,7 @@ check_dhcp
cdi
provider_netcup
note_target
update_microcode
### Start the build process
set +o errtrace

10
config/hooks/.keep Normal file
View File

@@ -0,0 +1,10 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-26; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu

View File

@@ -13,8 +13,199 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
#######################################
# Generates '/etc/default/ciss-xdg-profile'
# Globals:
# None
# Arguments:
# None
# Returns:
# 0: on success
#######################################
generate_ciss_xdg_profile() {
cat << 'EOF' >> /etc/default/ciss-xdg-profile
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Default toggles for ciss-xdg-profile
# 1 = enable, 0 = disable
ENABLE_XDG_BASH_HISTORY=1
ENABLE_XDG_LESS_HISTORY=1
ENABLE_XDG_ZSH_HISTORY=1
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
EOF
chmod 0644 /etc/default/ciss-xdg-profile
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f generate_ciss_xdg_profile
#######################################
# Generates '/etc/profile.d/ciss-xdg.sh'
# Globals:
# None
# Arguments:
# None
# Returns:
# 0: on success
#######################################
generate_ciss_xdg_sh() {
cat << 'EOF' >> /etc/profile.d/ciss-xdg.sh
#!/bin/sh
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# shellcheck shell=sh
# This file is sourced by login shells via '/etc/profile'. Keep POSIX sh compatible.
### XDG variables (do not override if already set).
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}"
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-${HOME}/.cache}"
export XDG_STATE_HOME="${XDG_STATE_HOME:-${HOME}/.local/state}"
export XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS:-/etc/xdg}"
export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
### XDG_RUNTIME_DIR is provided by systemd-logind; do not set a persistent path.
# shellcheck disable=SC2312
if [ -z "${XDG_RUNTIME_DIR:-}" ] && [ -d "/run/user/$(id -u)" ]; then
# shellcheck disable=SC2155
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
fi
### Create canonical directories idempotently with 0700.
_xdg_umask="$(umask)"
umask 077
[ -d "${XDG_CONFIG_HOME}" ] || install -d -m 0700 -- "${XDG_CONFIG_HOME}"
[ -d "${XDG_DATA_HOME}" ] || install -d -m 0700 -- "${XDG_DATA_HOME}"
[ -d "${XDG_CACHE_HOME}" ] || install -d -m 0700 -- "${XDG_CACHE_HOME}"
[ -d "${XDG_STATE_HOME}" ] || install -d -m 0700 -- "${XDG_STATE_HOME}"
umask "${_xdg_umask}"
unset _xdg_umask
### Optional migrations (controlled via /'etc/default/ciss-xdg-profile').
[ -f /etc/default/ciss-xdg-profile ] && . /etc/default/ciss-xdg-profile
### Bash history -> XDG_STATE_HOME (only if running bash).
if [ "${ENABLE_XDG_BASH_HISTORY:-1}" = "1" ] && [ -n "${BASH_VERSION:-}" ]; then
[ -d "${XDG_STATE_HOME}/bash" ] || install -d -m 0700 -- "${XDG_STATE_HOME}/bash"
export HISTFILE="${XDG_STATE_HOME}/bash/history"
fi
### Less history -> XDG_STATE_HOME
if [ "${ENABLE_XDG_LESS_HISTORY:-1}" = "1" ]; then
[ -d "${XDG_STATE_HOME}/less" ] || install -d -m 0700 -- "${XDG_STATE_HOME}/less"
export LESSHISTFILE="${XDG_STATE_HOME}/less/history"
fi
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
EOF
chmod 0755 /etc/profile.d/ciss-xdg.sh
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f generate_ciss_xdg_sh
#######################################
# Generates '/root/ciss_xdg_tmp.sh'
# Globals:
# None
# Arguments:
# None
# Returns:
# 0: on success
#######################################
generate_ciss_xdg_tmp_sh() {
cat << 'EOF' >> /root/ciss_xdg_tmp.sh
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-06-17; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.installer.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.installer
# SPDX-Security-Contact: security@coresecret.eu
### XDG variables (do not override if already set).
set -a
# shellcheck disable=SC2034
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}"
# shellcheck disable=SC2034
XDG_DATA_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}"
# shellcheck disable=SC2034
XDG_CACHE_HOME="${XDG_CACHE_HOME:-${HOME}/.cache}"
# shellcheck disable=SC2034
XDG_STATE_HOME="${XDG_STATE_HOME:-${HOME}/.local/state}"
# shellcheck disable=SC2034
XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS:-/etc/xdg}"
# shellcheck disable=SC2034
XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
### Optional migrations (controlled via /etc/default/ciss-xdg-profile).
[[ -f /etc/default/ciss-xdg-profile ]] && . /etc/default/ciss-xdg-profile
### Bash history -> XDG_STATE_HOME (only if running bash).
if [[ "${ENABLE_XDG_BASH_HISTORY:-1}" = "1" ]] && [[ -n "${BASH_VERSION:-}" ]]; then
HISTFILE="${XDG_STATE_HOME}/bash/history"
fi
set +a
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
EOF
chmod 0700 /root/ciss_xdg_tmp.sh
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f generate_ciss_xdg_tmp_sh
generate_ciss_xdg_profile
generate_ciss_xdg_sh
generate_ciss_xdg_tmp_sh
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get update -qq
apt-get install -y --no-install-suggests libpam-systemd
if [[ -f /root/.architecture ]]; then
apt-get install -y --no-install-suggests amd64-microcode intel-microcode
rm -f /root/.architecture
fi
mkdir -p /root/.ciss/dlb/{backup,log}
chmod 0700 /root/.ciss/dlb/{backup,log}

View File

@@ -53,6 +53,7 @@ grep_nic_driver_modules() {
return 0
}
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y intel-microcode amd64-microcode
@@ -82,19 +83,10 @@ cat << EOF >| /etc/initramfs-tools/modules
# raid1
# sd_mod
### Load AppArmor early:
### AppArmor -------------------------------------------------------------------------------------------------------------------
apparmor
### Entropy source for '/dev/random':
jitterentropy_rng
rng_core
### Live-ISO-Stack:
loop
squashfs
overlay
### Main btrfs-Stack:
### btrfs ----------------------------------------------------------------------------------------------------------------------
btrfs
lzo
xor
@@ -102,28 +94,7 @@ xxhash
zstd
zstd_compress
### Main ext4-Stack:
ext4
jbd2
libcrc32c
### Main VFAT/ESP/FAT/UEFI-Stack:
exfat
fat
nls_ascii
nls_cp437
nls_iso8859-1
nls_iso8859-15
nls_utf8
vfat
### Device mapper, encryption & integrity:
dm_mod
dm_crypt
dm_integrity
dm_verity
### Main cryptography-Stack:
### cryptography ---------------------------------------------------------------------------------------------------------------
aes_generic
blake2b_generic
crc32c_generic
@@ -133,47 +104,99 @@ sha256_generic
sha512_generic
xts
### QEMU Bochs-compatible virtual machine support:
bochs
### cryptsetup -----------------------------------------------------------------------------------------------------------------
dm_crypt
dm_integrity
dm_mod
dm_verity
### RAID6 parity generation module:
raid6_pq
### Entropy --------------------------------------------------------------------------------------------------------------------
jitterentropy_rng
rng_core
### Combined RAID4/5/6 support module:
raid456
### ESP/FAT/UEFI ---------------------------------------------------------------------------------------------------------------
exfat
fat
nls_ascii
nls_cp437
nls_iso8859-1
nls_iso8859-15
nls_utf8
vfat
### SCSI/SATA-Stack:
sd_mod
sr_mod
sg
ahci
libahci
ata_generic
libata
scsi_mod
scsi_dh_alua
### ext4 -----------------------------------------------------------------------------------------------------------------------
ext4
jbd2
libcrc32c
### NVMe-Stack:
### Live-ISO -------------------------------------------------------------------------------------------------------------------
loop
squashfs
overlay
#### nftables ------------------------------------------------------------------------------------------------------------------
#nf_log_common # built-in
#nft_counter # built-in
#nft_icmp # built-in
#nft_icmpv6 # built-in
#nft_meta # built-in
#nft_set_hash # built-in
#nft_set_rbtree # built-in
#nft_tcp # built-in
#nft_udp # built-in
nf_conntrack
nf_nat
nf_reject_ipv4
nf_reject_ipv6
nf_tables
nfnetlink
nfnetlink_log
nft_ct
nft_limit
nft_log
nft_masq
nft_nat
nft_reject_inet
### NVMe -----------------------------------------------------------------------------------------------------------------------
nvme
nvme_core
### USB-Stack:
xhci_pci
xhci_hcd
### QEMU -----------------------------------------------------------------------------------------------------------------------
bochs
### RAID -----------------------------------------------------------------------------------------------------------------------
raid456
raid6_pq
### SCSI/SATA ------------------------------------------------------------------------------------------------------------------
ahci
ata_generic
libahci
libata
scsi_dh_alua
scsi_mod
sd_mod
sg
sr_mod
### USB ------------------------------------------------------------------------------------------------------------------------
ehci_pci
ohci_pci
uas
uhci_hcd
usb_storage
uas
xhci_hcd
xhci_pci
### Virtual-Machines-Stack:
virtio_pci
### Virtual --------------------------------------------------------------------------------------------------------------------
virtio_blk
virtio_scsi
virtio_rng
virtio_console
virtio_pci
virtio_rng
virtio_scsi
### Network Driver Host-machine:
### Network Driver Host-machine ------------------------------------------------------------------------------------------------
"${nic_driver}"
EOF
@@ -201,7 +224,7 @@ cat << 'EOF' >| /etc/initramfs-tools/update-initramfs.conf
# If set to all update-initramfs will update all initramfs
# If set to no disables any update to initramfs besides kernel upgrade
update_initramfs=yes
update_initramfs=all
#
# backup_initramfs [ yes | no ]
@@ -277,10 +300,10 @@ COMPRESS=zstd
# Defaults vary by compressor.
#
# Valid values are:
# 1-9 for gzip|bzip2|lzma|lzop
# 0-9 for lz4|xz
# 0-19 for zstd
# COMPRESSLEVEL=3
# 1...9 for gzip|bzip2|lzma|lzop
# 0...9 for lz4|xz
# 0...19 for zstd
COMPRESSLEVEL=16
#
# DEVICE: ...
@@ -332,24 +355,103 @@ cat << 'EOF' >> /etc/initramfs-tools/hooks/ciss_debian_live_builder
set -e
printf "\e[95mStarting: [0001_initramfs_modules.chroot] \n\e[0m"
PREREQ=""
prereqs() { echo "$PREREQ"; }
case $1 in
prereqs() { echo "${PREREQ}"; }
# shellcheck disable=SC2249
case "${1}" in
prereqs) prereqs; exit 0 ;;
esac
. /usr/share/initramfs-tools/hook-functions
mkdir -p "${DESTDIR}/bin" "${DESTDIR}/usr/bin" "${DESTDIR}/usr/local/bin"
# Include Bash
copy_exec /usr/bin/bash /usr/bin
### Ensure directory structure in initramfs
mkdir -p "${DESTDIR}/usr/bin"
mkdir -p "${DESTDIR}/etc/keys"
mkdir -p "${DESTDIR}/usr/local/bin"
mkdir -p "${DESTDIR}/etc/initramfs-tools/conf.d"
mkdir -p "${DESTDIR}/etc/initramfs-tools/scripts/init-premount"
mkdir -p "${DESTDIR}/usr/sbin"
# Include lsblk (block device information tool)
copy_exec /usr/bin/lsblk /usr/bin
# Include udevadm (udev management tool)
copy_exec /usr/bin/udevadm /usr/bin
### Include bash
copy_exec /usr/bin/bash /usr/bin/bash
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/bash /usr/bin/bash] \n\e[0m"
### Include blkid
copy_exec /usr/sbin/blkid /usr/sbin/blkid
printf "\e[92mSuccessfully executed: [copy_exec /usr/sbin/blkid /usr/sbin/blkid] \n\e[0m"
### Include busybox
copy_exec /usr/bin/busybox /usr/busybox
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/busybox /usr/busybox] \n\e[0m"
### Include GNU coreutils 'sort' (has -V)
copy_exec /usr/bin/sort /usr/bin/sort
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/sort /usr/bin/sort] \n\e[0m"
### Include gpgv
copy_exec /usr/bin/gpgv /usr/bin/gpgv
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/gpgv /usr/bin/gpgv] \n\e[0m"
### Include lsblk
copy_exec /usr/bin/lsblk /usr/bin/lsblk
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/lsblk /usr/bin/lsblk] \n\e[0m"
### Include mkpasswd
copy_exec /usr/bin/mkpasswd /usr/mkpasswd
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/mkpasswd /usr/mkpasswd] \n\e[0m"
copy_exec /usr/bin/mkpasswd /usr/bin/mkpasswd
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/mkpasswd /usr/bin/mkpasswd] \n\e[0m"
### Include udevadm (udev management tool)
copy_exec /usr/bin/udevadm /usr/bin/udevadm
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/udevadm /usr/bin/udevadm] \n\e[0m"
### Include sha384sum, sha512sum
copy_exec /usr/bin/sha384sum /usr/bin/sha384sum
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/sha384sum /usr/bin/sha384sum ] \n\e[0m"
copy_exec /usr/bin/sha512sum /usr/bin/sha512sum
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/sha512sum /usr/bin/sha512sum] \n\e[0m"
### Include tree
copy_exec /usr/bin/tree /usr/bin/tree
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/tree /usr/bin/tree] \n\e[0m"
### Include whois
copy_exec /usr/bin/whois /usr/bin/whois
printf "\e[92mSuccessfully executed: [copy_exec /usr/bin/whois /usr/bin/whois] \n\e[0m"
### Link busybox applets for compatibility
for dir in bin usr/bin; do
ln -sf busybox "${DESTDIR}/${dir}/cat"
ln -sf busybox "${DESTDIR}/${dir}/sleep"
done
### Install PGP Signing Keys
install -m 0444 /root/.ciss/cdlb/keys/0x8733B021_public.gpg "${DESTDIR}/etc/keys/0x8733B021_public.gpg"
printf "\e[92mSuccessfully executed: [install -m 0444 /root/.ciss/cdlb/keys/0x8733B021_public.gpg %s/etc/keys/0x8733B021_public.gpg] \n\e[0m" "${DESTDIR}"
install -m 0444 /root/.ciss/cdlb/keys/0xE62E84F8_public.gpg "${DESTDIR}/etc/keys/0xE62E84F8_public.gpg"
printf "\e[92mSuccessfully executed: [install -m 0444 /root/.ciss/cdlb/keys/0xE62E84F8_public.gpg %s/etc/keys/0xE62E84F8_public.gpg] \n\e[0m" "${DESTDIR}"
printf "\e[92mSuccessfully executed: [0001_initramfs_modules.chroot] \n\e[0m"
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
EOF
chmod 0755 /etc/initramfs-tools/hooks/ciss_debian_live_builder

View File

@@ -22,24 +22,25 @@ fi
cat << 'EOF' >| "${src}"
#!/bin/sh
# bashsupport disable=BP5007
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-CreationInfo: 2025-10-28; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
### Changed version of https://salsa.debian.org/live-team/live-boot 'components/0030-verify-checksums'
### In case of successful verification of the offered checksums, proceed with booting, else panic.
### Inside 0002_verify_checksums.chroot ###
### Modified Version of the original file:
### https://salsa.debian.org/live-team/live-boot 'components/0030-verify-checksums'
### In case of successful verification of one of the offered checksums, proceed with booting, else panic.
#######################################
# Live build ISO with the modified checksum verification script for continuing the boot process.
# Modified checksum-verification script for continuing the boot process.
# Globals:
# LIVE_BOOT_CMDLINE
# LIVE_VERIFY_CHECKSUMS
@@ -52,30 +53,40 @@ cat << 'EOF' >| "${src}"
# _RETURN
# _TTY
# Arguments:
# $1: ${_PARAMETER}
# 1: ${_PARAMETER}
# Returns:
# 0 : Successful Verification
#######################################
Verify_checksums() {
for _PARAMETER in ${LIVE_BOOT_CMDLINE}; do
case "${_PARAMETER}" in
live-boot.verify-checksums=* | verify-checksums=*)
LIVE_VERIFY_CHECKSUMS="true"
LIVE_VERIFY_CHECKSUMS_DIGESTS="${_PARAMETER#*verify-checksums=}"
;;
live-boot.verify-checksums | verify-checksums)
LIVE_VERIFY_CHECKSUMS="true"
;;
esac
done
case "${LIVE_VERIFY_CHECKSUMS}" in
true) ;;
true)
:
;;
*)
return 0
;;
esac
_MOUNTPOINT="${1}"
@@ -84,46 +95,65 @@ Verify_checksums() {
_TTY="/dev/tty8"
log_begin_msg "Verifying checksums"
printf "\n"
# shellcheck disable=SC2164
cd "${_MOUNTPOINT}"
# shellcheck disable=SC2001
for _DIGEST in $(echo "${LIVE_VERIFY_CHECKSUMS_DIGESTS}" | sed -e 's|,| |g'); do
# shellcheck disable=SC2060
_CHECKSUMS="$(echo "${_DIGEST}" | tr [a-z] [A-Z])SUMS ${_DIGEST}sum.txt"
for _CHECKSUM in ${_CHECKSUMS}; do
# shellcheck disable=SC2292
if [ -e "${_CHECKSUM}" ]; then
echo "Found ${_CHECKSUM}..." > "${_TTY}"
#echo "Found ${_CHECKSUM}..." > "${_TTY}"
printf "Found %s...\n" "${_CHECKSUM}"
if [ -e "/bin/${_DIGEST}sum" ]; then
echo "Checking ${_CHECKSUM}..." > "${_TTY}"
#echo "Checking ${_CHECKSUM}..." > "${_TTY}"
printf "Checking %s...\n" "${_CHECKSUM}"
# Verify checksums
# shellcheck disable=SC2312
grep -v '^#' "${_CHECKSUM}" | /bin/"${_DIGEST}"sum -c > "${_TTY}"
_RETURN="${?}"
# Stop after the first verification
# break 2
else
echo "Not found /bin/${_DIGEST}sum..." > "${_TTY}"
#echo "Not found /bin/${_DIGEST}sum..." > "${_TTY}"
printf "Not found /bin/%ssum....\n" "${_DIGEST}"
fi
fi
done
done
log_end_msg
case "${_RETURN}" in
0)
log_success_msg "Verification sha512 sha384 sha256 successful, continuing booting in 10 seconds."
sleep 10
log_success_msg "Verification of checksums successful; continuing booting in 8 seconds."
sleep 8
return 0
;;
*)
panic "Verification failed, $(basename ${_TTY}) for more information."
panic "Verification failed, $(basename "${_TTY}") for more information."
;;
esac
}
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -0,0 +1,52 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
if [[ -f /root/.cdi ]]; then
cat << EOF >| /etc/systemd/system/cdi-starter.service
[Unit]
Description=CISS CDI post-boot starter
Documentation=https://git.coresecret.dev/msw/CISS.debian.live.builder.git
ConditionPathIsExecutable=/usr/local/sbin/9999-cdi-starter.sh
After=live-config.service systemd-user-sessions.service getty.target
After=network-online.target NetworkManager-wait-online.service systemd-networkd-wait-online.service
Wants=network-online.target
[Service]
Type=idle
ExecStart=/usr/local/sbin/9999-cdi-starter.sh
TimeoutStartSec=1min
Nice=5
IOSchedulingClass=best-effort
Environment=LANG=C.UTF-8
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
chmod 0644 /etc/systemd/system/cdi-starter.service
systemctl enable cdi-starter.service
rm -f /root/.cdi
fi
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -0,0 +1,77 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
rm -f "/etc/logrotate.conf"
cat << EOF >| "/etc/logrotate.conf"
# See "man logrotate" for details. Global options do not affect preceding include directives.
# Rotate log files daily
daily
# Keep 384 daily worth of backlogs.
rotate 90
# Hard cap: delete rotated logs older than 384 days.
maxage 90
# Do not rotate the log if it is empty (this overrides the ifempty option).
notifempty
# Create new (empty) log files after rotating old ones.
create
# Use date as a suffix of the rotated file.
dateext
# Use yesterday's instead of today's date to create the dateext extension, so that the rotated log file has a date in its name
# that is the same as the timestamps within it.
dateyesterday
# Enable compression
compress
# Use zstd instead of gzip.
compresscmd /usr/bin/zstd
# File extension for compressed logs.
compressext .zst
# Set zstd level 3 (default).
compressoptions -20
# How to decompress for 'logrotate -d' or similar.
uncompresscmd /usr/bin/unzstd
# Keep the most recent rotation uncompressed for one cycle.
delaycompress
# Delete log files using shred -u instead of unlink().
shred
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may also be configured here.
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
EOF
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,6 +13,7 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y --no-install-recommends apparmor apparmor-utils apparmor-profiles apparmor-profiles-extra

View File

@@ -21,6 +21,8 @@ XKBOPTIONS=""
BACKSPACE="guess"
EOF
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
dpkg-reconfigure -f noninteractive keyboard-configuration
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"

View File

@@ -0,0 +1,33 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y --no-install-recommends jitterentropy-rngd
cd /root
mkdir -p /etc/systemd/system/jitterentropy-rngd.service.d
cat << 'EOF' >> /etc/systemd/system/jitterentropy-rngd.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/sbin/jitterentropy-rngd --osr=2
EOF
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -12,7 +12,6 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
mv /etc/hostname /root/.ciss/dlb/backup/hostname.bak
mv /etc/mailname /root/.ciss/dlb/backup/mailname.bak
@@ -28,7 +27,6 @@ localhost.local
EOF
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
# sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -12,7 +12,6 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
cd /root
if [[ -f /var/lib/dbus/machine-id ]]; then
@@ -22,7 +21,7 @@ fi
cat << 'EOF' >| /var/lib/dbus/machine-id
b08dfa6083e7567a1921a715000001fb
EOF
chmod 644 /var/lib/dbus/machine-id
chmod 0644 /var/lib/dbus/machine-id
if [[ -f /etc/machine-id ]]; then
rm /etc/machine-id
@@ -34,7 +33,6 @@ EOF
chmod 644 /etc/machine-id
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
# sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -23,8 +23,9 @@ wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | tee /etc/apt/sources.list.d/gierens.list
chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get update
apt-get update -qq
apt-get install -y eza
git clone https://github.com/eza-community/eza-themes.git

View File

@@ -16,8 +16,9 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
curl -fsSL https://packages.cisofy.com/keys/cisofy-software-public.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/trusted.gpg.d/cisofy-software-public.gpg] https://packages.cisofy.com/community/lynis/deb/ stable main" | tee /etc/apt/sources.list.d/cisofy-lynis.list
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get update
apt-get update -qq
apt-get install -y lynis
lynis show version

View File

@@ -15,6 +15,7 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
mkdir -p /var/log/chrony
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
export TZ="Etc/UTC"
@@ -50,13 +51,13 @@ log tracking measurements statistics
authselectmode require
server ntp.ripe.net iburst nts minpoll 5 maxpoll 9
# server ntp.ripe.net iburst nts minpoll 5 maxpoll 9
server ptbtime3.ptb.de iburst nts minpoll 5 maxpoll 9
server ptbtime2.ptb.de iburst nts minpoll 5 maxpoll 9
server ptbtime1.ptb.de iburst nts minpoll 5 maxpoll 9
server ntp13.metas.ch iburst nts minpoll 5 maxpoll 9
server time-c-b.nist.gov iburst nts minpoll 5 maxpoll 9
server sth1.ntp.se iburst nts minpoll 5 maxpoll 9
# server ntp13.metas.ch iburst nts minpoll 5 maxpoll 9
# server time-c-b.nist.gov iburst nts minpoll 5 maxpoll 9
# server sth1.ntp.se iburst nts minpoll 5 maxpoll 9
server ntp0.fau.de iburst nts minpoll 5 maxpoll 9
leapsectz right/UTC
@@ -110,6 +111,8 @@ if [[ -e /usr/share/zoneinfo/right/UTC ]]; then
fi
chronyd -Q -f /etc/chrony/chrony.conf 2>&1
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0

View File

@@ -20,7 +20,7 @@ cat << 'EOF' >| "${target_script}"
@reboot root /usr/local/bin/restart-ssh.sh
EOF
chmod 0644 "${target_script}"
chmod 0444 "${target_script}"
cat << 'EOF' >| /usr/local/bin/restart-ssh.sh
#!/bin/bash

View File

@@ -13,6 +13,7 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && \
apt-get install -y nodejs

View File

@@ -12,13 +12,11 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
cd /root/git
git clone https://github.com/hardenedlinux/harbian-audit.git
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
# sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -12,13 +12,11 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
cd /root/git
git clone https://github.com/jtesta/ssh-audit.git
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -12,13 +12,11 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
cd /root/git
git clone https://github.com/dnsviz/dnsviz.git
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,7 +13,8 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
export DEBIAN_FRONTEND=noninteractive
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
SOPS_VER="v3.11.0"
ARCH="$(dpkg --print-architecture)"
@@ -47,6 +48,16 @@ rm -f "/tmp/sops-${SOPS_VER}.checksums.txt"
rm -f "/tmp/sops-${SOPS_VER}.checksums.pem"
rm -f "/tmp/sops-${SOPS_VER}.checksums.sig"
umask 0077
mkdir -p /root/.config/sops/age
cat << 'EOF' >| /root/.config/sops/age/keys.txt
{{ secrets.CISS_PHYS_AGE }}
EOF
chmod 0400 /root/.config/sops/age/keys.txt
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0

View File

@@ -13,17 +13,12 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y --no-install-recommends haveged
cd /root
cat << 'EOF' >| /etc/default/haveged
# Configuration file for haveged
# Options to pass to haveged:
DAEMON_ARGS="-w 2048 -v 1"
EOF
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq && chmod +x /usr/local/bin/yq
yq --version
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"

View File

@@ -12,10 +12,9 @@
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
# sleep 1
declare -r UFW_OUT_POLICY="deny"
declare -r SSHPORT="MUST_BE_SET"
declare -r SSHPORT="SSHPORT_MUST_BE_SET"
ufw --force reset
@@ -51,6 +50,7 @@ if [[ ${UFW_OUT_POLICY,,} == "deny" ]]; then
ufw allow out 853/udp comment 'Outgoing DoQ'
fi
### Allowing ICMP IPv4 outgoing per default.
sed -i "/# ok icmp code for FORWARD/i \# ok icmp codes for OUTPUT" /etc/ufw/before.rules
sed -i "/# ok icmp code for FORWARD/i \-A ufw-before-output -p icmp --icmp-type destination-unreachable -j ACCEPT" /etc/ufw/before.rules
sed -i "/# ok icmp code for FORWARD/i \-A ufw-before-output -p icmp --icmp-type time-exceeded -j ACCEPT" /etc/ufw/before.rules
@@ -61,7 +61,6 @@ sed -i 's/^ENABLED=no/ENABLED=yes/' /etc/ufw/ufw.conf
ln -sf /lib/systemd/system/ufw.service /etc/systemd/system/multi-user.target.wants/ufw.service
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
# sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,6 +13,7 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y acct

View File

@@ -1,146 +0,0 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
cd /root
cp -u /etc/fail2ban/fail2ban.conf /root/.ciss/dlb/backup/fail2ban.conf.bak
chmod 0644 /root/.ciss/dlb/backup/fail2ban.conf.bak
### https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024305
sed -i 's/#allowipv6 = auto/allowipv6 = auto/1' /etc/fail2ban/fail2ban.conf
mv /etc/fail2ban/jail.d/defaults-debian.conf /root/.ciss/dlb/backup/defaults-debian.conf.bak
chmod 0644 /root/.ciss/dlb/backup/defaults-debian.conf.bak
cat << 'EOF' >| /etc/fail2ban/jail.d/centurion-default.conf
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-ExternalRef: GIT https://cendev.eu/marc.weidner/CISS.2025.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
[DEFAULT]
usedns = yes
# local | vpn
ignoreip = 127.0.0.0/8 ::1 MUST_BE_SET
maxretry = 8
findtime = 24h
bantime = 24h
### SSH Handling: Foreign IP (not in /etc/hosts.allow): refused to connect: immediate ban [sshd-refused]
### Jump host mistyped 1-3 times: no ban, only after four attempts [sshd]
[sshd]
enabled = true
backend = systemd
filter = sshd
mode = normal
port = MUST_BE_SET
protocol = tcp
logpath = /var/log/auth.log
maxretry = 4
findtime = 24h
bantime = 24h
[sshd-refused]
enabled = true
filter = sshd-refused
port = MUST_BE_SET
protocol = tcp
logpath = /var/log/auth.log
maxretry = 1
findtime = 24h
bantime = 24h
# ufw aggressive approach:
# Any valid client communicating with our server should be going directly to the service ports opened in ufw (ssh, 80, 443, ...).
# Any client touching other ports is treated as malicious and therefore should be blocked access to ALL ports after one attempt.
[ufw]
enabled = true
filter = ufw.aggressive
action = iptables-allports
logpath = /var/log/ufw.log
maxretry = 1
findtime = 24h
bantime = 24h
protocol = tcp,udp
EOF
cat << EOF >| /etc/fail2ban/filter.d/ufw.aggressive.conf
[Definition]
failregex = ^.*UFW BLOCK.* SRC=<HOST> .*DPT=\d+ .*
EOF
cat << EOF >| /etc/fail2ban/filter.d/sshd-refused.conf
[Definition]
failregex = ^refused connect from \S+ \(<HOST>\)
EOF
###########################################################################################
# Remarks: hardening of fail2ban systemd #
###########################################################################################
# https://wiki.archlinux.org/title/fail2ban#Service_hardening #
# The CapabilityBoundingSet parameters CAP_DAC_READ_SEARCH will allow Fail2ban full read #
# access to every directory and file. CAP_NET_ADMIN and CAP_NET_RAW allow Fail2ban to #
# operate # on any firewall that has a command-line shell interface. By using #
# ProtectSystem=strict the filesystem hierarchy will only be read-only; ReadWritePaths #
# allows Fail2ban to have write access on required paths. #
###########################################################################################
mkdir -p /etc/systemd/system/fail2ban.service.d
mkdir /var/log/fail2ban
cat << 'EOF' >| /etc/systemd/system/fail2ban.service.d/override.conf
[Service]
PrivateDevices=yes
PrivateTmp=yes
ProtectHome=read-only
ProtectSystem=strict
ReadWritePaths=-/var/run/fail2ban
ReadWritePaths=-/var/lib/fail2ban
ReadWritePaths=-/var/log/fail2ban
ReadWritePaths=-/var/spool/postfix/maildrop
ReadWritePaths=-/run/xtables.lock
CapabilityBoundingSet=CAP_AUDIT_READ CAP_DAC_READ_SEARCH CAP_NET_ADMIN CAP_NET_RAW
### Added by CISS.debian.live.builder
ProtectClock=true
ProtectHostname=true
EOF
cat << 'EOF' >> /etc/fail2ban/fail2ban.local
[Definition]
logtarget = /var/log/fail2ban/fail2ban.log
EOF
###########################################################################################
# Remarks: Logrotate must be updated either #
###########################################################################################
cp -a /etc/logrotate.d/fail2ban /root/.ciss/dlb/backup/fail2ban_logrotate.bak
sed -i 's/\/var\/log\/fail2ban.log/\/var\/log\/fail2ban\/fail2ban.log/1' /etc/logrotate.d/fail2ban
touch /var/log/fail2ban/fail2ban.log
chmod 640 /var/log/fail2ban/fail2ban.log
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -0,0 +1,241 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
cd /root
cp -u /etc/fail2ban/fail2ban.conf /root/.ciss/dlb/backup/fail2ban.conf.bak
chmod 0400 /root/.ciss/dlb/backup/fail2ban.conf.bak
### https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024305
sed -i 's/#allowipv6 = auto/allowipv6 = auto/1' /etc/fail2ban/fail2ban.conf
mv /etc/fail2ban/jail.d/defaults-debian.conf /root/.ciss/dlb/backup/defaults-debian.conf.bak
chmod 0400 /root/.ciss/dlb/backup/defaults-debian.conf.bak
cat << EOF >| /etc/fail2ban/jail.d/ciss-default.conf
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-ExternalRef: GIT https://cendev.eu/marc.weidner/CISS.2025.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
[DEFAULT]
banaction = nftables-multiport
banaction_allports = nftables-allports
dbpurgeage = 384d
# 127.0.0.1/8 - IPv4 loopback range (local host)
# ::1/128 - IPv6 loopback
# fe80::/10 - IPv6 link-local (on-link only; NDP/RA/DAD)
# ff00::/8 - IPv6 multicast (not an unicast host)
# ::/128 - IPv6 unspecified (all zeros; never a real peer)
ignoreip = 127.0.0.1/8 ::1/128 fe80::/10 ff00::/8 ::/128 IGNORE_IP_MUST_BE_SET
usedns = yes
[recidive]
enabled = true
banaction = nftables[type=custom, family=inet, table=f2b-table, chain=f2b-chain, blocktype=drop]
bantime = 8d
bantime.increment = true
bantime.factor = 1
bantime.maxtime = 128d
bantime.multipliers = 1 2 4 8 16
bantime.overalljails = true
bantime.rndtime = 877s
filter = recidive
findtime = 16d
logpath = /var/log/fail2ban/fail2ban.log*
maxretry = 3
### SSH Handling: Foreign IP (not in /etc/hosts.allow): refused to connect: immediate ban [sshd-refused]
### Jump host mistyped 1-3 times: no ban, only after four attempts [sshd]
[sshd]
enabled = true
backend = systemd
bantime = 1h
bantime.increment = true
bantime.factor = 1
bantime.maxtime = 16d
bantime.multipliers = 1 2 4 8 16 32 64 128 256 384
bantime.overalljails = true
bantime.rndtime = 877s
filter = sshd
findtime = 16m
maxretry = 4
mode = aggressive
port = PORT_MUST_BE_SET
protocol = tcp
[sshd-refused]
enabled = true
bantime = 1h
bantime.increment = true
bantime.factor = 1
bantime.maxtime = 16d
bantime.multipliers = 1 2 4 8 16 32 64 128 256 384
bantime.overalljails = true
bantime.rndtime = 877s
filter = ciss-sshd-refused
findtime = 16m
logpath = /var/log/auth.log
maxretry = 1
port = PORT_MUST_BE_SET
protocol = tcp
#
# CISS aggressive approach:
# Any valid client communicating with our server should be going directly to the service ports opened in ufw (ssh, 80, ...).
# Any client touching other ports is treated as malicious and therefore should be blocked access to ALL ports after 1 attempt.
#
[ufw]
enabled = true
banaction = nftables[type=custom, family=inet, table=f2b-table, chain=f2b-chain, blocktype=drop]
bantime = 1h
bantime.increment = true
bantime.factor = 1
bantime.maxtime = 16d
bantime.multipliers = 1 2 4 8 16 32 64 128 256 384
bantime.overalljails = true
bantime.rndtime = 877s
filter = ciss-ufw
findtime = 16m
logpath = /var/log/ufw.log
maxretry = 1
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
EOF
cat << EOF >| /etc/fail2ban/filter.d/ciss-ufw.conf
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-18; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-ExternalRef: GIT https://cendev.eu/marc.weidner/CISS.2025.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
[Definition]
# Match UFW BLOCK/REJECT with a source IP and *any* port field (SPT or DPT), protocol may be missing.
failregex = ^.*UFW (?:BLOCK|REJECT).*?\bSRC=<HOST>\b.*?(?:\bDPT=\d+\b|\bSPT=\d+\b).*$
ignoreregex =
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
EOF
cat << 'EOF' >| /etc/fail2ban/filter.d/ciss-sshd-refused.conf
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-18; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-ExternalRef: GIT https://cendev.eu/marc.weidner/CISS.2025.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
[Definition]
failregex = ^refused connect from \S+ \(<HOST>\)
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
EOF
###########################################################################################
# Remarks: hardening of fail2ban systemd #
###########################################################################################
# https://wiki.archlinux.org/title/fail2ban#Service_hardening #
# The CapabilityBoundingSet parameters CAP_DAC_READ_SEARCH will allow Fail2ban full read #
# access to every directory and file. CAP_NET_ADMIN and CAP_NET_RAW allow Fail2ban to #
# operate # on any firewall that has a command-line shell interface. By using #
# ProtectSystem=strict the filesystem hierarchy will only be read-only; ReadWritePaths #
# allows Fail2ban to have write access on required paths. #
###########################################################################################
mkdir -p /etc/systemd/system/fail2ban.service.d
mkdir -p /var/log/fail2ban
cat << 'EOF' >| /etc/systemd/system/fail2ban.service.d/override.conf
[Service]
PrivateDevices=yes
PrivateTmp=yes
ProtectHome=read-only
ProtectSystem=strict
ReadWritePaths=-/var/run/fail2ban
ReadWritePaths=-/var/lib/fail2ban
ReadWritePaths=-/var/log/fail2ban
ReadWritePaths=-/var/spool/postfix/maildrop
ReadWritePaths=-/run/xtables.lock
CapabilityBoundingSet=CAP_AUDIT_READ CAP_DAC_READ_SEARCH CAP_NET_ADMIN CAP_NET_RAW
### Added by CISS.debian.live.builder
ProtectClock=true
ProtectHostname=true
EOF
cat << 'EOF' >> /etc/fail2ban/fail2ban.local
[Definition]
logtarget = /var/log/fail2ban/fail2ban.log
[Database]
# Keep entries for at least 384 days to cover recidive findtime.
dbpurgeage = 384d
EOF
###########################################################################################
# Remarks: Logrotate must be updated either #
###########################################################################################
cp -a /etc/logrotate.d/fail2ban /root/.ciss/dlb/backup/fail2ban_logrotate.bak
cat << EOF >| /etc/logrotate.d/fail2ban
/var/log/fail2ban/fail2ban.log {
daily
rotate 384
maxage 384
notifempty
dateext
dateyesterday
compress
compresscmd /usr/bin/zstd
compressext .zst
compressoptions -20
uncompresscmd /usr/bin/unzstd
delaycompress
shred
missingok
postrotate
fail2ban-client flushlogs 1>/dev/null
endscript
# If fail2ban runs as non-root it still needs to have write access
# to logfiles.
# create 640 fail2ban adm
create 640 root adm
}
EOF
touch /var/log/fail2ban/fail2ban.log
chmod 0640 /var/log/fail2ban/fail2ban.log
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,16 +13,19 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
cd /etc
apt-get purge exim4 exim4-base exim4-config -y
apt-get purge exim4 exim4-base exim4-config -y
apt-get autoremove -y
apt-get autoclean -y
apt-get autopurge -y
apt-mark hold exim4 exim4-daemon-light exim4-base exim4-config
apt-get update
apt-get update -qq
apt-get upgrade -y
if [[ -d /etc/exim4 ]]; then

View File

@@ -13,6 +13,7 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y usbguard

View File

@@ -13,13 +13,15 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get update -qq
apt-get purge -y exim4 exim4-daemon-light exim4-base exim4-config qemu-guest-agent rmail
apt-get purge -y exim4 exim4-daemon-light exim4-base exim4-config postfix-mta-sts-resolver postfix qemu-guest-agent rmail
apt-mark hold exim4 exim4-daemon-light exim4-base exim4-config qemu-guest-agent rmail
apt-mark hold exim4 exim4-daemon-light exim4-base exim4-config postfix-mta-sts-resolver postfix qemu-guest-agent rmail
dpkg --get-selections | grep deinstall >| /tmp/deinstall.log || true

View File

@@ -13,6 +13,7 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y aide > /dev/null 2>&1

View File

@@ -25,6 +25,7 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
cd /root
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y auditd
@@ -33,22 +34,39 @@ cp -u /etc/audit/auditd.conf /root/.ciss/dlb/backup/auditd.conf.bak
cp -u /etc/audit/rules.d/audit.rules /root/.ciss/dlb/backup/rules_d_audit.rules.bak
rm -rf /etc/audit/rules.d/audit.rules
############################################################### /etc/audit/rules.d/10-base-config.rules
cat << EOF >| /etc/audit/rules.d/10-base-config.rules
############################################################### /etc/audit/rules.d/00-base-config.rules
cat << EOF >| /etc/audit/rules.d/00-base-config.rules
## First rule - delete all
-D
## Increase the buffers to survive stress events.
## Make this bigger for busy systems
-b 8192
## Make this bigger for busy systems.
-b 16384
## This determine how long to wait in burst of events
--backlog_wait_time 60000
## Rate Limit. Cap kernel->userspace message rate (0 = unlimited).
-r 200
## Set failure mode to syslog
## This determine how long to wait in burst of events. How long to wait in bursts (us).
--backlog_wait_time 1024
## Set failure mode to syslog.
-f 1
EOF
############################################################### /etc/audit/rules.d/10-ciss-noise-floor.rules
cat << EOF >| /etc/audit/rules.d/10-ciss-noise-floor.rules
## Ignore kernel/daemon noise without a loginuid (unset = 4294967295).
-a never,exit -F auid=4294967295
## Make privileged exec tracing user-initiated only (no boot-time daemons).
-a always,exit -F arch=b64 -S execve -F euid=0 -F auid>=1000 -F auid!=-1 -k exec_root
-a always,exit -F arch=b32 -S execve -F euid=0 -F auid>=1000 -F auid!=-1 -k exec_root
## (Optional, same principle for suid/sgid transitions).
-a always,exit -F arch=b64 -S execve -C uid!=euid -F auid>=1000 -F auid!=-1 -k exec_suid_sgid
-a always,exit -F arch=b32 -S execve -C uid!=euid -F auid>=1000 -F auid!=-1 -k exec_suid_sgid
EOF
############################################################### /etc/audit/rules.d/11-loginuid.rules
cat << EOF >| /etc/audit/rules.d/11-loginuid.rules
--loginuid-immutable
@@ -91,6 +109,17 @@ cat << EOF >| /etc/audit/rules.d/22-ignore-chrony.rules
-a never,exit -F arch=b32 -S adjtimex -F auid=unset -F uid=_chrony
EOF
############################################################### /etc/audit/rules.d/25-ciss-exec.rules
cat << EOF >| /etc/audit/rules.d/25-ciss-exec.rules
## Focus on privileged exec, not every user command
-a always,exit -F arch=b64 -S execve -F euid=0 -k exec_root
-a always,exit -F arch=b32 -S execve -F euid=0 -k exec_root
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/sudo -k exec_sudo
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/sudo -k exec_sudo
-a always,exit -F arch=b64 -S execve -C uid!=euid -k exec_suid_sgid
-a always,exit -F arch=b32 -S execve -C uid!=euid -k exec_suid_sgid
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-1-create-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-1-create-failed.rules
## Unsuccessful file creation (open with O_CREAT)
@@ -108,17 +137,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-1-create-failed.rules
-a always,exit -F arch=b64 -S creat -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-create
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-1-create-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-1-create-success.rules
## Successful file creation (open with O_CREAT)
-a always,exit -F arch=b32 -S openat,open_by_handle_at -F a2&0100 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
-a always,exit -F arch=b64 -S openat,open_by_handle_at -F a2&0100 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
-a always,exit -F arch=b32 -S open -F a1&0100 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
-a always,exit -F arch=b64 -S open -F a1&0100 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
-a always,exit -F arch=b32 -S creat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
-a always,exit -F arch=b64 -S creat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-create
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-2-modify-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-2-modify-failed.rules
## Unsuccessful file modifications (open for write or truncate)
@@ -136,17 +154,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-2-modify-failed.rules
-a always,exit -F arch=b64 -S truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-modification
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-2-modify-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-2-modify-success.rules
## Successful file modifications (open for write or truncate)
-a always,exit -F arch=b32 -S openat,open_by_handle_at -F a2&01003 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
-a always,exit -F arch=b64 -S openat,open_by_handle_at -F a2&01003 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
-a always,exit -F arch=b32 -S open -F a1&01003 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
-a always,exit -F arch=b64 -S open -F a1&01003 -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
-a always,exit -F arch=b32 -S truncate,ftruncate -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
-a always,exit -F arch=b64 -S truncate,ftruncate -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-modification
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-3-access-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-3-access-failed.rules
## Unsuccessful file access (any other opens) This has to go last.
@@ -156,14 +163,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-3-access-failed.rules
-a always,exit -F arch=b64 -S open,openat,openat2,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-access
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-3-access-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-3-access-success.rules
## Successful file access (any other opens) This has to go last.
## These next two are likely to result in a whole lot of events
-a always,exit -F arch=b32 -S open,openat,openat2,open_by_handle_at -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-access
-a always,exit -F arch=b64 -S open,openat,openat2,open_by_handle_at -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-access
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-4-delete-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-4-delete-failed.rules
## Unsuccessful file delete
@@ -173,13 +172,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-4-delete-failed.rules
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-delete
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-4-delete-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-4-delete-success.rules
## Successful file delete
-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-delete
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-delete
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-5-perm-change-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-5-perm-change-failed.rules
## Unsuccessful permission change
@@ -189,13 +181,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-5-perm-change-failed.rules
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-perm-change
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-5-perm-change-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-5-perm-change-success.rules
## Successful permission change
-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-perm-change
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-perm-change
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-6-owner-change-failed.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-6-owner-change-failed.rules
## Unsuccessful ownership change
@@ -205,13 +190,6 @@ cat << EOF >| /etc/audit/rules.d/30-ospp-v42-6-owner-change-failed.rules
-a always,exit -F arch=b64 -S lchown,fchown,chown,fchownat -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=unsuccessful-owner-change
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42-6-owner-change-success.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42-6-owner-change-success.rules
## Successful ownership change
-a always,exit -F arch=b32 -S lchown,fchown,chown,fchownat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-owner-change
-a always,exit -F arch=b64 -S lchown,fchown,chown,fchownat -F success=1 -F auid>=1000 -F auid!=unset -F key=successful-owner-change
EOF
############################################################### /etc/audit/rules.d/30-ospp-v42.rules
cat << EOF >| /etc/audit/rules.d/30-ospp-v42.rules
## The purpose of these rules is to meet the requirements for Operating

View File

@@ -15,6 +15,7 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
cd /root
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
apt-get install -y --no-install-recommends debsums

View File

@@ -55,7 +55,6 @@ deb-src https://deb.debian.org/debian/ bookworm-backports main contrib non-free
EOF
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
# sleep 1
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,6 +13,9 @@ set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
# shellcheck disable=SC2155
declare -r VAR_DATE="$(date +%F)"
@@ -121,6 +124,11 @@ Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
fi
apt-get update -qq
apt-get dist-upgrade -y # (= apt full-upgrade) allow installs/replacements/removals.
apt-get autoremove --purge -y # 'autopurge' == 'autoremove --purge'.
apt-get clean -y # Stronger than autoclean: removes the entire '.deb'-cache.
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0

View File

@@ -0,0 +1,66 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
### Declare Arrays, HashMaps, and Variables.
declare -ar ary_logrotate=(
"alternatives"
"apt"
"btmp"
"chrony"
"clamav-daemon"
"clamav-freshclam"
"dpkg"
"fail2ban"
"rkhunter"
"rsnapshot"
"rsyslog"
"ufw"
"unattended-upgrades"
"usbguard"
"wtmp"
)
declare var_file="" var_log=""
[[ -r /root/ciss_xdg_tmp.sh ]] && . /root/ciss_xdg_tmp.sh
export DEBIAN_FRONTEND="noninteractive"
for var_log in "${ary_logrotate[@]}"; do
var_file="/etc/logrotate.d/${var_log}"
[[ -e "${var_file}" ]] || continue
### Replace leading 'monthly'/'weekly' directives with 'daily', preserving indentation and trailing comments.
sed -E -i \
-e 's/^([[:space:]]*)(monthly|weekly)([[:space:]]*)(#.*)?$/\1daily\3\4/' \
-e 's/^([[:space:]]*)rotate([[:space:]]+[0-9]+)?([[:space:]]*)(#.*)?$/\1rotate 90\3\4/' \
"${var_file}"
done
if ! logrotate -d /etc/logrotate.conf; then
printf "\e[91m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ 'logrotate -d /etc/logrotate.conf' failed. \e[0m\n"
else
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ 'logrotate -d /etc/logrotate.conf' successful. \e[0m\n"
fi
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -0,0 +1,81 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
declare var_dm="" var_unit_dir="" var_link="/etc/systemd/system/default.target"
### Determine the canonical systemd unit dir inside chroot.
if [[ -d /lib/systemd/system ]]; then
var_unit_dir=/lib/systemd/system
elif [[ -d /usr/lib/systemd/system ]]; then
var_unit_dir=/usr/lib/systemd/system
fi
### Enforce 'default.target' -> 'multi-user.target' as a symlink.
if [[ -e "${var_link}" ]] && [[ ! -L "${var_link}" ]]; then
### A regular file here is wrong; we remove it to avoid vendor fallback to graphical.
rm -f -- "${var_link}"
fi
if [[ ! -L "${var_link}" ]]; then
ln -s "${var_unit_dir}/multi-user.target" "${var_link}"
else
### Ensure it points to multi-user.
# shellcheck disable=SC2312
if [[ "$(readlink -f "${var_link}")" != "${var_unit_dir}/multi-user.target" ]]; then
rm -f -- "${var_link}"
ln -s "${var_unit_dir}/multi-user.target" "${var_link}"
fi
fi
### Hard-block any display manager (mask via /dev/null symlink). Include common DMs, and the generic alias:
ary_dm_units=(
"display-manager.service"
"gdm.service"
"gdm3.service"
"sddm.service"
"lightdm.service"
"xdm.service"
"lxdm.service"
"slim.service"
)
for var_dm in "${ary_dm_units[@]}"; do
if [[ ! -L "/etc/systemd/system/${var_dm}" ]]; then
ln -s /dev/null "/etc/systemd/system/${var_dm}"
fi
done
rm -f /root/ciss_xdg_tmp.sh
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

10
config/hooks/normal/.keep Normal file
View File

@@ -0,0 +1,10 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-26; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu

View File

@@ -93,6 +93,7 @@ TTYPERM 0600
#
ERASECHAR 0177
KILLCHAR 025
UMASK 077
# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
# home directories.
@@ -203,7 +204,9 @@ NONEXISTENT /nonexistent
USERGROUPS_ENAB yes
#
# Added by CISS.debian.live.builder for redundance
UMASK 077
# Added by CISS.debian.live.builder for redundancy
UMASK 027
SHA_CRYPT_MIN_ROUNDS 8388608
SHA_CRYPT_MAX_ROUNDS 8388608
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
[git.coresecret.dev]:42842 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQA107AVmg1D/jnyXiqbPf38zQRl8s3c+PM1zbfpeQl
[git.coresecret.dev]:42842 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYD9ysmMWZlejUnxu0qOzeWcIYezoFLbYdo6ffGUL5kqOBAYb+5CF4bJLUpA93XFYVF+TbrcMV1yJh6JaHFL0VU5CvgAzruCeedx0c4qUV6lWcJUGNk5K0yb9n2Wosdy6F/zTOxL9KXBt/TV+cscsen2Dahvx0ctMKgNbu+vvUcWxHf9lOkbYoF/uA/nW5CVXy5XUPVUDFUhEeKXL85+6gid5AEMfYT8aRl5YDGvo1iMBmBYOljN4S7MnRe14qbAZG0GDGvF22eHbSU2pILcFIjc2Lo/S5Ox/MJpbLAqpFlLPTKgr6F7yVwfNMSNwl05ysUOZfrQKSXzCU6+lfqKYCwemLALyG/n1ernpp7/8W/2RYoz3fd+TQyfhW++rx3yUHpYCkTv9A4LRYZYGSAWKMHSBEYq3EcATQUxQi0xpwmcR+u0uC9F9eta5Bim+sBZD6F2hgPJ5xgYT8LFm880g1YadAwBoD4TAkqSvl+jYW0VA2GH9CknKHJ36gc/X4eeUHDC1Hf/E8M5RBj4D6NuHfeVRik/ahHmoCqKQUW7VU/EBsWFsngDiLEHcV71iMtWiUddWOHwoAPHIzn6p9HTeLCxTwsPMG5UDGK/S9HUozqDXxexRtqbcFa7DWuzRvZ1bcZ2VQsaafuzKCkkc4NjC7h1wssel7q9aeYPFg+1vS6Q==

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
### https://www.ssh-audit.com/
### ssh -Q cipher | cipher-auth | compression | kex | kex-gss | key | key-cert | key-plain | key-sig | mac | protocol-version | sig
@@ -28,7 +28,7 @@ LogLevel VERBOSE
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
Port MUST_BE_CHANGED
PORT_MUST_BE_CHANGED
AllowUsers root
UseDNS no
### Force a key exchange after transferring 1 GiB of data or 1 hour of session time, whichever occurs first.
@@ -46,9 +46,9 @@ StrictModes yes
LoginGraceTime 2m
MaxAuthTries 3
MaxSessions 2
### Begin randomly dropping new unauthenticated connections after the 8th attempt,
### with a 64% chance to drop each additional connection, up to a hard limit of 16.
MaxStartups 08:64:16
### Begin randomly dropping new unauthenticated connections after the 2nd attempt,
### with a 64% chance to drop each additional connection, up to a hard limit of 08.
MaxStartups 02:64:08
### Restrict each individual source IP to only 4 unauthenticated connection slot
### in the concurrent MaxStartups pool, preventing one IP from monopolizing slots.
PerSourceMaxStartups 8

View File

@@ -9,7 +9,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
# Version Master V8.13.142.2025.10.14
# Version Master V8.13.294.2025.10.28
### https://docs.kernel.org/
### https://github.com/a13xp0p0v/kernel-hardening-checker/
@@ -280,15 +280,6 @@ net.ipv4.conf.all.forwarding=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.default.accept_ra=0
###########################################################################################
# These parameters relate to secure ICMP redirects. ICMP redirects are messages that a
# router sends to a device to inform it that there is a better route for the data traffic.
# This setting prevents the system from responding to redirects that have been spoofed by
# potential attackers to redirect traffic (e.g., for man-in-the-middle attacks).
###########################################################################################
net.ipv4.conf.all.secure_redirects=1
net.ipv4.conf.default.secure_redirects=1
###########################################################################################
# This setting prevents the disclosure of TCP timestamps that can be used for system
# fingerprinting:

View File

@@ -10,7 +10,7 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
declare -gr VERSION="Master V8.13.142.2025.10.14"
declare -gr VERSION="Master V8.13.294.2025.10.28"
### VERY EARLY CHECK FOR DEBUGGING
if [[ $* == *" --debug "* ]]; then

View File

@@ -112,4 +112,4 @@ d-i preseed/late_command string sh /preseed/.ash/3_di_preseed_late_command.sh
# Please consider donating to my work at: https://coresecret.eu/spenden/
###########################################################################################
# Written by: ./preseed_hash_generator.sh Version: Master V8.13.142.2025.10.14 at: 10:18:37.9542
# Written by: ./preseed_hash_generator.sh Version: Master V8.13.294.2025.10.28 at: 10:18:37.9542

View File

@@ -14,21 +14,45 @@
### Never use 'errexit' | 'nounset' | 'pipefail' in interactive shells.
set +o errexit +o nounset +o pipefail
# shellcheck disable=SC2312
if [[ "$(id -u)" -eq 0 ]]; then
umask 0022
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
umask 0077
PATH="/usr/local/bin:/usr/bin:/bin"
fi
export PATH
trap ' "${SHELL}" /root/.ciss/clean_logout.sh ' EXIT
source /root/.ciss/alias
source /root/.ciss/f2bchk.sh
source /root/.ciss/shortcuts
source /root/.ciss/scan_libwrap
### History
touch /tmp/.bash_history
chmod 0660 /tmp/.bash_history
chown root:root /tmp/.bash_history
export HISTFILE=/tmp/.bash_history
### Preferred editor for local and remote sessions.
export EDITOR="nano"
### History-Settings
# The name of the file in which command history is saved. The default value is ~/.bash_history. If unset, the command history
# is not saved when a shell exits.
export HISTFILE="${XDG_STATE_HOME}/bash/history"
touch "${HISTFILE}"
chmod 0660 "${HISTFILE}"
chown root:root "${HISTFILE}"
export HISTSIZE=2048
export HISTFILESIZE=2048
shopt -s histappend
# Optional, cautious filters (avoids trivial leaks, but not foolproof). Caution: HISTIGNORE is coarse-grained, don't overdo it.
export HISTIGNORE='*PASS*:*pass*:*secret*:*token*:*API_KEY*'
# -'ignoreboth' Do not put duplicate lines or lines starting with space in the history.
# -'erasedups' Causes all previous lines matching the current line to be removed from the history before that line is saved.
export HISTCONTROL='ignoreboth:erasedups'
### Define colors for bash prompt
export CRED='\033[1;91m'
export CGRE='\033[1;92m'

View File

@@ -10,9 +10,6 @@
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
########################################################################################### Alpha
alias genkeyfile='haveged -n 1048576 >| /tmp/secure_keyfile_$(date +%s)'
########################################################################################### Bash
alias clear="printf '\033c'"
alias c='clear'
@@ -239,7 +236,31 @@ sysp() {
#######################################
trel() {
declare depth=${1:-3}
tree -C -h --dirsfirst -L "${depth}"
if ! [[ "${depth}" =~ ^[0-9]+$ ]]; then
echo "Error: '${depth}' is not a valid depth. Please provide a positive integer." >&2
return 2
fi
if ! command -v eza >/dev/null 2>&1; then
echo "Error: 'eza' is not installed." >&2
return 1
fi
(( $# > 0 )) && shift
eza --tree \
--level="${depth}" \
--group-directories-first \
--icons=auto \
--color=always \
--long \
--no-permissions \
--no-user \
--no-time \
"$@"
return 0
}
#######################################

View File

@@ -14,7 +14,7 @@ set -Ceuo pipefail
#######################################
# Minimal leap-second probe for Debian/chrony systems.
# - Prints kernel leap flags & TAI offset (ΔAT).
# - Prints kernel leap flags & TAI offset (delta AT).
# - Reads tzdata's leap-seconds list (authoritative TAI-UTC).
# - Shows chrony tracking summary (incl. leap status).
# - Demonstrates 23:59:60 rendering via TZ=right/UTC.
@@ -38,7 +38,7 @@ main() {
tz_tai="$(awk '{print $2}' <<<"${tz_leap_line}")"
ts_human="$(awk -F'#' '{gsub(/^[[:space:]]+/, "", $2); print $2}' <<<"${tz_leap_line}")"
printf "tzdata ΔAT (TAI-UTC): %s s [last change at: %s; NTP ts: %s]\n\n" "${tz_tai:-?}" "${ts_human:-?}" "${tz_ntp:-?}"
printf "tzdata delta AT (TAI-UTC): %s s [last change at: %s; NTP ts: %s]\n\n" "${tz_tai:-?}" "${ts_human:-?}" "${tz_ntp:-?}"
else
@@ -56,7 +56,7 @@ main() {
if [[ -n "${k_tai:-}" ]]; then
printf "Kernel-exported ΔAT [tai]: %s s\n" "${k_tai}"
printf "Kernel-exported delta AT [tai]: %s s\n" "${k_tai}"
fi
@@ -96,8 +96,8 @@ main() {
printf "\n"
printf "Hint:\n"
printf " • ΔAT (TAI-UTC) should match tzdata and kernel (chrony sets kernel TAI if leapsectz/leapseclist is used).\n"
printf " For monotonic intervals, apps must use CLOCK_MONOTONIC, not CLOCK_REALTIME.\n"
printf " - delta AT (TAI-UTC) should match tzdata and kernel (chrony sets kernel TAI if leapsectz/leapseclist is used).\n"
printf " - For monotonic intervals, apps must use CLOCK_MONOTONIC, not CLOCK_REALTIME.\n"
return 0
}

View File

@@ -41,7 +41,6 @@ declare -ga shortcuts=(
"f2bubn: f2b unban --all"
"f2bufw: f2b status ufw"
"free: free -m"
"genkeyfile: 1MiBi"
"genpasswd: PWD"
"genpasswdhash: PWD Hash"
"genstring: Random String"

View File

@@ -0,0 +1,27 @@
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-19; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
: "${XDG_CONFIG_HOME:=${HOME}/.config}"
: "${XDG_CACHE_HOME:=${HOME}/.cache}"
: "${XDG_DATA_HOME:=${HOME}/.local/share}"
: "${XDG_STATE_HOME:=${HOME}/.local/state}"
# Do NOT set XDG_RUNTIME_DIR here.
export XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_STATE_HOME
### Zsh history -> XDG_STATE_HOME (best-effort; zsh might not read /etc/profile)
if [ "${ENABLE_XDG_ZSH_HISTORY:-1}" = "1" ] && [ -n "${ZSH_VERSION:-}" ]; then
[ -d "${XDG_STATE_HOME}/zsh" ] || install -d -m 0700 -- "${XDG_STATE_HOME}/zsh"
export HISTFILE="${XDG_STATE_HOME}/zsh/history"
fi
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -8,5 +8,7 @@
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
grub-efi-amd64-signed
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -8,5 +8,7 @@
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
grub-efi-arm64-signed
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -67,11 +67,11 @@ gawk
gdisk
git
gnupg
haveged
htop
iftop
iproute2
iputils-ping
jitterentropy-rngd
jq
keyboard-configuration
keychain
@@ -83,7 +83,7 @@ libpwquality-tools
libtomcrypt-dev
libtommath-dev
libtool
linux-doc-6.12
linux-doc-6.16
linux-source
live-boot
live-config
@@ -146,7 +146,6 @@ whois
wngerman
xfsprogs
xz-utils
yq
zip
zsh

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. DNSSEC Status

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Haveged Audit on Netcup RS 2000 G11

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Lynis Audit:

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. SSH Audit by ssh-audit.com

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. TLS Audit:
````text

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Hardened Kernel Boot Parameters

View File

@@ -8,18 +8,87 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Changelog
## V8.13.294.2025.10.28
* **Added**: [lib_lb_config_write_trixie.sh](../lib/lib_lb_config_write_trixie.sh) + mksquashfs-excludes
* **Added**: [lib_ciss_upgrades.sh](../lib/lib_ciss_upgrades.sh) + modifies '/usr/lib/live/build/...' scripts
* **Added**: [lib_update_microcode.sh](../lib/lib_update_microcode.sh)
* **Added**: [binary_rootfs.sh](../scripts/usr/lib/live/build/binary_rootfs.sh) + modifies binary_rootfs script
* **Updated**: [generate_PRIVATE_trixie_1.yaml](../.gitea/workflows/generate_PRIVATE_trixie_1.yaml) + --sshfp
* **Updated**: [0001_initramfs_modules.chroot](../config/hooks/live/0001_initramfs_modules.chroot) + update_initramfs=all COMPRESSLEVEL=10
* **Updated**: [0007_update_logrotate.chroot](../config/hooks/live/0007_update_logrotate.chroot) = rotate 90; maxage 90
* **Updated**: [9999_yyyy_logrotate.chroot](../config/hooks/live/9999_yyyy_logrotate.chroot) = rotate 90
* **Updated**: [9999-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter) = unified logging
## V8.13.292.2025.10.27
* **Updated**: [alias](../config/includes.chroot/root/.ciss/alias) = modified trel()
## V8.13.290.2025.10.26
* **Updated**: [0001_initramfs_modules.chroot](../config/hooks/live/0001_initramfs_modules.chroot) + ESP/FAT/UEFI mods
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot)
* **Updated**: [9999-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter) Preparations for CISS and PhysNet primordial-workflow™.
## V8.13.288.2025.10.24
* **Added**: Preparations for CISS and PhysNet primordial-workflow™.
* **Added**: [0865_yq.chroot](../config/hooks/live/0865_yq.chroot)Preparations for CISS and PhysNet primordial-workflow™.
* **Updated**: [0001_initramfs_modules.chroot](../config/hooks/live/0001_initramfs_modules.chroot) + nftables mods
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot) + banaction = nftables-*
* **Updated**: [0900_ufw_setup.chroot](../config/hooks/live/0900_ufw_setup.chroot) changed var injection
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot) changed var injection
* **Updated**: [sshd_config](../config/includes.chroot/etc/ssh/sshd_config) changed var injection
* **Updated**: [lib_hardening_ultra.sh](../lib/lib_hardening_ultra.sh) changed var injection
* **Removed**: [live.list.common.chroot](../config/package-lists/live.list.common.chroot) - yq
## V8.13.280.2025.10.23
* **Updated**: [9996_auditd.chroot](../config/hooks/live/9996_auditd.chroot) + 10-ciss-noise-floor.rules
* **Updated**: [lib_lb_config_write_trixie.sh](../lib/lib_lb_config_write_trixie.sh) changed: audit_backlog_limit=262144
## V8.13.272.2025.10.22
* **Updated**: [0000_basic_chroot_setup.chroot](../config/hooks/live/0000_basic_chroot_setup.chroot) + amd64-microcode intel-microcode
* **Updated**: [0090_jitterentropy.chroot](../config/hooks/live/0090_jitterentropy.chroot) removed --sp800-90b
* **Updated**: [9996_auditd.chroot](../config/hooks/live/9996_auditd.chroot) unified auditd configuration, removed success rules
* **Updated**: [9998_sources_list_trixie.chroot](../config/hooks/live/9998_sources_list_trixie.chroot) + apt-get dist-upgrade -y
* **Updated**: [login.defs](../config/includes.chroot/etc/login.defs)
* **Updated**: [9999-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter)
## V8.13.256.2025.10.21
* **Updated**: [0007_update_logrotate.chroot](../config/hooks/live/0007_update_logrotate.chroot)
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot)
* **Updated**: [.zshenv](../config/includes.chroot/root/.zshenv)
## V8.13.224.2025.10.19
* **Added**: [.zshenv](../config/includes.chroot/root/.zshenv)
* **Updated**: [0090_jitterentropy.chroot](../config/hooks/live/0090_jitterentropy.chroot)
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot) updated ignoreip
* **Updated**: [9999_yyyy_logrotate.chroot](../config/hooks/live/9999_yyyy_logrotate.chroot) + rsyslog
* **Updated**: [live.list.common.chroot](../config/package-lists/live.list.common.chroot) - haveged, + jitterentropy-rngd
## V8.13.192.2025.10.18
* **Added**: [0007_update_logrotate.chroot](../config/hooks/live/0007_update_logrotate.chroot)
* **Added**: [9999_yyyy_logrotate.chroot](../config/hooks/live/9999_yyyy_logrotate.chroot)
* **Added**: [9999_zzzz.chroot](../config/hooks/live/9999_zzzz.chroot)
* **Updated**: [0000_basic_chroot_setup.chroot](../config/hooks/live/0000_basic_chroot_setup.chroot) XDG Base Directory Support
* **Updated**: [9950_hardening_fail2ban.chroot](../config/hooks/live/9950_hardening_fail2ban.chroot)
* **Updated**: [sshd_config](../config/includes.chroot/etc/ssh/sshd_config) hardened MaxStartups
* **Updated**: [alias](../config/includes.chroot/root/.ciss/alias) removed haveged alias
* **Updated**: [shortcuts](../config/includes.chroot/root/.ciss/shortcuts) removed haveged entry
* **Updated**: [.bashrc](../config/includes.chroot/root/.bashrc) added HISTIGNORE and EDITOR
## V8.13.144.2025.10.16
* **Bugfixes**: [99_local.hardened](../config/includes.chroot/etc/sysctl.d/99_local.hardened)
* **Updated**: [check_chrony.sh](../config/includes.chroot/root/.ciss/check_chrony.sh)
* **Changed**: [0090_jitterentropy.chroot](../config/hooks/live/0090_jitterentropy.chroot)
## V8.13.142.2025.10.14
* **Updated**: [9999-cdi-starter](../scripts/9999-cdi-starter)
* **Updated**: [9999-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter)
## V8.13.132.2025.10.11
* **Added**: [REPOSITORY.md](../REPOSITORY.md)
## V8.13.128.2025.10.10
* **Added**: Packages ``age``, ``cosign``
* **Added**: Repository https://github.com/getsops/sops.git
* **Added**: [0040_ssh_config_setup.chroot](../config/hooks/live/0040_ssh_config_setup.chroot)
@@ -49,7 +118,7 @@ include_toc: true
* **Added**: [lib_note_target.sh](../lib/lib_note_target.sh)
* **Updated**: [lib_trap_on_err.sh](../lib/lib_trap_on_err.sh)
* **Updated**: [lib_trap_on_exit.sh](../lib/lib_trap_on_exit.sh)
* **Updated**: [9999-cdi-starter](../scripts/9999-cdi-starter)
* **Updated**: [9999-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter)
* **Updated**: [9980_usb_guard.chroot](../config/hooks/live/9980_usb_guard.chroot)
* **Updated**: [9998_sources_list_bookworm.chroot](../config/hooks/live/9998_sources_list_bookworm.chroot)
* **Updated**: [9998_sources_list_trixie.chroot](../config/hooks/live/9998_sources_list_trixie.chroot)
@@ -61,7 +130,7 @@ include_toc: true
## V8.13.048.2025.10.06
* **Updated**: Debian 13 LIVE ISO workflows to use Kernel: ``6.16.3+deb13-amd64``
* **Updated**: Debian 13 LIVE ISO workflows to use argument: ``--cdi``
* **Updated**: [9000-cdi-starter](../scripts/9999-cdi-starter)
* **Updated**: [9000-cdi-starter](../scripts/usr/local/sbin/9999-cdi-starter)
## V8.13.032.2025.10.03
* **Added**: Internal Gitea Action Runner switch for static SSHFP records.

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Centurion Net - Developer Branch Overview

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Coding Style

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Contributing / participating

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Credits

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Download the latest PUBLIC CISS.debian.live.ISO

View File

@@ -8,12 +8,12 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2.1. Usage
````text
CISS.debian.live.builder
Master V8.13.142.2025.10.14
Master V8.13.294.2025.10.28
A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Image.
(c) Marc S. Weidner, 2018 - 2025
@@ -136,7 +136,7 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
# 2.2. Contact
````text
CISS.debian.live.builder
Master V8.13.142.2025.10.14
Master V8.13.294.2025.10.28
A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Image.
(c) Marc S. Weidner, 2018 - 2025

View File

@@ -8,7 +8,7 @@ include_toc: true
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
**Master Version**: 8.13<br>
**Build**: V8.13.142.2025.10.14<br>
**Build**: V8.13.294.2025.10.28<br>
# 2. Resources

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 179 KiB

View File

@@ -30,21 +30,24 @@ cdi() {
if [[ "${VAR_HANDLER_CDI}" == "true" ]]; then
if [[ ! -d "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/config" ]]; then
touch "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.cdi"
chmod 0600 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.cdi"
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/config"
if [[ ! -d "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/local/sbin" ]]; then
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/local/sbin"
fi
cp "${VAR_WORKDIR}/scripts/9999-cdi-starter" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/config/9999-cdi-starter"
chmod 0750 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/config/9999-cdi-starter"
chown root:root "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/config/9999-cdi-starter"
cp "${VAR_WORKDIR}/scripts/usr/local/sbin/9999-cdi-starter" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/local/sbin/9999-cdi-starter.sh"
chmod 0755 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/local/sbin/9999-cdi-starter.sh"
chown root:root "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/local/sbin/9999-cdi-starter.sh"
declare tmp_entry
tmp_entry="$(mktemp)"
cat << EOF >| "${tmp_entry}"
menuentry "CISS Hardened DI (${VAR_KERNEL})" --hotkey=i {
linux /live/vmlinuz-${VAR_KERNEL} boot=live verify-checksums components splash nopersistence toram ramdisk-size=1024M swap=true noautologin nottyautologin nox11autologin noeject locales=en_US.UTF-8 keyboard-layouts=de keyboard-model=pc105 keyboard-options= keyboard-variants= timezone=Etc/UTC apparmor=1 security=apparmor audit_backlog_limit=8192 audit=1 debugfs=off efi=disable_early_pci_dma hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu.passthrough=0 iommu.strict=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mitigations=auto,nosmt mmio_stale_data=full,force nosmt=force oops=panic page_alloc.shuffle=1 page_poison=1 panic=0 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on slab_nomerge vdso32=0 vsyscall=none findiso=\${iso_path}
linux /live/vmlinuz-${VAR_KERNEL} boot=live verify-checksums components splash nopersistence toram ramdisk-size=1024M swap=true noautologin nottyautologin nox11autologin noeject locales=en_US.UTF-8 keyboard-layouts=de keyboard-model=pc105 keyboard-options= keyboard-variants= timezone=Etc/UTC apparmor=1 security=apparmor audit_backlog_limit=262144 audit=1 debugfs=off efi=disable_early_pci_dma hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu.passthrough=0 iommu.strict=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mitigations=auto,nosmt mmio_stale_data=full,force nosmt=force oops=panic page_alloc.shuffle=1 page_poison=1 panic=0 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on slab_nomerge vdso32=0 vsyscall=none findiso=\${iso_path}
initrd /live/initrd.img-${VAR_KERNEL}
}
EOF
@@ -59,9 +62,12 @@ EOF
}" "${VAR_HANDLER_BUILD_DIR}/config/bootloaders/grub-pc/grub.cfg"
rm -f "${tmp_entry}"
else
# shellcheck disable=SC1003
sed -i '/#MUST_BE_REPLACED/c\\' "${VAR_HANDLER_BUILD_DIR}/config/bootloaders/grub-efi/grub.cfg"
fi
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ %s successfully applied. \e[0m\n" "${BASH_SOURCE[0]}"

44
lib/lib_ciss_upgrades.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
guard_sourcing
#######################################
# Wrapper to update '/usr/lib/live/build/...' scripts.
# Globals:
# SCRIPT_BASEPATH
# VAR_BUILD_LOG
# VAR_HANDLER_BUILD_DIR
# Arguments:
# None
# Returns:
# 0: on success
#######################################
ciss_upgrades() {
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 %s starting ... \e[0m\n" "${BASH_SOURCE[0]}"
if [[ ! -e /usr/lib/live/build/binary_rootfs.original ]]; then
cp /usr/lib/live/build/binary_rootfs /usr/lib/live/build/binary_rootfs.original
chmod 0444 /usr/lib/live/build/binary_rootfs.original
fi
rm -f /usr/lib/live/build/binary_rootfs
install -m 0755 -o root -g root "${VAR_WORKDIR}/scripts/usr/lib/live/build/binary_rootfs.sh" /usr/lib/live/build/binary_rootfs
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ %s successfully applied. \e[0m\n" "${BASH_SOURCE[0]}"
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f ciss_upgrades
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -184,7 +184,7 @@ hardening_ultra() {
fi
### /config/includes.chroot/root/.ssh
if [[ ! -d "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.ssh" ]]; then
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.ssh"
@@ -194,15 +194,27 @@ hardening_ultra() {
declare -r sshport="${VAR_SSHPORT:-22}"
sed -i "s|^port = MUST_BE_SET|port = ${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_fail2ban_hardening.chroot"
sed -i "s|^declare -r SSHPORT=\"MUST_BE_SET\"|declare -r SSHPORT=\"${sshport}\"|" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
sed -i "s|^Port MUST_BE_CHANGED|Port ${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/ssh/sshd_config"
### /config/includes.chroot/etc/ssh/sshd_config
# shellcheck disable=SC2155
declare pad="$(printf '%-29s' 'Port')"
sed -i -E "/PORT_MUST_BE_CHANGED/ s|.*|${pad}${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/ssh/sshd_config"
### /config/hooks/live/9950_hardening_fail2ban.chroot
sed -i "s|PORT_MUST_BE_SET|${sshport}|g" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_hardening_fail2ban.chroot"
### /config/hooks/live/0900_ufw_setup.chroot
sed -i "s|SSHPORT_MUST_BE_SET|${sshport}|g" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
### /config/hooks/live/0900_ufw_setup.chroot
if [[ ${#ARY_HANDLER_JUMPHOST[@]} -gt 0 ]]; then
declare file="${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
sed -i "/^ufw allow in \"\${SSHPORT}\"\/tcp comment 'Incoming SSH (Custom-Port)'$/d" "${file}"
declare line
# shellcheck disable=SC2312
line=$(grep -n '^ufw default deny forward$' "${file}" | cut -d: -f1)
@@ -212,10 +224,15 @@ hardening_ultra() {
fi
declare host
for host in "${ARY_HANDLER_JUMPHOST_UNIQUE[@]}"; do
((line++))
sed -i "${line}a ufw allow from ${host} to any port ${sshport} proto tcp comment \"Incoming SSH ([${host}]:${sshport})\"" "${file}"
done
fi
else
@@ -226,14 +243,25 @@ hardening_ultra() {
declare -r sshport="${VAR_SSHPORT:-22}"
sed -i "s|^port = MUST_BE_SET|port = ${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_fail2ban_hardening.chroot"
sed -i "s|^declare -r SSHPORT=\"MUST_BE_SET\"|declare -r SSHPORT=\"${sshport}\"|" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
sed -i "s|^Port MUST_BE_CHANGED|Port ${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/ssh/sshd_config"
### /config/includes.chroot/etc/ssh/sshd_config
# shellcheck disable=SC2155
declare pad="$(printf '%-29s' 'Port')"
sed -i -E "/PORT_MUST_BE_CHANGED/ s|.*|${pad}${sshport}|" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/ssh/sshd_config"
### /config/hooks/live/9950_hardening_fail2ban.chroot
sed -i "s|PORT_MUST_BE_SET|${sshport}|g" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_hardening_fail2ban.chroot"
### /config/hooks/live/0900_ufw_setup.chroot
sed -i "s|SSHPORT_MUST_BE_SET|${sshport}|g" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
### /config/hooks/live/0900_ufw_setup.chroot
if [[ ${#ARY_HANDLER_JUMPHOST_UNIQUE[@]} -gt 0 ]]; then
declare file="${VAR_HANDLER_BUILD_DIR}/config/hooks/live/0900_ufw_setup.chroot"
sed -i "/^ufw allow in \"\${SSHPORT}\"\/tcp comment 'Incoming SSH (Custom-Port)'$/d" "${file}"
declare line
# shellcheck disable=SC2312
line=$(grep -n '^ufw default deny forward$' "${file}" | cut -d: -f1)
@@ -244,46 +272,67 @@ hardening_ultra() {
fi
declare host
for host in "${ARY_HANDLER_JUMPHOST_UNIQUE[@]}"; do
((line++))
sed -i "${line}a ufw allow from ${host} to any port ${sshport} proto tcp comment \"Incoming SSH ([${host}]:${sshport})\"" "${file}"
done
fi
fi
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ Updating SSH Keys, Ports done. \e[0m\n"
### /config/includes.chroot/etc/hosts.allow
if [[ -f "${VAR_WORKDIR}/hosts.allow" ]]; then
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 SSH Hardening Ultra ... \e[0m\n"
cp -af "${VAR_WORKDIR}/hosts.allow" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc"
cp -af "${VAR_WORKDIR}/hosts.deny" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc"
chmod 0644 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/hosts.allow"
chmod 0644 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/etc/hosts.deny"
rm -f "${VAR_WORKDIR}/hosts.allow"
rm -f "${VAR_WORKDIR}/hosts.deny"
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ SSH Hardening Ultra done.\e[0m\n"
fi
### /config/hooks/live/9950_hardening_fail2ban.chroot
if ((${#ARY_HANDLER_JUMPHOST[@]} > 0)); then
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 Updating fail2ban Jumphosts IPs ... \e[0m\n"
# Join array entries with spaces, preserving any newlines
declare ips="${ARY_HANDLER_JUMPHOST[*]}"
# Flatten to a single line and strip literal brackets []
declare flat_ips
# shellcheck disable=SC2312
flat_ips=$(printf "%s" "${ips}" | tr '\n' ' ' | tr -d '[]')
# flat_ips now contains e.g., "123.128.111.42 2a03:ffff:0815:4711:... 2a03:.../64"
# Perform an in-place replacement of MUST_BE_SET with the cleaned list
sed -i -e "s|^\(ignoreip[[:space:]]*=[[:space:]]*127\.0\.0\.0/8 ::1[[:space:]]*\)MUST_BE_SET|\1${flat_ips}|" \
"${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_fail2ban_hardening.chroot"
# Perform an in-place replacement of IGNORE_IP_MUST_BE_SET with the cleaned list
sed -i -E "/^[[:space:]]*ignoreip[[:space:]]*=/ s|IGNORE_IP_MUST_BE_SET|${flat_ips}|g" "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_hardening_fail2ban.chroot"
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ Updating fail2ban Jumphosts IPs done. \e[0m\n"
else
printf "\e[93m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 No jump hosts configured, removing placeholder ... \e[0m\n"
sed -i \
-e "s|^\(ignoreip[[:space:]]*=[[:space:]]*127\.0\.0\.0/8 ::1\)[[:space:]]*MUST_BE_SET|\1|" \
-e "s|\(ignoreip[[:space:]]*=[[:space:]]*127\.0\.0\.0/8 ::1\)[[:space:]]*$|\1|" \
"${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_fail2ban_hardening.chroot"
sed -i 's/IGNORE_IP_MUST_BE_SET//g' "${VAR_HANDLER_BUILD_DIR}/config/hooks/live/9950_hardening_fail2ban.chroot"
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ Placeholder removed. \e[0m\n"
fi
}
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -15,11 +15,14 @@ guard_sourcing
#######################################
# Wrapper to write a new 'lb config' environment.
# Globals:
# ERR_UNCRITICAL
# SCRIPT_BASEPATH
# VAR_BUILD_LOG
# VAR_HANDLER_BUILD_DIR
# Arguments:
# None
# Returns:
# 0: on success
# ERR_UNCRITICAL: on failure
#######################################
lb_build_start() {
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🔨 Start Build... Log file: %s \e[0m\n" "${VAR_BUILD_LOG}"
@@ -51,5 +54,10 @@ lb_build_start() {
exit "${ERR_UNCRITICAL}"
fi
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f lb_build_start
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -40,8 +40,8 @@ lb_config_write_trixie() {
--backports true \
--binary-filesystem fat32 \
--binary-image iso-hybrid \
--bootappend-install "auto=true priority=critical clock-setup/utc=true console-setup/ask_detect=false debian-installer/country=US debian-installer/language=en debian-installer/locale=en_US.UTF-8 keyboard-configuration/xkb-keymap=de keyboard-configuration/model=pc105 localechooser/supported-locales=en_US.UTF-8 time/zone=Etc/UTC splash audit_backlog_limit=8192 audit=1 debugfs=off efi=disable_early_pci_dma efi_no_storage_paranoia hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mce=0 mitigations=auto,nosmt mmio_stale_data=full,nosmt oops=panic page_alloc.shuffle=1 page_poison=1 panic=-1 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on tsx=off vdso32=0 vsyscall=none" \
--bootappend-live "boot=live components keyboard-layouts=de keyboard-model=pc105 keyboard-options= keyboard-variants= locales=en_US.UTF-8 noautologin nottyautologin nox11autologin noeject nopersistence ramdisk-size=1024M splash swap=true timezone=Etc/UTC toram verify-checksums apparmor=1 security=apparmor audit_backlog_limit=8192 audit=1 debugfs=off efi=disable_early_pci_dma hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu.passthrough=0 iommu.strict=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mitigations=auto,nosmt mmio_stale_data=full,force nosmt=force oops=panic page_alloc.shuffle=1 page_poison=1 panic=0 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on slab_nomerge vdso32=0 vsyscall=none" \
--bootappend-install "auto=true priority=critical clock-setup/utc=true console-setup/ask_detect=false debian-installer/country=US debian-installer/language=en debian-installer/locale=en_US.UTF-8 keyboard-configuration/xkb-keymap=de keyboard-configuration/model=pc105 localechooser/supported-locales=en_US.UTF-8 time/zone=Etc/UTC splash audit_backlog_limit=262144 audit=1 debugfs=off efi=disable_early_pci_dma efi_no_storage_paranoia hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mce=0 mitigations=auto,nosmt mmio_stale_data=full,nosmt oops=panic page_alloc.shuffle=1 page_poison=1 panic=-1 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on tsx=off vdso32=0 vsyscall=none" \
--bootappend-live "boot=live components keyboard-layouts=de keyboard-model=pc105 keyboard-options= keyboard-variants= locales=en_US.UTF-8 noautologin nottyautologin nox11autologin noeject nopersistence ramdisk-size=1024M splash swap=true timezone=Etc/UTC toram verify-checksums apparmor=1 security=apparmor audit_backlog_limit=262144 audit=1 debugfs=off efi=disable_early_pci_dma hardened_usercopy=1 ia32_emulation=0 init_on_alloc=1 init_on_free=1 iommu.passthrough=0 iommu.strict=1 iommu=force kfence.sample_interval=100 kvm.nx_huge_pages=force l1d_flush=on lockdown=confidentiality loglevel=0 mitigations=auto,nosmt mmio_stale_data=full,force nosmt=force oops=panic page_alloc.shuffle=1 page_poison=1 panic=0 pti=on random.trust_bootloader=off random.trust_cpu=off randomize_kstack_offset=on retbleed=auto,nosmt rodata=on slab_nomerge vdso32=0 vsyscall=none" \
--bootloaders grub-efi \
--cache true \
--checksums sha512 sha256 md5 \
@@ -107,11 +107,43 @@ lb_config_write_trixie() {
sed -i 's/LB_CHECKSUMS="sha512 md5"/LB_CHECKSUMS="sha512 sha384 sha256"/1' ./config/binary
sed -i 's/LB_DM_VERITY=""/LB_DM_VERITY="false"/1' ./config/binary
mkdir -p "${VAR_HANDLER_BUILD_DIR}"/config/includes.chroot/usr/lib/live/boot
### Update 0030-verify-checksums
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/boot"
cp -a "${VAR_WORKDIR}/scripts/live-boot/0030-verify-checksums" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/boot/0030-verify-checksums"
chmod 0755 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/boot/0030-verify-checksums"
chown root:root "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/usr/lib/live/boot/0030-verify-checksums"
### Installing PGP Public Keys for signature verification.
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.ciss/cdlb/keys"
install -m 0444 -o root -g root "${VAR_WORKDIR}/.pubkey/marc_s_weidner_msw+bot@coreseret.dev_0x8733B021_public.gpg" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.ciss/cdlb/keys/0x8733B021_public.gpg"
install -m 0444 -o root -g root "${VAR_WORKDIR}/.pubkey/marc_s_weidner_msw@coresecret.dev_0xE62E84F8_public.gpg" "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/.ciss/cdlb/keys/0xE62E84F8_public.gpg"
### https://wiki.debian.org/ReproducibleInstalls/LiveImages
### https://reproducible-builds.org/docs/system-images/
### https://gitlab.tails.boum.org/tails/tails/-/blob/stable/config/chroot_local-includes/usr/share/tails/build/mksquashfs-excludes
mkdir -p "${VAR_HANDLER_BUILD_DIR}/config/rootfs"
cat << 'EOF' >| "${VAR_HANDLER_BUILD_DIR}/config/rootfs/excludes"
boot/initrd.img-*
boot/vmlinux-*
boot/vmlinuz-*
debootstrap
debootstrap/*
root/.wget-hsts
tmp/*
usr/lib/firmware/amd/*
usr/lib/firmware/amd-ucode/*
usr/lib/firmware/amdtee/*
usr/lib/firmware/intel-ucode/*
var/cache/apt/pkgcache.bin
var/cache/apt/srcpkgcache.bin
var/lib/apt/lists/*
var/lib/initramfs-tools/*-amd64
EOF
chmod 0644 "${VAR_HANDLER_BUILD_DIR}/config/rootfs/excludes"
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ Writing new config done.\e[0m\n"
return 0

View File

@@ -53,6 +53,18 @@ note_target() {
https://coresecret.eu/spenden/
################################################################################
EOF
chmod 0444 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/ciss-debian-live-builder.txt"
cat << EOF >| "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/ciss-debian-live-builder.env"
export CDLB_VERSION="${VAR_VERSION}"
export CDLB_GIT_REL="${VAR_GIT_REL}"
export CDLB_CR_DATE="${VAR_DATE_INFO}"
export CDLB_CR_HOST="${VAR_HOST}"
export CDLB_BASHVER="${VAR_BASH_VER}"
export CDLB_DS_VER="${VAR_DS_VER}"
export CDLB_LB_VER="${VAR_LB_VER}"
EOF
chmod 0444 "${VAR_HANDLER_BUILD_DIR}/config/includes.chroot/root/ciss-debian-live-builder.env"
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ %s successfully applied. \e[0m\n" "${BASH_SOURCE[0]}"

View File

@@ -13,9 +13,11 @@
guard_sourcing
#######################################
# Argument Check Wrapper
# Arguments check wrapper.
# Globals:
# None
# Arguments:
# $1: "$@" of ./ciss_live_builder.sh
# 1: "$@" of ./ciss_live_builder.sh
#######################################
arg_check() {
declare a
@@ -25,35 +27,49 @@ arg_check() {
done
set -- "${sanitized_args[@]}"
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f arg_check
#######################################
# Function to sanitize a single argument
# Function to sanitize a single argument,
# Globals:
# ERR_INVLD_CHAR
# LOG_ERROR
# Arguments:
# $1: Argument to check
# 1: Argument to check
# Returns:
# 0: on success
# ERR_INVLD_CHAR: on failure
#######################################
sanitize_arg() {
declare input="${1}"
declare disallowed_ctrl=""
### Step 1: Check for control characters
if printf '%s' "${input}" | grep -qP '[[:cntrl:]]'; then
# shellcheck disable=SC2312
disallowed_ctrl=$(printf '%s' "${input}" | sed -n 's/[^[:cntrl:]]//gp' | sed $'s/./&\\n/g' \
| while read -r c; do printf "%02X " "'$c"; done)
| while read -r c; do printf "%02X " "'${c}"; done)
{
printf "❌ Control character : '%s'. \n" "${disallowed_ctrl}"
printf "❌ in argument : '%s'. \n" "${input}"
printf "❌ Allowed Characters : 'a-z A-Z 0-9 . _ / = [ ] : \" - + space' \n"
printf "\n"
} >> "${LOG_ERROR}"
boot_screen_cleaner
printf "\e[91m❌ Control character : '%s'. \e[0m\n" "${disallowed_ctrl}" >&2
printf "\e[91m❌ in argument : '%s'. \e[0m\n" "${input}" >&2
printf "\e[91m❌ Allowed Characters : 'a-z A-Z 0-9 . _ / = [ ] : \" - + space' \e[0m\n" >&2
# shellcheck disable=SC2162
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
exit "${ERR_INVLD_CHAR}"
fi
### Step 2: Define allowed characters:
@@ -61,6 +77,7 @@ sanitize_arg() {
declare allowed='a-zA-Z0-9._/=\[\]:"\-+ '
declare disallowed
disallowed=$(printf '%s' "${input}" | tr -d "${allowed}")
if [[ -n ${disallowed} ]]; then
{
printf "❌ Invalid character : '%s'. \n" "${disallowed//?/& }"
@@ -68,22 +85,36 @@ sanitize_arg() {
printf "❌ Allowed Characters : 'a-z A-Z 0-9 . _ / = [ ] : \" - + space' \n"
printf "\n"
} >> "${LOG_ERROR}"
boot_screen_cleaner
printf "\e[91m❌ Invalid character : '%s'. \e[0m\n" "${disallowed//?/& }" >&2
printf "\e[91m❌ in argument : '%s'. \e[0m\n" "${input}" >&2
printf "\e[91m❌ Allowed Characters : 'a-z A-Z 0-9 . _ / = [ ] : \" - + space' \e[0m\n" >&2
# shellcheck disable=SC2162
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
exit "${ERR_INVLD_CHAR}"
else
printf '%s' "${input}"
fi
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f sanitize_arg
#######################################
# Function to remove any character not in the allowed set
# Function to remove any character not in the allowed set.
# Globals:
# None
# Arguments:
# $1: String to Sanitize
# 1: String to Sanitize
#######################################
sanitize_string() {
declare input="$1"
@@ -92,15 +123,23 @@ sanitize_string() {
declare allowed='a-zA-Z0-9._/=\[\]:"\-+ '
printf '%s' "${input}" | tr -cd "${allowed}"
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f sanitize_string
#######################################
# Function to escape all shell metacharacters
# Function to escape all shell metacharacters.
# Globals:
# None
# Arguments:
# $1: String to Sanitize
# 1: String to Sanitize
#######################################
sanitize_shell_literal() {
declare input="$1"
### %q quotes the string so that the shell re-reads it as the original literal
printf '%q' "${input}"
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f sanitize_shell_literal
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -11,7 +11,9 @@
# SPDX-Security-Contact: security@coresecret.eu
#######################################
# Prevent the file to be sourced twice.
# Prevents the file to be sourced twice.
# Globals:
# None
# Arguments:
# 1: File to source.
#######################################
@@ -25,4 +27,7 @@ source_guard() {
. "${var_file}"
fi
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f source_guard
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

Some files were not shown because too many files have changed in this diff Show More