Debian Template: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 19: Zeile 19:
 
;Weitere Einstellungen
 
;Weitere Einstellungen
 
* Hostname: debian-template.it2XX.int
 
* Hostname: debian-template.it2XX.int
* Netzwerk: Netzwerkbrücke '''br0'''
+
* Netzwerk: Netzwerkbrücke '''br0''' oder das externe Interface des Hosts
 
* GRUB: /dev/sda
 
* GRUB: /dev/sda
  
Zeile 34: Zeile 34:
 
= Einrichtung =
 
= Einrichtung =
 
Wir bringen das System auf den neusten Stand
 
Wir bringen das System auf den neusten Stand
 +
*'''su -'''
 
*'''apt update'''
 
*'''apt update'''
 
*'''apt full-upgrade'''
 
*'''apt full-upgrade'''
  
 
Diese Pakete sollte man nachinstallieren, um auf der Kommandozeile arbeiten zu können
 
Diese Pakete sollte man nachinstallieren, um auf der Kommandozeile arbeiten zu können
*'''apt install vim sudo git curl tcpdump nmap ssh'''
+
*'''apt install vim sudo git curl tcpdump nmap resolvconf libnss-myhostname'''
 +
Wir löschen in der 2. Zeile in der Datei '''/etc/hosts''' den Eintrag raus. Wir machen das nun über '''libnss-myhostname'''
 +
127.0.1.1      debian-template.int debian-template
 +
 
  
 
Falls ein Benutzer passwortlos zum root-Nutzer werden darf, muss dieser in der ''sudo''-Gruppe sein und die ''/etc/sudoers''-Datei angepasst werden
 
Falls ein Benutzer passwortlos zum root-Nutzer werden darf, muss dieser in der ''sudo''-Gruppe sein und die ''/etc/sudoers''-Datei angepasst werden
Zeile 44: Zeile 48:
 
* sicheres Bearbeiten der ''/etc/sudoers''-Datei
 
* sicheres Bearbeiten der ''/etc/sudoers''-Datei
 
*'''visudo'''
 
*'''visudo'''
 
# Kein Check des Hostnamens nötig
 
# Das macht nur Probleme beim Ändern des Hostnamens
 
Defaults !fqdn
 
...
 
# Alter Eintrag
 
 
  # %sudo  ALL=(ALL:ALL) ALL
 
  # %sudo  ALL=(ALL:ALL) ALL
 
  # Neuer Eintrag
 
  # Neuer Eintrag
Zeile 105: Zeile 103:
 
  Running hooks in /etc/ca-certificates/update.d...
 
  Running hooks in /etc/ca-certificates/update.d...
 
  done.
 
  done.
=Setup Script=
+
=Setup Scripts=
 +
*[[Debian Setup Script]]
 +
*sudo -i
 
*cd /usr/local/sbin/
 
*cd /usr/local/sbin/
 
*wget https://xinux.de/downloads/script/debian-setup.sh
 
*wget https://xinux.de/downloads/script/debian-setup.sh
*chmod +x debian-setup.sh
+
*wget https://xinux.de/downloads/script/get-cert.sh
 +
*chmod +x *.sh
 +
== Anpassen eines Rechners - Beispiel ==
 +
{| class="wikitable" style="background-color: #f2f2f2;"
 +
! Parameter !! Wert !! Erläuterung
 +
|-
 +
| '''Netzwerk (NIC)''' || Externe Schnittstelle || Interface-Zuweisung in VirtualBox
 +
|-
 +
| '''IP''' || 192.168.3.220+XX || Statische IP
 +
|-
 +
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
 +
|-
 +
| '''GW''' || 192.168.3.254 || GATEWAY
 +
|-
 +
| '''NS''' || 1.1.1.1 || Resolver
 +
|-
 +
| '''FQDN''' || extern.it2XX.int || Fully Qualified Domain Name
 +
|-
 +
| '''SHORT''' || extern || Short Name
 +
|-
 +
| '''DOM''' || it2XX.int|| Domain Name
 +
|}
 +
 
 +
==Hostname==
 +
*hostnamectl set-hostname <span style="color:red">'''FQDN'''</span>
 +
 
 +
==Netzwerk==
 +
*nano /etc/network/interfaces
 +
 
 +
# This file describes the network interfaces available on your system
 +
# and how to activate them. For more information, see interfaces(5).
 +
 +
