[html [head [title VHS Linuxkurs]] [body [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig] [slide [h1 VHS Linux Grundkurs - Teil 4]] [slide [h2 Themen] [ul [li Softwareinstallation mit Paketsystemen] [li Installation des Betriebssystems] ] ] [slide [h1 Softwareinstallation und Paketsysteme]] [slide [h2 Softwareinstallation] [p [h3 Wir benutzen ein Paketsystem] [img src="synaptic_1.jpg"] ] ] [slide [h2 Was ist ein Paketsystem?] [ul .uncover Die Vier Freiheiten: [li [b Verwenden:] das Programm für jeglichen Zweck ausführen] [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen] [li [b Verbreiten:] das Programm weitergeben] [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben] ] ] [slide [h2 Was ist ein Paketsystem?] [ul Die Vier Freiheiten: [li [b Verwenden:] das Programm für jeglichen Zweck ausführen] [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen [ul [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]] ]] [li [b Verbreiten:] das Programm weitergeben] [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben [ul [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]] ]] ] ] [slide [h2 Was ist ein Paketsystem?] [ul .uncover [li Ein Softwareauthor schreibt [em Quellcode]] [li Programm muss für ein Rechnersystem [em kompiliert/gebaut] werden] [li Dies ist nicht Aufgabe des Authors (denn große Vielfalt von Plattformen, Hardware, etc.)] [li Eine System-[em Distribution] ist eine Sammlung von Software[em paketen]] [li Maintainer [em paketieren] Programme für eine Distribution] ] ] [slide [h2 Was ist ein Paketsystem?] [ul .uncover [li Distributionen stellen Softwarearchive bereit → [em Paketquellen] [ul [li z.B. online zum Download] [li z.B. als CD-Rom] ]] [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen → [em Paketsysteme] [ul [li z.B. nur Archiv entpacken] [li z.B. Quellcode automatisch bauen] [li z.B. Dateisystemimage mounten] ]] [li Oft sind Pakete kryptographisch signiert] ] ] [slide [h2 Was ist ein Paketsystem?] [ul [li [strong Oft sind Pakete kryptographisch signiert]] [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen] ] ] [slide [h1 Doch nochmal zur Kryptographie]] [slide [h2 Was ist verschlüsselung?] [p [h3 Der Klassiker: Symmetrische Verschlüsselung:] [a href="https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem" [img src="1200px-Orange_blue_symmetric_cryptography_de.svg.png" width="50%"] [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem] ] ] [slide [h2 Symmetrische Verschlüsselung] [ul [h3 Verschlüsseln:] [li [pre ~$ echo "Geh Heim Dienst!" >datei]] [li [pre ~$ gpg -c datei]] [h3 Zum entschlüsseln:] [li [pre ~$ gpg -d date.gpg]] [p (Achtung: gpg merkt sich Passworte für kurze Zeit)] ] ] [slide [h1 Symmetrische Verschlüsselung -> Asymmetrische Verschlüsselung]] [slide [h2 Asymmetrische Verschlüsselung] [p style="text-align: center;" [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem" [img src="Orange_blue_public_private_keygeneration_de.svg.png" width="25%" ] [img src="1200px-Orange_blue_public_key_cryptography_de.svg.png" width="60%" ] [br] https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem ] ] ] [slide [h1 Asymmetrische Verschlüsselung -> Signierung] Wenn jeder eine Nachricht an mich verschlüsseln kann, wie kann ich dann die Identität des Absenders verifizieren? ] [slide [h2 Signierung] [p style="text-align: center;" [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem" [img src="1200px-Orange_blue_digital_signature_de.svg.png" width="50%"] [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem ] ] ] [slide [h2 Signierung] [h3 Übung aus dem letzten Kurstag] [pre ~$ ssh beamer The authenticity of host 'beamer (192.168.101.20)' can't be established. ECDSA key fingerprint is SHA256:.... Are you sure you want to continue connecting (yes/no)? _ ] [ul [li -> der öffentliche Schlüssel identifiziert einen Host (Fingerprinting)] ] ] [slide [h2 Was ist ein Paketsystem?] [ul .uncover [li [strong Oft sind Pakete kryptographisch signiert]] [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen] [li -> Pakete sind vom Maintainer signiert] ] ] [slide [h1 Apt und dpkg]] [slide [h2 Apt und dpkg] [ul .uncover [li Paketinformationen neu laden] [li Paketquellen bearbeiten] [li zum Installieren vormerken] ] ] [slide [h2 Apt und dpkg] [ul .uncover [li [pre ~$ sudo apt-get update]] [li [pre ~$ apt-cache search ...]] [li [pre ~$ apt-cache show ...]] [li [pre ~$ sudo apt-get install ...]] [li [pre ~$ sudo apt-get remove ...]] ] ] [slide [h2 Apt und dpkg] [ul .uncover [li Pakete haben Abhängigkeiten] [li Abhängigkeiten können Paketinstallationen blockieren] [li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen] ] ] [slide [h2 Apt und dpkg] [ul .uncover [li [pre ~$ less /etc/apt/sources.list]] [li [pre ~$ sudo apt-get upgrade]] [li [pre ~$ sudo apt-get dist-upgrade]] [li [pre ~$ sudo apt-get autoremove]] ] ] [slide [h1 Andere Paketsysteme]] [slide [h2 Andere Paketsysteme] [ul .uncover [li Arch GNU Linux [ul [li [pre pacman -Ss ...; pacman -S ...; pacman -R ...]] ]] [li Gentoo [ul [li [pre emerge --sync; emerge --search ...; emerge ... ]] ]] [li Fedora/RedHat [ul [li [pre yum search ...; yum install ...; yum remove ... ]] ]] [li Andere [ul [li ipkg/opkg, msi, ...] ]] ] ] [slide [h1 Software selbst übersetzen] Selbst "Maintainer" sein ... ] [slide [h2 Software selbst übersetzen] [ul .uncover [li Authoren stellen Quellcode häufig über [em Versionsverwaltung] bereit [ul [li Wir müssen den Quellcode [em auschecken / clonen]] ]] [li Software muss in Maschinencode übersetzt werden [ul [li Wir brauchen einen [em Compiler] für die entsprechende Programmiersprache] [li Wir müssen selbst [em Abhängigkeiten] beachten (→ Dependency Hell)] ]] [li IdR. wird der Prozess vereinfacht durch Buildautomatisierung] ] ] [slide [h2 Software selbst übersetzen] [ul .uncover [h3 Ein einfaches Beispiel] [li [pre ~$ git clone https://git.plutz.net/git/vhs_kurs]] [li [pre ~$ cd vhs_kurs]] [li [pre ~$ make]] ] ] [slide [h1 Systeminstallation]] [slide [h2 Systeminstallation] [ul .uncover [li Beginnt mit einer leeren Partition] [li System muss gerade soweit bestehen, dass Software installiert werden kann] [li Systemkernel muss installiert sein] [li Bootloader muss installiert sein (Plattformspezifisch)] [li ggf. Benutzer anlegen] [li ggf. /etc/fstab anpassen] ] ] [slide [h2 Systeminstallation] [ul .uncover [h3 Installation des Basissystems] [li Abhängig von Distribution] [li debootstrap, pacstrap] [li Archiv entpacken] ] ] [slide [h2 Systeminstallation] [ul .uncover [li [pre ~$ mkdir sys]] [li [strike mount /dev/sdx1 sys/]] [li [pre ~$ mkdir sys/bin]] [li [pre ~$ cp /bin/busybox sys/bin]] [li [pre ~$ sys/bin/busybox --install sys/bin]] ] ] [slide [h2 Systeminstallation] [ul .uncover [li [pre ~$ sudo chroot sys /bin/sh]] ] ] [slide [h2 Zusammenfassung] [ul [li Paketsysteme vereinfachen die Softwareinstallation] [li Paketsysteme erhöhen die Sicherheit] [li Paketsysteme und verfügbare Pakete sind der Hauptunterschied zwischen Distributionen] [li Zur Systeminstallation wird im wesentlichen das Paketsystem ausgerollt] ] ] [slide [h1 Anwendersoftware]] [slide [h1 \...]] [slide [h2 Nächster Termin] [ul [li Mittwoch, 16.10.] ] ] ]]