Aufgabe 04 - Erster Kontakt: Server und Shell
Aufgabe 04 - Erster Kontakt: Server und Shell
Abschnitt betitelt „Aufgabe 04 - Erster Kontakt: Server und Shell“Worum geht es?
Abschnitt betitelt „Worum geht es?“Sie nehmen Ihren eigenen Server in Betrieb, verschaffen sich einen Überblick über das System und beginnen die Betriebsdokumentation, die Sie das ganze Jahr begleitet (siehe Kapitel Server aufsetzen und härten). Der Lerneffekt liegt nicht im Absetzen der Befehle, sondern darin, aus deren Ausgabe ein Bild des Systems zu gewinnen und dieses Bild aufzuschreiben.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel Server aufsetzen und härten, Abschnitte Einen Server mieten bis Logs lesen.
- Einen eigenen VPS bei Hetzner Cloud oder die von der Schule bereitgestellte Umgebung, ein Terminal und Git.
- Das Repository aus Aufgabe 03.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie melden sich per SSH an einem Server an und bewegen sich in der Shell.
- Sie ermitteln den Zustand eines Systems aus der Kommandozeile: Version, Ressourcen, Dienste, Logs.
- Sie dokumentieren Eingriffe an einem Server so, dass sie nachvollziehbar und wiederholbar sind.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: Befehle nach Anleitung absetzen und Ausgaben wiedergeben (Teil A).
- Reorganisation und Transfer: Programme über Pipes verketten und daraus eine Antwort gewinnen (Teil B).
- Reflexion, Problemlösung und Urteilsbildung: den Systemzustand zusammenführen und offene Ports beurteilen (Teil C).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt.
Teil A - Anmeldung und Orientierung
Abschnitt betitelt „Teil A - Anmeldung und Orientierung“-
Melden Sie sich mit
sshan Ihrem Server an. Notieren Sie, was beim ersten Verbindungsaufbau zum Host-Schlüssel gefragt wurde, was Sie geantwortet haben und was Ihre Antwort bewirkt hat. -
Ermitteln Sie vier Angaben über das System und notieren Sie jeweils Befehl und Ergebnis: Betriebssystem und Version (
cat /etc/os-release), Kernel (uname -a), Laufzeit seit dem letzten Neustart (uptime), Ihre Kennung und Gruppen (id). -
Bestimmen Sie den freien Plattenplatz (
df -h) und den freien Arbeitsspeicher (free -h). Notieren Sie beide Werte mit dem heutigen Datum. Am Jahresende vergleichen Sie sie erneut. -
Sehen Sie sich
ls -la /etc,ls -la /var/logundls -la /var/wwwan. Beschreiben Sie in je einem Satz, was in diesen Verzeichnissen liegt. -
Tragen Sie die Eckdaten Ihrer Maschine als ersten Eintrag in
docs/betrieb.mdein: IP-Adresse, Betriebssystem und Version, Servertyp, Standort, Datum der Inbetriebnahme.
Teil B - Die Shell als Werkzeug
Abschnitt betitelt „Teil B - Die Shell als Werkzeug“-
Legen Sie die Verzeichnisstruktur
~/uebungen/04/mit einem einzigen Befehl an. -
Schreiben Sie die Liste aller laufenden Prozesse mit einer Umleitung in die Datei
~/uebungen/04/prozesse.txt. -
Zählen Sie mit einer Pipe aus drei Programmen, wie viele Zeilen dieser Datei das Wort
rootenthalten. Notieren Sie den Befehl und erklären Sie in je einem Satz, was jedes der drei Programme beiträgt. -
Finden Sie mit
grep -rheraus, in welcher Datei unter/etcder SSH-Port konfiguriert ist. Notieren Sie Datei und Zeilennummer. Ändern Sie nichts. -
Setzen Sie einen Befehl ab, der fehlschlägt, etwa
ls /gibtsnicht. Rufen Sie danachecho $?auf und erklären Sie den ausgegebenen Wert in zwei Sätzen. Rufen Sie dasselbe nach einem erfolgreichen Befehl auf und notieren Sie den Unterschied.
Teil C - Rechte, Dienste und Ports
Abschnitt betitelt „Teil C - Rechte, Dienste und Ports“-
Legen Sie eine Datei
~/uebungen/04/geheim.txtan. Setzen Sie die Rechte so, dass nur Sie sie lesen und schreiben dürfen und sonst niemand. Notieren Sie den verwendeten Zahlenwert und belegen Sie das Ergebnis mit der Ausgabe vonls -l. -
Ermitteln Sie mit
systemctl status ssh, seit wann der SSH-Dienst läuft und unter welcher Kennung. Auf Fedora und RHEL heißt der Dienstsshd. -
Lesen Sie mit
journalctldie letzten 50 Zeilen des SSH-Dienstes. Suchen Sie darin Ihre eigene Anmeldung aus Teil A und notieren Sie die Logzeile. -
Erklären Sie in drei bis vier Sätzen den Unterschied zwischen
systemctl restartundsystemctl reloadund nennen Sie zu jedem einen Fall, in dem Sie es verwenden würden. -
Erstellen Sie mit
systemctl list-units --type=service --state=runningeine Liste der laufenden Dienste. Suchen Sie sich einen heraus, dessen Zweck Sie nicht kennen. Finden Sie mitsystemctl status,manund der Paketbeschreibung heraus, was er tut, und beschreiben Sie ihn in zwei Sätzen. -
Ermitteln Sie mit
ss -tulpndie belegten Netzwerkports. Legen Sie eine Tabelle mit den Spalten Port, Dienst, aus dem Internet erwartbar? an und füllen Sie sie aus. Diese Tabelle ist der Ausgangswert für Aufgabe 08, heben Sie sie auf. -
Beurteilen Sie in vier bis fünf Sätzen: Welche der offenen Ports würden Sie auf einem Server im Internet erwarten, welche nicht, und warum ist jeder offene Port eine Entscheidung, die man begründen muss?
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Warum melden Sie sich mit einem Schlüsselpaar an und nicht mit einem Passwort? Was passiert mit dem privaten Schlüssel?
- Wozu fragt SSH beim ersten Verbindungsaufbau nach dem Fingerprint des Servers?
- Was bedeuten die Rechte
-rw-r-----für Eigentümer, Gruppe und alle anderen? - Was bedeutet das Recht
xbei einem Verzeichnis? - Warum läuft ein Webserver unter einer eigenen Benutzerkennung und nicht als
root? - In welcher Reihenfolge gehen Sie vor, wenn ein Dienst nicht startet?
- Warum gehört eine geänderte Datei aus
/etcin ein Git-Repository?
In docs/betrieb.md stehen die Eckdaten der Maschine und die Eingriffe dieser Übung. Eine Datei protokoll.md enthält die Befehle und Ausgaben aus den Teilen A bis C, die Porttabelle und die Beurteilung aus Teil C Punkt 7.