source /etc/network/interfaces.d/*
 +
 +
# The loopback network interface
 +
auto lo
 +
iface lo inet loopback
 +
 +
# The primary network interface
 +
auto enp0s3
 +
iface enp0s3 inet static
 +
  address <span style="color:red">'''IP/CIDR'''</span>
 +
  gateway <span style="color:red">'''GW'''</span>
 +
  dns-nameservers <span style="color:red">'''NS'''</span>
 +
  dns-search <span style="color:red">'''DOM'''</span>
 +
 
 +
==Reboot==
 +
*systemctl reboot

Aktuelle Version vom 1. Juni 2026, 09:49 Uhr

!!!Bitte setzt alle Punkte um, es ist wichtig wenn ich später hilfe braucht!!!

Anleitung für das Erstellen einer Vorlage für einfaches Debian-System

  • Für VMs als Server empfiehlt es sich eine Vorlage zu erstellen, die schon minimal konfiguriert ist
  • Der Nutzer root soll das Passwort radler haben
  • Ein Benutzer kit mit dem Passwort kit soll angelegt werden
  • die Vorlage soll keine graphische Oberfläche haben (Bei der Installation abwählen)
  • Ein SSH-Server soll aber für die Remoteverwaltung installiert werden

Mindestvorraussetzungen für Hardware

Daten
  • 1 CPU
  • 2 GB RAM
  • 20 GB Festplattenspeicher
Layout
  • /dev/sda1 / 20G
Weitere Einstellungen
  • Hostname: debian-template.it2XX.int
  • Netzwerk: Netzwerkbrücke br0 oder das externe Interface des Hosts
  • GRUB: /dev/sda

Benutzer

  • user: kit
  • pass: kit
  • admin: root
  • pass: radler

Installationsoptionen

  • Falls bei einem Menü nach dem Installieren einer graphischen Oberfläche gefragt wird, sollten die Haken dafür entnommen werden
  • Die Installation eines SSH-Servers sollte aber angekreuzt werden

Einrichtung

Wir bringen das System auf den neusten Stand

  • su -
  • apt update
  • apt full-upgrade

Diese Pakete sollte man nachinstallieren, um auf der Kommandozeile arbeiten zu können

  • apt install vim sudo git curl tcpdump nmap resolvconf libnss-myhostname

Wir löschen in der 2. Zeile in der Datei /etc/hosts den Eintrag raus. Wir machen das nun über libnss-myhostname

127.0.1.1       debian-template.int debian-template


Falls ein Benutzer passwortlos zum root-Nutzer werden darf, muss dieser in der sudo-Gruppe sein und die /etc/sudoers-Datei angepasst werden

  • usermod -aG sudo kit
  • sicheres Bearbeiten der /etc/sudoers-Datei
  • visudo
# %sudo   ALL=(ALL:ALL) ALL
# Neuer Eintrag
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

Wer will darf vim benutzen

  • sudo update-alternatives --config editor

Automatische SSH-Hostschlüssel nur auf dem Template erzeugen

Damit nicht alle Klone des Templates dieselben SSH-Hostschlüssel verwenden, sollen die Schlüssel nur dann neu erzeugt werden, wenn der Hostname debian-template ist. Dies wird beim Start automatisch über einen ExecStartPre-Hook im ssh.service erledigt.

Skript zur Erzeugung der Schlüssel

Datei: /usr/local/sbin/new-ssh-host-keys

#!/bin/bash

current_host=$(hostname -s)
echo $current_host

if [[ "$current_host" = *-template ]]; then
    echo "Template erkannt – SSH-Hostschlüssel werden neu erzeugt."
    rm -f /etc/ssh/ssh_host_*
    ssh-keygen -A
else
    echo "Nicht das Template – keine Änderung."
fi
  • chmod +x /usr/local/sbin/new-ssh-host-keys

systemd-Dienst anpassen

  • systemctl edit ssh.service

Folgendes ergänzen:

[Service]
ExecStartPre=/usr/local/sbin/new-ssh-host-keys
  • systemctl daemon-reexec

CA ziehen

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Setup Scripts

Anpassen eines Rechners - Beispiel

Parameter Wert Erläuterung
Netzwerk (NIC) Externe Schnittstelle Interface-Zuweisung in VirtualBox
IP 192.168.3.220+XX Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 192.168.3.254 GATEWAY
NS 1.1.1.1 Resolver
FQDN extern.it2XX.int Fully Qualified Domain Name
SHORT extern Short Name
DOM it2XX.int Domain Name

Hostname

  • hostnamectl set-hostname FQDN

Netzwerk

  • nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet static 
 address IP/CIDR
 gateway GW
 dns-nameservers NS
 dns-search DOM

Reboot

  • systemctl reboot