# Ubuntu Server installieren und vorbereiten

## 1. Vorbereitung der virtuellen Maschine in VirtualBox
### Schritt 1: Virtuelle Maschine erstellen
Öffnen Sie VirtualBox und klicken Sie auf "Neu".
Nutzen Sie folgende Konfiguration:
````
Name: SV1
Typ: Linux
Version: Ubuntu (64-bit)
````
````
CPU: 2 Kerne (4 empfohlen)
RAM: Mindestens 2 GB (4 GB empfohlen).
Festplatte: 40 GB (dynamisch alloziert, VDI-Format).
````
Netzwerk:

Wählen Sie "Netzwerkbrücke" oder "NAT" (je nach Anforderungen).
Hinweis: Stellen Sie sicher, dass der Server später auf 10.10.224.119 (cache-server) zugreifen kann.

!!! info  ISO download: ubuntu.com/download/server

### Schritt 2: VM starten und Installation beginnen

Starten Sie die VM und wählen Sie "Try or Install Ubuntu Server".

## 2. Installation von Ubuntu 24.04 Server
### Schritt 1: Sprache

Sprache: Deutsch

### Schritt 2: Installer-Aktualisieren
in den Meisten Fällen einfach ````ohne aktualisierung fortfahren````.
Eine aktualsierung findet im Anschluss ohnehin statt.

### Schritt 3: Tastatur-Belegung
Durch die Sprachauswahl am Anfang ist hier bereits Alles auf ````German```` und kann so belassen werden.

### Schritt 4: Auswahl des Installationstyps
**Option 1: Ubuntu Server (voreingestellt)**

Beschreibung:
Diese Option installiert eine Standardversion von Ubuntu Server mit einer ausgewählten Sammlung von Paketen, die einen komfortablen Betrieb des Servers ermöglichen.

Empfehlung für den Meisterkurs IT im Handwerk:
Wählen Sie diese Option, da sie die beste Grundlage für die weiteren Schritte in der Anleitung bietet.


**Option 2: Ubuntu Server (minimized)**

Beschreibung:
Diese Option installiert eine minimale Version von Ubuntu Server mit einem sehr kleinen Laufzeit-Fußabdruck.

Optimiert für Umgebungen, in denen keine menschlichen Benutzer angemeldet sind (z. B. Container, Cloud-Instanzen, eingebettete Systeme).
Enthält nur die absolut notwendigen Pakete und verzichtet auf zusätzliche Tools.
Nicht empfohlen für den Meisterkurs, da später manuell viele Pakete nachinstalliert werden müssten.


**Zusätzliche Optionen**

**Search for third-party drivers:**

Diese Option ermöglicht die Suche nach Drittanbieter-Treibern (z. B. für spezielle Hardware wie WLAN-Karten oder RAID-Controller).

### Schritt 5: Netzwerkkonfiguration

Der Installer versucht automatisch, eine Verbindung herzustellen, und zeigt diese auch oben an. 
Statische IP (optional):

Falls nötig, geben Sie manuell eine IP aus dem Netzwerkbereich ein (passend für ihr Subnetz hinter der Fritzbox).
* ````Edit IPv4```` an der Netzwerkkarte ````enp0s3```` auswählen.
* ````Automatisch (DHCP)```` ändern auf ````Manuell````
* Subnetz     ````192.168.100.0/24````
* Adresse     ````192.168.100.250````
* Gateway     ````192.168.100.1````
* Nameserver  ````192.168.100.1,1.1.1.1````
* Suchdomäne  ````TN00.ITO````

Erstelle Bond: Hiermit könnenn mehrere Netzwerkkarten dann auch gekoppelt werden wenn dies am Switch ebenfalls so konfiguriert ist.

### Schritt 6: Proxy Konfiguration
Leer lassen. Der ````apt-cache-server```` muss an einer anderen Stelle konfiguriert werden.

