Tutorial 2: Linux Basics

ASE WS 2023/24

Dieses Dokument ist kein eigenständiges Tutorial sondern unterstützt die Übung. Die grundlegenden Konzepte werden vorgestellt, hilfreiche Links erleichtern die selbständige Vertiefung.

Ziele:

  • Ihr kennt wichtige Unix/Linux-Konzepte (Prozesse, Umgebungsvariablen, File Descriptors, Berechtigungen)
  • Ihr kennt grundlegende Netzwerk-Tools
  • Ihr kennt Werkzeuge und Methoden, um Probleme auf Linux-Servern zu finden und zu beheben.

Dieses Tutorial baut auf den Kenntnissen aus dem Shell-Tutorial auf.

Wir brauchen heute für die Beispiele eine simple Linux-Shell und ein paar Linux-Programme.

Option 1: Shell auf dem lokalen Rechner öffnen

Option 2: SSH nach Segfault.net

Anmelden über SSH als Nutzer root auf einem 'disposable root server' via segfault.net. Entweder über Putty oder über das ssh-Programm (seit kurzem auch unter Windows verfügbar).

ssh root@segfault.net # Password is 'segfault'

Hinweis: wenn man das Passwort eingibt, werden keine Zeichen angezeigt.

Achtung: Der Server ist nicht sicher - keine vertraulichen Infos/Passwörter dort eintippen

Erster Schritt auf dem Server: Informationen zu Netzwerk-Schnittstellen prophylaktisch in einen Text-Editor kopieren

Zweiter Schritt: tmate ausführen.

  • apt show <paketname>
  • apt search <begriff>
  • apt install <paketname> <paketname>
  • apt update (Paketliste aktualisieren)
  • apt upgrade (alle Pakete aktualisieren)

Weiterführende Methoden:

  • andere Repos hinzufügen (siehe /etc/apt/sources.list und /etc/apt/sources.list.d/)
  • aus bestimmten Repos installieren (apt install -t unstable youtube-dl)
  • Pakete manuell installieren (dpkg -i <Dateiname>)
  • fehlgeschlagene Installation/Konfiguration neu starten (apt install -f / dpkg --configure -a)
  • mit apt-file (separates Paket) kann man herausfinden, in welchem Paket eine bestimmte Datei steckt

(live)

Tipp: Terminal zerschossen - willkürliche Zeilenumbrüche, komische Zeichen, etc.?

→ sicherheitshalber Ctrl-C drücken um einen leeren Prompt zu haben (oder q drücken, wenn gerade less/top/… läuft). Dann stty sane<Return> eintippen, um das Terminal auf Standardwerte zurückzusetzen.

  • uptime
  • which
  • top / htop / btop
  • du
  • df
  • fuser / lsof
  • strace (-p)
  • ip / ifconfig / iwconfig
  • route
  • ping
  • traceroute / mtr / tcptraceroute
  • tcpdump
  • ngrep
  • netcat / nc
  • netstat
  • nmap

(live) - cat /var/log/... - journalctl -xe

Wir beschäftigen uns mit verschiedenen Problemen auf https://sadservers.com/

  • Löst - zu zweit - die vier einfachen Probleme unter https://sadservers.com/scenarios - dokumentiert die Lösungsschritte in einer Datei “sadserver-01.txt” usw. (Tipp: der Befehl history zeigt die bisher eingegebenen Befehle an

Beispiel:

# Problem: Webserver geht nicht
uptime # Auslastung anschauen
netstat -pan | grep 80 # Lauscht überhaupt ein Server auf Port 80?
...
  • Ein Protokoll /root/admin.log o.ä. pflegen, in der man alle Änderungen an einem System und Probleme dokumentiert