Linux-im-Netzwerk-Übung
NEU:Fortsetzungsveranstaltung zur Linux-Übung: Evtl. gibt es
ein Netzwerk-Seminar - Linux im Netzwerk. Hierbei soll es zum einen
um die Einbindung von Linuxmaschinen in TCP/IP-Netzwerke gehen und zum
anderen verschiedene Einsatzgebiete herausgearbeitet werden. (Themen
-sehr grob-
TCP/IP (Aufbau der Protokolle IP, UDP, TCP, Paketanalyse), Routing,
Netzwerkhardware, Firewall, Paketfilter, File-, Mail-, FTP-, DNS-,
DHCP-Server, SNMP, Domain Name System, IPsec, Sicherheit ...)
Stattfinden soll die erste Veranstaltung dieser Art als Blockseminar,
später soll sie als Vorlesung/Übung konzipiert im Anschluss an die
Linux-Übung angeboten werden. Diese Veranstaltung wird also wieder ein
Stück weit experimentell sein!! (Kreditpunkte könnten evtl.
vergeben werden.)
Termin: Ende August / Anfang September Computerraum des Math. Inst. - 2
Wochen Blockveranstaltung mit der groben Aufteilung: Vormittags Theorie und
nachmittags Praxis. Teilnehmerzahl: max. 10 (in der "Basisausstattung")
Vorbereitungstreffen: Anfang August.
Voraussetzungen: Gute Linuxgrundkenntnisse (evtl. via Eingangsklausur
nachzuweisen). Literatur: Douglas E. Comer - TCP/IP Vol. 1
Bei Interesse an dieser Veranstaltung: Bitte Mail an mich (Dirk von Suchodoletz), damit ich
einen Überblick bekomme (im Subject/Betreff bitte "Linux-im-Netzwerk"
reinschreiben :-)) und bei tatsaechlichem Zustandekommen mich melden
kann.
Linux-Übung
Klausurrückgabe: Die Scheine werden demnächst im
Geschäftszimmer der Numerik verfügbar sein. Es gibt noch Probleme
mit dem Munopag-Eintrag, da zur Zeit Personalprobleme bestehen. Die Liste
für die Scheinvergabe liegt bei Frau Trapp vor, so dass die
"Hardcopies" zur Verügung stehen sollten.
Die Linux-Übung wird inzwischen regelmaessig im Wintersemester
angeboten und findet meist im HS 1 des Mathematischen Instituts in
der Bunsenstrasse statt. (siehe Stud-IP und Seiten des Math. Instituts)
Die Kriterien: Teilnahme an beiden Klausuren mit einer Erfolgsquote von
min. 30% in jeder und insgesamt 100% beide addiert. Teilnahme an den
Übungen 50% Erfolgsquote bei den Aufgaben (welche zum grösseren Teil
direkt in den Übungen bearbeitet werden), wobei diese Quote in einem
gleitenden Fenster über vier Termine immer erreicht werden sollte.
Motto: "Unix ist zwar ein Mainframe-Betriebssystem (und damit obsolet)
hat aber noch viele Anhänger."
zitiert aus:
Windows MSCE-Training-Guide Windows 2000 Server
Verlag Markt und Technik
Kapitel 2.6.3 "Zusammenspiel mit UNIX"
Inzwischen ist diese Veranstaltung auch im
UniVIS aufgenommen worden.
Der Kurs gliedert sich in zwei Teile: Einführung in die jeweilige
Problematik und in eine Übung. Die Übungszeiten werden noch
bekanntgegeben. Hier ist die Teilnehmerzahl jedoch beschränkt (max. 16
TeilnehmerInnen pro Übung).
Als Klausurvorbereitung können auch unabhängig von der
Übung die Testfragen gelöst werden. Einige Shellskripten und andere
Beispiele werden im Laufe der Zeit erstellt...
Ansprechpartner sind:
Stefan Koospal koospal AT math uni-goettingen de
Dirk von Suchodoletz dirk AT goe net
Für den Übungsbetrieb:
Matthias Rappe mrappe AT gwdg de
Christopher Intemann
cintema AT stud DOT uni-goettingen DOT de
Aiko Barz
Aiko.Barz AT stud DOT uni-goettingen DOT de
Einige Kursunterlagen koennen als
HTML (nicht immer aktuell!!) sowie als
Postskript (.ps)
bzw. PDF (.pdf -> aktuell) abgerufen werden.
Es werden jedoch
nicht alle angekündigten Themen in den hier genannten Unterlagen
behandelt. Weitere Unterlagen finden sich z.B. hier oder
das klassische (und erste) Linuxhandbuch dort.
Klausurvorbereitung/Wiederholung/Vertiefung: Die Internet-Hotline bietet
auch Kurse zum Thema an, z.B. Bash-Skripting
von Olaf Brandt.
Termine:
15.10. Einführung / Login
- Vorstellung des Semesterplans und des Ablaufs (30 Minuten)
- Hinweise auf Unterlagen und Materialen, evtl. Installation von Linux
Bezug des Betriebssystems, Alternativen (Suse, Redhat...)
- kurze Vorstellung von Linux
- Login an der Maschine
° lokal und remote (Identitäten und Unterschiede)
° Sinn von Benutzer-Accounts
- erstes Umsehen: ls, cd, mkdir, rmdir, rm
- Aendern einiger passwd-Einstellungen mittels "passwd", "chsh", "chfn"
...
- wichtige Tastenkombinationen (Umschalten der Console, Beenden von X,
Booten des Rechners)
- kurze Bemerkung zum Kommandointerpreter und Einordnung ggueb. OS
- finden von Dokumentation und Hilfe im System, Manualpages
- Benutzung des Editors "vi" bzw. "joe"
22.10. Unix-Shell
- Suchen und Finden von Informationen, lokal auf dem System, Newsgroups,
WWW und Literatur
- Bedeutung des Kommandointerpreters
° Interpretation der Benutzereingaben, Zerlegen der Kommandos,
Optionenübergabe
° Umsehen im Account: Pfad, "pwd", "ls" andere eingeloggte Benutzer, Zeit,
Datum
Feststellen der eigenen UserID, "w", "who", "finger", "id", "last",
"uptime", "uname"
° Umgebungsvariablen und deren Belegung durch login, /etc/profile,
.profile
° verschiedene Shells, Aendern der Defaultshell
° Setzen von Umgebungsvariablen "set", "export"
statische und änderbare Variablen (UID, USER, SHELL, PATH ...)
Terminalvariable (Remote-Login: vt100, xterm, linux ...)
Verandern der Pfadvariablen und Auswirkungen
° Verändern der Profileinstellungen mittels .profile und .bashrc
° Benutzen der History-Funktionen
° Einfache Shellfunktionen / Programmierung
- Anzeigen von Dateiinhalten: more, less, tail, cat
- wichtige Tools: awk, grep, sed, wc ...
Übung:
Einrichtung von Usern auf einem Linuxsystem. Grafisches Login, Anmeldung
(von remote) mittels SSH, Shellbefehle und -variablen, wichtige
Tastenkombinationen zur Steuerung eines Linuxsystems ...
29.10. Filesystem
- weitere wichtige Unix-Kommandos (awk, grep, sed, wc, sort ...)
- Filesystem
° FS-Hierarchiestandard
° Aufteilungskriterien (stat. vers. dynamische Daten,
Konfigurationsdateien, Bibliotheken, Binaries ...)
- Einbinden, Aushängen von FS-Teilen: mount, umount
° Warum, zentrales Element, keine "Laufwerke" ...
° Rechte beim Mounten
° Hilfskommando "eject"
- Dateisystemtypen: ext2/3, Journaling-FS: reiser, xfs, jfs, weitere
Typen
- Automatisierung des Mountens -> Kernelautomounter
- Aufteilung in die einzelnen Dateibäume (Basis: /etc, /lib/, /bin, /sbin
und entsprechende Erweiterungen: /opt/, /usr, /usr/X11R6 ...)
- Suchen und Finden im Dateisystem "find", "locate" (locatedb, updatedb)
- Dateien identifizieren "file"
- Direktzugriff auf Devices ("dd", mtools für Dos-FS)
Übung:
Erweiterte Benutzung der Shell, verschiedene Standardkommandos ..., Ein-
und Aushängen von Teilen des Dateisystems (siehe hierzu auch die Unterlagen!) Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden. Diese Struktur
der Links wiederholt sich.
05.11. Rechtesystem unter Unix / Softwareinstallation
- Rechtesystem unter Unix (User, Group, Other, RWX)
° Kommandos "chmod", "chown"
- Verschiedene Dateitypen: pipe, verzeichnis, link, ...
- Verschiedene Distributionen
- Gedanken zur Installation und Aufteilung der Festplatte
° Anmerkungen zur Hardwareausstattung, CPU-, Speicherbedarf, Festplatte
° Fileserver, Desktoprechner, Router/Firewall ...
- Softwareinstallation
° Wo landet was
° Platz im Dateisystem "df"
° RPM ausführlicher
- Zuordnung von Dateien zu Softwarepaketen -> RPM
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
12.11. Runlevel, Start-/Stop des Rechners
- Hochfahren, Herunterfahren des Rechners (Sinn, Ein-/Ausmounten der FS,
Konfiguration der Dienste ...)
- Bedeutung der inittab für Textkonsolen, Logins ...
- Runlevel
° Shell-Skripten
° Konfigurationsvariablen (rc.config unter Suse)
° Start- / Stopmuster von SysV-Init
° Ein- und Ausschalten bestimmter Dienste
- Ablauf des Starts: init -> boot -> boot.local -> Sprung in Runlevel ->
entspr. Runlevelskripten
° Wie werden bestimmte Dienste aktiviert
° Abhängigkeiten beim Startvorgang (z.B. Netzwerk vor Apache starten)
- Start von Programmen mittels "cron"
° Konfiguration des Cron
° Cron-Benutzer
- Ausführen von Programmen und Skripten mittels "at"
- Start(-arten) der grafischen Oberfläche
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
19.11. Systeminformation, -überwachung
- Informationsbeschaffung über das System und die installierte Software
- laufende Prozesse analysieren: top, ps, ...
- Beenden von Prozessen (kill, killall ...)
- Speicherbelegung RAM/Swap
- Systemlast, Zahl der User "uptime", "load"
- Offene Dateien "lsof", Identifizierung von benutzten Dateien "fuser"
- netstat (Sockets, RAW, tcp, udp ...)
- Die Kernelschnittstelle -> proc Interface
- Load der Maschine, bekannte Filesysteme, Hardwareinfo (IRQ, IO, ...)
- Einstellungen von Kernelfunktionen
- Systemlog messages, boot.msg, Schreiben ins log mittels logger
- dmesg
- strace zur Verfolgung von Systemaufrufen, ltrace für Bibliotheken
- Systemüberwachung in weiterem Umfeld: ruptime, rwho
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
26.11. Kernel und Module
- Linuxkernel -> das Betriebssystem
- Versionen, Entwicklung, Auswahl des Kernels
- Bedeutung von Kernelmodulen
- Abhängigkeiten von Kernelfunktionen untereinander
- Laden, Entladen von Modulen
- Modulautoloader
- Devices als Schnittstelle zum Kernel, Verknüpfung zum autom. Modulladen
- Block-, Characterdevices, Netzwerkschnittstellen (Unterschiede)
- modules.dep (Erstellen, Aussehen ...) "depmod"
- modules.conf Userdatei zum Einstellen des Verhaltens
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
03.12. Erstellen eines eigenen Kernels
- Erstellen einen eigenen Kernels
- Einbinden von Hardware (Auswahl der Treiber, Finden von Informationen zu
einzelnen Hardwareteilen, Chipsets ...)
- make config / menuconfig / oldconfig / xconfig / cloneconfig
- Bedeutung der verschiedenen Konfigurationsabschnitte
- Kompilieren des Kernels und installieren der Module
- Patches einspielen
- Einrichten des Bootloaders
- verschiedene Bootmöglichkeiten (Diskette, lilo, loadlin ...)
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
10.12. Softwareentwicklung unter Linux
- Kernel - Bootloader/Command Line
- Softwareentwicklung
- gcc (cross compiling)
- autoconfig / automake -Pakete
- make
- Linker
- Bibliotheken (/etc/ld.so.conf -> ld.so.cache)
- Programme "strings", "nm", "ldd", "strip"
- Ausführungsdauer eines Programms: "time"
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
17.12. Weitere Programmiersprachen und Entwicklungsumgebungen
- weitere Programmiersprachen (kurze Erwähnung)
- Perl und Skripten
- C++ und Java
- Python
- Entwicklungsumgebungen unter KDE, etc.
- Headerdateien
- weitere Programme: SQL-Datenbank
- Hilfsprogramme (Debugger)
Klausurergebnisse (1. Klausur, (incl. Beispielskript)
geschrieben am 19.12.2001):
Zum gegenwärtigen Zeitpunkt liegen leider noch nicht alle Ergebnisse vor
(Krankheit eines Hiwis). Wir versuchen jedoch eine Fertigstellung noch vor
Weihnachten zu erreichen und euch, soweit es klappt, per Mail in Kenntnis zu
setzen!
Schöne Ferien und Frohes Neues!!!
07.01 Grafische Benutzerschnittstelle
- XFree86 (zweiter "Hardwaretreiber" neben dem Kernel)
- XF86Config
° Konfigurationstools
° Bedeutung der einzelnen Abschnitte der Konfigurationsdatei
° Auflösungen, Farbtiefen, Speicherbedarf
- das XDMCP -> xdm (gdm/wdm/kdm)
- Netzwerktransparenz des Konzeptes auch für einzelne Applikationen
- Konfiguration von xdm/kdm, Hostchoosern, Zugriff auf eine Maschine
° Dateien Xressources, xdm-config, Xaccess
- Xnest als spezieller X-Server
- Windowmanager und Sessionmanagement
- Ablauf des Starts und Logins an der grafischen BO
° Xstartup, Xsetup, Xsession -> Xreset
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
14.01. Windowmanager KDE/Gnopme / Sessionmanagement
- Palette verschiedener Applikationen (Netzwerk, Office, Spiele ...)
- Übersetzen neuer Programme (laden aus dem Netz, Anpassen an lokale
Gegebenheiten, Nutzen bestimmter Optionen)
- Konfiguration einzelner Programme
- Konfigurationsdateien (systemweit, benutzerspezifisch)
Anschliessend Nachschreibtermin!! für die Klausur, für
alle, die den anderen Termin nicht realisiert haben!
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
21.01. Einführung Netzwerke
- OSI-Modell
- Netzwerkarten (Broadcastmedien, PtP-Verbindungen)
- Ethernet, TokenRing, ADSL, ISDN, Modem (deren Kernelschnittstellen)
- verschiedene Ethernetmedien und deren Leistung
- Verwendung unterschiedlicher Flags fuer Interfacedefinition (BROADCAST,
ARP, PROMISC ...)
- Unterschiede von PtP (Interfaces wie ippp0, ppp1, slip ... fuer
Verbindungen ueber serielle Leitungen, Modem, PPPoverEthernet, PPtP) zu
Broadcastmedien (eth0, ... auf Ethernet, TokenRing, FDDI) und
Spezialinterfaces (wie Loopback, Dummy, VMnet ...)
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
28.01. TCP/IP-Networking
- Einführung in die Funktion von TCP/IP
- IP und Routing
- UDP und TCP als Transportprotokolle
- Verknüpfung von Ethernet und IP mittels "arp"
- Kernelnetzwerkschnittstellen
- Konfigurationstools "route", "ifconfig", "ip"
- "ifconfig" zur Konfiguration der IP und zur Konfiguration von
Hard- bzw. Softwareeigenschaften des Interfaces
- DNS-Clientkonfiguration
- kurzfristige, dauerhafte IP-Konfiguration
Übung:
Die Übungsaufgaben sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
04.02. TCP/IP -> Netzwerkdienste
- Routing am Bespiel eines privaten Netzbereiches mit mehreren Routern
- Ablauf der Paketzustellung von Router zu Router
- Werkzeuge zur Paketverfolgung durchs Netz: traceroute, mtr
- Konfiguration der Netzwerkparameter mittels DHCP (UDP 67)
- Protokolle der Transportschicht: TCP & UDP
- Header und Flags, Vor- und Nachteile der beiden Protokolle
- FTP (TCP 23), WWW (TCP 80)
- DNS (UDP 53)
- SNMP (UDP 161) ...
Die letzten Übungsaufgaben dieser Veranstaltung sind hier verfügbar.
Aufgaben zum Üben, die nicht bewertet werden aber u.a. auf die Klausur
vorbereiten sollen, sind hier zu finden.
11.02. Netzwerkdienste
- Aufbau des TCP-Headers, Bedeutung der einzelnen Felder und Flags
- Three-Way-Handshake zur Initiierung einer TCP-Verbindung
- wichtige Unterschiede von UDP und TCP am Beispiel des DHCP
- Analyse von Netzwerkpaketen mittels "ethereal", Nachvollziehen der
Protokollschichten, Analyse der Paketheader
- Funktion verschiedener Interfaces
- Demonstration des UDP am Beispiel einer DHCP-Verbindung
- Nicht IP-Protokoll ARP auf Ethernet, Bedeutung und Probleme des ARP,
Kommando "arping"
- Kurzer Ausblick auf sicherheitsrelevante Implikationen aus Ethernet- und
TCP/IP-Kommunikation in lokalen und globalen Netzen
- Kurzer Ausblick auf IPsec-verschluesselte Verbindungen am Beispiel des
Cisco-IPsec-Clients und bestehender Probleme bzw.
Konfigurationsmoeglichkeiten
13.02. Abschlussklausur der Linux-Übung (ergibt die zweiten 50%
der Scheinwertung für diese Veranstaltung)
Schöne Semesterferien und gute Erholung!!!
|
 |