### Schritt 7: Mirror
Aus standard belassen, da dieser schon in Deutschland ausgewählt ist.

### Schritt 8: Festplattenpartitionierung

**Option 1: Eine ganze Festplatte verwenden**

Beschreibung:

Diese Option löscht alle Daten auf der ausgewählten Festplatte und verwendet die gesamte Festplatte für die Ubuntu-Installation.
Empfohlen für den Meisterkurs IT im Handwerk, wenn Sie eine neue, leere Festplatte in VirtualBox verwenden.
Die Festplatte wird automatisch partitioniert (z. B. ``/``, ``/boot``, ``swap``).

**Ausgewählte Festplatte:**

VBOX_HARDDISK_XXXXXXXXXXXXX (40.00 GB)
> Hinweis: Stellen Sie sicher, dass die richtige Festplatte ausgewählt ist, da alle Daten auf dieser Festplatte gelöscht werden.


**LVM-Gruppe konfigurieren:**

Aktiviert (X): Diese Option erstellt eine LVM-Gruppe (Logical Volume Manager).
Vorteile von LVM:

* Flexible Verwaltung von Partitionen (z. B. einfache Größenanpassung).
* Ermöglicht das Hinzufügen weiterer Festplatten zu einem späteren Zeitpunkt.

**LVM-Gruppe mit LUKS verschlüsseln:**

Deaktiviert ( ): Standardmäßig ist die Festplattenverschlüsselung deaktiviert.
* Verschlüsselung aktivieren: Falls Sie die Festplatte verschlüsseln möchten, setzen Sie hier ein Häkchen.
  * Passphrase: Geben Sie ein sicheres Passwort ein, um die Festplatte zu verschlüsseln.
> Hinweis: Die Verschlüsselung erhöht die Sicherheit, erfordert aber bei jedem Systemstart die Eingabe der Passphrase.

* Recovery Key erstellen:

Deaktiviert ( ): Falls Sie die Verschlüsselung aktivieren, können Sie hier einen Recovery Key erstellen.
> Dieser Key wird im Live-System und im Zielsystem gespeichert und kann im Notfall zur Datenwiederherstellung verwendet werden.


**Option 2: Benutzerdefinierte Partitionierung**

Beschreibung:

Diese Option ermöglicht die manuelle Partitionierung der Festplatte.
Nur für fortgeschrittene Benutzer empfohlen, die spezielle Anforderungen an die Partitionierung haben (z. B. separate Partitionen für /home, /var oder /opt).

**Zusammenfassung für den Meisterkurs:**

* Wählen Sie die Option "Eine ganze Festplatte verwenden".
* Aktivieren Sie die LVM-Gruppe, um später flexibel auf Speicheränderungen reagieren zu können.
* Deaktivieren Sie die Festplattenverschlüsselung, um den Installationsprozess zu vereinfachen.

Am Ende bestätigen und in der Übersicht dann nochmals ``Erledigt`` auswählen

*** Schritt 9: Benutzerkonfiguration
````
Ihr Name:           Max Mustermann
Your servers name:  sv1 
Nutzername:         meisterkurs (oder Ihr gewünschter Name)
Passwort:           passw0rd#
````

### Schritt 9: Ubuntu Pro
Canonical bietet Zusatzleitungen wie automatische updates und Live-Kernel-Updates an. Bei großen Netzwerken kann das Lohnenswert sein. 
Wählen Sie ``Skip for now`` und ``Fortfahren``

### Schritt 10: SSH configuration
OpenSSH Server installieren: Ja (wichtig für Remote-Zugriff!)

### Schritt 11: Featured snaps
Hier nichts auswählen, da im Kurs alle Pakete manuell installiert werden.

### Schritt 12: Installation abschließen

Warten Sie auf den Abschluss und starten Sie die VM neu.

## Erste Schritte nach der Installation
Schritt 0: Sonderfall etz

