Rename exerices/ to exercises/ and fix spelling in sheets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
344db375a4
commit
2dfa8de5c6
5 files changed
+47
-47
No files matched your search
@@ -11,38 +11,38 @@ output: pdf_document
|
||||
|
||||
In diesem Blatt lernst du wichtige Grundlagen, um die Sicherheit eines Linux Servers zu gewaehrleisten.
|
||||
|
||||
`ssh` (_secure shell_) ist eines der wichtigsten Tools die ein Linux Administrator beherrschen sollte.
|
||||
`ssh` (_secure shell_) ist eines der wichtigsten Tools, die ein Linux Administrator beherrschen sollte.
|
||||
Dieses erlaubt es uns, eine Shell zu einem remote Linux (im allgemeinen Unix) System zu oeffnen,
|
||||
um dann administrative Taetigkeiten am Server durch zu fuehren.
|
||||
um dann administrative Taetigkeiten am Server durchzufuehren.
|
||||
Die Authentifizierung passiert hier in der Regel mit Username und Passwort.
|
||||
Es gibt aber Situationen in denen es nicht ratsam ist, Usernamen und Passwort fuer die Authentifizierung zu nutzen.
|
||||
Zum Besipiel, wenn der `ssh` Port, 22, oeffentlich zuegaenglich ist, und damit jeder den _OpenSSH_ Server des Linux Servers erreichen koennte.
|
||||
Ein Passwort koennte durch eine brute-force Attacke erraten werden oder durch andere Wege komprimittiert werden.
|
||||
Es gibt aber Situationen, in denen es nicht ratsam ist, Usernamen und Passwort fuer die Authentifizierung zu nutzen.
|
||||
Zum Beispiel, wenn der `ssh` Port, 22, oeffentlich zugaenglich ist, und damit jeder den _OpenSSH_ Server des Linux Servers erreichen koennte.
|
||||
Ein Passwort koennte durch eine brute-force Attacke erraten werden oder durch andere Wege kompromittiert werden.
|
||||
Aus dem Grunde gibt es `ssh` Key Paare, welche es uns ermoeglichen uns ohne Passwort am Server zu authentifizieren.
|
||||
|
||||
Einer der keys ist hier ein **privater** Schluessel, den niemand haben sollte und der immer sicher aufbewahrt werden sollte.
|
||||
Der zweite key ist **public** und darf somit von anderen gesehen/gelesen werden. Der public Key wird am Linux Server
|
||||
in der Datei `/home/$USER/.ssh/authorized_keys` abgelegt, waehrend der private Key am eigenen Rechner hinterlegt wird,
|
||||
ebenfalls im Ordner `/home/$USER/.ssh/`. Beim Versuch sich mittels `ssh` am Ziel Server anzumelden, gleicht der Server seinen public
|
||||
Key mit dem private Key des `ssh`-Clients ab und wenn die beiden zu einander passen, wird Zugang gewaehrt.
|
||||
Key mit dem private Key des `ssh`-Clients ab und wenn die beiden zueinander passen, wird Zugang gewaehrt.
|
||||
|
||||
Wir lernen, wie wir ssh key Paare erzeugen und am Ziel Server zu hinterlegen, welche es uns erlauben, uns ohne Passwort an einem OpenSSH server zu authentifizieren.
|
||||
Wir lernen, wie wir ssh key Paare erzeugen und am Ziel Server hinterlegen, welche es uns erlauben, uns ohne Passwort an einem OpenSSH server zu authentifizieren.
|
||||
Dies wird in Zukunft auch sehr nuetzlich sein, um Automatisierungstools gegen einen oder _mehrere_ Server laufen zu lassen.
|
||||
|
||||
Zusaetzlich lernen wir `fail2ban`, welches ein einfaches _intrusion detection system(IPS)_ ist, welches in der Lage ist Ports zu Diensten auf dem Server zu ueberwachen
|
||||
und bei missbraeulichem Verhalten IP Addressen zu blocken. Zum Beispiel kann eine IP Adresse fuer eine Stunde geblockt werden, wenn der entsprechende `ssh`-Client drei mal das Passwort falsch eingibt.
|
||||
Zusaetzlich lernen wir `fail2ban`, welches ein einfaches _intrusion prevention system_ (IPS) ist, welches in der Lage ist Ports zu Diensten auf dem Server zu ueberwachen
|
||||
und bei missbraeuchlichem Verhalten IP Adressen zu blocken. Zum Beispiel kann eine IP Adresse fuer eine Stunde geblockt werden, wenn der entsprechende `ssh`-Client dreimal das Passwort falsch eingibt.
|
||||
|
||||
Um Datein zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
Um Dateien zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
|
||||
## Aufgabe 1 - ssh security and config
|
||||
|
||||
**a.** Erstelle ein `ssh` Key Paar auf deinem lokalen Rechner, lege den public key auf deinem remote Linux Server ab
|
||||
und melde dich ohne Passwort mit `ssh` am Server an. `ssh USER@EXAMPLE.COM`.
|
||||
|
||||
Tools, welche gentuzt werden sollen:
|
||||
Tools, welche genutzt werden sollen:
|
||||
|
||||
- `ssh`
|
||||
- `ssh-keygen` (wenn dieser Befehl benutzt wird, setze keien Passwort fuer das Key Paar, sonst musst ihr Dieses jedes mal eingeben, wenn die Keys genutzt werden)
|
||||
- `ssh-keygen` (wenn dieser Befehl benutzt wird, setze kein Passwort fuer das Key Paar, sonst musst du dieses jedes Mal eingeben, wenn die Keys genutzt werden)
|
||||
- `ssh-copy-id`
|
||||
|
||||
**b.** Passe die Konfiguration des _ssh daemons_ `sshd`, unter dem Pfad `/etc/ssh/sshd_config`, so an, dass
|
||||
@@ -51,7 +51,7 @@ Tools, welche gentuzt werden sollen:
|
||||
- die Passwort Authentifizierung nicht moeglich ist,
|
||||
- und deiner Meinung nach die Sicherheit des `ssh`-Zugangs weiter erhoeht wird.
|
||||
|
||||
Nachdem der `ssh`-Dienst angepasst wurde, muss Dieser neugestartet werden, damit die Aenderugen geladen werden:
|
||||
Nachdem der `ssh`-Dienst angepasst wurde, muss dieser neu gestartet werden, damit die Aenderungen geladen werden:
|
||||
|
||||
```bash
|
||||
$ sudo systemctl restart ssh.service
|
||||
@@ -63,7 +63,7 @@ $ sudo systemctl status ssh.service
|
||||
Installiere `fail2ban` und konfiguriere es so, dass
|
||||
|
||||
- `ssh` ein aktives `jail` ist
|
||||
- bei 3 maliger Passwortfalscheingabe, die IP Adresse des Clients fuer 2 Stunden gebannt wird
|
||||
- bei dreimaliger Passwortfalscheingabe, die IP Adresse des Clients fuer 2 Stunden gebannt wird
|
||||
|
||||
Die Konfigurationsdateien von `fail2ban` sind im Pfad `/etc/fail2ban/` hinterlegt.
|
||||
|
||||
@@ -83,7 +83,7 @@ sudo apt install fail2ban
|
||||
$ systemctl status fail2ban.service
|
||||
```
|
||||
|
||||
3. Lese den Inhalt einer default Konfigurations:
|
||||
3. Lies den Inhalt der default Konfiguration:
|
||||
|
||||
```bash
|
||||
$ cd /etc/fail2ban/
|
||||
@@ -96,13 +96,13 @@ $ head -20 jail.conf
|
||||
$ cp jail.conf jail.local
|
||||
```
|
||||
|
||||
5. Passe die `jail.local` Datei an, so dass die Vorgabe umegestzt ist.
|
||||
5. Passe die `jail.local` Datei an, so dass die Vorgabe umgesetzt ist.
|
||||
|
||||
```bash
|
||||
$ sudo nano/vim jail.local
|
||||
```
|
||||
|
||||
Recherchiere gegebenfalls im Internet, um dies umzusetzen. (Tipp: `ssh` speichert seine logs nicht mehr standardmaessig im Pfad `/var/log/`,
|
||||
Recherchiere gegebenenfalls im Internet, um dies umzusetzen. (Tipp: `ssh` speichert seine logs nicht mehr standardmaessig im Pfad `/var/log/`,
|
||||
sondern nutzt `systemd-journald`)
|
||||
|
||||
6. Teste deine Konfig von einem auf dem `pve.lab.softbox.net` verfuegbaren Linux Host.
|
||||
@@ -110,7 +110,7 @@ sondern nutzt `systemd-journald`)
|
||||
|
||||
## Aufgabe 3 - nginx web server
|
||||
|
||||
Wir installieren hier einen der am meisten genutztne Web server auf der Welt [`nginx`](https://nginx.org/) und machen damit den ersten Schritt zu einer web page.
|
||||
Wir installieren hier einen der am meisten genutzten Web server auf der Welt [`nginx`](https://nginx.org/) und machen damit den ersten Schritt zu einer web page.
|
||||
|
||||
Installiere `nginx`:
|
||||
|
||||
@@ -125,13 +125,13 @@ $ sudo systemctl status nginx
|
||||
```
|
||||
|
||||
Besuche die Seite [http://student1.lab.softbox.net](http://student1.lab.softbox.net "http://student1.lab.softbox.net/"), welche dir die `nginx` welcome page zeigen sollte.
|
||||
Die Konfigurationsdateien von `nginx` unter dem Pfad `/etc/nginx/` zu finden. Die `html` (+ `css` + etc.) sind in der Regel unter dem Pfad `/var/www/` zu finden,
|
||||
wobei Dieser in `nginx`-Konfigurationsdateien beliebig waehlbar ist.
|
||||
Die Konfigurationsdateien von `nginx` sind unter dem Pfad `/etc/nginx/` zu finden. Die `html` (+ `css` + etc.) sind in der Regel unter dem Pfad `/var/www/` zu finden,
|
||||
wobei dieser in `nginx`-Konfigurationsdateien beliebig waehlbar ist.
|
||||
|
||||
Pruefe auf welcher IP Adresse und welchem Port `nginx` _lauscht_ (im englischen: _listen_
|
||||
Pruefe auf welcher IP Adresse und welchem Port `nginx` _lauscht_ (im Englischen: _listen_)
|
||||
|
||||
```bash
|
||||
$ sudo ss -tulpn | grep nginx
|
||||
```
|
||||
|
||||
**Zusatz:** Nutze `man ss`, um dich mit dem Befehl `ss` und den gewaehlten Optionen auseinanderzusetzen. Dies ist ein sehr praktischer Befehl, der sehr haeufig genutzt wird.
|
||||
***Zusatz:** Nutze `man ss`, um dich mit dem Befehl `ss` und den gewaehlten Optionen auseinanderzusetzen. Dies ist ein sehr praktischer Befehl, der sehr haeufig genutzt wird.
|
||||
File renamed without changes.
@@ -9,21 +9,21 @@ output: pdf_document
|
||||
|
||||
# Aufgabenblatt 01 - base commands & user/group management
|
||||
|
||||
In diesem Blatt lernst du grudnlegende Basis Befehle fuer die Verwaltung und 'Bedienung' eines Linux Servers ohne Bildschirmumgebung.
|
||||
In diesem Blatt lernst du grundlegende Basisbefehle fuer die Verwaltung und 'Bedienung' eines Linux Servers ohne Bildschirmumgebung.
|
||||
|
||||
Zusaetzlich lernst du wie User, Gruppen, Besitzrechte und Berechtigungen ersetllt und vergeben werden.
|
||||
Zusaetzlich lernst du wie User, Gruppen, Besitzrechte und Berechtigungen erstellt und vergeben werden.
|
||||
|
||||
Zuletzt wir das gelernte, um selbststaendig einen git Server aufzusetzen; das hoert sich moeglicherweise komplizierter an als es ist,
|
||||
aber kann mit dem zuvor gelernten schon umgesetzt werden.
|
||||
Zuletzt nutzen wir das Gelernte, um selbststaendig einen git Server aufzusetzen; das hoert sich moeglicherweise komplizierter an als es ist,
|
||||
aber kann mit dem zuvor Gelernten schon umgesetzt werden.
|
||||
|
||||
Um Datein zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
Um Dateien zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
|
||||
- Schreibe kurze Beschreibung zu den Grundlagen des User managements (user, groups, owner and permissions)
|
||||
- erzaehle ueber die wichtigkeit dieser wenigen Befehle, welche uns ermoeglichen komplexe Dinge durchzufuehren
|
||||
- erzaehle ueber die Wichtigkeit dieser wenigen Befehle, welche uns ermoeglichen komplexe Dinge durchzufuehren
|
||||
|
||||
## Aufgabe 1 - Basisbefehl
|
||||
## Aufgabe 1 - Basisbefehle
|
||||
|
||||
- Lerne diese, sodass im sie im Schlaf bekannt sind.
|
||||
- Lerne diese, sodass sie dir im Schlaf bekannt sind.
|
||||
|
||||
cd , ls , mv , cp , rm , mkdir , rmdir , echo , cat , grep , touch , find , fdisk , ls*** , cut , sort , uniq, ip
|
||||
|
||||
@@ -38,7 +38,7 @@ cd , ls , mv , cp , rm , mkdir , rmdir , echo , cat , grep , touch , f
|
||||
- `groupadd`
|
||||
- `groupmod`
|
||||
- `groupdel`
|
||||
- teach linux ownership and permissions via `chown`,`grpown`, `chmod`
|
||||
- teach linux ownership and permissions via `chown`,`chgrp`, `chmod`
|
||||
|
||||
|
||||
## Aufgabe 3 - git server - user/group management
|
||||
@@ -52,7 +52,7 @@ Ownership und Permissions von `git`'s home folder angepasst werden.
|
||||
|
||||
### Notizen
|
||||
|
||||
- potentiel sollte auch die `umask` des Ordners angepasst werden
|
||||
- potentiell sollte auch die `umask` des Ordners angepasst werden
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ In diesem Blatt lernst du
|
||||
|
||||
|
||||
|
||||
Um Datein zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
Um Dateien zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
|
||||
## Aufgabe 1 - Nextcloud Installation
|
||||
|
||||
@@ -11,38 +11,38 @@ output: pdf_document
|
||||
|
||||
In diesem Blatt lernst du wichtige Grundlagen, um die Sicherheit eines Linux Servers zu gewaehrleisten.
|
||||
|
||||
`ssh` (_secure shell_) ist eines der wichtigsten Tools die ein Linux Administrator beherrschen sollte.
|
||||
`ssh` (_secure shell_) ist eines der wichtigsten Tools, die ein Linux Administrator beherrschen sollte.
|
||||
Dieses erlaubt es uns, eine Shell zu einem remote Linux (im allgemeinen Unix) System zu oeffnen,
|
||||
um dann administrative Taetigkeiten am Server durch zu fuehren.
|
||||
um dann administrative Taetigkeiten am Server durchzufuehren.
|
||||
Die Authentifizierung passiert hier in der Regel mit Username und Passwort.
|
||||
Es gibt aber Situationen in denen es nicht ratsam ist, Usernamen und Passwort fuer die Authentifizierung zu nutzen.
|
||||
Zum Besipiel, wenn der `ssh` Port, 22, oeffentlich zuegaenglich ist, und damit jeder den _OpenSSH_ Server des Linux Servers erreichen koennte.
|
||||
Ein Passwort koennte durch eine brute-force Attacke erraten werden oder durch andere Wege komprimittiert werden.
|
||||
Es gibt aber Situationen, in denen es nicht ratsam ist, Usernamen und Passwort fuer die Authentifizierung zu nutzen.
|
||||
Zum Beispiel, wenn der `ssh` Port, 22, oeffentlich zugaenglich ist, und damit jeder den _OpenSSH_ Server des Linux Servers erreichen koennte.
|
||||
Ein Passwort koennte durch eine brute-force Attacke erraten werden oder durch andere Wege kompromittiert werden.
|
||||
Aus dem Grunde gibt es `ssh` Key Paare, welche es uns ermoeglichen uns ohne Passwort am Server zu authentifizieren.
|
||||
|
||||
Einer der keys ist hier ein **privater** Schluessel, den niemand haben sollte und der immer sicher aufbewahrt werden sollte.
|
||||
Der zweite key ist **public** und darf somit von anderen gesehen/gelesen werden. Der public Key wird am Linux Server
|
||||
in der Datei `/home/$USER/.ssh/authorized_keys` abgelegt, waehrend der private Key am eigenen Rechner hinterlegt wird,
|
||||
ebenfalls im Ordner `/home/$USER/.ssh/`. Beim Versuch sich mittels `ssh` am Ziel Server anzumelden, gleicht der Server seinen public
|
||||
Key mit dem private Key des `ssh`-Clients ab und wenn die beiden zu einander passen, wird Zugang gewaehrt.
|
||||
Key mit dem private Key des `ssh`-Clients ab und wenn die beiden zueinander passen, wird Zugang gewaehrt.
|
||||
|
||||
Wir lernen, wie wir ssh key Paare erzeugen und am Ziel Server zu hinterlegen, welche es uns erlauben, uns ohne Passwort an einem OpenSSH server zu authentifizieren.
|
||||
Wir lernen, wie wir ssh key Paare erzeugen und am Ziel Server hinterlegen, welche es uns erlauben, uns ohne Passwort an einem OpenSSH server zu authentifizieren.
|
||||
Dies wird in Zukunft auch sehr nuetzlich sein, um Automatisierungstools gegen einen oder _mehrere_ Server laufen zu lassen.
|
||||
|
||||
Zusaetzlich lernen wir `fail2ban`, welches ein einfaches _intrusion detection system(IPS)_ ist, welches in der Lage ist Ports zu Diensten auf dem Server zu ueberwachen
|
||||
und bei missbraeulichem Verhalten IP Addressen zu blocken. Zum Beispiel kann eine IP Adresse fuer eine Stunde geblockt werden, wenn der entsprechende `ssh`-Client drei mal das Passwort falsch eingibt.
|
||||
Zusaetzlich lernen wir `fail2ban`, welches ein einfaches _intrusion prevention system_ (IPS) ist, welches in der Lage ist Ports zu Diensten auf dem Server zu ueberwachen
|
||||
und bei missbraeuchlichem Verhalten IP Adressen zu blocken. Zum Beispiel kann eine IP Adresse fuer eine Stunde geblockt werden, wenn der entsprechende `ssh`-Client dreimal das Passwort falsch eingibt.
|
||||
|
||||
Um Datein zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
Um Dateien zu bearbeiten benutze einen beliebigen Text Editor, wie zum Beispiel `nano` oder `vim`. Diese sind in der Regel auf den meisten Linux Betriebssystemen vorinstalliert.
|
||||
|
||||
## Aufgabe 1 - ssh security and config
|
||||
|
||||
**a.** Erstelle ein `ssh` Key Paar auf deinem lokalen Rechner, lege den public key auf deinem remote Linux Server ab
|
||||
und melde dich ohne Passwort mit `ssh` am Server an. `ssh USER@EXAMPLE.COM`.
|
||||
|
||||
Tools, welche gentuzt werden sollen:
|
||||
Tools, welche genutzt werden sollen:
|
||||
|
||||
- `ssh`
|
||||
- `ssh-keygen` (wenn dieser Befehl benutzt wird, setze keien Passwort fuer das Key Paar, sonst musst ihr Dieses jedes mal eingeben, wenn die Keys genutzt werden)
|
||||
- `ssh-keygen` (wenn dieser Befehl benutzt wird, setze kein Passwort fuer das Key Paar, sonst musst du dieses jedes Mal eingeben, wenn die Keys genutzt werden)
|
||||
- `ssh-copy-id`
|
||||
|
||||
**b.** Passe die Konfiguration des _ssh daemons_ `sshd`, unter dem Pfad `/etc/ssh/sshd_config`, so an, dass
|
||||
@@ -51,10 +51,10 @@ Tools, welche gentuzt werden sollen:
|
||||
- die Passwort Authentifizierung nicht moeglich ist,
|
||||
- und deiner Meinung nach die Sicherheit des `ssh`-Zugangs weiter erhoeht wird.
|
||||
|
||||
Nachdem der `ssh`-Dienst angepasst wurde, muss Dieser neugestartet werden, damit die Aenderugen geladen werden:
|
||||
Nachdem der `ssh`-Dienst angepasst wurde, muss dieser neu gestartet werden, damit die Aenderungen geladen werden:
|
||||
|
||||
```bash
|
||||
$ sudo systemctl restart ssh.service
|
||||
$ sudo systemctl status ssh.service
|
||||
```
|
||||
*Zusatz:** Nutze `man ss`, um dich mit dem Befehl `ss` und den gewaehlten Optionen auseinanderzusetzen. Dies ist ein sehr praktischer Befehl, der sehr haeufig genutzt wird.
|
||||
**Zusatz:** Nutze `man ss`, um dich mit dem Befehl `ss` und den gewaehlten Optionen auseinanderzusetzen. Dies ist ein sehr praktischer Befehl, der sehr haeufig genutzt wird.
|
||||
Reference in new issue
Block a user