Compare commits
294 Commits
v8.03.644-
...
v8.13.008-
| Author | SHA256 | Date | |
|---|---|---|---|
|
f35e3bff4f
|
|||
|
22d6c9a061
|
|||
|
e3206cc4be
|
|||
|
3e5ade4758
|
|||
|
3d79ff973f
|
|||
|
08653b1398
|
|||
|
440a393c67
|
|||
|
c1715f896f
|
|||
|
499bfe9c86
|
|||
|
6b397e27b1
|
|||
|
0da89626e6
|
|||
|
9c59edb3cb
|
|||
|
e0b1300538
|
|||
|
d5a3b6eca5
|
|||
|
fbc6f9e9a9
|
|||
|
bbc7fcfe56
|
|||
|
7d97dfd1b4
|
|||
|
76b3c4d49e
|
|||
|
8da33a5e38
|
|||
|
1330ed9cc9
|
|||
|
25361c66bf
|
|||
|
e52231a865
|
|||
|
5decedf83c
|
|||
|
003790123e
|
|||
|
2d3d8339de
|
|||
|
c774974171
|
|||
|
10204504ae
|
|||
|
00bd9ea193
|
|||
|
dc6f9b0d7b
|
|||
|
82b9f7395c
|
|||
|
5c16a5a097
|
|||
|
0ba66ee264
|
|||
|
f079c2fa48
|
|||
|
5aaeb98261
|
|||
|
250f4ba671
|
|||
|
b466852bca
|
|||
|
2dae84270a
|
|||
|
1872d761af
|
|||
|
d5f652b059
|
|||
|
ecdc4ec317
|
|||
|
ccaf53e6cd
|
|||
|
a84acdd685
|
|||
|
09c4125ed2
|
|||
|
4762db1926
|
|||
|
862e8e75bd
|
|||
|
661cbbdb32
|
|||
|
dd2c6e0546
|
|||
|
ab75649720
|
|||
|
c23a3708e8
|
|||
|
ac8d84eab0
|
|||
|
5686130913
|
|||
|
5b1ed48c23
|
|||
|
25b69d0434
|
|||
|
2cc84b008d
|
|||
|
553ca676c3
|
|||
|
cf77d21778
|
|||
|
b4ed802668
|
|||
|
f34c8c62d4
|
|||
|
90565fe3b6
|
|||
|
62c2c971bd
|
|||
|
f56d2d3215
|
|||
|
caf4164365
|
|||
|
66700a7518
|
|||
|
db5cefa913
|
|||
|
963318abd2
|
|||
|
549fda3560
|
|||
|
ad06d09847
|
|||
|
76281b4579
|
|||
|
0dbe1d2dbe
|
|||
|
cf6a3b32c0
|
|||
|
ba72633635
|
|||
|
d73efb3a89
|
|||
|
29b5abb594
|
|||
|
ad9a7be0c0
|
|||
|
4f990ff360
|
|||
|
f5df55c0d9
|
|||
|
78062fb361
|
|||
|
339220306c
|
|||
|
10220e2c0e
|
|||
|
58c76cb573
|
|||
|
2ebeb5dc35
|
|||
|
c36bc94cd6
|
|||
|
c3943a7a6c
|
|||
|
4ff33b1700
|
|||
|
5b727926d5
|
|||
|
6bd586d85d
|
|||
|
3e258fed6c
|
|||
|
9486dc970e
|
|||
|
97799cc705
|
|||
|
7b39974ce3
|
|||
|
9f79c96627
|
|||
|
3ee781bc2b
|
|||
|
10b17e059c
|
|||
|
dc7d8946a1
|
|||
|
45390ab73a
|
|||
|
c53fe4cf92
|
|||
|
527d9f6e48
|
|||
|
8fcc130464
|
|||
|
4ed5de03e8
|
|||
|
939766bcbb
|
|||
|
bc4ca368cd
|
|||
|
dbb8cc9967
|
|||
|
bcfa4b471d
|
|||
|
e2982840e0
|
|||
|
5af5b079c8
|
|||
|
dbce974409
|
|||
|
690dcccf98
|
|||
|
ec99539898
|
|||
|
df50b393ca
|
|||
|
527262c640
|
|||
|
42ea94595d
|
|||
|
79c7b090ac
|
|||
|
068ebb1065
|
|||
|
4ea400761d
|
|||
|
7d1e5d8523
|
|||
|
10101af2ee
|
|||
|
9b0b2db4d6
|
|||
|
3e7124c5b0
|
|||
|
e72ef95b86
|
|||
|
78644a6e2c
|
|||
|
d83e3da729
|
|||
|
cd13f2a6ca
|
|||
|
2661f89f11
|
|||
|
1500c5ca91
|
|||
|
c7a2e9bfa9
|
|||
|
8b9306f5e5
|
|||
|
992d593210
|
|||
|
43f86718a7
|
|||
|
d3242a7b5d
|
|||
|
f415c7aef5
|
|||
|
d1a643ef59
|
|||
|
9ceab388ea
|
|||
|
2bf021a9f1
|
|||
|
7389cf0509
|
|||
|
241b651f2f
|
|||
|
675817813b
|
|||
|
eb668f112c
|
|||
|
a0140a7b53
|
|||
|
c969ed6e88
|
|||
|
b36bf4fe5f
|
|||
|
fe3696c4e8
|
|||
|
05ba3be592
|
|||
|
834a924080
|
|||
|
4c552f2ecc
|
|||
|
553db82ad7
|
|||
|
960db79e56
|
|||
|
3b5ba919d2
|
|||
|
2f4ce03347
|
|||
|
1d095efce3
|
|||
|
f12abfef69
|
|||
|
67d443b695
|
|||
|
4445a0ae5c
|
|||
|
160fc4bc38
|
|||
|
ee8e2bce5c
|
|||
|
90e2fd48b8
|
|||
|
fd406a6628
|
|||
|
2c4a9c95c6
|
|||
|
898ed7d599
|
|||
|
07686fd15a
|
|||
|
5bd0c517a2
|
|||
|
f6f1d04a09
|
|||
|
8f3715ff74
|
|||
|
bf2252fd66
|
|||
|
976d95397c
|
|||
|
bfa2263198
|
|||
|
3c57dfcd08
|
|||
|
7a1f51e72e
|
|||
|
2d838a5b48
|
|||
|
a77e8e2204
|
|||
|
db1ce0cdbd
|
|||
|
dda53a41aa
|
|||
|
844981489a
|
|||
|
bcf924a4b7
|
|||
|
70329077a3
|
|||
|
2ad5087b1e
|
|||
|
2631b86196
|
|||
|
fd63ef798b
|
|||
|
98ceb5db1a
|
|||
|
4129d1ef2b
|
|||
|
f6a2c5ad49
|
|||
|
e8161fdc2d
|
|||
|
7b79ef1237
|
|||
|
9143b7800b
|
|||
|
0f10a9c271
|
|||
|
4f7131ca9c
|
|||
|
70d127dd4c
|
|||
|
d183dab1a3
|
|||
|
593faf92b8
|
|||
|
ff1a3390ec
|
|||
|
3177e1ff40
|
|||
|
e8e2fa0182
|
|||
|
dfd59577b2
|
|||
|
c2d0839cd2
|
|||
|
f047832cdc
|
|||
|
668ab7ce9d
|
|||
|
972749b607
|
|||
|
4b3918e58d
|
|||
|
55c27550c2
|
|||
|
dcb05605d6
|
|||
|
6ebf75a91b
|
|||
|
00c3853d4e
|
|||
|
1411be304d
|
|||
|
7459585d20
|
|||
|
df806d086f
|
|||
|
4b70ca7056
|
|||
|
44c3aef43d
|
|||
|
81f3a89ae5
|
|||
|
d0a38a82b8
|
|||
|
73d826ca2b
|
|||
|
87905d693c
|
|||
|
11e6b58f21
|
|||
|
27b59bad99
|
|||
|
a96d38fe46
|
|||
|
0cd9e75b68
|
|||
|
a5db5044f6
|
|||
|
5a4570ec46
|
|||
|
5e4bc99e5a
|
|||
|
e9b21a2b5b
|
|||
|
4bae828016
|
|||
|
67ebcfb388
|
|||
|
53e4f5e2e3
|
|||
|
adbf2d0dfd
|
|||
|
8fb023e43b
|
|||
|
1276b4fae7
|
|||
|
4b6c7cc2d8
|
|||
|
34dda8c8dd
|
|||
|
a5a5855507
|
|||
|
c3f4e0ba0a
|
|||
|
44c56be9d2
|
|||
|
9657a454c9
|
|||
|
577b7d16dd
|
|||
|
e4126f6995
|
|||
|
144d0ca2e9
|
|||
|
b8fe187cbf
|
|||
|
3cc26e2d2b
|
|||
|
43ec5f3493
|
|||
|
aa2f51b059
|
|||
|
ce632c3b3e
|
|||
|
2bfdf5fa42
|
|||
|
3700a1ad6c
|
|||
|
250b8ba0c6
|
|||
|
8d598d7d69
|
|||
|
c4b0e44d99
|
|||
|
4e76d9665a
|
|||
|
8a65565e5c
|
|||
|
a03d75879f
|
|||
|
29a5ff5c9e
|
|||
|
84f7014699
|
|||
|
6136da5631
|
|||
|
2e24d9d814
|
|||
|
a992311235
|
|||
|
8785b820af
|
|||
|
51745e8f82
|
|||
|
c04e89a3c1
|
|||
|
9aa98d1e46
|
|||
|
1c0cf0ce8c
|
|||
|
8d40f95c16
|
|||
|
8c05da4692
|
|||
|
dd4968c745
|
|||
|
aaf14e6204
|
|||
|
247b9af51b
|
|||
|
f40b1c6f2d
|
|||
|
742d0579d7
|
|||
|
3e5681cb90
|
|||
|
c21a25f938
|
|||
|
a5552f7079
|
|||
|
999fa7e11e
|
|||
|
7d8bab47ff
|
|||
|
6e33d74922
|
|||
|
b718b1e8c8
|
|||
|
c7d5407119
|
|||
|
2f25ad8e31
|
|||
|
ec5f343bfa
|
|||
|
22220bb3e0
|
|||
|
ad7a12ea92
|
|||
|
03f0b4df09
|
|||
|
0ef7fcb146
|
|||
|
ea2a7627e2
|
|||
|
b38e0c8476
|
|||
|
8409a8eb8a
|
|||
|
2b73132851
|
|||
|
1769e13708
|
|||
|
7eb8fb8754
|
|||
|
1fda52e948
|
|||
|
6d12da9566
|
|||
|
2b8deafabc
|
|||
|
3a8e624f57
|
|||
|
eac8f62459
|
|||
|
fadece63ca
|
|||
|
68eb879c8a
|
|||
|
64689d00b2
|
|||
|
7172b4fee9
|
|||
|
ec6066f620
|
|||
|
e164a039fa
|
142
.archive/.0000_lib_usage.sh
Normal file
142
.archive/.0000_lib_usage.sh
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Usage Wrapper CISS.debian.live.builder
|
||||||
|
# Globals:
|
||||||
|
# none
|
||||||
|
# Arguments:
|
||||||
|
# $0: Script name
|
||||||
|
#######################################
|
||||||
|
usage() {
|
||||||
|
clear
|
||||||
|
cat << EOF
|
||||||
|
$(echo -e "\e[92mCISS.debian.live.builder\e[0m")
|
||||||
|
$(echo -e "\e[92mMaster V8.13.008.2025.08.22\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")
|
||||||
|
$(echo -e "\e[97m(p) Centurion Press, 2024 - 2025\e[0m")
|
||||||
|
|
||||||
|
"${0} <option>", where <option> is one or more of:
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --help, -h\e[0m")
|
||||||
|
What you're looking at.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --autobuild=*, -a=*\e[0m")
|
||||||
|
Headless mode. Skip the dialog wrapper, provider note screen and interactive kernel
|
||||||
|
selector dialog. Change '*' to your desired Linux kernel and trim the
|
||||||
|
'linux-image-' string to select a specific kernel, e.g. '--autobuild=6.12.30+bpo-amd64'.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --architecture <STRING> one of <amd64 | arm64>\e[0m")
|
||||||
|
A string reflecting the architecture of the Live System.
|
||||||
|
MUST be provided.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --build-directory </path/to/build_directory>\e[0m")
|
||||||
|
Where the Debian Live Build Image should be generated.
|
||||||
|
MUST be provided.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --change-splash <STRING> one of <club | hexagon>\e[0m")
|
||||||
|
A string reflecting the GRub Boot Screen Splash you want to use.
|
||||||
|
If omitted defaults to "./.archive/background/club.png".
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --cdi (Experimental Feature)\e[0m")
|
||||||
|
This option generates a boot menu entry to start the forthcoming
|
||||||
|
'CISS.debian.installer', which will be executed after
|
||||||
|
the system has successfully booted up.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --contact, -c\e[0m")
|
||||||
|
Displays contact information of the author.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --control <INTEGER>\e[0m")
|
||||||
|
An integer that reflects the version of your Live ISO Image.
|
||||||
|
MUST be provided.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --debug\e[0m")
|
||||||
|
Enables debug logging for the main program routine. Detailed logging
|
||||||
|
information are written to "/tmp/ciss_live_builder_$$.log"
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --dhcp-centurion\e[0m")
|
||||||
|
If a DHCP lease is provided, the provider's nameserver will be overridden,
|
||||||
|
and only the hardened, privacy-focused Centurion DNS servers will be used:
|
||||||
|
- https://dns01.eddns.eu/
|
||||||
|
- https://dns02.eddns.de/
|
||||||
|
- https://dns03.eddns.eu/
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --jump-host <IP | IP | ... >\e[0m")
|
||||||
|
Provide up to 10 IPs for /etc/host.allow whitelisting of SSH access.
|
||||||
|
Could be either IPv4 and / or IPv6 addresses and / or CCDIR notation.
|
||||||
|
If provided, than it MUST be a <SPACE> separated list.
|
||||||
|
IPv6 addresses MUST be encapsulated with [], e.g., [1234::abcd]/64.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --log-statistics-only\e[0m")
|
||||||
|
Provides statistic only after successful building a
|
||||||
|
CISS.debian.live-ISO. While enabling "--log-statistics-only"
|
||||||
|
the argument "--build-directory" MUST be provided while
|
||||||
|
all further options MUST be omitted.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --provider-netcup-ipv6\e[0m")
|
||||||
|
Activates IPv6 support for Netcup Root Server. One unique
|
||||||
|
IPv6 address MUST be provided in this case and MUST be encapsulated
|
||||||
|
with [], e.g., [1234::abcd].
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --renice-priority <PRIORITY>\e[0m")
|
||||||
|
Reset the nice priority value of the script and all its children
|
||||||
|
to the desired <PRIORITY>. MUST be an integer (between "-19" and 19).
|
||||||
|
Negative (higher) values MUST be enclosed in double quotes '"'.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --reionice-priority <CLASS> <PRIORITY>\e[0m")
|
||||||
|
Reset the ionice priority value of the script and all its children
|
||||||
|
to the desired <CLASS>. MUST be an integer:
|
||||||
|
1: realtime
|
||||||
|
2: best-effort
|
||||||
|
3: idle
|
||||||
|
Defaults to '2'.
|
||||||
|
Whereas <PRIORITY> MUST be an integer as well between:
|
||||||
|
0: highest priority and
|
||||||
|
7: lowest priority.
|
||||||
|
Defaults to '4'.
|
||||||
|
A real-time I/O process can significantly slow down other processes
|
||||||
|
or even cause them to starve if it continuously requests I/O.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --root-password-file </path/to/password.txt>\e[0m")
|
||||||
|
Password file for 'root', if given, MUST be a string of 20 to 64 characters,
|
||||||
|
and MUST NOT contain the special character '"'.
|
||||||
|
If the argument is omitted, no further login authentication is required for
|
||||||
|
the local console. The root password is hashed with an 16 Byte '/dev/random'
|
||||||
|
generated SALT and SHA512 Hashing function and 8,388,608 rounds. Immediately
|
||||||
|
after Hash generation all Variables containing plain password fragments are
|
||||||
|
deleted. Password file SHOULD be '0400' and 'root:root' and is deleted without
|
||||||
|
further prompt after password hash has been successfully generated via:
|
||||||
|
'shred -vfzu 5 -f'.
|
||||||
|
No tracing of any plain text password fragment in any debug log.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --ssh-port <INTEGER>\e[0m")
|
||||||
|
The desired Port SSH should listen to.
|
||||||
|
If not provided defaults to Port 22.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --ssh-pubkey </path/to/.ssh/>\e[0m")
|
||||||
|
Imports the SSH Public Key(s) from the FILE 'authorized_keys' of the
|
||||||
|
specified PATH into the Live ISO. MUST be provided.
|
||||||
|
|
||||||
|
$(echo -e "\e[97m --version, -v\e[0m")
|
||||||
|
Displays version of ${0}.
|
||||||
|
|
||||||
|
$(echo -e "\e[93m💡 Notes:\e[0m")
|
||||||
|
🔵 You MUST be 'root' to run this script.
|
||||||
|
|
||||||
|
$(echo -e "\e[95m💷 Please consider donating to my work at:\e[0m")
|
||||||
|
$(echo -e "\e[95m🌐 https://coresecret.eu/spenden/ \e[0m")
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
✅
|
✅
|
||||||
@@ -46,4 +46,10 @@
|
|||||||
🧠
|
🧠
|
||||||
📅
|
📅
|
||||||
🎯
|
🎯
|
||||||
|
🌐
|
||||||
|
🔗
|
||||||
|
💬
|
||||||
|
☢️
|
||||||
|
☣️
|
||||||
|
•
|
||||||
# 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
|
||||||
@@ -25,6 +25,10 @@ charset = utf-8
|
|||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[{makefile,*.mk}]
|
||||||
|
indent_style = tab
|
||||||
|
tab_width = 8
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
# Markdown benefits from a final newline for POSIX tools
|
# Markdown benefits from a final newline for POSIX tools
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: "Version"
|
label: "Version"
|
||||||
description: "Which version are you running? Use `./ciss_live_builder.sh -v`."
|
description: "Which version are you running? Use `./ciss_live_builder.sh -v`."
|
||||||
placeholder: "e.g., Master V8.03.644.2025.06.07"
|
placeholder: "e.g., Master V8.13.008.2025.08.22"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
FROM debian:bookworm
|
FROM debian:bookworm
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 🔁 Render README.md to README.html.
|
name: 🔁 Render README.md to README.html.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
counter: 1023
|
counter: 1023
|
||||||
version: V8.03.644.2025.06.07
|
version: V8.13.008.2025.08.22
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
counter: 1023
|
counter: 1023
|
||||||
version: V8.03.644.2025.06.07
|
version: V8.13.008.2025.08.22
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
counter: 1023
|
counter: 1023
|
||||||
version: V8.03.644.2025.06.07
|
version: V8.13.008.2025.08.22
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
||||||
|
|||||||
@@ -11,5 +11,5 @@
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
counter: 1023
|
counter: 1023
|
||||||
version: V8.03.644.2025.06.07
|
version: V8.13.008.2025.08.22
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=yaml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -9,9 +9,13 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 🔐 Generating a Private Live ISO FLV 0.
|
name: 🔐 Generating a Private Live ISO TRIXIE.
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -21,164 +25,34 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
paths:
|
paths:
|
||||||
- '.gitea/trigger/t_generate_PRIVATE_iso_flavour_0.yaml'
|
- '.gitea/trigger/t_generate_PRIVATE_trixie_0.yaml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate-private-ciss-debian-live-iso:
|
generate-private-cdlb-trixie:
|
||||||
name: 🔐 Generating a Private Live ISO FLV 0.
|
name: 🔐 Generating a Private Live ISO TRIXIE.
|
||||||
runs-on: ciss.debian.live.builder.iso.generator
|
runs-on: cdlb.trixie
|
||||||
|
|
||||||
### Run all steps inside Debian Bookworm
|
|
||||||
container:
|
container:
|
||||||
image: debian:bookworm
|
image: debian:trixie
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 🛠️ Basic Image Setup and enable Bookworm Backports.
|
- name: 🛠️ Basic Image Setup.
|
||||||
run: |
|
|
||||||
apt-get update -y
|
|
||||||
apt-get install -y apt-transport-https apt-utils bash ca-certificates openssl sudo
|
|
||||||
echo 'deb https://deb.debian.org/debian bookworm-backports main' \
|
|
||||||
>| /etc/apt/sources.list.d/bookworm-backports.list
|
|
||||||
apt-get update -y
|
|
||||||
apt-get upgrade -y
|
|
||||||
|
|
||||||
- name: 🛠️ Installing Build Tools.
|
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
apt-get update -y
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
apt-get install -y \
|
apt-get update
|
||||||
autoconf \
|
apt-get upgrade -y
|
||||||
automake \
|
apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
apt-utils \
|
||||||
cryptsetup \
|
bash \
|
||||||
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
debootstrap \
|
|
||||||
dosfstools \
|
|
||||||
efibootmgr \
|
|
||||||
gettext \
|
|
||||||
git \
|
git \
|
||||||
gnupg \
|
gnupg \
|
||||||
haveged \
|
openssh-client \
|
||||||
libbz2-dev \
|
openssl \
|
||||||
zlib1g-dev \
|
|
||||||
liblzma-dev \
|
|
||||||
libtool \
|
|
||||||
live-build \
|
|
||||||
parted \
|
|
||||||
pkg-config \
|
|
||||||
ssh \
|
|
||||||
ssl-cert \
|
|
||||||
sudo \
|
sudo \
|
||||||
texinfo \
|
util-linux
|
||||||
wget \
|
|
||||||
whois \
|
|
||||||
|
|
||||||
- name: 🛠️ Build GnuPG from the sources, as the Bookworm GPG does not understand key format 5.
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
urls=(
|
|
||||||
"https://gnupg.org/ftp/gcrypt/npth/npth-1.8.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.55.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.1.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.2.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.8.tar.bz2"
|
|
||||||
)
|
|
||||||
|
|
||||||
wget --https-only https://gnupg.org/signature_key.asc -O signature_key.asc > /dev/null 2>&1
|
|
||||||
gpg --batch --import signature_key.asc
|
|
||||||
|
|
||||||
for url in "${urls[@]}"; do
|
|
||||||
archive_name="${url##*/}"
|
|
||||||
pkg_name="${archive_name%.tar.bz2}"
|
|
||||||
echo "🔄 Processing ${pkg_name}"
|
|
||||||
if [[ ! -f "${archive_name}" ]]; then
|
|
||||||
echo "📥 Downloading: '${archive_name}'."
|
|
||||||
if wget --https-only "${url}" -O "${archive_name}" > /dev/null 2>&1 && wget --https-only "${url}.sig" -O "${archive_name}.sig" > /dev/null 2>&1; then
|
|
||||||
echo "✅ Download successful: '${archive_name}'."
|
|
||||||
else
|
|
||||||
echo "❌ Download NOT successful: '${archive_name}'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Skipping download, package already exists: '${archive_name}'."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! gpg --verify "${archive_name}.sig" "${archive_name}"; then echo "❌ Bad Signature: '${archive_name}'.";exit 1; fi
|
|
||||||
|
|
||||||
if [[ ! -d "${pkg_name}" ]]; then
|
|
||||||
echo "📂 Extracting: '${archive_name}'."
|
|
||||||
if tar -xjf "${archive_name}"; then
|
|
||||||
echo "✅ Extraction successful: '${archive_name}'."
|
|
||||||
else
|
|
||||||
echo "❌ Extraction not successful: '${archive_name}'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Skipping directory, already exists: '${pkg_name}'."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "🏗️ Build and install the package: '${pkg_name}'."
|
|
||||||
cd "${pkg_name}" || { echo "❌ Could not change to '${pkg_name}'."; exit 1; }
|
|
||||||
mkdir -p build
|
|
||||||
cd build || { echo "❌ Could not change to '/build'."; exit 1; }
|
|
||||||
|
|
||||||
sudo ../configure > /dev/null 2>&1 || { echo "❌ '../configure' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
make > /dev/null 2>&1 || { echo "❌ 'make' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
sudo make install > /dev/null 2>&1 || { echo "❌ 'make install' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
|
|
||||||
cd ../.. || { echo "❌ Could not change to '../..'."; exit 1; }
|
|
||||||
|
|
||||||
rm -f "${archive_name}" && rm -f "${archive_name}.sig" && echo "✅ Removed archive: '${pkg_name}'."
|
|
||||||
rm -fr "${pkg_name}" && echo "✅ Removed build artifacts: '${pkg_name}'."
|
|
||||||
echo "✅ Successful build and installation of '${pkg_name}'."
|
|
||||||
echo "-------------------------------------------------------------------------------------"
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f signature_key.asc
|
|
||||||
|
|
||||||
echo "✅ All packages were built and installed successfully."
|
|
||||||
|
|
||||||
mv_bin=(
|
|
||||||
"/usr/bin/gpg"
|
|
||||||
"/usr/bin/gpg-agent"
|
|
||||||
"/usr/bin/gpgconf"
|
|
||||||
"/usr/bin/gpg-connect-agent"
|
|
||||||
"/usr/bin/gpg-wks-client"
|
|
||||||
"/usr/bin/gpg-preset-passphrase"
|
|
||||||
)
|
|
||||||
|
|
||||||
for bin in "${mv_bin[@]}"; do
|
|
||||||
name="${bin##*/}"
|
|
||||||
if [[ -f "${bin}" && -f "/usr/local/bin/${name}" ]]; then
|
|
||||||
if mv "${bin}" "${bin}.debian-backup"; then
|
|
||||||
echo "✅ Moved successfully: '${bin}'."
|
|
||||||
else
|
|
||||||
echo "❌ Moved NOT successfully: '${bin}'."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Does not exist as build binary: '${bin}'."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for bin in "${mv_bin[@]}"; do
|
|
||||||
name="${bin##*/}"
|
|
||||||
if [[ -f "/usr/local/bin/${name}" ]]; then
|
|
||||||
if update-alternatives --install "${bin}" "${name}" "/usr/local/bin/${name}" 100; then
|
|
||||||
echo "✅ 'update-alternatives' successfully: '${bin}'."
|
|
||||||
else
|
|
||||||
echo "❌ 'update-alternatives' NOT successfully: '${bin}'."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Does not exist: '/usr/local/bin/${name}'."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
sudo ldconfig
|
|
||||||
|
|
||||||
gpgconf --kill all
|
|
||||||
/usr/local/bin/gpg-agent --daemon
|
|
||||||
|
|
||||||
- name: ⚙️ Check GnuPG Version.
|
- name: ⚙️ Check GnuPG Version.
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -268,9 +142,9 @@ jobs:
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
chmod 0755 ciss_live_builder.sh
|
chmod 0755 ciss_live_builder.sh
|
||||||
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
||||||
### Change "--autobuild=" to the specific kernel version you need: 6.12.22+bpo-amd64.
|
### Change "--autobuild=" to the specific kernel version you need: '6.12.41+deb13-amd64'.
|
||||||
./ciss_live_builder.sh \
|
./ciss_live_builder.sh \
|
||||||
--autobuild=6.12.22+bpo-amd64 \
|
--autobuild=6.12.41+deb13-amd64 \
|
||||||
--architecture amd64 \
|
--architecture amd64 \
|
||||||
--build-directory /opt/livebuild \
|
--build-directory /opt/livebuild \
|
||||||
--control "${timestamp}" \
|
--control "${timestamp}" \
|
||||||
@@ -280,7 +154,8 @@ jobs:
|
|||||||
--provider-netcup-ipv6 ${{ secrets.CISS_DLB_NETCUP_IPV6 }} \
|
--provider-netcup-ipv6 ${{ secrets.CISS_DLB_NETCUP_IPV6 }} \
|
||||||
--root-password-file /opt/config/password.txt \
|
--root-password-file /opt/config/password.txt \
|
||||||
--ssh-port ${{ secrets.CISS_DLB_SSH_PORT }} \
|
--ssh-port ${{ secrets.CISS_DLB_SSH_PORT }} \
|
||||||
--ssh-pubkey /opt/config
|
--ssh-pubkey /opt/config \
|
||||||
|
--trixie
|
||||||
|
|
||||||
- name: 📥 Checking Centurion Cloud for existing LIVE ISOs.
|
- name: 📥 Checking Centurion Cloud for existing LIVE ISOs.
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -367,11 +242,12 @@ jobs:
|
|||||||
gpg --batch --yes --armor --detach-sign --output "${SIGNATURE_FILE}" "${VAR_ISO_FILE_SHA512}"
|
gpg --batch --yes --armor --detach-sign --output "${SIGNATURE_FILE}" "${VAR_ISO_FILE_SHA512}"
|
||||||
|
|
||||||
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
PRIVATE_FILE="LIVE_ISO_FLV_0.private"
|
VAR_DATE="$(date +%F)"
|
||||||
|
PRIVATE_FILE="LIVE_ISO_TRIXIE_0.private"
|
||||||
touch "${PRIVATE_FILE}"
|
touch "${PRIVATE_FILE}"
|
||||||
cat << EOF >| "${PRIVATE_FILE}"
|
cat << EOF >| "${PRIVATE_FILE}"
|
||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-01; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -381,12 +257,12 @@ jobs:
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "${timestamp}".
|
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"${VAR_ISO_FILE_NAME}"
|
"${VAR_ISO_FILE_NAME}"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"${VAR_ISO_FILE_SHA512}"
|
$(< "${VAR_ISO_FILE_SHA512}")
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
$(< "${SIGNATURE_FILE}")
|
$(< "${SIGNATURE_FILE}")
|
||||||
|
|
||||||
@@ -435,7 +311,7 @@ jobs:
|
|||||||
GIT_SSH_COMMAND: "ssh -p 42842"
|
GIT_SSH_COMMAND: "ssh -p 42842"
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
PRIVATE_FILE="LIVE_ISO_FLV_0.private"
|
PRIVATE_FILE="LIVE_ISO_TRIXIE_0.private"
|
||||||
git add "${PRIVATE_FILE}" || echo "✔️ Nothing to add."
|
git add "${PRIVATE_FILE}" || echo "✔️ Nothing to add."
|
||||||
|
|
||||||
- name: 🔑 Commit and sign changes with CI metadata.
|
- name: 🔑 Commit and sign changes with CI metadata.
|
||||||
@@ -459,7 +335,7 @@ jobs:
|
|||||||
WORKFLOW_ID="${GITHUB_WORKFLOW:-render-md-to-html.yaml}"
|
WORKFLOW_ID="${GITHUB_WORKFLOW:-render-md-to-html.yaml}"
|
||||||
CI_HEADER="X-CI-Metadata: ${GIT_REF}@${GIT_SHA} at ${TIMESTAMP_UTC} on ${HOSTNAME}"
|
CI_HEADER="X-CI-Metadata: ${GIT_REF}@${GIT_SHA} at ${TIMESTAMP_UTC} on ${HOSTNAME}"
|
||||||
|
|
||||||
COMMIT_MSG="DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO FLV 0 [skip ci]
|
COMMIT_MSG="DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 0 [skip ci]
|
||||||
|
|
||||||
${CI_HEADER}
|
${CI_HEADER}
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -9,9 +9,13 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.512.2025.06.06
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 🔐 Generating a Private Live ISO FLV 1.
|
name: 🔐 Generating a Private Live ISO TRIXIE.
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -21,164 +25,34 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
paths:
|
paths:
|
||||||
- '.gitea/trigger/t_generate_PRIVATE_iso_flavour_1.yaml'
|
- '.gitea/trigger/t_generate_PRIVATE_trixie_1.yaml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate-private-ciss-debian-live-iso:
|
generate-private-cdlb-trixie:
|
||||||
name: 🔐 Generating a Private Live ISO FLV 1.
|
name: 🔐 Generating a Private Live ISO TRIXIE.
|
||||||
runs-on: ciss.debian.live.builder.iso.generator
|
runs-on: cdlb.trixie
|
||||||
|
|
||||||
### Run all steps inside Debian Bookworm
|
|
||||||
container:
|
container:
|
||||||
image: debian:bookworm
|
image: debian:trixie
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 🛠️ Basic Image Setup and enable Bookworm Backports.
|
- name: 🛠️ Basic Image Setup.
|
||||||
run: |
|
|
||||||
apt-get update -y
|
|
||||||
apt-get install -y apt-transport-https apt-utils bash ca-certificates openssl sudo
|
|
||||||
echo 'deb https://deb.debian.org/debian bookworm-backports main' \
|
|
||||||
>| /etc/apt/sources.list.d/bookworm-backports.list
|
|
||||||
apt-get update -y
|
|
||||||
apt-get upgrade -y
|
|
||||||
|
|
||||||
- name: 🛠️ Installing Build Tools.
|
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
apt-get update -y
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
apt-get install -y \
|
apt-get update
|
||||||
autoconf \
|
apt-get upgrade -y
|
||||||
automake \
|
apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
apt-utils \
|
||||||
cryptsetup \
|
bash \
|
||||||
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
debootstrap \
|
|
||||||
dosfstools \
|
|
||||||
efibootmgr \
|
|
||||||
gettext \
|
|
||||||
git \
|
git \
|
||||||
gnupg \
|
gnupg \
|
||||||
haveged \
|
openssh-client \
|
||||||
libbz2-dev \
|
openssl \
|
||||||
zlib1g-dev \
|
|
||||||
liblzma-dev \
|
|
||||||
libtool \
|
|
||||||
live-build \
|
|
||||||
parted \
|
|
||||||
pkg-config \
|
|
||||||
ssh \
|
|
||||||
ssl-cert \
|
|
||||||
sudo \
|
sudo \
|
||||||
texinfo \
|
util-linux
|
||||||
wget \
|
|
||||||
whois \
|
|
||||||
|
|
||||||
- name: 🛠️ Build GnuPG from the sources, as the Bookworm GPG does not understand key format 5.
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
urls=(
|
|
||||||
"https://gnupg.org/ftp/gcrypt/npth/npth-1.8.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.55.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.1.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.2.tar.bz2"
|
|
||||||
"https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.8.tar.bz2"
|
|
||||||
)
|
|
||||||
|
|
||||||
wget --https-only https://gnupg.org/signature_key.asc -O signature_key.asc > /dev/null 2>&1
|
|
||||||
gpg --batch --import signature_key.asc
|
|
||||||
|
|
||||||
for url in "${urls[@]}"; do
|
|
||||||
archive_name="${url##*/}"
|
|
||||||
pkg_name="${archive_name%.tar.bz2}"
|
|
||||||
echo "🔄 Processing ${pkg_name}"
|
|
||||||
if [[ ! -f "${archive_name}" ]]; then
|
|
||||||
echo "📥 Downloading: '${archive_name}'."
|
|
||||||
if wget --https-only "${url}" -O "${archive_name}" > /dev/null 2>&1 && wget --https-only "${url}.sig" -O "${archive_name}.sig" > /dev/null 2>&1; then
|
|
||||||
echo "✅ Download successful: '${archive_name}'."
|
|
||||||
else
|
|
||||||
echo "❌ Download NOT successful: '${archive_name}'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Skipping download, package already exists: '${archive_name}'."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! gpg --verify "${archive_name}.sig" "${archive_name}"; then echo "❌ Bad Signature: '${archive_name}'.";exit 1; fi
|
|
||||||
|
|
||||||
if [[ ! -d "${pkg_name}" ]]; then
|
|
||||||
echo "📂 Extracting: '${archive_name}'."
|
|
||||||
if tar -xjf "${archive_name}"; then
|
|
||||||
echo "✅ Extraction successful: '${archive_name}'."
|
|
||||||
else
|
|
||||||
echo "❌ Extraction not successful: '${archive_name}'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Skipping directory, already exists: '${pkg_name}'."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "🏗️ Build and install the package: '${pkg_name}'."
|
|
||||||
cd "${pkg_name}" || { echo "❌ Could not change to '${pkg_name}'."; exit 1; }
|
|
||||||
mkdir -p build
|
|
||||||
cd build || { echo "❌ Could not change to '/build'."; exit 1; }
|
|
||||||
|
|
||||||
sudo ../configure > /dev/null 2>&1 || { echo "❌ '../configure' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
make > /dev/null 2>&1 || { echo "❌ 'make' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
sudo make install > /dev/null 2>&1 || { echo "❌ 'make install' NOT successful for '${pkg_name}'."; exit 1; }
|
|
||||||
|
|
||||||
cd ../.. || { echo "❌ Could not change to '../..'."; exit 1; }
|
|
||||||
|
|
||||||
rm -f "${archive_name}" && rm -f "${archive_name}.sig" && echo "✅ Removed archive: '${pkg_name}'."
|
|
||||||
rm -fr "${pkg_name}" && echo "✅ Removed build artifacts: '${pkg_name}'."
|
|
||||||
echo "✅ Successful build and installation of '${pkg_name}'."
|
|
||||||
echo "-------------------------------------------------------------------------------------"
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f signature_key.asc
|
|
||||||
|
|
||||||
echo "✅ All packages were built and installed successfully."
|
|
||||||
|
|
||||||
mv_bin=(
|
|
||||||
"/usr/bin/gpg"
|
|
||||||
"/usr/bin/gpg-agent"
|
|
||||||
"/usr/bin/gpgconf"
|
|
||||||
"/usr/bin/gpg-connect-agent"
|
|
||||||
"/usr/bin/gpg-wks-client"
|
|
||||||
"/usr/bin/gpg-preset-passphrase"
|
|
||||||
)
|
|
||||||
|
|
||||||
for bin in "${mv_bin[@]}"; do
|
|
||||||
name="${bin##*/}"
|
|
||||||
if [[ -f "${bin}" && -f "/usr/local/bin/${name}" ]]; then
|
|
||||||
if mv "${bin}" "${bin}.debian-backup"; then
|
|
||||||
echo "✅ Moved successfully: '${bin}'."
|
|
||||||
else
|
|
||||||
echo "❌ Moved NOT successfully: '${bin}'."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Does not exist as build binary: '${bin}'."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for bin in "${mv_bin[@]}"; do
|
|
||||||
name="${bin##*/}"
|
|
||||||
if [[ -f "/usr/local/bin/${name}" ]]; then
|
|
||||||
if update-alternatives --install "${bin}" "${name}" "/usr/local/bin/${name}" 100; then
|
|
||||||
echo "✅ 'update-alternatives' successfully: '${bin}'."
|
|
||||||
else
|
|
||||||
echo "❌ 'update-alternatives' NOT successfully: '${bin}'."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "💡 Does not exist: '/usr/local/bin/${name}'."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
sudo ldconfig
|
|
||||||
|
|
||||||
gpgconf --kill all
|
|
||||||
/usr/local/bin/gpg-agent --daemon
|
|
||||||
|
|
||||||
- name: ⚙️ Check GnuPG Version.
|
- name: ⚙️ Check GnuPG Version.
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -268,16 +142,17 @@ jobs:
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
chmod 0755 ciss_live_builder.sh
|
chmod 0755 ciss_live_builder.sh
|
||||||
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
||||||
### Change "--autobuild=" to the specific kernel version you need: 6.12.22+bpo-amd64.
|
### Change "--autobuild=" to the specific kernel version you need: '6.12.41+deb13-amd64'.
|
||||||
./ciss_live_builder.sh \
|
./ciss_live_builder.sh \
|
||||||
--autobuild=6.12.22+bpo-amd64 \
|
--autobuild=6.12.41+deb13-amd64 \
|
||||||
--architecture amd64 \
|
--architecture amd64 \
|
||||||
--build-directory /opt/livebuild \
|
--build-directory /opt/livebuild \
|
||||||
--control "${timestamp}" \
|
--control "${timestamp}" \
|
||||||
--jump-host ${{ secrets.CISS_DLB_JUMP_HOSTS_1 }} \
|
--jump-host ${{ secrets.CISS_DLB_JUMP_HOSTS_1 }} \
|
||||||
--root-password-file /opt/config/password.txt \
|
--root-password-file /opt/config/password.txt \
|
||||||
--ssh-port ${{ secrets.CISS_DLB_SSH_PORT_1 }} \
|
--ssh-port ${{ secrets.CISS_DLB_SSH_PORT_1 }} \
|
||||||
--ssh-pubkey /opt/config
|
--ssh-pubkey /opt/config \
|
||||||
|
--trixie
|
||||||
|
|
||||||
- name: 📥 Checking Centurion Cloud for existing LIVE ISOs.
|
- name: 📥 Checking Centurion Cloud for existing LIVE ISOs.
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -364,11 +239,12 @@ jobs:
|
|||||||
gpg --batch --yes --armor --detach-sign --output "${SIGNATURE_FILE}" "${VAR_ISO_FILE_SHA512}"
|
gpg --batch --yes --armor --detach-sign --output "${SIGNATURE_FILE}" "${VAR_ISO_FILE_SHA512}"
|
||||||
|
|
||||||
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
PRIVATE_FILE="LIVE_ISO_FLV_1.private"
|
VAR_DATE="$(date +%F)"
|
||||||
|
PRIVATE_FILE="LIVE_ISO_TRIXIE_1.private"
|
||||||
touch "${PRIVATE_FILE}"
|
touch "${PRIVATE_FILE}"
|
||||||
cat << EOF >| "${PRIVATE_FILE}"
|
cat << EOF >| "${PRIVATE_FILE}"
|
||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-01; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -378,12 +254,12 @@ jobs:
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "${timestamp}".
|
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"${VAR_ISO_FILE_NAME}"
|
"${VAR_ISO_FILE_NAME}"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"${VAR_ISO_FILE_SHA512}"
|
$(< "${VAR_ISO_FILE_SHA512}")
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
$(< "${SIGNATURE_FILE}")
|
$(< "${SIGNATURE_FILE}")
|
||||||
|
|
||||||
@@ -432,7 +308,7 @@ jobs:
|
|||||||
GIT_SSH_COMMAND: "ssh -p 42842"
|
GIT_SSH_COMMAND: "ssh -p 42842"
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
PRIVATE_FILE="LIVE_ISO_FLV_1.private"
|
PRIVATE_FILE="LIVE_ISO_TRIXIE_1.private"
|
||||||
git add "${PRIVATE_FILE}" || echo "✔️ Nothing to add."
|
git add "${PRIVATE_FILE}" || echo "✔️ Nothing to add."
|
||||||
|
|
||||||
- name: 🔑 Commit and sign changes with CI metadata.
|
- name: 🔑 Commit and sign changes with CI metadata.
|
||||||
@@ -456,7 +332,7 @@ jobs:
|
|||||||
WORKFLOW_ID="${GITHUB_WORKFLOW:-render-md-to-html.yaml}"
|
WORKFLOW_ID="${GITHUB_WORKFLOW:-render-md-to-html.yaml}"
|
||||||
CI_HEADER="X-CI-Metadata: ${GIT_REF}@${GIT_SHA} at ${TIMESTAMP_UTC} on ${HOSTNAME}"
|
CI_HEADER="X-CI-Metadata: ${GIT_REF}@${GIT_SHA} at ${TIMESTAMP_UTC} on ${HOSTNAME}"
|
||||||
|
|
||||||
COMMIT_MSG="DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO FLV 1 [skip ci]
|
COMMIT_MSG="DEPLOY BOT : 🔐 Auto-Generate PRIVATE LIVE ISO TRIXIE 1 [skip ci]
|
||||||
|
|
||||||
${CI_HEADER}
|
${CI_HEADER}
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 💙 Generating a PUBLIC Live ISO.
|
name: 💙 Generating a PUBLIC Live ISO.
|
||||||
|
|
||||||
@@ -271,7 +271,7 @@ jobs:
|
|||||||
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
timestamp=$(date -u +"%Y_%m_%dT%H_%M_%SZ")
|
||||||
### Change "--autobuild=" to the specific kernel version you need: 6.12.22+bpo-amd64.
|
### Change "--autobuild=" to the specific kernel version you need: 6.12.22+bpo-amd64.
|
||||||
./ciss_live_builder.sh \
|
./ciss_live_builder.sh \
|
||||||
--autobuild=6.12.22+bpo-amd64 \
|
--autobuild=6.1.0-37-amd64 \
|
||||||
--architecture amd64 \
|
--architecture amd64 \
|
||||||
--build-directory /opt/livebuild \
|
--build-directory /opt/livebuild \
|
||||||
--control "${timestamp}" \
|
--control "${timestamp}" \
|
||||||
@@ -378,12 +378,12 @@ jobs:
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "${timestamp}".
|
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"${VAR_ISO_FILE_NAME}"
|
"${VAR_ISO_FILE_NAME}"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"${VAR_ISO_FILE_SHA512}"
|
$(< "${VAR_ISO_FILE_SHA512}")
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
$(< "${SIGNATURE_FILE}")
|
$(< "${SIGNATURE_FILE}")
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
# Gitea Workflow: Shell-Script Linting
|
# Gitea Workflow: Shell-Script Linting
|
||||||
#
|
#
|
||||||
@@ -202,11 +202,12 @@ jobs:
|
|||||||
echo -e "⚠️ Linting issues detected:\n"
|
echo -e "⚠️ Linting issues detected:\n"
|
||||||
echo -e "${findings}"
|
echo -e "${findings}"
|
||||||
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
VAR_DATE="$(date +%F)"
|
||||||
PRIVATE_FILE="LINTER_RESULTS.txt"
|
PRIVATE_FILE="LINTER_RESULTS.txt"
|
||||||
touch "${PRIVATE_FILE}"
|
touch "${PRIVATE_FILE}"
|
||||||
cat << EOF >| "${PRIVATE_FILE}"
|
cat << EOF >| "${PRIVATE_FILE}"
|
||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -216,7 +217,7 @@ jobs:
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "${timestamp}".
|
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
|
||||||
|
|
||||||
⚠️ The last linter check was NOT successful. ⚠️
|
⚠️ The last linter check was NOT successful. ⚠️
|
||||||
|
|
||||||
@@ -225,11 +226,12 @@ jobs:
|
|||||||
else
|
else
|
||||||
echo "✅ No issues found in shell scripts."
|
echo "✅ No issues found in shell scripts."
|
||||||
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
VAR_DATE="$(date +%F)"
|
||||||
PRIVATE_FILE="LINTER_RESULTS.txt"
|
PRIVATE_FILE="LINTER_RESULTS.txt"
|
||||||
touch "${PRIVATE_FILE}"
|
touch "${PRIVATE_FILE}"
|
||||||
cat << EOF >| "${PRIVATE_FILE}"
|
cat << EOF >| "${PRIVATE_FILE}"
|
||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -239,7 +241,7 @@ jobs:
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "${timestamp}".
|
This file was automatically generated by the DEPLOY BOT on: "${timestamp}"
|
||||||
|
|
||||||
✅ The last linter check was successful. ✅
|
✅ The last linter check was successful. ✅
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 🛡️ Retrieve DNSSEC status of coresecret.dev.
|
name: 🛡️ Retrieve DNSSEC status of coresecret.dev.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
name: 🔁 Render Graphviz Diagrams.
|
name: 🔁 Render Graphviz Diagrams.
|
||||||
|
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -16,5 +16,6 @@ target/
|
|||||||
*.DS_Store
|
*.DS_Store
|
||||||
*.log
|
*.log
|
||||||
*.ps1
|
*.ps1
|
||||||
|
config.mk
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
|
|||||||
28
.shellcheckrc
Normal file
28
.shellcheckrc
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
encoding=utf-8
|
||||||
|
external-sources=true
|
||||||
|
shell=bash
|
||||||
|
source-path=~/lib
|
||||||
|
source-path=~/scripts
|
||||||
|
source-path=~/var
|
||||||
|
|
||||||
|
enable=avoid-nullary-conditions
|
||||||
|
enable=check-extra-masked-returns
|
||||||
|
enable=check-set-e-suppressed
|
||||||
|
enable=check-unassigned-uppercase
|
||||||
|
enable=deprecate-which
|
||||||
|
enable=quote-safe-variables
|
||||||
|
enable=require-double-brackets
|
||||||
|
enable=require-variable-braces
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -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-LicenseComment="This file is part of the CISS.debian.installer.secure framework."
|
||||||
properties_SPDX-PackageName="CISS.debian.live.builder"
|
properties_SPDX-PackageName="CISS.debian.live.builder"
|
||||||
properties_SPDX-Security-Contact="security@coresecret.eu"
|
properties_SPDX-Security-Contact="security@coresecret.eu"
|
||||||
properties_version="V8.03.644.2025.06.07"
|
properties_version="V8.13.008.2025.08.22"
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -6,7 +6,7 @@ Creator: Person: Marc S. Weidner (Centurion Intelligence Consulting Agency)
|
|||||||
Created: 2025-05-07T12:00:00Z
|
Created: 2025-05-07T12:00:00Z
|
||||||
Package: CISS.debian.live.builder
|
Package: CISS.debian.live.builder
|
||||||
PackageName: CISS.debian.live.builder
|
PackageName: CISS.debian.live.builder
|
||||||
PackageVersion: Master V8.03.644.2025.06.07
|
PackageVersion: Master V8.13.008.2025.08.22
|
||||||
PackageSupplier: Organization: Centurion Intelligence Consulting Agency
|
PackageSupplier: Organization: Centurion Intelligence Consulting Agency
|
||||||
PackageDownloadLocation: https://git.coresecret.dev/msw/CISS.debian.live.builder
|
PackageDownloadLocation: https://git.coresecret.dev/msw/CISS.debian.live.builder
|
||||||
PackageHomePage: https://git.coresecret.dev/msw/CISS.debian.live.builder
|
PackageHomePage: https://git.coresecret.dev/msw/CISS.debian.live.builder
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "2025-06-07T13:59:44Z".
|
This file was automatically generated by the DEPLOY BOT on: "2025-08-22T17:25:58Z"
|
||||||
|
|
||||||
✅ The last linter check was successful. ✅
|
✅ The last linter check was successful. ✅
|
||||||
|
|
||||||
|
|||||||
@@ -9,19 +9,19 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "2025-06-07T13:28:13Z".
|
This file was automatically generated by the DEPLOY BOT on: "2025-08-11T22:40:21Z".
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"ciss-debian-live-2025_06_07T12_48_35Z-amd64.hybrid.iso"
|
"ciss-debian-live-2025_08_11T21_49_56Z-amd64.hybrid.iso"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"ciss-debian-live-2025_06_07T12_48_35Z-amd64.hybrid.iso.sha512"
|
4aa02673b9a8d5b974014eca4371d1ed69b05eaea9e92203cf7c092880833e18812bf31ab053399eda98b7a3da0b76b8dcdaaba892e9f52f836ea9d2b0e09e38
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaEQ+bQAKCRA85KY4hzOw
|
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaJpxVQAKCRA85KY4hzOw
|
||||||
IdnhAQC+NGhgMMPqZgS51p59kCYSoGLDzodY7TtFOJOxLo5LeAD/bgJifC51JFju
|
IZWOAQDJriUoDvDNSQiHbFfW4KVV1E1wqe12eS7GyfVFr9bISwEAoDKhQ85+RiGr
|
||||||
RKy7e3am5Z80cAGZJ1RFliRgjJVZeAU=
|
pCdWqvU8wcfzEIlKIpAgAZVrhX/xRw8=
|
||||||
=P9Qk
|
=wNVV
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-01; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -9,19 +9,19 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "2025-06-07T11:52:28Z".
|
This file was automatically generated by the DEPLOY BOT on: "2025-08-22T16:55:09Z"
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"ciss-debian-live-2025_06_07T11_12_45Z-amd64.hybrid.iso"
|
"ciss-debian-live-2025_08_22T16_11_02Z-amd64.hybrid.iso"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"ciss-debian-live-2025_06_07T11_12_45Z-amd64.hybrid.iso.sha512"
|
35c288d96239804e244cbe99c8ce3895aec39104a7200c2ef7326d38e1ec4eea3bf60b895eaa4d981cb718ae4d27d2d4166f16252b88606a870d14c3db096a37
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaEQn/AAKCRA85KY4hzOw
|
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaKig7QAKCRA85KY4hzOw
|
||||||
IeMFAP0ZsIuEHFz3EgDpk1rN066VZ2nGrx3NvQenvjg5EQsRNAD+MNlJ4JE9zk17
|
IWKWAP0Wlqbi3ArURSGW5m+E+OstdsU7qHjf+e1SVRJ3BGUzaAEAr3ceyHiiA2/7
|
||||||
pvWF+r0l2K7P6CmxlK7WZFU2Hs6KYwc=
|
RlXsvZxNgVDaEVSdjmt99dMrZK7DRws=
|
||||||
=6azh
|
=4Oh3
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-06-01; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
|
||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
@@ -9,19 +9,19 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
This file was automatically generated by the DEPLOY BOT on: "2025-06-07T12:39:29Z".
|
This file was automatically generated by the DEPLOY BOT on: "2025-08-22T17:41:13Z"
|
||||||
|
|
||||||
CISS.debian.live.builder ISO :
|
CISS.debian.live.builder ISO :
|
||||||
"ciss-debian-live-2025_06_07T12_01_03Z-amd64.hybrid.iso"
|
"ciss-debian-live-2025_08_22T16_56_12Z-amd64.hybrid.iso"
|
||||||
CISS.debian.live.builder ISO sha512 :
|
CISS.debian.live.builder ISO sha512 :
|
||||||
"ciss-debian-live-2025_06_07T12_01_03Z-amd64.hybrid.iso.sha512"
|
4925332b61dbd91f0c444624bbe7de586dbd911fbb27b080a99e44ae312c5139afc502d0415d0bef7dfbd1e5461c07e0a0700f7206e746a91cbcb5403ef003e3
|
||||||
CISS.debian.live.builder ISO sha512 sign :
|
CISS.debian.live.builder ISO sha512 sign :
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaEQzAQAKCRA85KY4hzOw
|
iHUEABYKAB0WIQSqYnPMNKGz69afyHA85KY4hzOwIQUCaKiruQAKCRA85KY4hzOw
|
||||||
IedVAQDj71Q0oAweOhYGabzgECIwgIxHPypvidif0fnjucGuIgD+O5XAvFsPnUzQ
|
IdoTAQDqyOBkGA0xDoLsDvjFSaf3tmzz8mD/5qvsDtF6y/rEWwD/dAXzMOdQjxg8
|
||||||
7lXvBLPURbSoa5//sgkXL3Pmik2vvwk=
|
IcK+GK6u4k5/HT5bYlCvTy/WxRb5ggQ=
|
||||||
=TJPq
|
=boDM
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|
||||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=text
|
||||||
115
README.md
115
README.md
@@ -2,7 +2,7 @@
|
|||||||
gitea: none
|
gitea: none
|
||||||
include_toc: true
|
include_toc: true
|
||||||
---
|
---
|
||||||
[](https://git.coresecret.dev/msw/CISS.debian.live.builder)
|
[](https://git.coresecret.dev/msw/CISS.debian.live.builder)
|
||||||
|
|
||||||
[](https://eupl.eu/1.2/en/)
|
[](https://eupl.eu/1.2/en/)
|
||||||
[](https://opensource.org/license/eupl-1-2)
|
[](https://opensource.org/license/eupl-1-2)
|
||||||
@@ -11,8 +11,8 @@ include_toc: true
|
|||||||
[](https://github.com/mvdan/sh)
|
[](https://github.com/mvdan/sh)
|
||||||
[](https://google.github.io/styleguide/shellguide.html)
|
[](https://google.github.io/styleguide/shellguide.html)
|
||||||
|
|
||||||
[](https://docs.gitea.com/)
|
[](https://docs.gitea.com/)
|
||||||
[](https://www.jetbrains.com/store/?section=personal&billing=yearly)
|
[](https://www.jetbrains.com/store/?section=personal&billing=yearly)
|
||||||
[](https://keepassxc.org/)
|
[](https://keepassxc.org/)
|
||||||
[](https://www.netcup.com/de)
|
[](https://www.netcup.com/de)
|
||||||
[](https://coresecret.eu/)
|
[](https://coresecret.eu/)
|
||||||
@@ -25,8 +25,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
This shell wrapper automates the creation of a Debian Bookworm live ISO hardened according to the latest best practices in server
|
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
|
and service security. It integrates into your build pipeline to deliver an isolated, robust environment suitable for
|
||||||
@@ -37,7 +37,7 @@ changes and made publicly available for download. The latest generic ISO is avai
|
|||||||
|
|
||||||
Check out more:
|
Check out more:
|
||||||
* [CenturionNet Services](https://coresecret.eu/cnet/)
|
* [CenturionNet Services](https://coresecret.eu/cnet/)
|
||||||
* [CenturionDNS Resolver](https://dns.eddns.eu/)
|
* [CenturionDNS Resolver](https://eddns.eu/)
|
||||||
* [CenturionDNS Blocklist](https://dns.eddns.eu/blocklists/centurion_titanium_ultimate.txt)
|
* [CenturionDNS Blocklist](https://dns.eddns.eu/blocklists/centurion_titanium_ultimate.txt)
|
||||||
* [CenturionNet Status](https://uptime.coresecret.eu/)
|
* [CenturionNet Status](https://uptime.coresecret.eu/)
|
||||||
* [CenturionMeet](https://talk.e2ee.li/)
|
* [CenturionMeet](https://talk.e2ee.li/)
|
||||||
@@ -70,7 +70,16 @@ separate directory tree, employs `DynamicUser` features, and adheres to strict s
|
|||||||
rating of **``2.6``**). Docker containers used by runners do not run in privileged mode. Security is further enhanced through the use
|
rating of **``2.6``**). Docker containers used by runners do not run in privileged mode. Security is further enhanced through the use
|
||||||
of both UFW software firewalls and dedicated hardware firewall appliances.
|
of both UFW software firewalls and dedicated hardware firewall appliances.
|
||||||
|
|
||||||
## 1.2. Immutable Source-of-Truth System
|
## 1.2. Match Host and Target Versions
|
||||||
|
|
||||||
|
Build, for example, a Debian Trixie live image only on a Debian Trixie host. The build toolchain and boot artifacts are
|
||||||
|
release-specific: ``live-build``, ``live-boot``, ``live-config``, ``debootstrap``, ``kernel/initramfs`` tools, ``mksquashfs``,
|
||||||
|
``GRUB/ISOLINUX``, and even ``dpkg/apt`` often change defaults and formats between releases (e.g., compression modes, SquashFS
|
||||||
|
options, hook ordering, systemd/udev behavior). Building on a different host release commonly yields non-reproducible or even
|
||||||
|
unbootable ISOs (missing modules/firmware, ABI mismatches, divergent paths). Keeping host and target on the same version ensures
|
||||||
|
reproducible builds, matching dependencies, and compatible boot artifacts.
|
||||||
|
|
||||||
|
## 1.3. Immutable Source-of-Truth System
|
||||||
|
|
||||||
This live ISO establishes a secure, fully deterministic, integrity self-verifying boot environment based entirely on static
|
This live ISO establishes a secure, fully deterministic, integrity self-verifying boot environment based entirely on static
|
||||||
source-code definitions. All configurations, system components, and installation routines are embedded during build time and
|
source-code definitions. All configurations, system components, and installation routines are embedded during build time and
|
||||||
@@ -89,7 +98,7 @@ or shell-access, also via the forthcoming `CISS.debian.installer`. Such a versio
|
|||||||
provisions the target device from embedded source artifacts, and reboots into a fully encrypted system image. The system then
|
provisions the target device from embedded source artifacts, and reboots into a fully encrypted system image. The system then
|
||||||
awaits the decryption passphrase input via an embedded Dropbear SSH server (SSH PubKey only) in the initramfs, exposing no ports
|
awaits the decryption passphrase input via an embedded Dropbear SSH server (SSH PubKey only) in the initramfs, exposing no ports
|
||||||
without cryptographic hardened access, while also the `/boot` partition could be encrypted via the built-in support of
|
without cryptographic hardened access, while also the `/boot` partition could be encrypted via the built-in support of
|
||||||
`grub2 (2.12-1~bpo12+1)`.<br>
|
`grub2 (2.12-9)`.<br>
|
||||||
|
|
||||||
This approach provides a fully reproducible, audit-friendly, and tamper-resistant provisioning workflow rooted entirely in
|
This approach provides a fully reproducible, audit-friendly, and tamper-resistant provisioning workflow rooted entirely in
|
||||||
source-defined infrastructure logic.<br>
|
source-defined infrastructure logic.<br>
|
||||||
@@ -103,11 +112,11 @@ After build and configuration, the following audit reports can be generated:
|
|||||||
* **SSH Audit Report**: Verifies SSH daemon configuration against the latest best-practice cipher, KEX, and MAC recommendations.
|
* **SSH Audit Report**: Verifies SSH daemon configuration against the latest best-practice cipher, KEX, and MAC recommendations.
|
||||||
Type `ssh-audit <IP>:<PORT>`. See example report: **[SSH Audit Report](/docs/AUDIT_SSH.md)**
|
Type `ssh-audit <IP>:<PORT>`. See example report: **[SSH Audit Report](/docs/AUDIT_SSH.md)**
|
||||||
|
|
||||||
## 1.3. Preview
|
## 1.4. Preview
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 1.4. Caution. Significant information for those considering using D-I.
|
## 1.5. Caution. Significant information for those considering using D-I.
|
||||||
|
|
||||||
**The Debian Installer (d-i) will ALWAYS boot a new system.**<br>
|
**The Debian Installer (d-i) will ALWAYS boot a new system.**<br>
|
||||||
|
|
||||||
@@ -138,17 +147,24 @@ This means function status of the **CISS.2025.debian.live.builder** ISO after d-
|
|||||||
* Logging (rsyslog, journald) ✘ not active,
|
* Logging (rsyslog, journald) ✘ not active,
|
||||||
* preseed control over the network is possible (but without any protection).
|
* preseed control over the network is possible (but without any protection).
|
||||||
|
|
||||||
## 1.5. Versioning Schema
|
## 1.6. Versioning Schema
|
||||||
|
|
||||||
This project adheres strictly to a structured versioning scheme following the pattern x.y.z-Date.
|
This project adheres strictly to a structured versioning scheme following the pattern x.y.z-Date.
|
||||||
|
|
||||||
Example: `8.03.384.2025.06.03`
|
Example: `V8.13.008.2025.08.22`
|
||||||
|
|
||||||
`x.y.z` represents major (x), minor (y), and patch (z) version increments.
|
`x.y.z` represents major (x), minor (y), and patch (z) version increments.
|
||||||
|
|
||||||
Date (YYYY.MM.DD) denotes the build or release date, facilitating clear tracking of incremental changes and ensuring
|
Date (YYYY.MM.DD) denotes the build or release date, facilitating clear tracking of incremental changes and ensuring
|
||||||
reproducibility and traceability.
|
reproducibility and traceability.
|
||||||
|
|
||||||
|
## 1.7. Keywords
|
||||||
|
|
||||||
|
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
|
||||||
|
"MAY", and "OPTIONAL" in this Repo are to be interpreted as described in [[BCP 14](https://www.rfc-editor.org/info/bcp14)],
|
||||||
|
[[RFC2119](https://datatracker.ietf.org/doc/html/rfc2119)], [[RFC8174](https://datatracker.ietf.org/doc/html/rfc8174)] when,
|
||||||
|
and only when, they appear in all capitals, as shown here.
|
||||||
|
|
||||||
# 2. Features & Rationale
|
# 2. Features & Rationale
|
||||||
|
|
||||||
Below is a breakdown of each hardening component, with a summary of why each is critical to your security posture.
|
Below is a breakdown of each hardening component, with a summary of why each is critical to your security posture.
|
||||||
@@ -382,43 +398,61 @@ apply or revert these controls.
|
|||||||
set -o errexit # Exit script when a command exits with non-zero status (same as "set -e").
|
set -o errexit # Exit script when a command exits with non-zero status (same as "set -e").
|
||||||
set -o errtrace # Inherit ERR traps in subshells (same as "set -E").
|
set -o errtrace # Inherit ERR traps in subshells (same as "set -E").
|
||||||
set -o functrace # Inherit DEBUG and RETURN traps in subshells (same as "set -T").
|
set -o functrace # Inherit DEBUG and RETURN traps in subshells (same as "set -T").
|
||||||
|
set -o ignoreeof # An interactive shell will not exit upon reading EOF.
|
||||||
set -o nounset # Exit script on use of an undefined variable (same as "set -u").
|
set -o nounset # Exit script on use of an undefined variable (same as "set -u").
|
||||||
set -o pipefail # Return the exit status of the last failed command in a pipeline.
|
set -o pipefail # Return the exit status of the last failed command in a pipeline.
|
||||||
set -o noclobber # Prevent overwriting files via redirection (same as "set -C").
|
set -o noclobber # Prevent overwriting files via redirection (same as "set -C").
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* The following `shopt` options are applied at the beginning of the script (see
|
||||||
|
[Bash Manual, The Shopt Builtin](https://www.gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin)):
|
||||||
|
````bash
|
||||||
|
shopt -s failglob # If set, patterns that fail to match filenames during filename expansion result in an expansion error.
|
||||||
|
shopt -s inherit_errexit # If set, command substitution inherits the value of the errexit option instead of unsetting it in the
|
||||||
|
# subshell environment.
|
||||||
|
shopt -s lastpipe # If set, and job control is not active, the shell runs the last command of a pipeline not executed in
|
||||||
|
# the background in the current shell environment.
|
||||||
|
shopt -u expand_aliases # If set, aliases are expanded as described. This option is enabled by default for interactive shells.
|
||||||
|
shopt -u dotglob # If set, Bash includes filenames beginning with a '.' in the results of filename expansion.
|
||||||
|
shopt -u extglob # If set, enable the extended pattern matching features.
|
||||||
|
shopt -u nullglob # If set, filename expansion patterns that match no files expand to nothing and are removed.
|
||||||
|
````
|
||||||
|
|
||||||
* **Rationale**: These options enforce strict error checking and handling, reducing silent failures and ensuring
|
* **Rationale**: These options enforce strict error checking and handling, reducing silent failures and ensuring
|
||||||
predictable script behavior.
|
predictable script behavior.
|
||||||
|
|
||||||
# 4. Prerequisites
|
# 4. Prerequisites
|
||||||
|
|
||||||
* **Host**: Debian Bookworm or newer with `live-build` package installed.
|
* **Host**: Debian Trixie with `live-build` and ``debootstrap`` packages installed.
|
||||||
* **Privileges**: Root or sudo access to execute `ciss_live_builder.sh` and related scripts.
|
* **Privileges**: Root or sudo access to execute `ciss_live_builder.sh` and related scripts.
|
||||||
* **Network**: Outbound access to Debian repositories and PTB NTPsec pool.
|
* **Network**: Outbound access to Debian repositories and PTB NTPsec pool.
|
||||||
|
|
||||||
# 5. Installation & Usage
|
# 5. Installation & Usage
|
||||||
|
|
||||||
# 5.1. Interactive CLI / Dialog Wrapper
|
## 5.1. Interactive CLI / Dialog Wrapper
|
||||||
|
|
||||||
1. Clone the repository:
|
1. Clone the repository:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
git clone https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
cd CISS.debian.live.builder
|
cd CISS.debian.live.builder
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Preparation:
|
2. Preparation:
|
||||||
1. Ensure you are root.
|
1. Ensure you are root.
|
||||||
2. Create the build directory `mkdir /opt/livebuild`.
|
2. Create the build directory `mkdir /opt/livebuild`.
|
||||||
3. Place your desired SSH public key in the `authorized_keys` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
3. Place your desired SSH public key in the `authorized_keys` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
||||||
4. Place your desired Password in the `password.txt` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
4. Place your desired Password in the `password.txt` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
||||||
5. Make any other changes you need to.
|
5. Make any other changes you need to.
|
||||||
|
|
||||||
3. Run the config builder script `./ciss_live_builder.sh` and the integrated `lb build` command (example):
|
3. Run the config builder script `./ciss_live_builder.sh` and the integrated `lb build` command (example):
|
||||||
|
|
||||||
```yaml
|
````bash
|
||||||
chmod 0700 ./ciss_live_builder.sh
|
chmod 0700 ./ciss_live_builder.sh
|
||||||
|
timestamp=$(date -u +%Y-%m-%dT%H:%M:%S%z)
|
||||||
./ciss_live_builder.sh --architecture amd64 \
|
./ciss_live_builder.sh --architecture amd64 \
|
||||||
--build-directory /opt/livebuild \
|
--build-directory /opt/livebuild \
|
||||||
--change-splash hexagon \
|
--change-splash hexagon \
|
||||||
--control 384 \
|
--control "${timestamp}" \
|
||||||
--debug \
|
--debug \
|
||||||
--dhcp-centurion \
|
--dhcp-centurion \
|
||||||
--jump-host 10.0.0.128 [c0de:4711:0815:4242::1] [2abc:4711:0815:4242::1]/64 \
|
--jump-host 10.0.0.128 [c0de:4711:0815:4242::1] [2abc:4711:0815:4242::1]/64 \
|
||||||
@@ -427,8 +461,10 @@ predictable script behavior.
|
|||||||
--reionice-priority 1 2 \
|
--reionice-priority 1 2 \
|
||||||
--root-password-file /opt/gitea/CISS.debian.live.builder/password.txt \
|
--root-password-file /opt/gitea/CISS.debian.live.builder/password.txt \
|
||||||
--ssh-port 4242 \
|
--ssh-port 4242 \
|
||||||
--ssh-pubkey /opt/gitea/CISS.debian.live.builder
|
--ssh-pubkey /opt/gitea/CISS.debian.live.builder \
|
||||||
```
|
--trixie
|
||||||
|
````
|
||||||
|
|
||||||
4. Locate your ISO in the `--build-directory`.
|
4. Locate your ISO in the `--build-directory`.
|
||||||
5. Boot from the ISO and login to the live image via the console, or the multi-layer secured **coresecret** SSH tunnel.
|
5. Boot from the ISO and login to the live image via the console, or the multi-layer secured **coresecret** SSH tunnel.
|
||||||
6. Type `sysp` for the final kernel hardening features.
|
6. Type `sysp` for the final kernel hardening features.
|
||||||
@@ -436,7 +472,46 @@ predictable script behavior.
|
|||||||
8. Finally, audit your environment with `lsadt` for a comprehensive Lynis audit.
|
8. Finally, audit your environment with `lsadt` for a comprehensive Lynis audit.
|
||||||
9. Type `celp` for some shortcuts.
|
9. Type `celp` for some shortcuts.
|
||||||
|
|
||||||
# 5.2. CI/CD Gitea Runner Workflow Example
|
## 5.2. Make Wrapper, Quick Usage
|
||||||
|
|
||||||
|
This repo ships a thin make wrapper around ``./ciss_live_builder.sh``, so you can compose a correctly quoted command and either
|
||||||
|
preview it or run it.
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
|
cd CISS.debian.live.builder
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Preparation:
|
||||||
|
1. Ensure you are root.
|
||||||
|
2. Create the build directory `mkdir /opt/livebuild`.
|
||||||
|
3. Place your desired SSH public key in the `authorized_keys` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
||||||
|
4. Place your desired Password in the `password.txt` file, for example, in the `/opt/gitea/CISS.debian.live.builder` directory.
|
||||||
|
5. Copy and edit the sample and set your options (no spaces around commas in lists):
|
||||||
|
|
||||||
|
````bash
|
||||||
|
cp config.mk.sample config.mk
|
||||||
|
````
|
||||||
|
|
||||||
|
````bash
|
||||||
|
BUILD_DIR=/opt/livebuild
|
||||||
|
ROOT_PASSWORD_FILE=/opt/gitea/CISS.debian.live.builder/password.txt
|
||||||
|
SSH_PORT=4242
|
||||||
|
SSH_PUBKEY=/root/.ssh
|
||||||
|
|
||||||
|
# Optional
|
||||||
|
PROVIDER_NETCUP_IPV6=2001:cdb::1
|
||||||
|
# comma-separated; IPv6 in [] is fine
|
||||||
|
JUMP_HOSTS=[2001:db8::1],[2001:db8::2]
|
||||||
|
````
|
||||||
|
|
||||||
|
3. Dry-run first (prints the exact command): ````make dry-run````
|
||||||
|
|
||||||
|
4. Execute the build: ````make live````
|
||||||
|
|
||||||
|
## 5.3. CI/CD Gitea Runner Workflow Example
|
||||||
|
|
||||||
1. Clone the repository:
|
1. Clone the repository:
|
||||||
|
|
||||||
|
|||||||
@@ -13,93 +13,22 @@
|
|||||||
### Contributions so far see ./docs/CREDITS.md
|
### Contributions so far see ./docs/CREDITS.md
|
||||||
|
|
||||||
### WHY BASH?
|
### WHY BASH?
|
||||||
# Ease of installation.
|
# Ease of installation. No compiling or installing gems, CPAN modules, pip packages, etc. Simple to use and read. Clear syntax
|
||||||
# No compiling or installing gems, CPAN modules, pip packages, etc.
|
# and straightforward output interpretation. Built-in power. Pattern matching, line processing, and regular expression support
|
||||||
# Simple to use and read. Clear syntax and straightforward output interpretation.
|
# are available natively, no external binaries required. Cross-platform consistency. '/bin/bash' is the default shell on most
|
||||||
# Built-in power.
|
# Linux distributions, ensuring scripts run unmodified across systems. macOS compatibility. Since macOS Catalina (10.15), the
|
||||||
# Pattern matching, line processing, and regular expression support are available natively,
|
# default login shell has been zsh, but bash remains available at '/bin/bash'. Windows support. You can use bash via WSL, MSYS2,
|
||||||
# no external binaries required.
|
# or Cygwin on Windows systems.
|
||||||
# Cross-platform consistency.
|
|
||||||
# '/bin/bash' is the default shell on most Linux distributions, ensuring scripts run unmodified across systems.
|
|
||||||
# macOS compatibility.
|
|
||||||
# Since macOS Catalina (10.15), the default login shell has been zsh, but bash remains available at '/bin/bash'.
|
|
||||||
# Windows support.
|
|
||||||
# You can use bash via WSL, MSYS2, or Cygwin on Windows systems.
|
|
||||||
|
|
||||||
### Preliminary checks
|
### CATCH ARGUMENTS AND DECLARE BASIC VARIABLES.
|
||||||
[ -z "${BASH_VERSINFO[0]}" ] && {
|
# shellcheck disable=SC2155
|
||||||
. ./var/global.var.sh; printf "\e[91m❌ Please make sure you are using 'bash'! Bye... \e[0m\n" >&2; exit "${ERR_UNSPPTBASH}"; }
|
declare -girx VAR_START_TIME="${SECONDS}" # Start time of script execution.
|
||||||
[[ ${EUID} -ne 0 ]] && {
|
declare -grx VAR_PARAM_COUNT="$#" # Arguments passed to script.
|
||||||
. ./var/global.var.sh; printf "\e[91m❌ Please make sure you are 'root'! Bye... \e[0m\n" >&2; exit "${ERR_NOT_USER_0}"; }
|
declare -grx VAR_PARAM_STRNG="$*" # Arguments passed to script as string.
|
||||||
[[ $(kill -l | grep -c SIG) -eq 0 ]] && {
|
declare -ag ARY_PARAM_ARRAY=("$@") # Arguments passed to script as an array.
|
||||||
. ./var/global.var.sh; printf "\e[91m❌ Please make sure you are calling the script without leading 'sh'! Bye... \e[0m\n" >&2; exit "${ERR_UNSPPTBASH}"; }
|
declare -grx VAR_SETUP_FILE="${0##*/}" # 'ciss_debian_live_builder.sh'
|
||||||
[[ ${BASH_VERSINFO[0]} -lt 5 ]] && {
|
declare -grx VAR_SETUP_PATH="$(cd "$(dirname "${0}")" && pwd)" # '/opt/git/CISS.debian.live.builder'
|
||||||
. ./var/global.var.sh; printf "\e[91m❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... \e[0m\n" "${BASH_VERSION}" >&2; exit "${ERR_UNSPPTBASH}"; }
|
declare -grx VAR_SETUP_FULL="$(cd "$(dirname "${0}")" && pwd)/${0##*/}" # '/opt/git/CISS.debian.live.builder/ciss_debian_live_builder.sh'
|
||||||
[[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && {
|
|
||||||
. ./var/global.var.sh; printf "\e[91m❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... \e[0m\n" "${BASH_VERSION}" >&2; exit "${ERR_UNSPPTBASH}"; }
|
|
||||||
|
|
||||||
declare -g VAR_HANDLER_AUTOBUILD="false"
|
|
||||||
declare -gr VAR_CONTACT="security@coresecret.eu"
|
|
||||||
declare -gr VAR_VERSION="Master V8.03.644.2025.06.07"
|
|
||||||
|
|
||||||
### VERY EARLY CHECK FOR AUTO-BUILD, CONTACT, USAGE, AND VERSION STRING
|
|
||||||
declare arg
|
|
||||||
if [[ ${#} -eq 0 ]]; then . ./lib/lib_usage.sh; usage; exit 1; fi
|
|
||||||
for arg in "$@"; do case "${arg,,}" in -a=*|--autobuild=*) declare -g VAR_HANDLER_AUTOBUILD=true; declare -g VAR_KERNEL="${arg#*=}";; esac; done
|
|
||||||
for arg in "$@"; do case "${arg,,}" in -c|--contact) printf "\e[95mCISS.debian.live.builder Contact: %s\e[0m\n" "${VAR_CONTACT}"; exit 0;; esac; done
|
|
||||||
for arg in "$@"; do case "${arg,,}" in -h|--help) . ./lib/lib_usage.sh; usage; exit 0;; esac; done
|
|
||||||
for arg in "$@"; do case "${arg,,}" in -v|--version) printf "\e[95mCISS.debian.live.builder Version: %s\e[0m\n" "${VAR_VERSION}"; exit 0;; esac; done
|
|
||||||
unset arg
|
|
||||||
|
|
||||||
### VERY EARLY CHECK FOR XTRACE DEBUGGING
|
|
||||||
if [[ $* == *" --debug "* ]]; then
|
|
||||||
. ./lib/lib_debug.sh
|
|
||||||
debugger "${@}"
|
|
||||||
else
|
|
||||||
declare -grx VAR_EARLY_DEBUG=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
### Advisory Lock
|
|
||||||
exec 127>/var/lock/ciss_live_builder.lock || {
|
|
||||||
. ./var/global.var.sh
|
|
||||||
printf "\e[91m❌ Cannot open lockfile for writing! Bye... \e[0m\n" >&2
|
|
||||||
exit "${ERR_FLOCK_WRTG}"
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! flock -x -n 127; then
|
|
||||||
. ./var/global.var.sh
|
|
||||||
printf "\e[91m❌ Another instance is running! Bye...\e[0m\n" >&2
|
|
||||||
exit "${ERR_FLOCK_COLL}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
### Checking required packages
|
|
||||||
. ./lib/lib_check_pkgs.sh
|
|
||||||
check_pkgs
|
|
||||||
|
|
||||||
### Dialog Output for Initialization
|
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then . ./lib/lib_boot_screen.sh && boot_screen; fi
|
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nUpdating variables ... \nXXX\n05\n" >&3; fi
|
|
||||||
. ./var/global.var.sh
|
|
||||||
. ./var/colors.var.sh
|
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nEnabling Bash Error Handling ... \nXXX\n15\n" >&3; fi
|
|
||||||
### For all options see https://www.gnu.org/software/bash/manual/bash.html#The-Set-Builtin
|
|
||||||
set -o errexit # Exit script when a command exits with non-zero status, the same as "set -e".
|
|
||||||
set -o errtrace # Any traps on ERR are inherited in a subshell environment, the same as "set -E".
|
|
||||||
set -o functrace # Any traps on DEBUG and RETURN are inherited in a subshell environment, the same as "set -T".
|
|
||||||
set -o nounset # Exit script on use of an undefined variable, the same as "set -u".
|
|
||||||
set -o pipefail # Makes pipelines return the exit status of the last command in the pipe that failed.
|
|
||||||
set -o noclobber # Prevent overwriting, the same as "set -C".
|
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nAdditional initialization ... \nXXX\n25\n" >&3; fi
|
|
||||||
### Initialization
|
|
||||||
declare -gr ARGUMENTS_COUNT="$#"
|
|
||||||
declare -gr ARG_STR_ORG_INPUT="$*"
|
|
||||||
#declare -ar ARG_ARY_ORG_INPUT=("$@")
|
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
declare -grx SCRIPT_FULLPATH="$(readlink -f "${BASH_SOURCE[0]:-$0}")"
|
declare -grx SCRIPT_FULLPATH="$(readlink -f "${BASH_SOURCE[0]:-$0}")"
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
@@ -107,71 +36,200 @@ declare -grx SCRIPT_BASEPATH="$(dirname "${SCRIPT_FULLPATH}")"
|
|||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
declare -grx VAR_WORKDIR="$(dirname "${SCRIPT_FULLPATH}")"
|
declare -grx VAR_WORKDIR="$(dirname "${SCRIPT_FULLPATH}")"
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### PRELIMINARY CHECKS.
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nSourcing Libraries ... \nXXX\n50\n" >&3; fi
|
### No ash, dash, ksh, sh.
|
||||||
. ./lib/lib_arg_parser.sh
|
# shellcheck disable=2292
|
||||||
. ./lib/lib_arg_priority_check.sh
|
[ -z "${BASH_VERSINFO[0]}" ] && {
|
||||||
. ./lib/lib_cdi.sh
|
. ./var/global.var.sh
|
||||||
. ./lib/lib_change_splash.sh
|
printf "\e[91m❌ Please make sure you are using 'bash'! Bye... \e[0m\n" >&2
|
||||||
. ./lib/lib_check_dhcp.sh
|
exit "${ERR_UNSPPTBASH}"
|
||||||
. ./lib/lib_check_hooks.sh
|
}
|
||||||
. ./lib/lib_check_kernel.sh
|
|
||||||
. ./lib/lib_check_provider.sh
|
### No zsh.
|
||||||
. ./lib/lib_check_stats.sh
|
[[ -n "${ZSH_VERSION:-}" ]] && {
|
||||||
. ./lib/lib_check_var.sh
|
. ./var/global.var.sh
|
||||||
. ./lib/lib_clean_screen.sh
|
printf "\e[91m❌ Please make sure you are using 'bash'! Bye... \e[0m\n" >&2
|
||||||
. ./lib/lib_clean_up.sh
|
exit "${ERR_UNSPPTBASH}"
|
||||||
. ./lib/lib_copy_integrity.sh
|
}
|
||||||
. ./lib/lib_hardening_root_pw.sh
|
|
||||||
. ./lib/lib_hardening_ssh.sh
|
### Not root.
|
||||||
. ./lib/lib_hardening_ultra.sh
|
[[ ${EUID} -ne 0 ]] && {
|
||||||
. ./lib/lib_helper_ip.sh
|
. ./var/global.var.sh
|
||||||
. ./lib/lib_lb_build_start.sh
|
printf "\e[91m❌ Please make sure you are 'root'! Bye... \e[0m\n" >&2
|
||||||
. ./lib/lib_lb_config_start.sh
|
exit "${ERR_NOT_USER_0}"
|
||||||
. ./lib/lib_lb_config_write.sh
|
}
|
||||||
. ./lib/lib_provider_netcup.sh
|
|
||||||
. ./lib/lib_run_analysis.sh
|
### Check to be not called by sh.
|
||||||
. ./lib/lib_sanitizer.sh
|
# shellcheck disable=2312
|
||||||
. ./lib/lib_trap_on_err.sh
|
[[ $(kill -l | grep -c SIG) -eq 0 ]] && {
|
||||||
. ./lib/lib_trap_on_exit.sh
|
. ./var/global.var.sh
|
||||||
. ./lib/lib_usage.sh
|
printf "\e[91m❌ Please make sure you are calling the script without leading 'sh'! Bye... \e[0m\n" >&2
|
||||||
|
exit "${ERR_UNSPPTBASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
### Check to be not sourced.
|
||||||
|
[[ "${BASH_SOURCE[0]}" != "$0" ]] && {
|
||||||
|
. ./var/global.var.sh
|
||||||
|
printf "\e[91m❌ This script must be executed, not sourced. Please run '%s' directly! Bye... \e[0m\n" "$0" >&2
|
||||||
|
exit "${ERR_UNSPPTBASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
### Minimum Bash version 5.
|
||||||
|
[[ ${BASH_VERSINFO[0]} -lt 5 ]] && {
|
||||||
|
. ./var/global.var.sh
|
||||||
|
printf "\e[91m❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... \e[0m\n" "${BASH_VERSION}" >&2
|
||||||
|
exit "${ERR_UNSPPTBASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
### Minimum Bash version 5.1.
|
||||||
|
[[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && {
|
||||||
|
. ./var/global.var.sh
|
||||||
|
printf "\e[91m❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... \e[0m\n" "${BASH_VERSION}" >&2
|
||||||
|
exit "${ERR_UNSPPTBASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
### No arguments.
|
||||||
|
[[ ${#} -eq 0 ]] && {
|
||||||
|
. ./lib/lib_usage.sh
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
### SOURCING MUST SET EARLY VARIABLES, GUARD_SOURCING(), CHECK_GIT()
|
||||||
|
. ./var/early.var.sh
|
||||||
|
. ./lib/lib_guard_sourcing.sh
|
||||||
|
. ./lib/lib_source_guard.sh
|
||||||
|
source_guard "./lib/lib_git_var.sh"
|
||||||
|
|
||||||
|
### CHECK FOR CONTACT, HELP, VERSION STRING, AND XTRACE DEBUG
|
||||||
|
for arg in "$@"; do case "${arg,,}" in -c|--contact) . ./lib/lib_contact.sh; contact; exit 0;; esac; done
|
||||||
|
for arg in "$@"; do case "${arg,,}" in -h|--help) . ./lib/lib_usage.sh ; usage ; exit 0;; esac; done
|
||||||
|
for arg in "$@"; do case "${arg,,}" in -v|--version) . ./lib/lib_version.sh; version; exit 0;; esac; done
|
||||||
|
|
||||||
|
### ALL CHECKS DONE. READY TO START THE SCRIPT
|
||||||
|
source_guard "./var/bash.var.sh"
|
||||||
|
check_git
|
||||||
|
for arg in "$@"; do case "${arg,,}" in -d|--debug) . ./meta_sources_debug.sh; debugger "${@}";; esac; done
|
||||||
|
declare -gx VAR_SETUP="true"
|
||||||
|
|
||||||
|
### SOURCING VARIABLES
|
||||||
|
[[ "${VAR_SETUP}" == true ]] && {
|
||||||
|
source_guard "./var/color.var.sh"
|
||||||
|
source_guard "./var/global.var.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
### SOURCING LIBRARIES
|
||||||
|
[[ "${VAR_SETUP}" == true ]] && {
|
||||||
|
source_guard "./lib/lib_arg_parser.sh"
|
||||||
|
source_guard "./lib/lib_arg_priority_check.sh"
|
||||||
|
source_guard "./lib/lib_boot_screen.sh"
|
||||||
|
source_guard "./lib/lib_cdi.sh"
|
||||||
|
source_guard "./lib/lib_change_splash.sh"
|
||||||
|
source_guard "./lib/lib_check_dhcp.sh"
|
||||||
|
source_guard "./lib/lib_check_hooks.sh"
|
||||||
|
source_guard "./lib/lib_check_kernel.sh"
|
||||||
|
source_guard "./lib/lib_check_pkgs.sh"
|
||||||
|
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_clean_screen.sh"
|
||||||
|
source_guard "./lib/lib_clean_up.sh"
|
||||||
|
source_guard "./lib/lib_copy_integrity.sh"
|
||||||
|
source_guard "./lib/lib_hardening_root_pw.sh"
|
||||||
|
source_guard "./lib/lib_hardening_ssh.sh"
|
||||||
|
source_guard "./lib/lib_hardening_ultra.sh"
|
||||||
|
source_guard "./lib/lib_helper_ip.sh"
|
||||||
|
source_guard "./lib/lib_lb_build_start.sh"
|
||||||
|
source_guard "./lib/lib_lb_config_start.sh"
|
||||||
|
source_guard "./lib/lib_lb_config_write.sh"
|
||||||
|
source_guard "./lib/lib_lb_config_write_trixie.sh"
|
||||||
|
source_guard "./lib/lib_provider_netcup.sh"
|
||||||
|
source_guard "./lib/lib_run_analysis.sh"
|
||||||
|
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_usage.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
### ADVISORY LOCK
|
||||||
|
exec 127>/var/lock/ciss_live_builder.lock || {
|
||||||
|
printf "\e[91m❌ Cannot open lockfile for writing! Bye... \e[0m\n" >&2
|
||||||
|
exit "${ERR_FLOCK_WRTG}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! flock -x -n 127; then
|
||||||
|
printf "\e[91m❌ Another instance is running! Bye...\e[0m\n" >&2
|
||||||
|
exit "${ERR_FLOCK_COLL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
### CHECK FOR AUTOBUILD MODE
|
||||||
|
for arg in "$@"; do case "${arg,,}" in -a=*|--autobuild=*) declare -gx VAR_HANDLER_AUTOBUILD="true"; declare -gx VAR_KERNEL="${arg#*=}";; esac; done; unset arg
|
||||||
|
for dir in /usr/local/sbin /usr/sbin; do case ":${PATH}:" in *":${dir}:"*) ;; *) PATH="${PATH}:${dir}" ;; esac; done; export PATH; unset dir
|
||||||
|
|
||||||
|
### CHECKING REQUIRED PACKAGES
|
||||||
|
check_pkgs
|
||||||
|
|
||||||
|
### DIALOG OUTPUT FOR INITIALIZATION
|
||||||
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen; fi
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### Updating Status of Dialog Gauge Bar
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nActivate traps ... \nXXX\n55\n" >&3; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nInitialization done ... \nXXX\n15\n" >&3; fi
|
||||||
### Following the CISS Bash naming and ordering scheme
|
|
||||||
|
### Updating Status of Dialog Gauge Bar
|
||||||
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nAdditional initialization ... \nXXX\n30\n" >&3; fi
|
||||||
|
|
||||||
|
### Updating Status of Dialog Gauge Bar
|
||||||
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nActivate traps ... \nXXX\n50\n" >&3; fi
|
||||||
|
### Following the CISS Bash naming and ordering scheme:
|
||||||
trap 'trap_on_exit "$?"' EXIT
|
trap 'trap_on_exit "$?"' EXIT
|
||||||
trap 'trap_on_err "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' ERR
|
trap 'trap_on_err "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' ERR
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### Updating Status of Dialog Gauge Bar
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nSanitizing Arguments ... \nXXX\n70\n" >&3; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nSanitizing Arguments ... \nXXX\n75\n" >&3; fi
|
||||||
arg_check "$@"
|
arg_check "$@"
|
||||||
declare -ar ARY_ARG_SANITIZED=("$@")
|
declare -ar ARY_ARG_SANITIZED=("$@")
|
||||||
declare -gr VAR_ARG_SANITIZED="${ARY_ARG_SANITIZED[*]}"
|
declare -gr VAR_ARG_SANITIZED="${ARY_ARG_SANITIZED[*]}"
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### Updating Status of Dialog Gauge Bar
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nParsing Arguments ... \nXXX\n90\n" >&3; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nParsing Arguments ... \nXXX\n90\n" >&3; fi
|
||||||
arg_parser "$@"
|
arg_parser "$@"
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### Updating Status of Dialog Gauge Bar
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nFinal checks ... \nXXX\n95\n" >&3; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nFinal checks ... \nXXX\n95\n" >&3; fi
|
||||||
clean_ip
|
clean_ip
|
||||||
|
|
||||||
### Updating Status of Dialog Gauge Bar
|
### Updating Status of Dialog Gauge Bar
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then printf "XXX\nInitialization completed ... \nXXX\n100\n" >&3; sleep 1; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then printf "XXX\nInitialization completed ... \nXXX\n100\n" >&3; sleep 1; fi
|
||||||
|
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
### Turn off Dialog Wrapper
|
||||||
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
|
|
||||||
### MAIN Program
|
### MAIN Program
|
||||||
arg_priority_check
|
arg_priority_check
|
||||||
check_stats
|
check_stats
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then check_provider; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then check_provider; fi
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then check_kernel; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then check_kernel; fi
|
||||||
check_hooks
|
check_hooks
|
||||||
hardening_ssh
|
hardening_ssh
|
||||||
lb_config_start
|
lb_config_start
|
||||||
lb_config_write
|
|
||||||
|
|
||||||
|
if [[ "${VAR_SUITE}" == "bookworm" ]]; then
|
||||||
|
|
||||||
|
lb_config_write
|
||||||
|
rm -f "${SCRIPT_BASEPATH}/config/hooks/live/9998_sources_list_trixie.chroot"
|
||||||
|
rm -f "${SCRIPT_BASEPATH}/config/includes.chroot/etc/login.defs"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
lb_config_write_trixie
|
||||||
|
rm -f "${SCRIPT_BASEPATH}/config/hooks/live/0003_install_backports.chroot"
|
||||||
|
rm -f "${SCRIPT_BASEPATH}/config/hooks/live/9998_sources_list_bookworm.chroot"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2164
|
||||||
cd "${VAR_WORKDIR}"
|
cd "${VAR_WORKDIR}"
|
||||||
|
|
||||||
hardening_ultra
|
hardening_ultra
|
||||||
hardening_root_pw
|
hardening_root_pw
|
||||||
change_splash
|
change_splash
|
||||||
|
|||||||
21
config.mk.sample
Normal file
21
config.mk.sample
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-21; 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
|
||||||
|
|
||||||
|
BUILD_DIR ?=
|
||||||
|
PROVIDER_NETCUP_IPV6 ?=
|
||||||
|
ROOT_PASSWORD_FILE ?=
|
||||||
|
SSH_PORT ?=
|
||||||
|
SSH_PUBKEY ?=
|
||||||
|
|
||||||
|
### Comma-separated jump hosts (can be empty):
|
||||||
|
JUMP_HOSTS ?=
|
||||||
|
|
||||||
|
# vim: set ft=make noet ts=8 sw=8
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
@@ -21,7 +21,9 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
|
|||||||
#######################################
|
#######################################
|
||||||
grep_nic_driver_modules() {
|
grep_nic_driver_modules() {
|
||||||
declare _mods
|
declare _mods
|
||||||
# Gather all Driver and sort unique
|
|
||||||
|
### Gather all Driver and sort unique.
|
||||||
|
# shellcheck disable=SC2312
|
||||||
readarray -t _mods < <(
|
readarray -t _mods < <(
|
||||||
lspci -k \
|
lspci -k \
|
||||||
| grep -A2 -i ethernet \
|
| grep -A2 -i ethernet \
|
||||||
@@ -51,7 +53,7 @@ cat << EOF >| /etc/initramfs-tools/modules
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -67,35 +69,45 @@ cat << EOF >| /etc/initramfs-tools/modules
|
|||||||
# raid1
|
# raid1
|
||||||
# sd_mod
|
# sd_mod
|
||||||
|
|
||||||
### QEMU Bochs-compatible virtual machine support
|
### Main btrfs-Stack
|
||||||
bochs
|
|
||||||
|
|
||||||
### Device-mapper core module (required for all dm_* features)
|
|
||||||
dm_mod
|
|
||||||
|
|
||||||
### Device-mapper integrity target (provides integrity checking)
|
|
||||||
dm-integrity
|
|
||||||
|
|
||||||
### Device-mapper crypt target (provides disk encryption)
|
|
||||||
dm-crypt
|
|
||||||
|
|
||||||
### Generic AES block cipher implementation (used by dm-crypt)
|
|
||||||
aes_generic
|
|
||||||
|
|
||||||
### Generic SHA-256 hashing algorithm (used by various crypto and integrity targets)
|
|
||||||
sha256_generic
|
|
||||||
|
|
||||||
### Generic CRC32C checksum implementation (used by btrfs and other filesystems)
|
|
||||||
crc32c_generic
|
|
||||||
|
|
||||||
### Main btrfs filesystem module
|
|
||||||
btrfs
|
btrfs
|
||||||
|
lzo
|
||||||
### Zstandard compression support for btrfs
|
xor
|
||||||
|
xxhash
|
||||||
|
zstd
|
||||||
zstd_compress
|
zstd_compress
|
||||||
|
|
||||||
### XOR parity implementation for RAID functionality
|
### Main ext4-Stack
|
||||||
xor
|
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
|
||||||
|
aes_generic
|
||||||
|
blake2b_generic
|
||||||
|
crc32c_generic
|
||||||
|
libcrc32c
|
||||||
|
sha256_generic
|
||||||
|
sha512_generic
|
||||||
|
|
||||||
|
### QEMU Bochs-compatible virtual machine support
|
||||||
|
bochs
|
||||||
|
|
||||||
### RAID6 parity generation module
|
### RAID6 parity generation module
|
||||||
raid6_pq
|
raid6_pq
|
||||||
@@ -103,6 +115,37 @@ raid6_pq
|
|||||||
### Combined RAID4/5/6 support module
|
### Combined RAID4/5/6 support module
|
||||||
raid456
|
raid456
|
||||||
|
|
||||||
|
### SCSI/SATA-Stack
|
||||||
|
sd_mod
|
||||||
|
sr_mod
|
||||||
|
sg
|
||||||
|
ahci
|
||||||
|
libahci
|
||||||
|
ata_generic
|
||||||
|
libata
|
||||||
|
scsi_mod
|
||||||
|
scsi_dh_alua
|
||||||
|
|
||||||
|
### NVMe-Stack
|
||||||
|
nvme
|
||||||
|
nvme_core
|
||||||
|
|
||||||
|
### USB-Stack
|
||||||
|
xhci_pci
|
||||||
|
xhci_hcd
|
||||||
|
ehci_pci
|
||||||
|
ohci_pci
|
||||||
|
uhci_hcd
|
||||||
|
usb_storage
|
||||||
|
uas
|
||||||
|
|
||||||
|
### Virtual-Machines-Stack
|
||||||
|
virtio_pci
|
||||||
|
virtio_blk
|
||||||
|
virtio_scsi
|
||||||
|
virtio_rng
|
||||||
|
virtio_console
|
||||||
|
|
||||||
### Network Driver Host-machine
|
### Network Driver Host-machine
|
||||||
"${nic_driver}"
|
"${nic_driver}"
|
||||||
|
|
||||||
@@ -116,7 +159,7 @@ cat << 'EOF' >| /etc/initramfs-tools/update-initramfs.conf
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -151,7 +194,7 @@ cat << 'EOF' >| /etc/initramfs-tools/initramfs.conf
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -256,7 +299,7 @@ cat << 'EOF' >> /etc/initramfs-tools/hooks/ciss_debian_live_builder
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
@@ -30,7 +30,7 @@ cat << 'EOF' >| "${src}"
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -39,14 +39,13 @@ authselectmode require
|
|||||||
server ptbtime1.ptb.de iburst nts minpoll 5 maxpoll 9
|
server ptbtime1.ptb.de iburst nts minpoll 5 maxpoll 9
|
||||||
server ptbtime2.ptb.de iburst nts minpoll 5 maxpoll 9
|
server ptbtime2.ptb.de iburst nts minpoll 5 maxpoll 9
|
||||||
server ptbtime3.ptb.de iburst nts minpoll 5 maxpoll 9
|
server ptbtime3.ptb.de iburst nts minpoll 5 maxpoll 9
|
||||||
server ptbtime4.ptb.de iburst nts noselect minpoll 5 maxpoll 9
|
server ptbtime4.ptb.de iburst nts minpoll 5 maxpoll 9
|
||||||
# server nts.netnod.se 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
|
||||||
|
server ntp13.metas.ch iburst nts minpoll 5 maxpoll 9
|
||||||
# server ntp.ripe.net iburst nts minpoll 5 maxpoll 9
|
# server ntp.ripe.net iburst nts minpoll 5 maxpoll 9
|
||||||
# server ntp12.metas.ch iburst nts minpoll 5 maxpoll 9
|
|
||||||
# server ntp2.tecnico.ulisboa.pt iburst nts minpoll 5 maxpoll 9
|
# server ntp2.tecnico.ulisboa.pt iburst nts minpoll 5 maxpoll 9
|
||||||
# server time-c-b.nist.gov iburst nts minpoll 5 maxpoll 9
|
# server time-c-b.nist.gov iburst nts minpoll 5 maxpoll 9
|
||||||
server ntp0.fau.de iburst nts minpoll 5 maxpoll 9
|
|
||||||
|
|
||||||
leapsectz right/UTC
|
leapsectz right/UTC
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ cat << 'EOF' >| /etc/fail2ban/jail.d/centurion-default.conf
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.2025.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.2025.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ ReadOnlyPaths=/
|
|||||||
ReadWritePaths=/var/lib/clamav /var/log/clamav /var/run/clamav /run/clamav
|
ReadWritePaths=/var/lib/clamav /var/log/clamav /var/run/clamav /run/clamav
|
||||||
|
|
||||||
MemoryDenyWriteExecute=yes
|
MemoryDenyWriteExecute=yes
|
||||||
MemoryLimit=512M
|
#MemoryLimit=4096M
|
||||||
CPUShares=512
|
#CPUShares=512
|
||||||
|
|
||||||
RestrictAddressFamilies=AF_INET AF_INET6
|
RestrictAddressFamilies=AF_INET AF_INET6
|
||||||
RestrictNamespaces=yes
|
RestrictNamespaces=yes
|
||||||
@@ -58,8 +58,8 @@ ReadOnlyPaths=/
|
|||||||
ReadWritePaths=/var/lib/clamav /var/log/clamav /var/run/clamav
|
ReadWritePaths=/var/lib/clamav /var/log/clamav /var/run/clamav
|
||||||
|
|
||||||
MemoryDenyWriteExecute=yes
|
MemoryDenyWriteExecute=yes
|
||||||
MemoryLimit=512M
|
#MemoryLimit=4096M
|
||||||
CPUShares=512
|
#CPUShares=512
|
||||||
|
|
||||||
RestrictAddressFamilies=AF_INET AF_INET6
|
RestrictAddressFamilies=AF_INET AF_INET6
|
||||||
RestrictNamespaces=yes
|
RestrictNamespaces=yes
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "
|
|||||||
|
|
||||||
apt-get update -y
|
apt-get update -y
|
||||||
|
|
||||||
apt-get purge -y exim4 exim4-daemon-light exim4-base exim4-config \
|
apt-get purge -y exim4 exim4-daemon-light exim4-base exim4-config qemu-guest-agent rmail
|
||||||
qemu-guest-agent rmail sendmail-base sendmail-bin sendmail-cf sensible-mda sendmail-doc
|
#sendmail-base sendmail-bin sendmail-cf sensible-mda sendmail-doc
|
||||||
|
|
||||||
apt-mark hold exim4 exim4-daemon-light exim4-base exim4-config \
|
apt-mark hold exim4 exim4-daemon-light exim4-base exim4-config qemu-guest-agent rmail
|
||||||
qemu-guest-agent rmail sendmail-base sendmail-bin sendmail-cf sensible-mda sendmail-doc
|
#sendmail-base sendmail-bin sendmail-cf sensible-mda sendmail-doc
|
||||||
|
|
||||||
dpkg --get-selections | grep deinstall >> /tmp/deinstall.log || true
|
dpkg --get-selections | grep deinstall >| /tmp/deinstall.log || true
|
||||||
|
|
||||||
if [[ -s /tmp/deinstall.log ]]; then
|
if [[ -s /tmp/deinstall.log ]]; then
|
||||||
printf "\n"
|
printf "\n"
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ EOF
|
|||||||
|
|
||||||
cp -a /etc/login.defs /root/.ciss/dlb/backup/login.defs.bak
|
cp -a /etc/login.defs /root/.ciss/dlb/backup/login.defs.bak
|
||||||
|
|
||||||
sed -i 's/LOGIN_TIMEOUT 60/LOGIN_TIMEOUT 180/' /etc/login.defs
|
sed -ri 's/^(#?LOGIN_TIMEOUT)[[:space:]]+[0-9]+/\1 180/' /etc/login.defs
|
||||||
sed -i 's/UMASK 022/UMASK 077/' /etc/login.defs
|
sed -i 's/UMASK 022/UMASK 077/' /etc/login.defs
|
||||||
sed -i 's/PASS_MAX_DAYS 99999/PASS_MAX_DAYS 16384/' /etc/login.defs
|
sed -i 's/PASS_MAX_DAYS 99999/PASS_MAX_DAYS 16384/' /etc/login.defs
|
||||||
sed -i 's/PASS_MIN_DAYS 0/PASS_MIN_DAYS 1/' /etc/login.defs
|
sed -i 's/PASS_MIN_DAYS 0/PASS_MIN_DAYS 1/' /etc/login.defs
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ cat << 'EOF' >| /etc/security/pwquality.conf
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ difok = 4
|
|||||||
### Minimum acceptable size for the new password (plus one if
|
### Minimum acceptable size for the new password (plus one if
|
||||||
### credits are not disabled, which is the default). (See pam_cracklib manual.)
|
### credits are not disabled, which is the default). (See pam_cracklib manual.)
|
||||||
### Cannot be set to a lower value than 6.
|
### Cannot be set to a lower value than 6.
|
||||||
minlen = 20
|
minlen = 40
|
||||||
|
|
||||||
### dcredit = 0, ucredit = 0, lcredit = 0, ocredit = 0, minclass = 0
|
### dcredit = 0, ucredit = 0, lcredit = 0, ocredit = 0, minclass = 0
|
||||||
### NIST SP 800-63B advises against rigid complexity rules (numbers, symbols, uppercase)
|
### NIST SP 800-63B advises against rigid complexity rules (numbers, symbols, uppercase)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -50,13 +50,18 @@ EOF
|
|||||||
############################################################### /etc/audit/rules.d/20-dont-audit.rules
|
############################################################### /etc/audit/rules.d/20-dont-audit.rules
|
||||||
cat << EOF >| /etc/audit/rules.d/20-dont-audit.rules
|
cat << EOF >| /etc/audit/rules.d/20-dont-audit.rules
|
||||||
## This is for don't audit rules. We put these early because audit
|
## This is for don't audit rules. We put these early because audit
|
||||||
### is a first match wins system. Uncomment the rules you want.
|
## is a first match wins system. Uncomment the rules you want.
|
||||||
|
|
||||||
## Cron jobs fill the logs with stuff we normally don't want
|
## Cron jobs fill the logs with stuff we normally don't want
|
||||||
-a never,user -F subj_type=crond_t
|
-a never,user
|
||||||
|
|
||||||
## This prevents chrony from overwhelming the logs
|
## This prevents chrony from overwhelming the logs
|
||||||
-a never,exit -F arch=x86_64 -S adjtimex -F auid=unset -F uid=chrony -F subj_type=chronyd_t
|
-a never,exit -F arch=b64 -S adjtimex -F exe=/usr/sbin/chronyd
|
||||||
|
-a never,exit -F arch=b32 -S adjtimex -F exe=/usr/sbin/chronyd
|
||||||
|
|
||||||
|
## Human-attributable time changes
|
||||||
|
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -F auid>=1000 -F auid!=4294967295 -k time-change
|
||||||
|
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S clock_settime -F auid>=1000 -F auid!=4294967295 -k time-change
|
||||||
|
|
||||||
### This is not very interesting and wastes a lot of space if
|
### This is not very interesting and wastes a lot of space if
|
||||||
### the server is public facing
|
### the server is public facing
|
||||||
@@ -75,8 +80,8 @@ EOF
|
|||||||
############################################################### /etc/audit/rules.d/22-ignore-chrony.rules
|
############################################################### /etc/audit/rules.d/22-ignore-chrony.rules
|
||||||
cat << EOF >| /etc/audit/rules.d/22-ignore-chrony.rules
|
cat << EOF >| /etc/audit/rules.d/22-ignore-chrony.rules
|
||||||
## This rule suppresses the time-change event when chrony does time updates
|
## This rule suppresses the time-change event when chrony does time updates
|
||||||
-a never,exit -F arch=b64 -S adjtimex -F auid=unset -F uid=chrony -F subj_type=chronyd_t
|
-a never,exit -F arch=b64 -S adjtimex -F auid=unset -F uid=_chrony
|
||||||
-a never,exit -F arch=b32 -S adjtimex -F auid=unset -F uid=chrony -F subj_type=chronyd_t
|
-a never,exit -F arch=b32 -S adjtimex -F auid=unset -F uid=_chrony
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
############################################################### /etc/audit/rules.d/30-ospp-v42-1-create-failed.rules
|
############################################################### /etc/audit/rules.d/30-ospp-v42-1-create-failed.rules
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
set -C -e -u -o pipefail
|
set -C -e -u -o pipefail
|
||||||
@@ -28,8 +28,8 @@ cat << 'EOF' >| /etc/apt/sources.list
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.2025.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.2025.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
#-----------------------------------------------------------------------------------------#
|
#-----------------------------------------------------------------------------------------#
|
||||||
# OFFICIAL DEBIAN REPOS
|
# OFFICIAL DEBIAN REPOS
|
||||||
126
config/hooks/live/9998_sources_list_trixie.chroot
Normal file
126
config/hooks/live/9998_sources_list_trixie.chroot
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-12; 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 -C -e -u -o pipefail
|
||||||
|
|
||||||
|
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
|
||||||
|
# sleep 1
|
||||||
|
|
||||||
|
cd /root
|
||||||
|
|
||||||
|
mkdir -p /etc/apt/apt.conf.d
|
||||||
|
|
||||||
|
cat << EOF >| /etc/apt/apt.conf.d/00-deb822-prefer
|
||||||
|
// Make APT ignore the classic /etc/apt/sources.list entirely.
|
||||||
|
Dir::Etc {
|
||||||
|
sourcelist "/dev/null"; // classic list is ignored
|
||||||
|
sourceparts "/etc/apt/sources.list.d"; // deb822 *.sources remain authoritative
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [[ ! -f /etc/apt/sources.list.d/trixie.sources ]]; then
|
||||||
|
cat << EOF >| /etc/apt/sources.list.d/trixie.sources
|
||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /etc/apt/sources.list.d/trixie-security.sources ]]; then
|
||||||
|
cat << EOF >| /etc/apt/sources.list.d/trixie-security.sources
|
||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://security.debian.org/debian-security/
|
||||||
|
Suites: trixie-security
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /etc/apt/sources.list.d/trixie-updates.sources ]]; then
|
||||||
|
cat << EOF >| /etc/apt/sources.list.d/trixie-updates.sources
|
||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie-updates
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ ! -f /etc/apt/sources.list.d/trixie-backports.sources ]]; then
|
||||||
|
cat << EOF >| /etc/apt/sources.list.d/trixie-backports.sources
|
||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie-backports
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
|||||||
15
config/includes.chroot/etc/apt/sources.list
Normal file
15
config/includes.chroot/etc/apt/sources.list
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-12; 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
|
||||||
|
|
||||||
|
# File: /etc/apt/sources.list
|
||||||
|
# Intentionally empty, disable classic sources.list generation (deb822 in use).
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie-backports
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://security.debian.org/debian-security/
|
||||||
|
Suites: trixie-security
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie-updates
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
18
config/includes.chroot/etc/apt/sources.list.d/trixie.sources
Normal file
18
config/includes.chroot/etc/apt/sources.list.d/trixie.sources
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-11; 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
|
||||||
|
|
||||||
|
Types: deb deb-src
|
||||||
|
URIs: https://deb.debian.org/debian/
|
||||||
|
Suites: trixie
|
||||||
|
Components: main contrib non-free non-free-firmware
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
209
config/includes.chroot/etc/login.defs
Normal file
209
config/includes.chroot/etc/login.defs
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
# SPDX-Version: 3.0
|
||||||
|
# SPDX-CreationInfo: 2025-08-12; 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
|
||||||
|
|
||||||
|
#
|
||||||
|
# /etc/login.defs - Configuration control definitions for the shadow package.
|
||||||
|
#
|
||||||
|
|
||||||
|
# REQUIRED for useradd/userdel/usermod
|
||||||
|
# Directory where mailboxes reside, _or_ name of file, relative to the
|
||||||
|
# home directory. If you _do_ define MAIL_DIR and MAIL_FILE,
|
||||||
|
# MAIL_DIR takes precedence.
|
||||||
|
#
|
||||||
|
# Essentially:
|
||||||
|
# - MAIL_DIR defines the location of users mail spool files
|
||||||
|
# (for mbox use) by appending the username to MAIL_DIR as defined
|
||||||
|
# below.
|
||||||
|
# - MAIL_FILE defines the location of the users mail spool files as the
|
||||||
|
# fully-qualified filename obtained by prepending the user home
|
||||||
|
# directory before $MAIL_FILE
|
||||||
|
#
|
||||||
|
# NOTE: This is no more used for setting up users MAIL environment variable
|
||||||
|
# which is, starting from shadow 4.0.12-1 in Debian, entirely the
|
||||||
|
# job of the pam_mail PAM modules
|
||||||
|
# See default PAM configuration files provided for
|
||||||
|
# login, su, etc.
|
||||||
|
#
|
||||||
|
# This is a temporary situation: setting these variables will soon
|
||||||
|
# move to /etc/default/useradd and the variables will then be
|
||||||
|
# no more supported
|
||||||
|
MAIL_DIR /var/mail
|
||||||
|
#MAIL_FILE .mail
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable display of unknown usernames when login(1) failures are recorded.
|
||||||
|
#
|
||||||
|
# WARNING: Unknown usernames may become world readable.
|
||||||
|
# See #290803 and #298773 for details about how this could become a security
|
||||||
|
# concern
|
||||||
|
LOG_UNKFAIL_ENAB no
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable logging of successful logins
|
||||||
|
#
|
||||||
|
LOG_OK_LOGINS yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# If defined, file which maps tty line to TERM environment parameter.
|
||||||
|
# Each line of the file is in a format similar to "vt100 tty01".
|
||||||
|
#
|
||||||
|
#TTYTYPE_FILE /etc/ttytype
|
||||||
|
|
||||||
|
#
|
||||||
|
# If defined, file which inhibits all the usual chatter during the login
|
||||||
|
# sequence. If a full pathname, then hushed mode will be enabled if the
|
||||||
|
# user's name or shell are found in the file. If not a full pathname, then
|
||||||
|
# hushed mode will be enabled if the file exists in the user's home directory.
|
||||||
|
#
|
||||||
|
HUSHLOGIN_FILE .hushlogin
|
||||||
|
#HUSHLOGIN_FILE /etc/hushlogins
|
||||||
|
|
||||||
|
#
|
||||||
|
# *REQUIRED* The default PATH settings, for superuser and normal users.
|
||||||
|
#
|
||||||
|
# (they are minimal, add the rest in the shell startup files)
|
||||||
|
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
|
||||||
|
|
||||||
|
#
|
||||||
|
# Terminal permissions for terminals after login(1).
|
||||||
|
# These settings are ignored for remote and other logins.
|
||||||
|
#
|
||||||
|
# TTYGROUP Login tty will be assigned this group ownership.
|
||||||
|
# TTYPERM Login tty will be set to this permission.
|
||||||
|
#
|
||||||
|
#TTYGROUP tty
|
||||||
|
TTYPERM 0600
|
||||||
|
|
||||||
|
#
|
||||||
|
# Login configuration initializations:
|
||||||
|
#
|
||||||
|
# ERASECHAR Terminal ERASE character ('\010' = backspace).
|
||||||
|
# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
|
||||||
|
#
|
||||||
|
# The ERASECHAR and KILLCHAR are used only on System V machines.
|
||||||
|
#
|
||||||
|
ERASECHAR 0177
|
||||||
|
KILLCHAR 025
|
||||||
|
|
||||||
|
# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
|
||||||
|
# home directories.
|
||||||
|
HOME_MODE 0700
|
||||||
|
|
||||||
|
#
|
||||||
|
# Password aging controls:
|
||||||
|
#
|
||||||
|
# PASS_MAX_DAYS Maximum number of days a password may be used.
|
||||||
|
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
|
||||||
|
# PASS_WARN_AGE Number of days warning given before a password expires.
|
||||||
|
#
|
||||||
|
PASS_MAX_DAYS 16384
|
||||||
|
PASS_MIN_DAYS 1
|
||||||
|
PASS_WARN_AGE 128
|
||||||
|
|
||||||
|
#
|
||||||
|
# Min/max values for automatic uid selection in useradd(8)
|
||||||
|
#
|
||||||
|
UID_MIN 1000
|
||||||
|
UID_MAX 60000
|
||||||
|
# System accounts
|
||||||
|
#SYS_UID_MIN 101
|
||||||
|
#SYS_UID_MAX 999
|
||||||
|
# Extra per user uids
|
||||||
|
SUB_UID_MIN 100000
|
||||||
|
SUB_UID_MAX 600100000
|
||||||
|
SUB_UID_COUNT 65536
|
||||||
|
|
||||||
|
#
|
||||||
|
# Min/max values for automatic gid selection in groupadd(8)
|
||||||
|
#
|
||||||
|
GID_MIN 1000
|
||||||
|
GID_MAX 60000
|
||||||
|
# System accounts
|
||||||
|
#SYS_GID_MIN 101
|
||||||
|
#SYS_GID_MAX 999
|
||||||
|
# Extra per user group ids
|
||||||
|
SUB_GID_MIN 100000
|
||||||
|
SUB_GID_MAX 600100000
|
||||||
|
SUB_GID_COUNT 65536
|
||||||
|
|
||||||
|
#
|
||||||
|
# Max number of login(1) retries if password is bad
|
||||||
|
# This will most likely be overriden by PAM, since the default pam_unix module
|
||||||
|
# has it's own built in of 3 retries. However, this is a safe fallback in case
|
||||||
|
# you are using an authentication module that does not enforce PAM_MAXTRIES.
|
||||||
|
#
|
||||||
|
LOGIN_RETRIES 5
|
||||||
|
|
||||||
|
#
|
||||||
|
# Max time in seconds for login(1)
|
||||||
|
#
|
||||||
|
LOGIN_TIMEOUT 180
|
||||||
|
|
||||||
|
#
|
||||||
|
# Which fields may be changed by regular users using chfn(1) - use
|
||||||
|
# any combination of letters "frwh" (full name, room number, work
|
||||||
|
# phone, home phone). If not defined, no changes are allowed.
|
||||||
|
# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
|
||||||
|
#
|
||||||
|
CHFN_RESTRICT rwh
|
||||||
|
|
||||||
|
#
|
||||||
|
# If set to MD5, MD5-based algorithm will be used for encrypting password
|
||||||
|
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
|
||||||
|
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
|
||||||
|
# If set to BCRYPT, BCRYPT-based algorithm will be used for encrypting password
|
||||||
|
# If set to YESCRYPT, YESCRYPT-based algorithm will be used for encrypting password
|
||||||
|
# If set to DES, DES-based algorithm will be used for encrypting password (default)
|
||||||
|
# MD5 and DES should not be used for new hashes, see crypt(5) for recommendations.
|
||||||
|
# Overrides the MD5_CRYPT_ENAB option
|
||||||
|
#
|
||||||
|
# Note: It is recommended to use a value consistent with
|
||||||
|
# the PAM modules configuration.
|
||||||
|
#
|
||||||
|
ENCRYPT_METHOD YESCRYPT
|
||||||
|
|
||||||
|
#
|
||||||
|
# Should login be allowed if we can't cd to the home directory?
|
||||||
|
# Default is no.
|
||||||
|
#
|
||||||
|
DEFAULT_HOME yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# The pwck(8) utility emits a warning for any system account with a home
|
||||||
|
# directory that does not exist. Some system accounts intentionally do
|
||||||
|
# not have a home directory. Such accounts may have this string as
|
||||||
|
# their home directory in /etc/passwd to avoid a spurious warning.
|
||||||
|
#
|
||||||
|
NONEXISTENT /nonexistent
|
||||||
|
|
||||||
|
#
|
||||||
|
# If defined, this command is run when removing a user.
|
||||||
|
# It should remove any at/cron/print jobs etc. owned by
|
||||||
|
# the user to be removed (passed as the first argument).
|
||||||
|
#
|
||||||
|
#USERDEL_CMD /usr/sbin/userdel_local
|
||||||
|
|
||||||
|
#
|
||||||
|
# If set to yes, userdel(8) will remove the user's group if it contains no more
|
||||||
|
# members, and useradd(8) will create by default a group with the name of the
|
||||||
|
# user.
|
||||||
|
#
|
||||||
|
# Other former uses of this variable are not used in PAM environments, such as
|
||||||
|
# Debian.
|
||||||
|
#
|
||||||
|
USERGROUPS_ENAB yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# Added by CISS.debian.live.builder for redundance
|
||||||
|
umask 077
|
||||||
|
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=conf
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
### https://www.ssh-audit.com/
|
### 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
|
### ssh -Q cipher | cipher-auth | compression | kex | kex-gss | key | key-cert | key-plain | key-sig | mac | protocol-version | sig
|
||||||
@@ -31,12 +31,12 @@ ListenAddress ::
|
|||||||
Port MUST_BE_CHANGED
|
Port MUST_BE_CHANGED
|
||||||
AllowUsers root
|
AllowUsers root
|
||||||
UseDNS no
|
UseDNS no
|
||||||
### Force a key exchange after transferring 1 GiB of data or 1 hour of session time,
|
### Force a key exchange after transferring 1 GiB of data or 1 hour of session time, whichever occurs first.
|
||||||
### whichever occurs first.
|
|
||||||
RekeyLimit 1G 1h
|
RekeyLimit 1G 1h
|
||||||
|
|
||||||
HostKey /etc/ssh/ssh_host_ed25519_key
|
HostKey /etc/ssh/ssh_host_ed25519_key
|
||||||
HostKey /etc/ssh/ssh_host_rsa_key
|
HostKey /etc/ssh/ssh_host_rsa_key
|
||||||
|
TrustedUserCAKeys none
|
||||||
|
|
||||||
PubkeyAuthentication yes
|
PubkeyAuthentication yes
|
||||||
PermitRootLogin prohibit-password
|
PermitRootLogin prohibit-password
|
||||||
@@ -51,7 +51,7 @@ MaxSessions 2
|
|||||||
MaxStartups 08:64:16
|
MaxStartups 08:64:16
|
||||||
### Restrict each individual source IP to only 4 unauthenticated connection slot
|
### Restrict each individual source IP to only 4 unauthenticated connection slot
|
||||||
### in the concurrent MaxStartups pool, preventing one IP from monopolizing slots.
|
### in the concurrent MaxStartups pool, preventing one IP from monopolizing slots.
|
||||||
PerSourceMaxStartups 4
|
PerSourceMaxStartups 8
|
||||||
ClientAliveInterval 300
|
ClientAliveInterval 300
|
||||||
ClientAliveCountMax 2
|
ClientAliveCountMax 2
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
### Version Master V8.03.644.2025.06.07
|
### Version Master V8.13.008.2025.08.22
|
||||||
|
|
||||||
### https://docs.kernel.org/
|
### https://docs.kernel.org/
|
||||||
### https://github.com/a13xp0p0v/kernel-hardening-checker/
|
### https://github.com/a13xp0p0v/kernel-hardening-checker/
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
declare -gr VERSION="Master V8.03.644.2025.06.07"
|
declare -gr VERSION="Master V8.13.008.2025.08.22"
|
||||||
|
|
||||||
### VERY EARLY CHECK FOR DEBUGGING
|
### VERY EARLY CHECK FOR DEBUGGING
|
||||||
if [[ $* == *" --debug "* ]]; then
|
if [[ $* == *" --debug "* ]]; then
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <cendev@coresecret.eu>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.2025.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.2025.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
Include /etc/ssh/sshd_config.d/*.conf
|
Include /etc/ssh/sshd_config.d/*.conf
|
||||||
|
|||||||
@@ -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/
|
# Please consider donating to my work at: https://coresecret.eu/spenden/
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
# Written by: ./preseed_hash_generator.sh Version: Master V8.03.644.2025.06.07 at: 10:18:37.9542
|
# Written by: ./preseed_hash_generator.sh Version: Master V8.13.008.2025.08.22 at: 10:18:37.9542
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#!/bin/bash
|
|
||||||
# SPDX-Version: 3.0
|
# SPDX-Version: 3.0
|
||||||
# SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# 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-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
|
||||||
@@ -10,32 +9,20 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
|
||||||
|
|
||||||
# Note: PS1 and umask are already set in /etc/profile. You should not
|
|
||||||
# need this unless you want different defaults for root.
|
|
||||||
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
|
|
||||||
# umask 022
|
|
||||||
|
|
||||||
# You may uncomment the following lines if you want `ls' to be colorized:
|
|
||||||
# export LS_OPTIONS='--color=auto'
|
|
||||||
# eval "$(dircolors)"
|
|
||||||
# alias ls='ls $LS_OPTIONS'
|
|
||||||
# alias ll='ls $LS_OPTIONS -l'
|
|
||||||
# alias l='ls $LS_OPTIONS -lA'
|
|
||||||
#
|
|
||||||
# Some more alias to avoid making mistakes:
|
|
||||||
# alias rm='rm -i'
|
|
||||||
# alias cp='cp -i'
|
|
||||||
# alias mv='mv -i'
|
|
||||||
|
|
||||||
[[ $- != *i* ]] && return
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
trap ' "${SHELL}" /root/.ciss/clean_logout.sh ' 0
|
### Never use errexit/pipefail in interactive shells
|
||||||
|
set +o errexit +o pipefail
|
||||||
|
|
||||||
|
trap ' "${SHELL}" /root/.ciss/clean_logout.sh ' EXIT
|
||||||
source /root/.ciss/alias
|
source /root/.ciss/alias
|
||||||
|
source /root/.ciss/f2bchk.sh
|
||||||
source /root/.ciss/shortcuts
|
source /root/.ciss/shortcuts
|
||||||
source /root/.ciss/scan_libwrap
|
source /root/.ciss/scan_libwrap
|
||||||
|
|
||||||
|
### Never use 'errexit' | 'nounset' | 'pipefail' in interactive shells.
|
||||||
|
set +o errexit +o nounset +o pipefail
|
||||||
|
|
||||||
### History
|
### History
|
||||||
touch /tmp/.bash_history
|
touch /tmp/.bash_history
|
||||||
chmod 0660 /tmp/.bash_history
|
chmod 0660 /tmp/.bash_history
|
||||||
@@ -54,27 +41,20 @@ export CMAG='\033[1;95m'
|
|||||||
export CCYA='\033[1;96m'
|
export CCYA='\033[1;96m'
|
||||||
export CWHI='\033[1;97m'
|
export CWHI='\033[1;97m'
|
||||||
export CRES='\033[0m'
|
export CRES='\033[0m'
|
||||||
|
export NL='\n'
|
||||||
#if [[ "${UID}" -eq 0 ]]; then
|
|
||||||
# export user_color="${CRED}"
|
|
||||||
#else
|
|
||||||
# export user_color="${CGRE}"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
### Define bash colorful prompt
|
### Define bash colorful prompt
|
||||||
# PS1="${user_color}\d${CRES}|${user_color}\u${CRES}@${CMAG}\h${CRES}:${CCYA}\w${CRES}/>>\$(if [[ \$? -eq 0 ]]; then echo -e \"${CGRE}\$?${CRES}\"; else echo -e \"${CRED}\$?${CRES}\"; fi)|~\$ "
|
export PS1="\
|
||||||
PS1="\
|
\[\033[1;91m\]\d\[\033[0m\]|\
|
||||||
\[\033[1;91m\]\d\[\033[0m\]|\[\033[1;91m\]\u\[\033[0m\]@\
|
\[\033[1;91m\]\u\[\033[0m\]@\
|
||||||
\[\033[1;95m\]\h\[\033[0m\]:\
|
\[\033[1;95m\]\h\[\033[0m\]:\
|
||||||
\[\033[1;96m\]\w\[\033[0m\]/>>\
|
\[\033[1;96m\]\w\[\033[0m\]/>>\
|
||||||
\$(if [[ \$? -eq 0 ]]; then \
|
\$(if [[ \$? -eq 0 ]]; then \
|
||||||
# Show exit status in green if zero
|
|
||||||
echo -e \"\[\033[1;92m\]\$?\[\033[0m\]\"; \
|
echo -e \"\[\033[1;92m\]\$?\[\033[0m\]\"; \
|
||||||
else \
|
else \
|
||||||
# Show exit status in red otherwise
|
|
||||||
echo -e \"\[\033[1;91m\]\$?\[\033[0m\]\"; \
|
echo -e \"\[\033[1;91m\]\$?\[\033[0m\]\"; \
|
||||||
fi)\
|
fi)\
|
||||||
|~\$ "
|
\$(if [[ \$(id -u) -eq 0 ]]; then echo -e \" \[\033[1;91m\]#\[\033[0m\] \"; else echo -e \" \[\033[1;92m\]\\\$\[\033[0m\] \"; fi)"
|
||||||
|
|
||||||
### Overwrite Protection
|
### Overwrite Protection
|
||||||
set -o noclobber
|
set -o noclobber
|
||||||
@@ -82,11 +62,23 @@ alias cp="cp -iv"
|
|||||||
alias mv='mv -iv'
|
alias mv='mv -iv'
|
||||||
alias rm='rm -iv'
|
alias rm='rm -iv'
|
||||||
|
|
||||||
# Welcome message after login
|
### Welcome message after login
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "\e[91m🔐 Coresecret Channel Established. \e[0m\n"
|
printf "\e[91m🔐 Coresecret Channel Established. \e[0m\n"
|
||||||
printf "\e[92m✅ Welcome back\e[0m"; printf "\e[95m '%s' \e[0m" "${USER}"; printf "\e[92m! Type\e[0m"; printf "\e[95m 'celp'\e[0m"; printf "\e[92m for shortcuts. \e[0m\n"
|
printf "\e[92m✅ Welcome back\e[0m"
|
||||||
|
printf "\e[95m '%s' \e[0m" "${USER}"; printf "\e[92m! Type\e[0m"; printf "\e[95m 'celp'\e[0m"; printf "\e[92m for shortcuts. \e[0m\n"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
|
|
||||||
|
### Welcome message after login.
|
||||||
|
#printf "\n"
|
||||||
|
#printf "%s🔐 Coresecret Channel Established. %s%s" "${CRED}" "${CRES}" "${NL}"
|
||||||
|
#printf "%s✅ Welcome back %s " "${CGRE}" "${CRES}"
|
||||||
|
#printf "%s'%s'%s" "${CMAG}" "${USER}" "${CRES}"
|
||||||
|
#printf "%s! Type%s " "${CGRE}" "${CRES}"
|
||||||
|
#printf "%s'celp'%s " "${CMAG}" "${CRES}"
|
||||||
|
#printf "%sfor shortcuts. %s%s" "${CGRE}" "${CRES}" "${NL}"
|
||||||
|
#printf "\n"
|
||||||
|
#printf "\n"
|
||||||
|
|
||||||
# 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
|
||||||
|
|||||||
@@ -11,16 +11,6 @@
|
|||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
########################################################################################### Alpha
|
########################################################################################### Alpha
|
||||||
#######################################
|
|
||||||
# Outputs a 16-character random printable string
|
|
||||||
# Arguments:
|
|
||||||
# None
|
|
||||||
#######################################
|
|
||||||
genstring() {
|
|
||||||
(haveged -n 1000 -f - 2>/dev/null | tr -cd '[:graph:]' | fold -w 16 && echo ) | head
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generates 1,048,576 random bytes into a timestamped file
|
|
||||||
alias genkeyfile='haveged -n 1048576 >| /tmp/secure_keyfile_$(date +%s)'
|
alias genkeyfile='haveged -n 1048576 >| /tmp/secure_keyfile_$(date +%s)'
|
||||||
|
|
||||||
########################################################################################### Bash
|
########################################################################################### Bash
|
||||||
@@ -60,6 +50,7 @@ alias aptupd='apt update'
|
|||||||
alias aptupg='apt upgrade'
|
alias aptupg='apt upgrade'
|
||||||
alias apti='apt install'
|
alias apti='apt install'
|
||||||
alias aptp='apt purge'
|
alias aptp='apt purge'
|
||||||
|
alias aptpp='dpkg --purge'
|
||||||
alias aptr='apt remove'
|
alias aptr='apt remove'
|
||||||
alias aptse='apt search'
|
alias aptse='apt search'
|
||||||
alias aptsh='apt show'
|
alias aptsh='apt show'
|
||||||
@@ -104,11 +95,11 @@ alias whatpurge='dpkg --get-selections | grep deinstall'
|
|||||||
|
|
||||||
########################################################################################### Functions
|
########################################################################################### Functions
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Generates Secure (/dev/random) Passwords
|
# Generates Secure (/dev/random) Passwords
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# Length of Password, e.g., 32, and --base64 in case of encoding in BASE64.
|
# Length of Password, e.g., 32, and --base64 in case of encoding in BASE64.
|
||||||
###########################################################################################
|
#######################################
|
||||||
# shellcheck disable=SC2317
|
# shellcheck disable=SC2317
|
||||||
genpasswd() {
|
genpasswd() {
|
||||||
declare -i length=32
|
declare -i length=32
|
||||||
@@ -128,6 +119,7 @@ genpasswd() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
declare passwd
|
declare passwd
|
||||||
|
# shellcheck disable=SC2312
|
||||||
passwd=$(tr -dc 'A-Za-z0-9_' < /dev/random | head -c "${length}")
|
passwd=$(tr -dc 'A-Za-z0-9_' < /dev/random | head -c "${length}")
|
||||||
|
|
||||||
if [[ ${usebase64} -eq 1 ]]; then
|
if [[ ${usebase64} -eq 1 ]]; then
|
||||||
@@ -137,76 +129,143 @@ genpasswd() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Generates Secure (/dev/random) Passwords
|
# Generates Secure (/dev/random) Passwords.
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# none
|
# none
|
||||||
###########################################################################################
|
#######################################
|
||||||
# shellcheck disable=SC2317
|
# shellcheck disable=SC2317
|
||||||
genpasswdhash() {
|
genpasswdhash() {
|
||||||
declare salt
|
declare salt
|
||||||
|
# shellcheck disable=SC2312
|
||||||
salt=$(tr -dc 'A-Za-z0-9' < /dev/random | head -c 16)
|
salt=$(tr -dc 'A-Za-z0-9' < /dev/random | head -c 16)
|
||||||
mkpasswd --method=sha-512 --salt="${salt}" --rounds=8388608
|
mkpasswd --method=sha-512 --salt="${salt}" --rounds=8388608
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Globals: Wrapper for secure curl
|
# Outputs a 16-character random printable string
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# $1: URL from which to download a specific file
|
# None
|
||||||
# $2: /path/to/file to be saved to
|
#######################################
|
||||||
###########################################################################################
|
genstring() {
|
||||||
# shellcheck disable=SC2317
|
# shellcheck disable=SC2312
|
||||||
|
(haveged -n 1000 -f - 2>/dev/null | tr -cd '[:graph:]' | fold -w 16 && echo ) | head
|
||||||
|
}
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Wrapper for secure curl
|
||||||
|
# Globals:
|
||||||
|
# CRED
|
||||||
|
# CRES
|
||||||
|
# NL
|
||||||
|
# Arguments:
|
||||||
|
# 1: URL from which to download a specific file
|
||||||
|
# 2: /path/to/file to be saved to
|
||||||
|
# Returns:
|
||||||
|
# 0: Download successful
|
||||||
|
# 1: Usage error
|
||||||
|
# 2: Download failure
|
||||||
|
#######################################
|
||||||
scurl() {
|
scurl() {
|
||||||
if [[ $# -ne 2 ]]; then
|
if [[ $# -ne 2 ]]; then
|
||||||
printf "\e[91m❌ Error: Usage: scurl <URL> <path/to/file>. \e[0m\n" >&2
|
printf "%s❌ Error: Usage: scurl <URL> <path/to/file>. %s%s" "${CRED}" "${CRES}" "${NL}" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
declare url="$1"
|
||||||
if ! curl --proto '=https' --tlsv1.3 -sSf -o "${2}" "${1}"; then
|
declare output_path="$2"
|
||||||
printf "\e[91m❌ Error: Download failed for URL: '%s'. \e[0m\n" "${1}" >&2
|
if ! curl --doh-url "https://dns01.eddns.eu/dns-query" \
|
||||||
|
--doh-cert-status \
|
||||||
|
--tlsv1.3 \
|
||||||
|
-sSf \
|
||||||
|
-o "${output_path}" \
|
||||||
|
"${url}"
|
||||||
|
then
|
||||||
|
printf "%s❌ Error: Download failed for URL: '%s'. %s%s" "${CRED}" "${url}" "${CRES}" "${NL}" >&2
|
||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Globals: Wrapper for secure wget
|
# Wrapper for secure wget
|
||||||
|
# Globals:
|
||||||
|
# CRED
|
||||||
|
# CRES
|
||||||
|
# NL
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# $1: URL from which to download a specific file
|
# 1: URL from which to download a specific file
|
||||||
# $2: /path/to/file to be saved to
|
# 2: /path/to/file to be saved to
|
||||||
###########################################################################################
|
# Returns:
|
||||||
# shellcheck disable=SC2317
|
# 0: Download successful
|
||||||
|
# 1: Usage error
|
||||||
|
# 2: Download failure
|
||||||
|
#######################################
|
||||||
swget() {
|
swget() {
|
||||||
if [[ $# -ne 2 ]]; then
|
if [[ $# -ne 2 ]]; then
|
||||||
printf "\e[91m❌ Error: Usage: swget <URL> <path/to/file>. \e[0m\n" >&2
|
printf "%s❌ Error: Usage: swget <URL> <path/to/file>. %s%s" "${CRED}" "${CRES}" "${NL}" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
declare url="$1"
|
||||||
if ! wget --no-clobber --https-only --secure-protocol=TLSv1_3 -qO "${2}" "${1}"; then
|
declare output_path="$2"
|
||||||
printf "\e[91m❌ Error: Download failed for URL: '%s'. \e[0m\n" "${1}" >&2
|
mkdir -p "$(dirname "${output_path}")"
|
||||||
|
if ! wget --show-progress \
|
||||||
|
--no-clobber \
|
||||||
|
--https-only \
|
||||||
|
--secure-protocol=TLSv1_3 \
|
||||||
|
-qO "${output_path}" \
|
||||||
|
"${url}"
|
||||||
|
then
|
||||||
|
printf "%s❌ Error: Download failed for URL: '%s'. %s%s" "${CRED}" "${url}" "${CRES}" "${NL}" >&2
|
||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Globals: Wrapper for loading CISS.2025 hardened Kernel Parameters
|
# Wrapper for loading CISS.2025 hardened Kernel Parameters.
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# none
|
# None
|
||||||
###########################################################################################
|
#######################################
|
||||||
# shellcheck disable=SC2317
|
|
||||||
sysp() {
|
sysp() {
|
||||||
sysctl -p /etc/sysctl.d/99_local.hardened
|
sysctl -p /etc/sysctl.d/99_local.hardened
|
||||||
# sleep 1
|
# sleep 1
|
||||||
sysctl -a | grep -E 'kernel|vm|net' > /var/log/sysctl_check"$(date +"%Y-%m-%d_%H:%M:%S")".log
|
# shellcheck disable=SC2312
|
||||||
|
sysctl -a | grep -E 'kernel|vm|net' >| /var/log/sysctl_check"$(date +"%Y-%m-%d_%H:%M:%S")".log
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################################################################################
|
#######################################
|
||||||
# Globals: Wrapper for tree
|
# Wrapper for tree
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# $1: Depth of Directory Listing
|
# 1: Depth of Directory Listing
|
||||||
###########################################################################################
|
#######################################
|
||||||
# shellcheck disable=SC2317
|
|
||||||
trel() {
|
trel() {
|
||||||
declare depth=${1:-3}
|
declare depth=${1:-3}
|
||||||
tree -C -h --dirsfirst -L "${depth}"
|
tree -C -h --dirsfirst -L "${depth}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Wrapper for package and path to bin.
|
||||||
|
# Arguments:
|
||||||
|
# 1: Program
|
||||||
|
#######################################
|
||||||
|
whichpackage() {
|
||||||
|
if ! command -v "$1" >/dev/null 2>&1; then
|
||||||
|
printf '%s❌ Error: Program '%s' not found. %s%s' "${CRED}" "$1" "${CRES}" "${NL}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# shellcheck disable=SC2230,SC2312
|
||||||
|
dpkg -S "$(which "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Wrapper for Diskspace used in Path.
|
||||||
|
# Arguments:
|
||||||
|
# 1: Path (defaults /var)
|
||||||
|
# 2: Depth (defaults 1)
|
||||||
|
# 3: Number of Entries (defaults 16)
|
||||||
|
#######################################
|
||||||
|
whichused() {
|
||||||
|
# shellcheck disable=SC2312
|
||||||
|
du -h --max-depth="${2:-1}" "${1:-/var}" | sort -hr | head -n "${3:-16}"
|
||||||
|
}
|
||||||
# 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
|
||||||
|
|||||||
@@ -36,4 +36,5 @@ echo -e "\e[92m All done" "\e[95m'${USER}'" "\e[92m! \e[0m"
|
|||||||
echo -e "\e[92m Close shell with 'ENTER' to exit" "\e[95m'${HOSTNAME}'" "\e[92m! \e[0m"
|
echo -e "\e[92m Close shell with 'ENTER' to exit" "\e[95m'${HOSTNAME}'" "\e[92m! \e[0m"
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read
|
read
|
||||||
|
[[ -x /usr/bin/clear_console ]] && /usr/bin/clear_console -q
|
||||||
# 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
|
||||||
|
|||||||
97
config/includes.chroot/root/.ciss/f2bchk.sh
Normal file
97
config/includes.chroot/root/.ciss/f2bchk.sh
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Wrapper for fail2ban filter checks against logs.
|
||||||
|
# Usage: f2bchk --mode=ignored || --mode=matched || --mode=missed \
|
||||||
|
# --filter=/etc/fail2ban/filter.d/ufw.aggressive.conf \
|
||||||
|
# --log=/var/log/ufw.log \
|
||||||
|
# --output=/tmp/f2bchk.log
|
||||||
|
# Globals:
|
||||||
|
# CGRE
|
||||||
|
# CRED
|
||||||
|
# CRES
|
||||||
|
# NL
|
||||||
|
# Arguments:
|
||||||
|
# None
|
||||||
|
# Returns:
|
||||||
|
# 0: on success
|
||||||
|
# 1: In case of any errors
|
||||||
|
#######################################
|
||||||
|
f2bchk(){
|
||||||
|
### Declare default values (readonly)
|
||||||
|
declare -r DEFAULT_MODE="matched"
|
||||||
|
declare -r DEFAULT_FILTER="/etc/fail2ban/filter.d/ufw.aggressive.conf"
|
||||||
|
declare -r DEFAULT_LOG="/var/log/ufw.log"
|
||||||
|
|
||||||
|
declare mode="${DEFAULT_MODE}"
|
||||||
|
declare filter="${DEFAULT_FILTER}"
|
||||||
|
declare log="${DEFAULT_LOG}"
|
||||||
|
declare output=""
|
||||||
|
declare arg=""
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
case "${arg}" in
|
||||||
|
--mode=*) mode="${arg#--mode=}";;
|
||||||
|
--filter=*) filter="${arg#--filter=}";;
|
||||||
|
--log=*) log="${arg#--log=}";;
|
||||||
|
--output=*) output="${arg#--output=}";;
|
||||||
|
*)
|
||||||
|
printf "%s[ERROR]%s Unknown argument: '%s' %s" "${CRED}" "${CRES}" "${arg}" "${CRED}"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
declare flag suffix
|
||||||
|
case "${mode}" in
|
||||||
|
ignored) flag="--print-all-ignored"; suffix="all.ignored";;
|
||||||
|
matched) flag="--print-all-matched"; suffix="all.matched";;
|
||||||
|
missed) flag="--print-all-missed"; suffix="all.missed";;
|
||||||
|
*)
|
||||||
|
printf "%s[ERROR]%s Invalid mode: '%s' %s" "${CRED}" "${CRES}" "${mode}" "${NL}"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ -z "${output}" ]]; then
|
||||||
|
declare filter_name="${filter##*/}"
|
||||||
|
filter_name="${filter_name%.conf}"
|
||||||
|
output="/tmp/${filter_name}.${suffix}.log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -r "${log}" ]]; then
|
||||||
|
printf "%s[ERROR]%s Log file '%s' not found or not readable. %s" "${CRED}" "${CRES}" "${log}" "${NL}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -r "${filter}" ]]; then
|
||||||
|
printf "%s[ERROR]%s Filter file '%s' not found or not readable. %s" "${CRED}" "${CRES}" "${filter}" "${NL}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "%s[INFO]%s Running: fail2ban-regex '%s %s %s' %s" "${CGRE}" "${CRES}" "${log}" "${filter}" "${flag}" "${NL}"
|
||||||
|
|
||||||
|
if fail2ban-regex "${log}" "${filter}" "${flag}" >| "${output}"; then
|
||||||
|
|
||||||
|
printf "%s[SUCCESS]%s Saved log to: '%s' %s" "${CGRE}" "${CRES}" "${output}" "${NL}"
|
||||||
|
printf "You can view it with: cat %s%s" "${output}" "${NL}"
|
||||||
|
else
|
||||||
|
|
||||||
|
printf "%s[ERROR]%s fail2ban-regex execution failed. %s" "${CRED}" "${CRES}" "${NL}"
|
||||||
|
return 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
||||||
@@ -6,36 +6,44 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Scanner for 'libwrap' usage.
|
# Scanner for 'libwrap' usage.
|
||||||
|
# Globals:
|
||||||
|
# CGRE
|
||||||
|
# CRES
|
||||||
|
# NL
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# None
|
# None
|
||||||
#######################################
|
#######################################
|
||||||
scanlw() {
|
scanlw() {
|
||||||
printf "\e[92m🔍 Scanning all running processes for 'libwrap' usage ... \e[0m\n"
|
printf "%s🔍 Scanning all running processes for 'libwrap' usage ... %s%s" "${CGRE}" "${CRES}" "${NL}"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
|
|
||||||
# Collect binaries from all running PIDs
|
### Collect binaries from all running PIDs.
|
||||||
declare pid exe_path comm user
|
declare pid exe_path comm user
|
||||||
|
|
||||||
for pid in $(ps -e -o pid=); do
|
for pid in $(ps -e -o pid=); do
|
||||||
exe_path=$(readlink -f "/proc/${pid}/exe" 2>/dev/null)
|
exe_path=$(readlink -f "/proc/${pid}/exe" 2>/dev/null)
|
||||||
|
|
||||||
# Skip if not a regular executable
|
### Skip if not a regular executable.
|
||||||
[[ -x "${exe_path}" ]] || continue
|
[[ -x "${exe_path}" ]] || continue
|
||||||
|
|
||||||
# Check if the binary is linked with libwrap
|
### Check if the binary is linked with libwrap.
|
||||||
if ldd "$exe_path" 2>/dev/null | grep -q "libwrap"; then
|
# shellcheck disable=SC2312
|
||||||
comm=$(ps -p "$pid" -o comm=)
|
if ldd "${exe_path}" 2>/dev/null | grep -q "libwrap"; then
|
||||||
user=$(ps -p "$pid" -o user=)
|
comm=$(ps -p "${pid}" -o comm=)
|
||||||
printf "\e[92m✅ PID: %s (%s) [User: %s] is linked with 'libwrap.so'. \e[0m\n" "${pid}" "${comm}" "${user}"
|
user=$(ps -p "${pid}" -o user=)
|
||||||
|
printf "%s✅ PID: %s (%s) [User: %s] is linked with 'libwrap.so'. %s%s" "${CGRE}" "${pid}" "${comm}" "${user}" "${CRES}" "${NL}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "\e[92m✅ Scan complete. \e[0m\n"
|
printf "%s✅ Scan complete. %s%s" "${CGRE}" "${CRES}" "${NL}"
|
||||||
|
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
# 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
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@ declare -ga shortcuts=(
|
|||||||
"apti: apt install"
|
"apti: apt install"
|
||||||
"aptimage: get Kernel Img"
|
"aptimage: get Kernel Img"
|
||||||
"aptp: apt purge"
|
"aptp: apt purge"
|
||||||
|
"aptpp: dpkg --purge"
|
||||||
"aptr: apt remove"
|
"aptr: apt remove"
|
||||||
"aptse: apt search"
|
"aptse: apt search"
|
||||||
"aptsh: apt show"
|
"aptsh: apt show"
|
||||||
@@ -83,6 +84,8 @@ declare -ga shortcuts=(
|
|||||||
"whatdelete: lsof | grep deleted"
|
"whatdelete: lsof | grep deleted"
|
||||||
"whatimage: dpkg --list | grep linux"
|
"whatimage: dpkg --list | grep linux"
|
||||||
"whatpurge: dpkg --get-selections"
|
"whatpurge: dpkg --get-selections"
|
||||||
|
"whichpackage <PROGRAM>"
|
||||||
|
"whichused <PATH> <DEPTH> <ENTRIES>"
|
||||||
)
|
)
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
@@ -101,7 +104,7 @@ celp() {
|
|||||||
declare i=0
|
declare i=0
|
||||||
declare entry
|
declare entry
|
||||||
for entry in "${arr[@]}"; do
|
for entry in "${arr[@]}"; do
|
||||||
# Print entry left-aligned in fixed width, colored
|
### Print entry left-aligned in fixed width, colored.
|
||||||
printf "${CMAG}%-${col_width}s${CRES}" "${entry}"
|
printf "${CMAG}%-${col_width}s${CRES}" "${entry}"
|
||||||
((i++))
|
((i++))
|
||||||
if ((i % cols == 0)); then
|
if ((i % cols == 0)); then
|
||||||
|
|||||||
@@ -15,16 +15,21 @@ apt-file
|
|||||||
apt-mirror
|
apt-mirror
|
||||||
apt-show-versions
|
apt-show-versions
|
||||||
apt-transport-https
|
apt-transport-https
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
bash-completion
|
bash-completion
|
||||||
bat
|
bat
|
||||||
bc
|
bc
|
||||||
bind9-dnsutils
|
bind9-dnsutils
|
||||||
bsdmainutils
|
bsdmainutils
|
||||||
btrfs-progs
|
btrfs-progs
|
||||||
|
build-essential
|
||||||
|
bzip2
|
||||||
ca-certificates
|
ca-certificates
|
||||||
clamav
|
clamav
|
||||||
clamav-daemon
|
clamav-daemon
|
||||||
console-setup
|
console-setup
|
||||||
|
cpuid
|
||||||
cryptsetup
|
cryptsetup
|
||||||
cryptsetup-nuke-password
|
cryptsetup-nuke-password
|
||||||
curl
|
curl
|
||||||
@@ -42,10 +47,13 @@ dirmngr
|
|||||||
dmsetup
|
dmsetup
|
||||||
dnsviz
|
dnsviz
|
||||||
dosfstools
|
dosfstools
|
||||||
|
e2fsprogs
|
||||||
efibootmgr
|
efibootmgr
|
||||||
expect
|
expect
|
||||||
fail2ban
|
fail2ban
|
||||||
|
fdisk
|
||||||
figlet
|
figlet
|
||||||
|
fio
|
||||||
fzf
|
fzf
|
||||||
gawk
|
gawk
|
||||||
gdisk
|
gdisk
|
||||||
@@ -64,6 +72,9 @@ knot-dnsutils
|
|||||||
libpam-google-authenticator
|
libpam-google-authenticator
|
||||||
libpam-pwquality
|
libpam-pwquality
|
||||||
libpwquality-tools
|
libpwquality-tools
|
||||||
|
libtomcrypt-dev
|
||||||
|
libtommath-dev
|
||||||
|
libtool
|
||||||
linux-doc-6.12
|
linux-doc-6.12
|
||||||
linux-source
|
linux-source
|
||||||
live-boot
|
live-boot
|
||||||
@@ -73,16 +84,17 @@ locate
|
|||||||
logrotate
|
logrotate
|
||||||
lsb-release
|
lsb-release
|
||||||
lvm2
|
lvm2
|
||||||
makedev
|
|
||||||
makepasswd
|
makepasswd
|
||||||
man
|
man
|
||||||
man-db
|
man-db
|
||||||
manpages
|
manpages
|
||||||
manpages-dev
|
manpages-dev
|
||||||
|
mdadm
|
||||||
mtr
|
mtr
|
||||||
|
musl-tools
|
||||||
nano
|
nano
|
||||||
ncat
|
ncat
|
||||||
neofetch
|
ncdu
|
||||||
neovim
|
neovim
|
||||||
net-tools
|
net-tools
|
||||||
netselect-apt
|
netselect-apt
|
||||||
@@ -101,20 +113,22 @@ rsync
|
|||||||
rsyslog
|
rsyslog
|
||||||
screen
|
screen
|
||||||
shellcheck
|
shellcheck
|
||||||
software-properties-common
|
|
||||||
spectre-meltdown-checker
|
spectre-meltdown-checker
|
||||||
speedtest-cli
|
speedtest-cli
|
||||||
squashfs-tools
|
squashfs-tools
|
||||||
ssh
|
ssh
|
||||||
ssl-cert
|
ssl-cert
|
||||||
|
stress
|
||||||
sudo
|
sudo
|
||||||
sysstat
|
sysstat
|
||||||
systemd-sysv
|
systemd-sysv
|
||||||
|
tar
|
||||||
tree
|
tree
|
||||||
tshark
|
tshark
|
||||||
ufw
|
ufw
|
||||||
unattended-upgrades
|
unattended-upgrades
|
||||||
unzip
|
unzip
|
||||||
|
util-linux
|
||||||
virt-what
|
virt-what
|
||||||
wamerican
|
wamerican
|
||||||
wbritish
|
wbritish
|
||||||
@@ -122,6 +136,9 @@ wfrench
|
|||||||
wget
|
wget
|
||||||
whois
|
whois
|
||||||
wngerman
|
wngerman
|
||||||
|
xfsprogs
|
||||||
|
xz-utils
|
||||||
|
yq
|
||||||
zip
|
zip
|
||||||
zsh
|
zsh
|
||||||
# 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
|
||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. DNSSEC Status
|
# 2. DNSSEC Status
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Haveged Audit on Netcup RS 2000 G11
|
# 2. Haveged Audit on Netcup RS 2000 G11
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Lynis Audit:
|
# 2. Lynis Audit:
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. SSH Audit by ssh-audit.com
|
# 2. SSH Audit by ssh-audit.com
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,15 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. TLS Audit:
|
# 2. TLS Audit:
|
||||||
|
|
||||||
````text
|
````text
|
||||||
#####################################################################
|
#####################################################################
|
||||||
testssl.sh version 3.2rc4 from https://testssl.sh/dev/
|
testssl.sh version 3.2.1 from https://testssl.sh/
|
||||||
(6746fa5 2025-04-18 13:17:50)
|
(81471c3 2025-06-15 09:48:31)
|
||||||
|
|
||||||
This program is free software. Distribution and modification under
|
This program is free software. Distribution and modification under
|
||||||
GPLv2 permitted. USAGE w/o ANY WARRANTY. USE IT AT YOUR OWN RISK!
|
GPLv2 permitted. USAGE w/o ANY WARRANTY. USE IT AT YOUR OWN RISK!
|
||||||
@@ -26,7 +26,7 @@ include_toc: true
|
|||||||
Using OpenSSL 1.0.2-bad (Mar 28 2025) [~179 ciphers]
|
Using OpenSSL 1.0.2-bad (Mar 28 2025) [~179 ciphers]
|
||||||
on kali:./bin/openssl.Linux.x86_64
|
on kali:./bin/openssl.Linux.x86_64
|
||||||
|
|
||||||
Start 2025-06-02 18:04:19 -->> 152.53.110.40:443 (coresecret.dev) <<--
|
Start 2025-06-23 17:58:48 -->> 152.53.110.40:443 (git.coresecret.dev) <<--
|
||||||
|
|
||||||
Further IP addresses: 2a0a:4cc0:80:330f:152:53:110:40
|
Further IP addresses: 2a0a:4cc0:80:330f:152:53:110:40
|
||||||
rDNS (152.53.110.40): git.coresecret.dev.
|
rDNS (152.53.110.40): git.coresecret.dev.
|
||||||
@@ -193,17 +193,21 @@ Hexcode Cipher Suite Name (OpenSSL) KeyExch. Encryption Bits Ciphe
|
|||||||
SHA256 76B6FFCE607D8514F676C286C7C76B90F5B7AE7D041631F2EF2F0079AF8D24AC
|
SHA256 76B6FFCE607D8514F676C286C7C76B90F5B7AE7D041631F2EF2F0079AF8D24AC
|
||||||
Common Name (CN) coresecret.dev
|
Common Name (CN) coresecret.dev
|
||||||
subjectAltName (SAN) coresecret.dev git.coresecret.dev lab.coresecret.dev run.coresecret.dev www.coresecret.dev
|
subjectAltName (SAN) coresecret.dev git.coresecret.dev lab.coresecret.dev run.coresecret.dev www.coresecret.dev
|
||||||
Trust (hostname) Ok via SAN and CN (same w/o SNI)
|
Trust (hostname) Ok via SAN (same w/o SNI)
|
||||||
Chain of trust Ok
|
Chain of trust Ok
|
||||||
EV cert (experimental) no
|
EV cert (experimental) no
|
||||||
Certificate Validity (UTC) 174 >= 60 days (2025-05-28 09:56 --> 2025-11-23 22:59)
|
Certificate Validity (UTC) 153 >= 60 days (2025-05-28 09:56 --> 2025-11-23 22:59)
|
||||||
ETS/"eTLS", visibility info not present
|
ETS/"eTLS", visibility info not present
|
||||||
In pwnedkeys.com DB not in database
|
In pwnedkeys.com DB not in database
|
||||||
Certificate Revocation List http://crl.buypass.no/crl/BPClass2CA5.crl, not revoked
|
Certificate Revocation List http://crl.buypass.no/crl/BPClass2CA5.crl, not revoked
|
||||||
OCSP URI http://ocsp.buypass.com, not revoked
|
OCSP URI http://ocsp.buypass.com, not revoked
|
||||||
OCSP stapling offered, not revoked
|
OCSP stapling offered, not revoked
|
||||||
OCSP must staple extension --
|
OCSP must staple extension --
|
||||||
DNS CAA RR (experimental) not offered
|
DNS CAA RR (experimental) available - please check for match with "Issuer" below
|
||||||
|
communications=error, iodef=mailto:dns@coresecret.eu, issue=;, issue=buypass.no, issue=certum.pl,
|
||||||
|
issue=letsencrypt.org;, issue=quantumsign.eu;, issue=sectigo.com, issuect=quantumsign.eu;, issuect=quantumsign.eu;,
|
||||||
|
issuect=quantumsign.eu;, issuect=quantumsign.eu;, issuect=quantumsign.eu;, issuect=quantumsign.eu;,
|
||||||
|
issuect=quantumsign.eu;, issuect=quantumsign.eu;, issuemail=buypass.no, issuemail=certum.pl, issuewild=;
|
||||||
Certificate Transparency yes (certificate extension)
|
Certificate Transparency yes (certificate extension)
|
||||||
Certificates provided 2
|
Certificates provided 2
|
||||||
Issuer Buypass Class 2 CA 5 (Buypass AS-983163327 from NO)
|
Issuer Buypass Class 2 CA 5 (Buypass AS-983163327 from NO)
|
||||||
@@ -213,23 +217,27 @@ Hexcode Cipher Suite Name (OpenSSL) KeyExch. Encryption Bits Ciphe
|
|||||||
|
|
||||||
Testing HTTP header response @ "/"
|
Testing HTTP header response @ "/"
|
||||||
|
|
||||||
HTTP Status Code 301 Moved Permanently, redirecting to "https://git.coresecret.dev"
|
HTTP Status Code 200 OK
|
||||||
HTTP clock skew 0 sec from localtime
|
HTTP clock skew 0 sec from localtime
|
||||||
Strict Transport Security 730 days=63072000 s, includeSubDomains, preload
|
Strict Transport Security 730 days=63072000 s, includeSubDomains, preload
|
||||||
Public Key Pinning --
|
Public Key Pinning --
|
||||||
Server banner nginx
|
Server banner nginx
|
||||||
Application banner --
|
Application banner --
|
||||||
Cookie(s) (none issued at "/") -- maybe better try target URL of 30x
|
Cookie(s) 2 issued: 2/2 secure, 2/2 HttpOnly
|
||||||
Security headers X-Frame-Options: SAMEORIGIN
|
Security headers X-Frame-Options: SAMEORIGIN
|
||||||
X-Content-Type-Options: nosniff
|
X-Content-Type-Options: nosniff
|
||||||
|
Content-Security-Policy: default-src 'none'; connect-src 'self'; font-src 'self' data:; form-action 'self';
|
||||||
|
frame-src 'self'; frame-ancestors 'self'; img-src 'self' data: https://badges.coresecret.dev
|
||||||
|
https://uml.coresecret.dev; manifest-src 'self'; media-src 'self' data: https://badges.coresecret.dev
|
||||||
|
https://uml.coresecret.dev; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; base-uri 'none';
|
||||||
Expect-CT: max-age=86400, enforce
|
Expect-CT: max-age=86400, enforce
|
||||||
Permissions-Policy: interest-cohort=()
|
Permissions-Policy: interest-cohort=()
|
||||||
Cross-Origin-Opener-Policy: same-origin
|
Cross-Origin-Opener-Policy: cross-origin
|
||||||
Cross-Origin-Resource-Policy: same-origin
|
Cross-Origin-Resource-Policy: cross-origin
|
||||||
Cross-Origin-Embedder-Policy: require-corp
|
Cross-Origin-Embedder-Policy: unsafe-none
|
||||||
X-XSS-Protection: 1; mode=block
|
X-XSS-Protection: 1; mode=block
|
||||||
Permissions-Policy: interest-cohort=()
|
Permissions-Policy: interest-cohort=()
|
||||||
Referrer-Policy: same-origin
|
Referrer-Policy: no-referrer
|
||||||
Cache-Control: no-cache
|
Cache-Control: no-cache
|
||||||
Reverse Proxy banner --
|
Reverse Proxy banner --
|
||||||
|
|
||||||
@@ -268,6 +276,7 @@ Hexcode Cipher Suite Name (OpenSSL) KeyExch. Encryption Bits Ciphe
|
|||||||
Android 10.0 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
Android 10.0 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
Android 11/12 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
Android 11/12 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
Android 13/14 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
Android 13/14 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
|
Android 15 (native) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
Chrome 101 (Win 10) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
Chrome 101 (Win 10) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
Chromium 137 (Win 11) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
Chromium 137 (Win 11) TLSv1.3 TLS_AES_256_GCM_SHA384 384 bit ECDH (P-384)
|
||||||
Firefox 100 (Win 10) TLSv1.3 TLS_AES_256_GCM_SHA384 521 bit ECDH (P-521)
|
Firefox 100 (Win 10) TLSv1.3 TLS_AES_256_GCM_SHA384 521 bit ECDH (P-521)
|
||||||
@@ -308,7 +317,7 @@ Hexcode Cipher Suite Name (OpenSSL) KeyExch. Encryption Bits Ciphe
|
|||||||
Final Score 100
|
Final Score 100
|
||||||
Overall Grade A+
|
Overall Grade A+
|
||||||
|
|
||||||
Done 2025-06-02 18:05:51 [ 95s] -->> 152.53.110.40:443 (coresecret.dev) <<--
|
Done 2025-06-23 18:00:16 [ 99s] -->> 152.53.110.40:443 (git.coresecret.dev) <<--
|
||||||
````
|
````
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
56
docs/BOOTPARAMS.md
Normal file
56
docs/BOOTPARAMS.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
gitea: none
|
||||||
|
include_toc: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# 1. CISS.debian.live.builder
|
||||||
|
|
||||||
|
**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.008.2025.08.22<br>
|
||||||
|
|
||||||
|
# 2. Hardened Kernel Boot Parameters
|
||||||
|
|
||||||
|
Below is a curated set of kernel boot parameters optimized for CISS Debian Installer. These parameters enhance security posture,
|
||||||
|
restrict legacy interfaces, enforce memory initialization, and disable speculative side channels. Each parameter is documented
|
||||||
|
with a short rationale.
|
||||||
|
|
||||||
|
* ``audit=1``: Enable kernel auditing subsystem.
|
||||||
|
* ``audit_backlog_limit=8192``: Set audit event buffer depth.
|
||||||
|
* ``cfi=kcfi``: Enable Clang's Control Flow Integrity (if supported by kernel).
|
||||||
|
* ``debugfs=off``: Disable debugfs mount, prevents access to kernel internals.
|
||||||
|
* ``efi=disable_early_pci_dma``: Prevent early PCI DMA via EFI.
|
||||||
|
* ``hardened_usercopy=1``: Harden copy_*_user() functions, mitigate heap/memcpy bugs.
|
||||||
|
* ``ia32_emulation=0``: Disable 32-bit x86 binary support on 64-bit kernel.
|
||||||
|
* ``init_on_alloc=1``: Zero-initialize heap memory on allocation.
|
||||||
|
* ``init_on_free=1``: Zero memory on free to prevent reuse data leaks.
|
||||||
|
* ``iommu=force``: Enforce use of IOMMU.
|
||||||
|
* ``iommu.strict=1``: Enable strict IOMMU mode (always remap).
|
||||||
|
* ``iommu.passthrough=0``: Prevent IOMMU passthrough (forces remapping).
|
||||||
|
* ``kfence.sample_interval=100``: Enable low-overhead heap-fence sampling.
|
||||||
|
* ``kvm.nx_huge_pages=force``: Enforce NX-bit for KVM hugepages to prevent code execution.
|
||||||
|
* ``l1d_flush=on``: Flush L1D cache on VM-entry to mitigate cache side-channels.
|
||||||
|
* ``lockdown=confidentiality``: Enable kernel lockdown in confidentiality mode.
|
||||||
|
* ``loglevel=0``: Silence all kernel messages (only EMERG shown).
|
||||||
|
* ``mitigations=auto,nosmt``: Enable all available speculative mitigations, disable SMT.
|
||||||
|
* ``mmio_stale_data=full,force,nosmt``: Mitigate MMIO stale data side channel fully.
|
||||||
|
* ``nosmt=force``: Force disable Simultaneous Multithreading (SMT/HT).
|
||||||
|
* ``oops=panic``: Trigger kernel panic on oops, ensures halt on fault.
|
||||||
|
* ``page_alloc.shuffle=1``: Randomize page allocator freelist order.
|
||||||
|
* ``page_poison=1``: Fill freed pages with poison patterns to detect UAF.
|
||||||
|
* ``panic=-1``: Prevent automatic reboot after panic.
|
||||||
|
* ``pti=on``: Enable Page Table Isolation (Meltdown mitigation).
|
||||||
|
* ``random.trust_bootloader=off``: Do not trust RNG state from bootloader.
|
||||||
|
* ``random.trust_cpu=off``: Do not trust CPU's RDRAND or RDSEED.
|
||||||
|
* ``randomize_kstack_offset=on``: Enable randomized kernel stack offset per syscall.
|
||||||
|
* ``randomize_va_space=2``: Enable full ASLR for mmap and heap.
|
||||||
|
* ``retbleed=auto,nosmt``: Mitigate Retbleed exploit path via branch prediction.
|
||||||
|
* ``rodata=on``: Enforce read-only sections for .rodata.
|
||||||
|
* ``slab_nomerge``: Disable merging of similar slab caches.
|
||||||
|
* ``vdso32=0``: Disable 32-bit vdso mapping (x86 compatibility).
|
||||||
|
* ``vsyscall=none``: Disable vsyscall legacy mapping.
|
||||||
|
|
||||||
|
---
|
||||||
|
**[no tracking | no logging | no advertising | no profiling | no bullshit](https://coresecret.eu/)**
|
||||||
|
<!-- vim: set number et ts=2 sw=2 sts=2 ai tw=128 ft=markdown -->
|
||||||
@@ -7,14 +7,123 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Changelog
|
# 2. Changelog
|
||||||
|
|
||||||
|
## V8.13.008.2025.08.22
|
||||||
|
* **Removed**: [0003_install_backports.chroot](../.archive/0003_install_backports.chroot)
|
||||||
|
|
||||||
|
## V8.13.004.2025.08.21
|
||||||
|
* **Added**: [makefile](../makefile)
|
||||||
|
|
||||||
|
## V8.13.002.2025.08.11
|
||||||
|
* **Added**: [lib_source_guard.sh](../lib/lib_source_guard.sh)
|
||||||
|
* **Added**: [sources.list](../config/includes.chroot/etc/apt/sources.list)
|
||||||
|
* **Added**: [trixie.sources](../config/includes.chroot/etc/apt/sources.list.d/trixie.sources)
|
||||||
|
* **Added**: [trixie-backports.sources](../config/includes.chroot/etc/apt/sources.list.d/trixie-backports.sources)
|
||||||
|
* **Added**: [trixie-security.sources](../config/includes.chroot/etc/apt/sources.list.d/trixie-security.sources)
|
||||||
|
* **Added**: [trixie-updates.sources](../config/includes.chroot/etc/apt/sources.list.d/trixie-updates.sources)
|
||||||
|
* **Added**: [login.defs](../config/includes.chroot/etc/login.defs)
|
||||||
|
* **Bugfixes**: [0001_initramfs_modules.chroot](../config/hooks/live/0001_initramfs_modules.chroot)
|
||||||
|
* **Bugfixes**: [9996_auditd.chroot](../config/hooks/live/9996_auditd.chroot)
|
||||||
|
* **Updated**: [bash.var.sh](../var/bash.var.sh)
|
||||||
|
* **Updated**: [9998_sources_list_trixie.chroot](../config/hooks/live/9998_sources_list_trixie.chroot)
|
||||||
|
* **Updated**: Support for Debian Trixie via Argument ``--trixie``
|
||||||
|
* **Updated**: Debian 12 LIVE ISO workflows to use Kernel: ``linux-image-6.1.0-37-amd64``
|
||||||
|
|
||||||
|
## V8.03.920.2025.08.07
|
||||||
|
|
||||||
|
* **Updated**: [lib_arg_parser.sh](../lib/lib_arg_parser.sh)
|
||||||
|
* **Updated**: [ciss_live_builder.sh](../ciss_live_builder.sh)
|
||||||
|
* **Updated**: [live.list.common.chroot](../config/package-lists/live.list.common.chroot)
|
||||||
|
|
||||||
|
## V8.03.912.2025.07.23
|
||||||
|
|
||||||
|
* **Updated**: [alias](../config/includes.chroot/root/.ciss/alias)
|
||||||
|
* **Updated**: [clean_logout.sh](../config/includes.chroot/root/.ciss/clean_logout.sh)
|
||||||
|
* **Updated**: [f2bchk.sh](../config/includes.chroot/root/.ciss/f2bchk.sh)
|
||||||
|
* **Updated**: [scan_libwrap](../config/includes.chroot/root/.ciss/scan_libwrap)
|
||||||
|
* **Updated**: [shortcuts](../config/includes.chroot/root/.ciss/shortcuts)
|
||||||
|
* **Updated**: [.bashrc](../config/includes.chroot/root/.bashrc)
|
||||||
|
|
||||||
|
## V8.03.896.2025.07.22
|
||||||
|
|
||||||
|
* **Added**: [.shellcheckrc](../.shellcheckrc)
|
||||||
|
* **Bugfixes**: [ciss_live_builder.sh](../ciss_live_builder.sh)
|
||||||
|
* **Updated**: [0810_chrony_setup.chroot](../config/hooks/live/0810_chrony_setup.chroot)
|
||||||
|
|
||||||
|
## V8.03.880.2025.07.19
|
||||||
|
|
||||||
|
* **Updated**: [alias](../config/includes.chroot/root/.ciss/alias)
|
||||||
|
* **Updated**: [shortcuts](../config/includes.chroot/root/.ciss/shortcuts)
|
||||||
|
* **Added**: Package ``ncdu``: [live.list.common.chroot](../config/package-lists/live.list.common.chroot)
|
||||||
|
* **Added**: ``TrustedUserCAKeys none``: [sshd_config](../config/includes.chroot/etc/ssh/sshd_config)
|
||||||
|
|
||||||
|
## V8.03.864.2025.07.15
|
||||||
|
|
||||||
|
* **Updated**: [0010_dhcp_supersede.sh](../scripts/0010_dhcp_supersede.sh)
|
||||||
|
* **Added**: [BOOTPARAMS.md](BOOTPARAMS.md)
|
||||||
|
* **Added**: Package ``cpuid``: [live.list.common.chroot](../config/package-lists/live.list.common.chroot)
|
||||||
|
|
||||||
|
## V8.03.832.2025.06.25
|
||||||
|
|
||||||
|
* **Added**: [lib_version.sh](../lib/lib_version.sh)
|
||||||
|
* **Updated**:
|
||||||
|
* [lib_contact.sh](../lib/lib_contact.sh)
|
||||||
|
* [lib_usage.sh](../lib/lib_usage.sh)
|
||||||
|
* **Packages added**:
|
||||||
|
* https://packages.debian.org/bookworm/fio
|
||||||
|
* https://packages.debian.org/bookworm/stress
|
||||||
|
* **Updated**: Timezone changed to ``Etc/UTC``
|
||||||
|
|
||||||
|
## V8.03.832.2025.06.24
|
||||||
|
|
||||||
|
* **Updated**:
|
||||||
|
* [lib_check_provider.sh](../lib/lib_check_provider.sh)
|
||||||
|
* [lib_debug_header.sh](../lib/lib_debug_header.sh)
|
||||||
|
* [lib_trap_on_err.sh](../lib/lib_trap_on_err.sh)
|
||||||
|
* **Added**: The Debian package ``bat`` will be installed to enable smooth log reading.
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.23
|
||||||
|
|
||||||
|
* **Updated**: [lib_clean_up.sh](../lib/lib_clean_up.sh): Removal of Lock FD and Artifacts.
|
||||||
|
* Rearranged VARs sourcing: [early.var.sh](../var/early.var.sh)
|
||||||
|
* Rearranged DEBUG XTRACE sourcing: [meta_sources_debug.sh](../meta_sources_debug.sh)
|
||||||
|
* **Added**: Git Repo specific VARs: [lib_debug_var_git.sh](../lib/lib_git_var.sh)
|
||||||
|
* **Added**: ``guard_sourcing()``: [lib_guard_sourcing.sh](../lib/lib_guard_sourcing.sh)
|
||||||
|
to prevent the caller LIB-file from being sourced twice.
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.19
|
||||||
|
|
||||||
|
* Minor main script improvements.
|
||||||
|
* **Updated**: [lib_usage.sh](../lib/lib_usage.sh) output.
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.18
|
||||||
|
|
||||||
|
* Minor main script improvements.
|
||||||
|
* **Updated**: Contact section.
|
||||||
|
* Integrated third ``dns03.eddns.eu`` Centurion DNS Resolver.
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.17
|
||||||
|
|
||||||
|
* **Updated**: LIVE ISO workflows to use Kernel: ``linux-image-6.12.30+bpo-amd64``
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.11
|
||||||
|
|
||||||
|
* **Updated**: LIVE ISO workflows to use Kernel: ``linux-image-6.12.27+bpo-amd64``
|
||||||
|
|
||||||
|
## V8.03.768.2025.06.09
|
||||||
|
|
||||||
|
* **Added**: [f2bchk.sh](../config/includes.chroot/root/.ciss/f2bchk.sh)
|
||||||
|
* **Updated**: [alias](../config/includes.chroot/root/.ciss/alias)
|
||||||
|
* ``scurl()``
|
||||||
|
* ``swget()``
|
||||||
|
|
||||||
## V8.03.644.2025.06.07
|
## V8.03.644.2025.06.07
|
||||||
|
|
||||||
* Updated workflows ISO Generators Runners.
|
* **Updated**: Workflows ISO Generators Runners.
|
||||||
* Installing ``bookworm-backports`` Versions of:
|
* Installing ``bookworm-backports`` Versions of:
|
||||||
* ``btrfs-progs``
|
* ``btrfs-progs``
|
||||||
* ``curl``
|
* ``curl``
|
||||||
@@ -30,12 +139,12 @@ include_toc: true
|
|||||||
* LIVE ISO generated by workflow tested against:
|
* LIVE ISO generated by workflow tested against:
|
||||||
* Netcup Root Server
|
* Netcup Root Server
|
||||||
* Proxmox
|
* Proxmox
|
||||||
* LIVE ISO generated by script tested against:
|
* LIVE ISO generated by the script tested against:
|
||||||
* Netcup Root Server
|
* Netcup Root Server
|
||||||
|
|
||||||
## V8.03.512.2025.06.06
|
## V8.03.512.2025.06.06
|
||||||
|
|
||||||
* Updated workflows:
|
* **Updated**: Workflows:
|
||||||
1. ``git stash push``
|
1. ``git stash push``
|
||||||
2. ``git fetch origin master``
|
2. ``git fetch origin master``
|
||||||
3. ``git merge --no-edit origin/master``
|
3. ``git merge --no-edit origin/master``
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Centurion Net - Developer Branch Overview
|
# 2. Centurion Net - Developer Branch Overview
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Coding Style
|
# 2. Coding Style
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Contributing / participating
|
# 2. Contributing / participating
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Credits
|
# 2. Credits
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Download the latest PUBLIC CISS.debian.live.ISO
|
# 2. Download the latest PUBLIC CISS.debian.live.ISO
|
||||||
|
|
||||||
|
|||||||
@@ -7,21 +7,18 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Usage
|
# 2.1. Usage
|
||||||
````text
|
````text
|
||||||
CISS.debian.live.builder
|
CISS.debian.live.builder
|
||||||
Master V8.03.644.2025.06.07
|
Master V8.13.008.2025.08.22
|
||||||
|
A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Image.
|
||||||
|
|
||||||
(c) Marc S. Weidner, 2018 - 2025
|
(c) Marc S. Weidner, 2018 - 2025
|
||||||
(p) Centurion Press, 2024 - 2025
|
(p) Centurion Press, 2024 - 2025
|
||||||
|
|
||||||
https://coresecret.eu/
|
|
||||||
|
|
||||||
A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Image.
|
|
||||||
|
|
||||||
"./ciss_live_builder.sh <option>", where <option> is one or more of:
|
"./ciss_live_builder.sh <option>", where <option> is one or more of:
|
||||||
|
|
||||||
--help, -h
|
--help, -h
|
||||||
@@ -30,7 +27,7 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
|
|||||||
--autobuild=*, -a=*
|
--autobuild=*, -a=*
|
||||||
Headless mode. Skip the dialog wrapper, provider note screen and interactive kernel
|
Headless mode. Skip the dialog wrapper, provider note screen and interactive kernel
|
||||||
selector dialog. Change '*' to your desired Linux kernel and trim the
|
selector dialog. Change '*' to your desired Linux kernel and trim the
|
||||||
'linux-image-' string to select a specific kernel, e.g. '--autobuild=6.12.22+bpo-amd64'.
|
'linux-image-' string to select a specific kernel, e.g. '--autobuild=6.12.30+bpo-amd64'.
|
||||||
|
|
||||||
--architecture <STRING> one of <amd64 | arm64>
|
--architecture <STRING> one of <amd64 | arm64>
|
||||||
A string reflecting the architecture of the Live System.
|
A string reflecting the architecture of the Live System.
|
||||||
@@ -58,19 +55,20 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
|
|||||||
|
|
||||||
--debug
|
--debug
|
||||||
Enables debug logging for the main program routine. Detailed logging
|
Enables debug logging for the main program routine. Detailed logging
|
||||||
information are written to "/tmp/ciss_live_builder_3764286.log"
|
information are written to "/tmp/ciss_live_builder_1136873.log"
|
||||||
|
|
||||||
--dhcp-centurion
|
--dhcp-centurion
|
||||||
If a DHCP lease is provided, the provider's nameserver will be overridden,
|
If a DHCP lease is provided, the provider's nameserver will be overridden,
|
||||||
and only the hardened, privacy-focused Centurion DNS servers will be used:
|
and only the hardened, privacy-focused Centurion DNS servers will be used:
|
||||||
- https://dns01.eddns.eu/
|
- https://dns01.eddns.eu/
|
||||||
- https://dns02.eddns.de/
|
- https://dns02.eddns.de/
|
||||||
|
- https://dns03.eddns.eu/
|
||||||
|
|
||||||
--jump-host <IP | IP | ... >
|
--jump-host <IP | IP | ... >
|
||||||
Provide up to 10 IPs for /etc/host.allow whitelisting of SSH access.
|
Provide up to 10 IPs for /etc/host.allow whitelisting of SSH access.
|
||||||
Could be either IPv4 and / or IPv6 addresses and / or CCDIR notation.
|
Could be either IPv4 and / or IPv6 addresses and / or CCDIR notation.
|
||||||
If provided, than it MUST be a <SPACE> separated list.
|
If provided, than it MUST be a <SPACE> separated list.
|
||||||
IPv6 addresses MUST be encapsulated with [], e.g., [1234::abcd/64].
|
IPv6 addresses MUST be encapsulated with [], e.g., [1234::abcd]/64.
|
||||||
|
|
||||||
--log-statistics-only
|
--log-statistics-only
|
||||||
Provides statistic only after successful building a
|
Provides statistic only after successful building a
|
||||||
@@ -80,23 +78,25 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
|
|||||||
|
|
||||||
--provider-netcup-ipv6
|
--provider-netcup-ipv6
|
||||||
Activates IPv6 support for Netcup Root Server. One unique
|
Activates IPv6 support for Netcup Root Server. One unique
|
||||||
IPv6 address MUST be provided in this case.
|
IPv6 address MUST be provided in this case and MUST be encapsulated
|
||||||
|
with [], e.g., [1234::abcd].
|
||||||
|
|
||||||
--renice-priority <PRIORITY>
|
--renice-priority <PRIORITY>
|
||||||
Reset the nice priority value of the script and all its children
|
Reset the nice priority value of the script and all its children
|
||||||
to the desired PRIORITY. MUST be an integer (between "-19" and 19).
|
to the desired <PRIORITY>. MUST be an integer (between "-19" and 19).
|
||||||
Negative (higher) values MUST be enclosed in double quotes '"'.
|
Negative (higher) values MUST be enclosed in double quotes '"'.
|
||||||
|
|
||||||
--reionice-priority <CLASS> <PRIORITY>
|
--reionice-priority <CLASS> <PRIORITY>
|
||||||
Reset the ionice priority value of the script and all its children
|
Reset the ionice priority value of the script and all its children
|
||||||
to the desired CLASS. MUST be an integer:
|
to the desired <CLASS>. MUST be an integer:
|
||||||
1: realtime
|
1: realtime
|
||||||
2: best-effort
|
2: best-effort
|
||||||
3: idle
|
3: idle
|
||||||
defaults to "2".
|
Defaults to '2'.
|
||||||
PRIORITY MUST be an integer:
|
Whereas <PRIORITY> MUST be an integer as well between:
|
||||||
between 0 (highest) and 7 (lowest) priority.
|
0: highest priority and
|
||||||
defaults to "4".
|
7: lowest priority.
|
||||||
|
Defaults to '4'.
|
||||||
A real-time I/O process can significantly slow down other processes
|
A real-time I/O process can significantly slow down other processes
|
||||||
or even cause them to starve if it continuously requests I/O.
|
or even cause them to starve if it continuously requests I/O.
|
||||||
|
|
||||||
@@ -107,9 +107,9 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
|
|||||||
the local console. The root password is hashed with an 16 Byte '/dev/random'
|
the local console. The root password is hashed with an 16 Byte '/dev/random'
|
||||||
generated SALT and SHA512 Hashing function and 8,388,608 rounds. Immediately
|
generated SALT and SHA512 Hashing function and 8,388,608 rounds. Immediately
|
||||||
after Hash generation all Variables containing plain password fragments are
|
after Hash generation all Variables containing plain password fragments are
|
||||||
deleted. Password file SHOULD be 0400 and root:root and is deleted without
|
deleted. Password file SHOULD be '0400' and 'root:root' and is deleted without
|
||||||
further prompt after password hash has been successfully generated via:
|
further prompt after password hash has been successfully generated via:
|
||||||
shred -vfzu 5 -f.
|
'shred -vfzu 5 -f'.
|
||||||
No tracing of any plain text password fragment in any debug log.
|
No tracing of any plain text password fragment in any debug log.
|
||||||
|
|
||||||
--ssh-port <INTEGER>
|
--ssh-port <INTEGER>
|
||||||
@@ -120,17 +120,36 @@ A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Ima
|
|||||||
Imports the SSH Public Key(s) from the FILE 'authorized_keys' of the
|
Imports the SSH Public Key(s) from the FILE 'authorized_keys' of the
|
||||||
specified PATH into the Live ISO. MUST be provided.
|
specified PATH into the Live ISO. MUST be provided.
|
||||||
|
|
||||||
|
--trixie
|
||||||
|
Create a Debian Trixie Live ISO.
|
||||||
|
|
||||||
--version, -v
|
--version, -v
|
||||||
Displays version of ./ciss_live_builder.sh.
|
Displays version of ./ciss_live_builder.sh.
|
||||||
|
|
||||||
NOTES:
|
💡 Notes:
|
||||||
- You MUST be root to run this script.
|
🔵 You MUST be 'root' to run this script.
|
||||||
|
|
||||||
Contact:
|
💷 Please consider donating to my work at:
|
||||||
- https://coresecret.eu/
|
🌐 https://coresecret.eu/spenden/
|
||||||
- security@coresecret.eu
|
````
|
||||||
- PGP Key 2D98 07F4 1030 1776 597E BDC9 9F54 8853 35A3 C9AD
|
|
||||||
- https://keys.openpgp.org/vks/v1/by-fingerprint/2D9807F410301776597EBDC99F54885335A3C9AD
|
# 2.2. Contact
|
||||||
|
````text
|
||||||
|
CISS.debian.live.builder
|
||||||
|
Master V8.13.008.2025.08.22
|
||||||
|
A lightweight Shell Wrapper for building a hardened Debian Bookworm Live ISO Image.
|
||||||
|
|
||||||
|
(c) Marc S. Weidner, 2018 - 2025
|
||||||
|
(p) Centurion Press, 2024 - 2025
|
||||||
|
|
||||||
|
💬 Contact:
|
||||||
|
🌐 https://coresecret.eu/
|
||||||
|
📧 security@coresecret.eu
|
||||||
|
🔑 PGP Key 2D98 07F4 1030 1776 597E BDC9 9F54 8853 35A3 C9AD
|
||||||
|
🔗 https://keys.openpgp.org/vks/v1/by-fingerprint/2D9807F410301776597EBDC99F54885335A3C9AD
|
||||||
|
|
||||||
|
💷 Please consider donating to my work at:
|
||||||
|
🌐 https://coresecret.eu/spenden/
|
||||||
````
|
````
|
||||||
|
|
||||||
# 3. Booting
|
# 3. Booting
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
<h1 id="spdx-license-identifier-licenseref-ccla-10">SPDX-License-Identifier: LicenseRef-CCLA-1.0</h1>
|
|
||||||
<h1 id="centurion-commercial-license-agreement-10">Centurion Commercial License Agreement 1.0</h1>
|
|
||||||
<h2 id="1-general-terms"><strong>1. General Terms</strong></h2>
|
|
||||||
<p>1.1. This Subscription License Agreement ("Agreement") governs the commercial use of the Software ("Software").</p>
|
|
||||||
<p>1.2. Private and open-source usage of the Software remains governed by the EUPL-1.2 license.</p>
|
|
||||||
<p>1.3. By purchasing and using the Software under this Agreement, you ("Licensee") agree to the terms outlined below.</p>
|
|
||||||
<p>1.4. Only the English version of this Agreement shall be legally binding. Translations are provided for convenience only.</p>
|
|
||||||
<h2 id="2-grant-of-license"><strong>2. Grant of License</strong></h2>
|
|
||||||
<p>2.1. Subject-to-payment of applicable subscription fees, Licensor grants Licensee a</p>
|
|
||||||
<ul>
|
|
||||||
<li>non-exclusive,</li>
|
|
||||||
<li>non-transferable,</li>
|
|
||||||
<li>time-limited,</li>
|
|
||||||
</ul>
|
|
||||||
<p>right to use the Software for commercial purposes.</p>
|
|
||||||
<p>2.2. This license is valid only for the duration of the subscription period and under the scope defined in this Agreement.</p>
|
|
||||||
<h2 id="3-subscription-fees-and-payment"><strong>3. Subscription Fees and Payment</strong></h2>
|
|
||||||
<p>3.1. Licensee agrees to pay the subscription fees as specified in the pricing agreement. These fees are non-refundable.</p>
|
|
||||||
<p>3.2. Licensor reserves the right to modify subscription fees upon 30 days' written notice.</p>
|
|
||||||
<h2 id="4-restrictions"><strong>4. Restrictions</strong></h2>
|
|
||||||
<p>4.1. Licensee shall not:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Distribute, sublicense, or resell the Software.</li>
|
|
||||||
<li>Reverse engineer, decompile, or modify the Software, except as permitted by mandatory law.</li>
|
|
||||||
</ul>
|
|
||||||
<p>4.2. The Software may not be used for illegal or unethical purposes.</p>
|
|
||||||
<h2 id="5-support-and-updates"><strong>5. Support and Updates</strong></h2>
|
|
||||||
<p>5.1. Licensor will provide updates and support for the Software during the subscription period, as detailed in the accompanying support agreement.</p>
|
|
||||||
<p>5.2. Support services may include bug fixes, patches, and minor updates. Major updates may incur additional fees.</p>
|
|
||||||
<h2 id="6-termination"><strong>6. Termination</strong></h2>
|
|
||||||
<p>6.1. This Agreement is valid for the subscription term unless terminated earlier:</p>
|
|
||||||
<ul>
|
|
||||||
<li>By Licensee, with a 30-day written notice.</li>
|
|
||||||
<li>By Licensor, in the event of Licensees breach of this Agreement.</li>
|
|
||||||
</ul>
|
|
||||||
<p>6.2. Upon termination, Licensee must cease all uses of the Software and delete all copies.</p>
|
|
||||||
<h2 id="7-liability-and-warranty"><strong>7. Liability and Warranty</strong></h2>
|
|
||||||
<p>7.1. The Software is provided "as is" without warranties of any kind, except as required by law.</p>
|
|
||||||
<p>7.2. Licensors' liability is limited to the number of subscription fees paid by Licensee in the preceding 12 months.</p>
|
|
||||||
<h2 id="8-governing-law"><strong>8. Governing Law</strong></h2>
|
|
||||||
<p>8.1. This Agreement shall be governed by the laws of Portugal.</p>
|
|
||||||
<p>8.2. Disputes arising under this Agreement shall be subject to the exclusive jurisdiction of the courts of Portugal.</p>
|
|
||||||
<h2 id="9-miscellaneous"><strong>9. Miscellaneous</strong></h2>
|
|
||||||
<p>9.1. Any changes to this Agreement must be in writing and signed by both parties.</p>
|
|
||||||
<p>9.2. If any provision of this Agreement is found invalid, the remaining provisions shall remain enforceable.</p>
|
|
||||||
<h2 id="10-contact-information">10. <strong>Contact Information</strong></h2>
|
|
||||||
<ul>
|
|
||||||
<li>Licensor : Centurion Intelligence Consulting Agency</li>
|
|
||||||
<li>Email : <a href="mailto:legal@coresecret.eu">legal@coresecret.eu</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr />
|
|
||||||
<p>This Subscription License Agreement was last updated at 09.05.2025.</p>
|
|
||||||
|
|
||||||
@@ -7,8 +7,8 @@ include_toc: true
|
|||||||
|
|
||||||
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
**Centurion Intelligence Consulting Agency Information Security Standard**<br>
|
||||||
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
*Debian Live Build Generator for hardened live environment and CISS Debian Installer*<br>
|
||||||
**Master Version**: 8.03<br>
|
**Master Version**: 8.13<br>
|
||||||
**Build**: V8.03.644.2025.06.07<br>
|
**Build**: V8.13.008.2025.08.22<br>
|
||||||
|
|
||||||
# 2. Resources
|
# 2. Resources
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 204 KiB |
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Argument Parser
|
# Argument Parser
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -62,8 +64,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-c | --contact)
|
-c | --contact)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --contact MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --contact MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -72,8 +74,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h | --help)
|
-h | --help)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --help MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --help MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -82,8 +84,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-v | --version)
|
-v | --version)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --version MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --version MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -96,18 +98,18 @@ arg_parser() {
|
|||||||
declare -gx VAR_ARCHITECTURE="${2}"
|
declare -gx VAR_ARCHITECTURE="${2}"
|
||||||
shift 2
|
shift 2
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --architecture MUST be 'amd64' or 'arm64'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --architecture MUST be 'amd64' or 'arm64'.\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_UNCRITICAL}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--build-directory)
|
--build-directory)
|
||||||
declare -gx VAR_HANDLER_BUILD_DIR="${2}"
|
declare -gx VAR_HANDLER_BUILD_DIR="${2}"
|
||||||
if [[ ! "${VAR_HANDLER_BUILD_DIR}" =~ ^/ ]]; then
|
if [[ ! "${VAR_HANDLER_BUILD_DIR}" =~ ^/ ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --build-directory MUST be an absolute path. Got: '%s'\n" "${VAR_HANDLER_BUILD_DIR}" >&2
|
printf "\e[91m❌ Error: --build-directory MUST be an absolute path. Got: '%s'\n" "${VAR_HANDLER_BUILD_DIR}" >&2
|
||||||
exit "${ERR_NOTABSPATH}"
|
exit "${ERR_NOTABSPATH}"
|
||||||
fi
|
fi
|
||||||
@@ -116,8 +118,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--cdi)
|
--cdi)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --cdi MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --cdi MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -131,7 +133,7 @@ arg_parser() {
|
|||||||
declare -g VAR_HANDLER_SPLASH="${2}"
|
declare -g VAR_HANDLER_SPLASH="${2}"
|
||||||
shift 2
|
shift 2
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --change-splash MUST be 'club' or 'hexagon'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --change-splash MUST be 'club' or 'hexagon'.\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -140,11 +142,11 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--control)
|
--control)
|
||||||
if [[ -n "${2}" ]]; then
|
if [[ -n "${2-}" ]]; then
|
||||||
declare -g VAR_HANDLER_ISO_COUNTER="${2}"
|
declare -g VAR_HANDLER_ISO_COUNTER="${2}"
|
||||||
shift 2
|
shift 2
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --control MUST be provided with a Parameter.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --control MUST be provided with a Parameter.\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -153,8 +155,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--debug)
|
--debug)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --debug MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --debug MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -163,8 +165,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--dhcp-centurion)
|
--dhcp-centurion)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --dhcp-centurion MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --dhcp-centurion MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -174,7 +176,7 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--jump-host)
|
--jump-host)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
declare -i count=0
|
declare -i count=0
|
||||||
shift
|
shift
|
||||||
while [[ "${#}" -gt 0 && "${1}" != -* && count -lt 10 ]]; do
|
while [[ "${#}" -gt 0 && "${1}" != -* && count -lt 10 ]]; do
|
||||||
@@ -186,7 +188,7 @@ arg_parser() {
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --jump-host MUST contain one or up to ten IPs.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --jump-host MUST contain one or up to ten IPs.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -194,8 +196,8 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--log-statistics-only)
|
--log-statistics-only)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --log-statistics-only MUST NOT be followed by an argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --log-statistics-only MUST NOT be followed by an argument.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -205,7 +207,7 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--provider-netcup-ipv6)
|
--provider-netcup-ipv6)
|
||||||
if [[ -n "${2}" && "${2}" != -* ]]; then
|
if [[ -n "${2-}" && "${2}" != -* ]]; then
|
||||||
declare -i count=0
|
declare -i count=0
|
||||||
declare -g VAR_HANDLER_NETCUP_IPV6=true
|
declare -g VAR_HANDLER_NETCUP_IPV6=true
|
||||||
shift
|
shift
|
||||||
@@ -219,7 +221,7 @@ arg_parser() {
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --provider-netcup-ipv6 MUST provide one IPv6.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --provider-netcup-ipv6 MUST provide one IPv6.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_ARG_MSMTCH}"
|
exit "${ERR_ARG_MSMTCH}"
|
||||||
@@ -227,11 +229,11 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--renice-priority)
|
--renice-priority)
|
||||||
if [[ -n ${2} && ${2} =~ ^-?[0-9]+$ && ${2} -ge -19 && ${2} -le 19 ]]; then
|
if [[ -n ${2-} && ${2} =~ ^-?[0-9]+$ && ${2} -ge -19 && ${2} -le 19 ]]; then
|
||||||
declare -gi VAR_HANDLER_PRIORITY="$2"
|
VAR_HANDLER_PRIORITY="$2"
|
||||||
shift 2
|
shift 2
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --renice-priority MUST an integer between '-19' and '19'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --renice-priority MUST an integer between '-19' and '19'.\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -240,28 +242,28 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--reionice-priority)
|
--reionice-priority)
|
||||||
if [[ -z "${2}" ]]; then
|
if [[ -z "${2-}" ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --reionice-priority no values provided.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --reionice-priority no values provided.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_REIONICE_P}"
|
exit "${ERR_REIONICE_P}"
|
||||||
else
|
else
|
||||||
if [[ "${2}" =~ ^[1-3]$ ]]; then
|
if [[ "${2}" =~ ^[1-3]$ ]]; then
|
||||||
declare -gi VAR_REIONICE_CLASS="${2}"
|
VAR_REIONICE_CLASS="${2}"
|
||||||
if [[ -z "${3}" ]]; then
|
if [[ -z "${3-}" ]]; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
if [[ "${3}" =~ ^[0-7]$ ]]; then
|
if [[ "${3}" =~ ^[0-7]$ ]]; then
|
||||||
declare -gi VAR_REIONICE_PRIORITY="${3}"
|
VAR_REIONICE_PRIORITY="${3}"
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --reionice-priority PRIORITY MUST be an integer between '0' and '7'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --reionice-priority PRIORITY MUST be an integer between '0' and '7'.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_REIO_P_VAL}"
|
exit "${ERR_REIO_P_VAL}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --reionice-priority CLASS MUST be an integer between '1' and '3'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --reionice-priority CLASS MUST be an integer between '1' and '3'.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR_REIO_C_VAL}"
|
exit "${ERR_REIO_C_VAL}"
|
||||||
@@ -277,7 +279,7 @@ arg_parser() {
|
|||||||
--root-password-file)
|
--root-password-file)
|
||||||
declare pw_file="${2}"
|
declare pw_file="${2}"
|
||||||
if [[ -z "${pw_file}" ]]; then
|
if [[ -z "${pw_file}" ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file missing password file path argument.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --root-password-file missing password file path argument.\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -285,7 +287,7 @@ arg_parser() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "${pw_file}" ]]; then
|
if [[ ! -f "${pw_file}" ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file password file '%s' does not exist.\e[0m\n" "${pw_file}" >&2
|
printf "\e[91m❌ Error: --root-password-file password file '%s' does not exist.\e[0m\n" "${pw_file}" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -296,7 +298,7 @@ arg_parser() {
|
|||||||
owner=$(stat -c '%U:%G' "${pw_file}")
|
owner=$(stat -c '%U:%G' "${pw_file}")
|
||||||
if [[ "${owner}" != "root:root" ]]; then
|
if [[ "${owner}" != "root:root" ]]; then
|
||||||
chown root:root "${pw_file}" || {
|
chown root:root "${pw_file}" || {
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file failed to set owner root:root on '%s'.\e[0m\n" "${pw_file}" >&2
|
printf "\e[91m❌ Error: --root-password-file failed to set owner root:root on '%s'.\e[0m\n" "${pw_file}" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -308,7 +310,7 @@ arg_parser() {
|
|||||||
perms=$(stat -c '%a' "${pw_file}")
|
perms=$(stat -c '%a' "${pw_file}")
|
||||||
if [[ "${perms}" -ne 400 ]]; then
|
if [[ "${perms}" -ne 400 ]]; then
|
||||||
chmod 400 "${pw_file}" || {
|
chmod 400 "${pw_file}" || {
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file failed to set permissions 0400 on '%s'.\e[0m\n" "${pw_file}" >&2
|
printf "\e[91m❌ Error: --root-password-file failed to set permissions 0400 on '%s'.\e[0m\n" "${pw_file}" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -326,7 +328,7 @@ arg_parser() {
|
|||||||
declare pw_length
|
declare pw_length
|
||||||
pw_length=${#plaintext_pw}
|
pw_length=${#plaintext_pw}
|
||||||
if (( pw_length < 20 || pw_length > 64 )); then
|
if (( pw_length < 20 || pw_length > 64 )); then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file password MUST be between 20 and 64 characters (got %d).\e[0m\n" "${pw_length}" >&2
|
printf "\e[91m❌ Error: --root-password-file password MUST be between 20 and 64 characters (got %d).\e[0m\n" "${pw_length}" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -336,7 +338,7 @@ arg_parser() {
|
|||||||
[[ "${VAR_EARLY_DEBUG}" == "true" ]] && set +x # No tracing for security reasons
|
[[ "${VAR_EARLY_DEBUG}" == "true" ]] && set +x # No tracing for security reasons
|
||||||
if [[ "${plaintext_pw}" == *\"* ]]; then
|
if [[ "${plaintext_pw}" == *\"* ]]; then
|
||||||
[[ "${VAR_EARLY_DEBUG}" == "true" ]] && set -x # Turn on tracing again
|
[[ "${VAR_EARLY_DEBUG}" == "true" ]] && set -x # Turn on tracing again
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --root-password-file password MUST NOT contain double quotes (\").\e[0m\n" >&2
|
printf "\e[91m❌ Error: --root-password-file password MUST NOT contain double quotes (\").\e[0m\n" >&2
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
@@ -372,11 +374,11 @@ arg_parser() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--ssh-port)
|
--ssh-port)
|
||||||
if [[ -n "${2}" && "${2}" =~ ^-?[0-9]+$ && "${2}" -ge 1 && "${2}" -le 65535 ]]; then
|
if [[ -n "${2-}" && "${2}" =~ ^-?[0-9]+$ && "${2}" -ge 1 && "${2}" -le 65535 ]]; then
|
||||||
declare -gi VAR_SSHPORT="${2}"
|
declare -gi VAR_SSHPORT="${2}"
|
||||||
shift 2
|
shift 2
|
||||||
else
|
else
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
printf "\e[91m❌ Error: --ssh-port MUST be an integer between '1' and '65535'.\e[0m\n" >&2
|
printf "\e[91m❌ Error: --ssh-port MUST be an integer between '1' and '65535'.\e[0m\n" >&2
|
||||||
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
read -p -r $'\e[92m✅ Press \'ENTER\' to exit the script ... \e[0m'
|
||||||
exit "${ERR__SSH__PORT}"
|
exit "${ERR__SSH__PORT}"
|
||||||
@@ -388,8 +390,13 @@ arg_parser() {
|
|||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
--trixie)
|
||||||
|
declare -g VAR_SUITE="trixie"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then boot_screen_cleaner; fi
|
if ! ${VAR_HANDLER_AUTOBUILD}; then boot_screen_cleaner; fi
|
||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Check and setup Script Priorities
|
# Check and setup Script Priorities
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -21,22 +23,30 @@
|
|||||||
#######################################
|
#######################################
|
||||||
arg_priority_check() {
|
arg_priority_check() {
|
||||||
declare var
|
declare var
|
||||||
# Check if nice PRIORITY is set and adjust nice priority.
|
### Check if nice PRIORITY is set and adjust nice priority.
|
||||||
if [[ -n ${VAR_HANDLER_PRIORITY} ]]; then
|
if [[ "${VAR_HANDLER_PRIORITY:-}" -ne 0 ]]; then
|
||||||
|
if command -v renice >/dev/null; then
|
||||||
renice "${VAR_HANDLER_PRIORITY}" -p "$$"
|
renice "${VAR_HANDLER_PRIORITY}" -p "$$"
|
||||||
var=$(ps -o ni= -p $$) > /dev/null 2>&1
|
var=$(ps -o ni= -p $$) > /dev/null 2>&1
|
||||||
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ New renice value: %s\e[0m\n" "${var}"
|
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ New renice value: %s\e[0m\n" "${var}"
|
||||||
# sleep 1
|
# sleep 1
|
||||||
unset var
|
unset var
|
||||||
|
else
|
||||||
|
printf "\e[93m++++ ++++ ++++ ++++ ++++ ++++ ++ ❌ renice not installed (util-linux) \e[0m\n"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if ionice PRIORITY is set and adjust ionice priority.
|
### Check if ionice PRIORITY is set and adjust ionice priority.
|
||||||
if [[ -n ${VAR_REIONICE_CLASS} ]]; then
|
if [[ "${VAR_REIONICE_CLASS:-}" -ne 2 ]]; then
|
||||||
|
if command -v ionice >/dev/null; then
|
||||||
ionice -c"${VAR_REIONICE_CLASS:-2}" -n"${VAR_REIONICE_PRIORITY:-4}" -p "$$"
|
ionice -c"${VAR_REIONICE_CLASS:-2}" -n"${VAR_REIONICE_PRIORITY:-4}" -p "$$"
|
||||||
var=$(ionice -p $$) > /dev/null 2>&1
|
var=$(ionice -p $$) > /dev/null 2>&1
|
||||||
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ New ionice value: %s\e[0m\n" "${var}"
|
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ New ionice value: %s\e[0m\n" "${var}"
|
||||||
# sleep 1
|
# sleep 1
|
||||||
unset var
|
unset var
|
||||||
|
else
|
||||||
|
printf "\e[93m++++ ++++ ++++ ++++ ++++ ++++ ++ ❌ ionice not installed (util-linux) \e[0m\n"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# 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
|
||||||
|
|||||||
@@ -6,12 +6,14 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Change Grub Boot Screen Splash
|
# Set up a gauge Dialog Wrapper.
|
||||||
# Globals:
|
# Globals:
|
||||||
# PID_BOOT_SCREEN
|
# PID_BOOT_SCREEN
|
||||||
# PIPE_BOOT_SCREEN
|
# PIPE_BOOT_SCREEN
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# CISS.2025.debian.installer GRUB and Autostart Generator
|
# CISS.2025.debian.installer GRUB and Autostart Generator
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Change Grub Boot Screen Splash
|
# Change Grub Boot Screen Splash
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Check if hardened Centurion DNS servers are desired.
|
# Check if hardened Centurion DNS servers are desired.
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Check and apply 0755 Permissions on every ./config/hooks/live/*.chroot file
|
# Check and apply 0755 Permissions on every ./config/hooks/live/*.chroot file
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Kernel Image Selector
|
# Kernel Image Selector
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -52,7 +54,7 @@ check_kernel() {
|
|||||||
done < "${VAR_KERNEL_SRT}"
|
done < "${VAR_KERNEL_SRT}"
|
||||||
|
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
if declare -g VAR_KERNEL=$(dialog \
|
if declare -gx VAR_KERNEL=$(dialog \
|
||||||
--no-collapse \
|
--no-collapse \
|
||||||
--ascii-lines \
|
--ascii-lines \
|
||||||
--clear \
|
--clear \
|
||||||
@@ -63,9 +65,9 @@ check_kernel() {
|
|||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
if [[ "${VAR_ARCHITECTURE}" == "amd64" ]]; then
|
if [[ "${VAR_ARCHITECTURE}" == "amd64" ]]; then
|
||||||
declare -gr VAR_KERNEL="amd64"
|
declare -gx VAR_KERNEL="amd64"
|
||||||
elif [[ "${VAR_ARCHITECTURE}" == "arm64" ]]; then
|
elif [[ "${VAR_ARCHITECTURE}" == "arm64" ]]; then
|
||||||
declare -gr VAR_KERNEL="arm64"
|
declare -gx VAR_KERNEL="arm64"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,23 +10,46 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Check for required Deb Packages to run the script.
|
# Check for required Deb Packages to run the script.
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# None
|
# None
|
||||||
#######################################
|
#######################################
|
||||||
check_pkgs() {
|
check_pkgs() {
|
||||||
if [[ ! -f /usr/share/live/build/VERSION ]]; then
|
apt-get update -y > /dev/null 2>&1
|
||||||
apt-get update -y
|
|
||||||
apt-get install live-build -y
|
if [[ -z "$(command -v batcat || true)" ]]; then
|
||||||
|
apt-get install -y --no-install-recommends bat
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$(command -v lsb_release || true)" ]]; then
|
||||||
|
apt-get install -y --no-install-recommends lsb-release
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$(command -v debootstrap || true)" ]]; then
|
||||||
|
if grep -RqsE '^[[:space:]]*deb .*backports' /etc/apt/sources.list /etc/apt/sources.list.d; then
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
declare codename=$(lsb_release -sc)
|
||||||
|
apt-get install -y -t "${codename}-backports" debootstrap
|
||||||
|
else
|
||||||
|
apt-get install -y debootstrap
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /usr/share/live/build/VERSION ]]; then
|
||||||
|
apt-get install -y live-build
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${VAR_HANDLER_AUTOBUILD}" == false ]]; then
|
||||||
if [[ -z "$(command -v dialog || true)" ]]; then
|
if [[ -z "$(command -v dialog || true)" ]]; then
|
||||||
if ! $VAR_HANDLER_AUTOBUILD; then apt-get install --no-install-recommends dialog -y; fi
|
apt-get install -y --no-install-recommends dialog
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$(command -v mkpasswd || true)" ]]; then
|
if [[ -z "$(command -v mkpasswd || true)" ]]; then
|
||||||
apt-get install --no-install-recommends whois -y
|
apt-get install -y --no-install-recommends whois
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# 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
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Notes Textbox
|
# Notes Textbox
|
||||||
# Arguments:
|
# Arguments:
|
||||||
@@ -17,8 +19,9 @@
|
|||||||
#######################################
|
#######################################
|
||||||
check_provider() {
|
check_provider() {
|
||||||
clear
|
clear
|
||||||
cat << 'EOF' >| "${VAR_NOTES}"
|
cat << EOF >| "${VAR_NOTES}"
|
||||||
Build: Master V8.03.644.2025.06.07
|
Build : ${VAR_VERSION}
|
||||||
|
Commit : ${VAR_GIT_REL}
|
||||||
|
|
||||||
Press 'EXIT' to continue with CISS.debian.live.builder.
|
Press 'EXIT' to continue with CISS.debian.live.builder.
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Check if analysis run is desired only.
|
# Check if analysis run is desired only.
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Unbound Variable Check and call Trap on ERR
|
# Unbound Variable Check and call Trap on ERR
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Terminal cleaner before Trap on Error
|
# Terminal cleaner before Trap on Error
|
||||||
# Arguments:
|
# Arguments:
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Clean Up Wrapper on Trap on 'ERR' and 'EXIT'.
|
# Clean Up Wrapper on Trap on 'ERR' and 'EXIT'.
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -26,6 +28,11 @@ clean_up() {
|
|||||||
rm -f -- "${VAR_KERNEL_INF}"
|
rm -f -- "${VAR_KERNEL_INF}"
|
||||||
rm -f -- "${VAR_KERNEL_SRT}"
|
rm -f -- "${VAR_KERNEL_SRT}"
|
||||||
rm -f -- "${VAR_KERNEL_TMP}"
|
rm -f -- "${VAR_KERNEL_TMP}"
|
||||||
|
# Release advisory lock on FD 127.
|
||||||
|
flock -u 127
|
||||||
|
# Close file descriptor 127.
|
||||||
|
exec 127>&-
|
||||||
|
# Remove the lockfile artifact.
|
||||||
rm -f /run/lock/ciss_live_builder.lock
|
rm -f /run/lock/ciss_live_builder.lock
|
||||||
if (( clean_exit_code == 0 )); then rm -f -- "${LOG_ERROR}"; fi
|
if (( clean_exit_code == 0 )); then rm -f -- "${LOG_ERROR}"; fi
|
||||||
if [[ -f "${VAR_WORKDIR}/hosts.allow" ]]; then
|
if [[ -f "${VAR_WORKDIR}/hosts.allow" ]]; then
|
||||||
|
|||||||
42
lib/lib_contact.sh
Normal file
42
lib/lib_contact.sh
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Contact Wrapper CISS.debian.live.builder
|
||||||
|
# Globals:
|
||||||
|
# none
|
||||||
|
# Arguments:
|
||||||
|
# none
|
||||||
|
#######################################
|
||||||
|
contact() {
|
||||||
|
clear
|
||||||
|
cat << EOF
|
||||||
|
$(echo -e "\e[97m################################################################################ \e[0m")
|
||||||
|
$(echo -e "\e[92m CISS.debian.live.builder from https://git.coresecret.dev/msw \e[0m")
|
||||||
|
$(echo -e "\e[92m A 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")
|
||||||
|
$(echo -e "\e[97m (p) Centurion Press, 2024 - 2025 \e[0m")
|
||||||
|
|
||||||
|
$(echo -e "\e[95m 💬 Contact: \e[0m")
|
||||||
|
$(echo -e "\e[95m 🌐 https://coresecret.eu/ \e[0m")
|
||||||
|
$(echo -e "\e[95m 📧 security@coresecret.eu \e[0m")
|
||||||
|
$(echo -e "\e[95m 🔑 PGP Key 2D98 07F4 1030 1776 597E BDC9 9F54 8853 35A3 C9AD \e[0m")
|
||||||
|
$(echo -e "\e[95m 🔗 https://keys.openpgp.org/vks/v1/by-fingerprint/2D9807F410301776597EBDC99F54885335A3C9AD \e[0m")
|
||||||
|
|
||||||
|
$(echo -e "\e[95m 💷 Please consider donating to my work at: \e[0m")
|
||||||
|
$(echo -e "\e[95m 🌐 https://coresecret.eu/spenden/ \e[0m")
|
||||||
|
$(echo -e "\e[97m################################################################################ \e[0m")
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Copy Initial ISO aide Database into Host System
|
# Copy Initial ISO aide Database into Host System
|
||||||
# Globals:
|
# Globals:
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Debugger Wrapper for xtrace to Debug Log
|
# Debugger Wrapper for xtrace to Debug Log
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -34,22 +36,18 @@ debugger() {
|
|||||||
declare -p "${var}" 2>/dev/null
|
declare -p "${var}" 2>/dev/null
|
||||||
done < <(compgen -v | grep -Ev '^(BASH|_).*')
|
done < <(compgen -v | grep -Ev '^(BASH|_).*')
|
||||||
} | sort >| "${VAR_DUMP_VARS_INITIAL}"
|
} | sort >| "${VAR_DUMP_VARS_INITIAL}"
|
||||||
declare -grx VAR_EARLY_DEBUG=true
|
declare -gx VAR_EARLY_DEBUG="true"
|
||||||
### Set a verbose PS4 prompt including timestamp, source, line, exit status, and function name
|
### Set a verbose PS4 prompt including timestamp, source, line, exit status, and function name
|
||||||
declare -grx PS4='\e[97m+\e[0m\e[96m$(date +%T.%4N)\e[0m\e[97m:\e[0m\e[92m[${BASH_SOURCE[0]}:${LINENO}]\e[0m\e[97m|\e[0m\e[93m${?}\e[0m\e[97m>\e[0m\e[95m${FUNCNAME[0]:-main}()\e[0m \e[97m>>\e[0m '
|
declare -grx PS4='\e[97m+\e[0m\e[96m$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)\e[0m\e[97m:\e[0m\e[92m[${BASH_SOURCE[0]}:${LINENO}]\e[0m\e[97m|\e[0m\e[93m${?}\e[0m\e[97m>\e[0m\e[95m${FUNCNAME[0]:-main}()\e[0m \e[97m>>\e[0m '
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
declare -grx LOG_DEBUG="/tmp/ciss_live_builder_$$_debug.log"
|
declare -grx LOG_DEBUG="/tmp/ciss_live_builder_$$_debug.log"
|
||||||
### Generates empty LOG_DEBUG
|
declare -grx LOG_VAR="/tmp/ciss_live_builder_$$_var.log"
|
||||||
|
### Generates empty LOG_DEBUG and LOG_VAR
|
||||||
touch "${LOG_DEBUG}" && chmod 0600 "${LOG_DEBUG}"
|
touch "${LOG_DEBUG}" && chmod 0600 "${LOG_DEBUG}"
|
||||||
|
touch "${LOG_VAR}" && chmod 0600 "${LOG_VAR}"
|
||||||
### Open file descriptor 42 for writing to the debug log
|
### Open file descriptor 42 for writing to the debug log
|
||||||
exec 42>| "${LOG_DEBUG}"
|
exec 42>| "${LOG_DEBUG}"
|
||||||
### Write Debug Log Header https://www.gnu.org/software/bash/manual/html_node/Bash-Variables
|
### Write Debug Log Header https://www.gnu.org/software/bash/manual/html_node/Bash-Variables
|
||||||
### Determine the directory of this script, even if sourced.
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
declare script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
### Source the header from the same directory. This ensures we always load lib/lib_debug_header.sh correctly.
|
|
||||||
. "${script_dir}/lib_debug_header.sh"
|
|
||||||
# shellcheck disable=SC2119
|
|
||||||
debug_header "$#" "$*"
|
debug_header "$#" "$*"
|
||||||
### Tell Bash to send xtrace output to FD 42
|
### Tell Bash to send xtrace output to FD 42
|
||||||
export BASH_XTRACEFD=42
|
export BASH_XTRACEFD=42
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
|
||||||
# SPDX-FileType: SOURCE
|
# SPDX-FileType: SOURCE
|
||||||
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
|
||||||
# SPDX-LicenseComment: This file is part of the CISS.hardened.installer framework.
|
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
|
||||||
# SPDX-PackageName: CISS.debian.live.builder
|
# SPDX-PackageName: CISS.debian.live.builder
|
||||||
# SPDX-Security-Contact: security@coresecret.eu
|
# SPDX-Security-Contact: security@coresecret.eu
|
||||||
|
|
||||||
|
guard_sourcing
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Generates Debug Log Header
|
# Generates Debug Log Header
|
||||||
# Globals:
|
# Globals:
|
||||||
@@ -31,26 +33,29 @@ debug_header() {
|
|||||||
declare -r arg_counter="$1"
|
declare -r arg_counter="$1"
|
||||||
declare -r arg_string="$2"
|
declare -r arg_string="$2"
|
||||||
{
|
{
|
||||||
printf "\e[97m+\e[0m\e[92m%s: CISS.debian.live.builder Debug Log \e[0m\n" "$(date +%T.%4N)"
|
printf "\e[97m+\e[0m\e[92m%s: CISS.debian.live.builder Debug Log \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Version : %s \e[0m\n" "$(date +%T.%4N)" "${VAR_VERSION}"
|
printf "\e[97m+\e[0m\e[92m%s: Git Commit : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${VAR_GIT_REL}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Epoch : %s \e[0m\n" "$(date +%T.%4N)" "${EPOCHREALTIME}"
|
printf "\e[97m+\e[0m\e[92m%s: Version : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${VAR_VERSION}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Bash MAJ Release : %s \e[0m\n" "$(date +%T.%4N)" "${BASH_VERSINFO[0]}"
|
printf "\e[97m+\e[0m\e[92m%s: Epoch : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${EPOCHREALTIME}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Bash MIN Version : %s \e[0m\n" "$(date +%T.%4N)" "${BASH_VERSINFO[1]}"
|
printf "\e[97m+\e[0m\e[92m%s: Bash MAJ Release : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASH_VERSINFO[0]}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Bash Patch Level : %s \e[0m\n" "$(date +%T.%4N)" "${BASH_VERSINFO[2]}"
|
printf "\e[97m+\e[0m\e[92m%s: Bash MIN Version : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASH_VERSINFO[1]}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Bash Build Version : %s \e[0m\n" "$(date +%T.%4N)" "${BASH_VERSINFO[3]}"
|
printf "\e[97m+\e[0m\e[92m%s: Bash Patch Level : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASH_VERSINFO[2]}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Bash Release : %s \e[0m\n" "$(date +%T.%4N)" "${BASH_VERSINFO[4]}"
|
printf "\e[97m+\e[0m\e[92m%s: Bash Build Version : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASH_VERSINFO[3]}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: UID : %s \e[0m\n" "$(date +%T.%4N)" "${UID}"
|
printf "\e[97m+\e[0m\e[92m%s: Bash Release : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASH_VERSINFO[4]}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: EUID : %s \e[0m\n" "$(date +%T.%4N)" "${EUID}"
|
printf "\e[97m+\e[0m\e[92m%s: UID : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${UID}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Hostname : %s \e[0m\n" "$(date +%T.%4N)" "${HOSTNAME}"
|
printf "\e[97m+\e[0m\e[92m%s: EUID : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${EUID}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Script name : %s \e[0m\n" "$(date +%T.%4N)" "$0"
|
printf "\e[97m+\e[0m\e[92m%s: Hostname : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${HOSTNAME}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Argument Counter : %s \e[0m\n" "$(date +%T.%4N)" "${arg_counter}"
|
printf "\e[97m+\e[0m\e[92m%s: Hostsystem : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${VAR_SYSTEM}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Argument String Original : %s \e[0m\n" "$(date +%T.%4N)" "${arg_string}"
|
printf "\e[97m+\e[0m\e[92m%s: Script name : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "$0"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Script PID : %s \e[0m\n" "$(date +%T.%4N)" "$$"
|
printf "\e[97m+\e[0m\e[92m%s: Argument Counter : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${arg_counter}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Script Parent PID : %s \e[0m\n" "$(date +%T.%4N)" "${PPID}"
|
printf "\e[97m+\e[0m\e[92m%s: Argument String Original : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${arg_string}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Script work DIR : %s \e[0m\n" "$(date +%T.%4N)" "${PWD}"
|
printf "\e[97m+\e[0m\e[92m%s: Script PID : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "$$"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: Shell Options : %s \e[0m\n" "$(date +%T.%4N)" "$-"
|
printf "\e[97m+\e[0m\e[92m%s: Script Parent PID : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${PPID}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: BASHOPTS : %s \e[0m\n" "$(date +%T.%4N)" "${BASHOPTS}"
|
printf "\e[97m+\e[0m\e[92m%s: Script work DIR : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${PWD}"
|
||||||
printf "\e[97m+\e[0m\e[92m%s: ==== Debug Log Begin ==== : \e[0m\n" "$(date +%T.%4N)"
|
printf "\e[97m+\e[0m\e[92m%s: Shell Options : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "$-"
|
||||||
|
printf "\e[97m+\e[0m\e[92m%s: BASHOPTS : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${BASHOPTS}"
|
||||||
|
printf "\e[97m+\e[0m\e[92m%s: SHELLOPTS : %s \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)" "${SHELLOPTS}"
|
||||||
|
printf "\e[97m+\e[0m\e[92m%s: ==== Debug Log Begin ==== : \e[0m\n" "$(date -u +%Y-%m-%dT%H:%M:%S.%4N%z)"
|
||||||
} >&42
|
} >&42
|
||||||
}
|
}
|
||||||
# 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
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user