All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m6s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
145 lines
4.9 KiB
Bash
145 lines
4.9 KiB
Bash
#!/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
|
|
set -Ceuo pipefail
|
|
|
|
printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"
|
|
# sleep 1
|
|
|
|
mv /etc/network/interfaces /root/.ciss/cdlb/backup/interfaces.chroot
|
|
rm -f /etc/network/interfaces
|
|
|
|
cat << 'EOF' >| /etc/network/interfaces
|
|
# 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
|
|
|
|
# This file describes the network interfaces available on your system
|
|
# and how to activate them. For more information, see interfaces(5).
|
|
|
|
### The loopback network interface
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
### Fully dynamic interface
|
|
auto dynamic
|
|
iface dynamic inet dhcp
|
|
pre-up \
|
|
IFACE=$(ip -o link show \
|
|
| awk -F': ' '{print $2}' \
|
|
| grep -m1 -v lo) && \
|
|
echo "Using interface $IFACE as dynamic" && \
|
|
ip link set dev "$IFACE" up && \
|
|
ip link set dev "$IFACE" name dynamic
|
|
|
|
post-down \
|
|
ip link set dev dynamic name "$IFACE" && \
|
|
echo "Restored interface name $IFACE"
|
|
|
|
source /etc/network/interfaces.d/*
|
|
|
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
|
EOF
|
|
|
|
chmod 0644 /etc/network/interfaces
|
|
|
|
mkdir -p /etc/network/interfaces.d
|
|
|
|
cat << 'EOF' >| /etc/network/interfaces.d/99-netcup-static
|
|
# 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
|
|
|
|
### Static IPv6 Address for Netcup Root Server
|
|
iface ens3 inet6 static
|
|
address MUST_BE_REPLACED/128
|
|
### dns01.eddns.eu dns02.eddns.de
|
|
dns-nameservers 2a01:4f9:c012:a813:135:181:207:105 2a0a:4cc0:1:e6:89:58:62:53
|
|
gateway fe80::1
|
|
|
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
|
EOF
|
|
|
|
cat << 'EOF_SCRIPT' >| /usr/local/bin/insert_net_source.sh
|
|
#!/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
|
|
|
|
### Insert the 'source' directive and restart networking
|
|
|
|
declare -r INTERFACES_FILE="/etc/network/interfaces"
|
|
declare -r INCLUDE_LINE="source /etc/network/interfaces.d/*"
|
|
|
|
if ! grep -Fxq "${INCLUDE_LINE}" "${INTERFACES_FILE}"; then
|
|
cat << 'EOF_INNER' >> "${INTERFACES_FILE}"
|
|
|
|
source /etc/network/interfaces.d/*
|
|
|
|
EOF_INNER
|
|
fi
|
|
|
|
sleep 15
|
|
systemctl restart networking
|
|
exit 0
|
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
|
EOF_SCRIPT
|
|
|
|
chmod 0755 /usr/local/bin/insert_net_source.sh
|
|
|
|
mkdir -p /etc/systemd/system
|
|
|
|
cat << 'EOF' >> /etc/systemd/system/insert-net-source.service
|
|
[Unit]
|
|
Description=Insert network include directive and restart networking
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/bin/insert_net_source.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
|
|
mkdir -p /etc/systemd/system/multi-user.target.wants
|
|
ln -fs /etc/systemd/system/insert-net-source.service /etc/systemd/system/multi-user.target.wants/insert-net-source.service
|
|
|
|
|
|
printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"
|
|
# sleep 1
|
|
|
|
exit 0
|
|
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|