!!! warning **Wichtiger Hinweis:**
    Damit alle Teilnehmer im Kurs effizient Updates und Software installieren können, wird im Schulungsnetzwerk ein lokaler Paket-Cache (Proxy) verwendet. 
    **Diesen Schritt müssen Sie außerhalb der Schulungsstätte (z.B. zu Hause) nicht durchführen!**

So richten Sie den Proxy ein:

1. Öffnen Sie ein Terminal (z.B. über das Startmenü).
2. Geben Sie folgenden Befehl ein (ersetzen Sie ggf. die IP-Adresse, durch die im Kurs verwendete):

    ```bash
    echo 'Acquire::http::Proxy "http://10.10.224.119:3142";' | sudo tee /etc/apt/apt.conf.d/02proxy
    ```

3. Fahren Sie nun mitt Schritt 1 fort

### Schritt 1: System aktualisieren
````bash
sudo apt update && sudo apt upgrade -y
````

### Schritt 2 SSH-Key-Authentifizierung für Windows/PuTTY
#### 1. SSH-Key mit PuTTYgen (Windows) erstellen

1. Laden Sie PuTTYgen herunter: putty.org
2. Öffnen Sie PuTTYgen und wählen Sie "EdSDA" und Ed25519.
3. Klicken Sie auf "Generate" und bewegen Sie die Maus zufällig, um Entropie zu erzeugen.
4. Speichern Sie den privaten Schlüssel (z. B. ``meisterkurs_priv.ppk``) und kopieren Sie den öffentlichen Schlüssel aus dem oberen Fenster.
#### 2. Öffentlichen Schlüssel auf den Server übertragen

Melden Sie sich per Putty mit Passwort auf ihrem Server an:

Erstellen Sie das .ssh-Verzeichnis (falls nicht vorhanden):
````bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
````
Fügen Sie den öffentlichen Schlüssel zur authorized_keys hinzu:
````bash
echo "IHR_ÖFFENTLICHER_SCHLÜSSEL" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
````

#### 3. SSH-Login mit PuTTY testen

* Öffnen Sie PuTTY.
* Geben Sie die Server-IP ein.
* Gehen Sie zu "Connection" → "SSH" → "Auth" → "Credentials" und wählen Sie die bei ``Private Key...`` ihre ``meisterkurs_priv.ppk`` Datei aus.
* Klicken Sie auf "Open" und melden Sie sich an.
#### 4. Passwort-Login deaktivieren 

!!! warning erst nach erfolgreicher Key-Anmeldung!

Bearbeiten Sie die SSH-Konfiguration:
````bash
# Cloud-Init-deaktivieren, da dort Passwort-Login aktiviert wird.
sudo rm /etc/ssh/sshd_config.d/50-cloud-init.conf
# Die eigentliche config dazu bringen:
sudo nano /etc/ssh/sshd_config
````

Setzen Sie folgende Optionen:
````ini
PasswordAuthentication no
PermitRootLogin no
````

Speichern Sie und starten Sie SSH neu:
````bash
sudo systemctl restart ssh
````
!!! tip Versuchen Sie sich erneut mit einem Passwort einzuloggen, wenn es nicht geht, ist alles in Ordnung!
### Automatische Updates einrichten
````bash
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades
````

Wählen Sie "Ja" für automatische Sicherheitsupdates.

#### Backup-Strategie (Grundlagen)

Manuelles Backup mit rsync:
````bash
sudo apt install rsync -y
rsync -av /home/meisterkurs/ /backup/meisterkurs/
````
!!! note Die Ordner sollten natürlich vorhanden sein, und der User ausreichende Berechtigung dazu haben. Siehe [Ordner erstellen](Grundlagen_der_Konsole.md) bzw. Berechtigungen in der [Samba-Anleitung](Windows_Freigaben_fuer_Linux-Einsteiger.md). Wie das regelmäßg gemacht wird, haben Sie schon mit [cron](Automatisierung_mit_cron_und_systemd.md) gelernt.
