# Debian Linux

# 1 Grundlagen

# 1.1 SSH Verbindung (Konsole)

#### Allgemein

Der externe Zugriff auf die Konsole erfolgt über das Verbindungsprotokoll SSH.

Empfohlener SSH Client: [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

#### Aufbau der SSH-Verbindung via PuTTY

[![Screenshot 2024-05-13 142926.png](https://kb.bzsrv.de/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2024-05-13-142926-png.png)](https://kb.bzsrv.de/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2024-05-13-142926-png.png)

Die Verbindung zum entfernten SSH-Server wird durch die Eingabe der IP Adresse oder des Hostnames hergestellt. Hierbei ist der bereits vorgegebene SSH-Port "22" standardmäßig und muss nur verändert werden, wenn eine Änderung beim SSH-Server stattgefunden hat.  
Anschließend wird die Verbindung über "Open" geöffnet. Bei der ersten Verbindung wird gefragt, ob der Schlüssel des SSH-Servers vertrauenswürdig ist, welches mit "Accept" bestätigt werden kann.

#### Trennen der SSH-Verbindung

Die SSH-Verbindung kann durch das Abmelden des Benutzers getrennt werden.

##### Abmeldung des Benutzers  


```
logout
```

<p class="callout warning">Die Verbindung sollte immer durch eine ordnungsgemäße Abmeldung des Benutzers geschehen und nicht durch das Beenden des SSH Clients.</p>

# 1.2 Power Management

#### Allgemein

Die Ansteuerung des Power Management in Debian erfolgt standardmäßig über das Kommandozeilenwerkzeug "systemctl".

Alternativ wurde für eine bessere Benutzerfreundlichkeit zusätzliche Befehle eingefügt, welche die Ansteuerung ebenfalls ermöglichen.

##### System Herunterfahren

```
shutdown -h now
systemctl poweroff
```

##### System Neustarten

```
reboot
systemctl reboot
```

# 2 Systemtools

# 2.1 Paketverwaltung (APT)

#### Allgemein

Die Paket- &amp; Softwareverwaltung in Debian erfolgt über den Paketmanager APT (Advanced Packaging Tool).

#### System- &amp; Softwareupdates

##### Paketlisten herunterladen

Zum Abgleich der aktuell installierten Paketversionen mit den aktuell verfügbaren Paketversionen muss die aktuelle Paketliste heruntergeladen werden.

```
apt-get update
```

##### Softwareupdates installieren

Nach dem Abgleich des Paketversionen können die neusten Softwareupdates installiert werden.

```
apt-get upgrade
```

##### Systemupdates installieren

Bei den normalen Softwareupdates sind keine Updates des Betriebssystems enthalten. Diese müssen separat installiert werden.

```
apt-get dist-upgrade
```

#### Softwarepakete verwalten

Über den Paketmanager können alle Softwarepakete, welche standardmäßig in Debian hinterlegt sind direkt installiert und verwaltet werden.

##### Paket installieren

```
apt-get install <name>
```

##### Paket deinstallieren

```
apt-get remove <name>
```

##### Paket vollständig deinstallieren (inkl. Konfigurationen)

```
apt-get purge <name>
```

##### Nicht benötigte Pakete deinstallieren &amp; alte Konfigurationen löschen

```
apt-get autoremove
apt-get clean
```

# 3 Netzwerk

# 3.1 Netzwerkkonfiguration



# 3.2 Routing

### Gateway

Standardmäßig routet Debian alle Verbindungen über das Standardgateway.

<p class="callout warning">**WICHTIG**  
Es darf nur insgesamt ein Gateway auf einer Netzwerkschnittstelle konfiguriert sein. Alle weiteren Netzwerkschnittstellen dürfen kein Gateway konfiguriert haben, da ansonsten kein Routing mehr möglich ist!</p>

##### Standardgateway anzeigen

Das aktuelle Standardgateway, sowie die dazugehörige Route, kann über das IP-Tool angezeigt werden:

```
ip route
```

##### Standardgateway konfigurieren

Das Standardgateway kann über das IP-Tool angepasst werden. Hierbei sind folgende Platzhalter zu ergänzen:

&lt;gateway&gt;: IPv4 des neuen Standardgateways (z.B. 10.8.0.1)

&lt;dev&gt;: Netzwerkschnittstelle des Gateways (z.B. eth0)

```
ip route replace default via <gateway> dev <dev>
```

### Routingtabellen (ifupdown)

<p class="callout info">Folgender Abschnitt erläutert die Konfiguration von Routingtabellen mit "ifupdown".  
Hierbei handelt es sich um das Standardpaket zur Netzwerkkonfiguration innerhalb von Debian.  
Ab Debian 11 empfiehlt sich jedoch die Nutzung von "systemd-networkd" als Netzwerkdienst.  
Die Konfiguration mit "systemd-networkd" wird weiter unten in einem [separaten Abschnitt](#bkmrk-routingtabellen-%28sys) erläutert.</p>

Sollten mehrere Gateways existieren müssen für die zusätzlichen Gateways Routing Tabellen erstellt werden. Pro zusätzlicher Netzwerkschnittstelle sollte eine Tabelle erstellt werden.

##### Tabellen auflisten

```
cat /etc/iproute2/rt_tables
```

##### Tabelle erstellen

Eine neue Tabelle kann über das Hinzufügen eines Eintrages via echo in "rt\_tables" erstellt werden.

<p class="callout info">Sollte es sich um die erste Tabelle handeln existiert das Verzeichnis iproute2 unter Umständen noch nicht und muss zuvor erstellt werden.  
mkdir -p /etc/iproute2</p>

Folgende Platzhalter müssen hierbei ergänzt werden:

&lt;id&gt;: Numerische eindeutige ID der Tabelle (1 bis 252)

&lt;table&gt;: Alphanumerischer eindeutiger Name der Tabelle (z.B. local)

```
echo "<id> <table>" >> /etc/iproute2/rt_tables
```

##### Routen in Tabelle definieren

Routen zu einzelnen Ziel-IPs oder Ziel-Subnetzen werden in der Routingtabelle über das IP-Tool definiert. Hierbei sind folgende Platzhalte zu ergänzen:

&lt;gateway&gt;: IP des Gateways (z.B. 10.8.0.1)

&lt;dev&gt;: Netzwerkschnittstelle des Gateways (z.B. eth0)

&lt;table&gt;: Name der Tabelle (z.B. local)

&lt;dest-ip&gt;: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

```
ip route add default via <gateway> dev <dev> table <table>
ip route add <dest-ip> dev <dev> table <table>

# Optional: Sollten über das Gateway noch weitere Subnetze erreichbar seien, müssen diese zusätzlich definiert werden:
ip route add <dest-ip> via <gateway> dev <dev> table <table>
```

##### Routing-Regeln definieren

Die in den Routingtabellen definierten Routen sind nur aktiv, wenn zu diesen passende Regeln über das IP-Tool definiert wurden. Hierbei sind folgende Platzhalter zu ergänzen:

&lt;dest-ip&gt;: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

&lt;table&gt;: Name der Tabelle (z.B. local)

&lt;prio&gt;: Priorität der Regel (z.B. 100)

```
ip rule add to <dest-ip> lookup <table> priority <prio>
```

### Routingtabellen (systemd-networkd)

<p class="callout info">Folgender Abschnitt erläutert die Konfiguration von Routingtabellen mit "systemd-networkd".  
Hierbei handelt es sich um einen moderneren Service, welcher ab Debian 11 zur Konfiguration der Netzwerkschnittstellen empfohlen wird.  
In älteren Debian Versionen (Debian 10 und älter) empfiehlt sich jedoch die Nutzung von "ifupdown".  
Die Konfiguration mit "ifupdown" wird weiter oben in einem [separaten Abschnitt](#bkmrk-routing-tabellen) erläutert.</p>

<p class="callout info">Die folgenden Abschnitte setzen voraus, dass der Netzwerkdienst systemd-networkd bereits aktiviert und alle Netzwerkschnittstellen in diesem grundlegend konfiguriert wurden.</p>

Sollten mehrere Gateways existieren müssen für die zusätzlichen Gateways Routing Tabellen erstellt werden. Pro zusätzlicher Netzwerkschnittstelle müssen Routen und Routing-Regeln definiert werden.

##### Tabellen auflisten

```
ip route show table all
```

##### Tabellen &amp; Routen definieren

Die Routing-Tabellen und dazugehörigen Routen werden zusammen in der .network Konfigurationsdatei der jeweiligen Netzwerkschnittstelle definiert. Hierbei sind folgende Platzhalter zu ergänzen:

&lt;dest-ip&gt;: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

&lt;gateway&gt;: IP des Gateways (z.B. 10.8.0.1)

&lt;id&gt;: Numerische eindeutige ID der Tabelle (1 bis 252)

```
[Route]
Destination=<dest-ip>
Scope=link
Table=<id>

# Wichtig: Standard Route
[Route]
Destination=0.0.0.0/0
Gateway=<gateway>
Table=<id>

# Optional: Sollten über das Gateway noch weitere Subnetze erreichbar seien, müssen diese zusätzlich definiert werden:
[Route]
Destination=<dest-ip>
Gateway=<gateway>
Table=<id>
```

##### Routing-Regeln definieren

Die in den Routingtabellen definierten Routen sind nur aktiv, wenn zu diesen passende Regeln in der .network Konfigurationsdatei definiert werden. Hierbei sind folgende Platzhalter zu ergänzen:

&lt;dest-ip&gt;: Ziel-IP (z.B. 10.8.0.1) oder Ziel-Subnetz inkl. CIDR (z.B. 10.8.0.0/24)

&lt;id&gt;: Numerische eindeutige ID der Tabelle (1 bis 252)

&lt;prio&gt;: Priorität der Regel (z.B. 100)

```
[RoutingPolicyRule]
To=<dest-ip>
Table=<id>
Priority=<prio>
```

##### Beispiel .network Konfigurationsdatei

Folgender Auszug einer .network Konfigurationsdatei zeigt beispielhaft, wie eine vollständige Routing-Konfiguration einer zusätzlichen Netzwerkschnittstelle aussehen kann. Hierbei wird folgendes angenommen:

Gateway: 10.8.0.1

Subnetz 1: 10.8.0.0/24

Subnetz 2: 10.8.1.0/24

```
[Match]
Name=eth1

[...]

# Routing-Tabellen
[Route]
Destination=10.8.0.0/24
Scope=link
Table=200

[Route]
Destination=10.8.1.0/24
Gateway=10.8.0.1
Table=200

[Route]
Destination=0.0.0.0/0
Gateway=10.8.0.1
Table=200

# Routing-Regeln
[RoutingPolicyRule]
To=10.8.0.0/24
Table=200
Priority=100

[RoutingPolicyRule]
To=10.8.1.0/24
Table=200
Priority=100
```

### Analyse &amp; Fehlerbehebung

##### Routing prüfen

Über das IP-Tool kann geprüft werden, ob beim Routing zu einer bestimmten IP das korrekte Gateway gewählt wird. Hierbei ist folgender Platzhalter zu ergänzen:

&lt;dest-ip&gt;: Ziel-IP (z.B. 10.8.0.1)

```
ip route get <dest-ip>
```

##### Reverse-Path-Filter deaktivieren

Bei der Kommunikation über zusätzliche Netzwerkschnittstellen wird die eingehende Kommunikation eventuell blockiert. In diesem Fall muss der Reverse-Path-Filter deaktiviert werden.

```
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2
```

Da die Änderung nur temporär ist muss sie anschließend dauerhaft im System konfiguriert werden:

```
cat <<EOF >> /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.rp_filter=2
EOF
```