Was ich über Linux lerne - 2

Die n"achste Ver"offentlichung von Debian hei"st "trixie" – "Testing", bisher noch kein Ver"offentlichungsdatum
Debian 12 ("Bookworm") – aktuelle Ver"offentlichung - "Stable"
Debian 11 ("Bullseye") – aktuelle Ver"offentlichung - "Oldstable"
Debian 10 ("Buster") – aktuelle Ver"offentlichung - "Oldoldstable" unter LTS-Support
Debian 9 ("Stretch") – veraltete Ver"offentlichung, unter erweitertem LTS-Support
Debian 8 ("Jessie") – veraltete Ver"offentlichung, unter erweitertem LTS-Support
Debian 7 ("Wheezy") – veraltete Ver"offentlichung
Debian 6.0 ("Squeeze") – veraltete Ver"offentlichung
Debian GNU/Linux 5.0 ("Lenny") – veraltete Ver"offentlichung
Debian GNU/Linux 4.0 ("Etch") – veraltete Ver"offentlichung
Debian GNU/Linux 3.1 ("Sarge") – veraltete Ver"offentlichung
Debian GNU/Linux 3.0 ("Woody") – veraltete Ver"offentlichung
Debian GNU/Linux 2.2 ("Potato") – veraltete Ver"offentlichung
Debian GNU/Linux 2.1 ("Slink") – veraltete Ver"offentlichung
Debian GNU/Linux 2.0 ("Hamm") – veraltete Ver"offentlichung

Stable
Testing
Unstable

Architectures:
64-bit PC (amd64)
64-bit ARM (AArch64)
EABI ARM (armel)
Hard Float ABI ARM (armhf)
32-bit PC (i386)
MIPS (little endian)
64-bit MIPS (little endian)
POWER Processors
IBM System z

deb cdrom:[Debian GNU/Linux 12.2.0 _Bookworm_ - Official amd64 NETINST with firmware 20231007-10:28]/ bookworm main non-free-firmware
deb http://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware

http://deb.debian.org/
http://deb.debian.org/debian/
deb-src http://security.debian.org
deb-src http://security.debian.org/debian-security

bookworm
bookworm-backports
bookworm-security

main
non-free-firmware
contrib
non-free


/etc/apt/sources.list
/etc/apt/sources.list.d/

deb http://de.archive.ubuntu.com/ubuntu jammy main restricted

"Typ": deb oder deb-src
"Ort": z.B. http://de.archive.ubuntu.com/ubuntu (oder auch eine CD/DVD)
"Distribution": jammy, jammy-updates, jammy-security, usw.
"Komponenten" (optionale Liste): main, restricted, universe, multiverse

Typ: deb deb-src
Ort: cdrom http ftp file copy

lsb_release -cir
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat -n /etc/apt/sources.list
apt-get update

Multiarch
PPA: Personal Package Archive
apt: Advanced Package Tool
Paketstatus
Backport: R"uckportierung

dpkg-dev
apt-get install dpkg-dev

apt
apt-get
dpkg
dpkg-query
dpkg-deb
dpkg-repack


apt [OPTIONEN] BEFEHL

update
upgrade
full-upgrade
install PAKETNAME
install /PFAD/ZUM/PAKET
reinstall PAKETNAME
remove PAKETNAME
purge PAKETNAME
autoremove
search SUCHBEGRIFF
show PAKETNAME
list SUCHMUSTER
edit-sources

apt install foo_1.0_all.deb      # falsch
apt install ./foo_1.0_all.deb

apt-get [OPTIONEN] KOMMANDO [PAKET1] [PAKET2]

update
upgrade
install PAKET(E)
remove PAKET(E)
autoremove [PAKET(E)]
purge PAKET(E)
source PAKET(E)
build-dep PAKET(E)
dist-upgrade
dselect-upgrade
clean
autoclean
check    	"Uberpr"ufung auf Abh"angigkeitsfehler
markauto PAKET(E) 	PAKET(E) als "automatisch installiert" markieren
unmarkauto PAKET(E) 	PAKET(E) als "manuell installiert" markieren
changelog PAKET(E)
download PAKET(E) 	PAKET(E) herunterladen

Optionen

--fix-broken
--fix-missing, --ignore-missing
 --install-suggests
 ...

dpkg
-i 	--install
	--configure
-r 	--remove
-l 	--list
-P 	--purge
-R 	--recursive
-L 	--listfiles
-S 	--search

dpkg-query
-l 	--list
-S 	--search
-L 	--listfiles

Paketstatus
u f"ur unbekannt
i f"ur installieren
h f"ur halten
r f"ur entfernen (Konfigurationsdateien behalten)
p f"ur vollst"andig (inkl. Konfigurationsdateien) entfernen

dpkg-deb

dpkg-deb stellt grundlegende M"oglichkeiten zum Packen und Entpacken, sowie die Abfrage von Metainformationen
-I 	--info
-b 	--build
-c 	--contents
-x 	--extract

dpkg-repack

Schl"usselverwaltung: Pakete in Paketquellen werden mit einem Schl"ussel kryptografisch signiert

apt/apt-key
/etc/apt/trusted.gpg
/etc/apt/trusted.gpg.d/
/etc/apt/keyrings/schluessel.gpg

gpg

sudo wget -nc -O /etc/apt/keyrings/example-archive-keyring.gpg https://example.org/public.key
curl https://example.org/public-key.asc | sudo -H gpg --dearmor -o /etc/apt/keyrings/example-archive-keyring.gpg

Schl"ussel hinzuf"ugen
ASCII-verpackte Schl"ussel (base64-kodiert)
sie dekodieren (dearmor)
OpenPGP-Bin"ardatei
signed-by

Anhand der Schl"ussel-ID kann ebenfalls ein Schl"ussel hinzugef"ugt werden
sudo -H gpg -k && sudo -H gpg --no-default-keyring --keyring /usr/share/keyrings/schl"ussel.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys <Schl"ussel-ID>

sources.list anpassen

deb [signed-by=/etc/apt/keyrings/schluessel.gpg] http://example.org/linux/deb/ stable main

/etc/apt/sources.list
/etc/apt/sources.list.d/datei.list



GNU Privacy Guard (GnuPG)
Schl"usselpaar
asymmetrischen Verschl"usselung

symmetrischen Verfahren: Viele Verschl"usselungsformen nutzen sowohl f"ur die Verschl"usselung als auch f"ur die Entschl"usselung den gleichen Schl"ussel

assymetrisch: Man gibt den Absperrschl"ussel an seine Kommunikationspartner  weiter

privaten Schl"ussel.
"offentlichen Schl"ussel

Symmetrisch
Assymmetrisch
Hybride Verfahren

GnuPG verwendet ein hybrides Verfahren zur Verschl"usselung.
asymmetrische Verschl"usselung extrem rechenintensiv ist
weigentliche Nachricht tats"achlich symmetrisch verschl"usselt.
Hierf"ur wird intern ein "Einweg-Schl"ussel" erzeugt.

Mit diesem Schl"ussel wird zun"achst die Nachricht verschl"usselt, was nun wesentlich schneller geht.
Es wird nur der relativ kurze, symmetrische Schl"ussel mit dem asymmetrischen Schl"ussel ("offentlicher Schl"ussel) gesichert.
Der jetzt gesicherte symmetrische Schl"ussel wird sodann zusammen mit der gesicherten Nachricht versandt.
Der Empf"anger nutzt seinen privaten Schl"ussel, um Zugang zum geheimen, symmetrischen Schl"ussel zu erlangen, und kann damit schlie"slich die Nachricht wiederherstellen

sichere und geheime Kan"ale
Man-in-the-middle-Angriff

Nachdem A den "offentlichen Schl"ussel von B - wie auch immer - bekommen hat, muss sich A die Authentizit"at des Schl"ussels best"atigen lassen

Jeder Schl"ussel hat eine Art Fingerabdruck, eine unverwechselbare Kennung.
sicherer Kanal
Passworts"atze

gnupg

Der Schl"usselbund
 ~/.gnupg/.

GnuPG speichert alle Schl"ussel, die man mit der Zeit sammelt, in einem "Schl"usselbund" im Verzeichnis ~/.gnupg/.

Schl"ussel auflisten
gpg --list-secret-keys
gpg -K

gpg --list-keys
gpg -k

Key-ID
sec  1024D/ABCD1234 2005-06-18 Max Mustermann <max.m _at_ example.com>

Fingerprint
Ein Fingerprint (dt.: Fingerabdruck) ist ein relativ kurzer Hash-Wert, mit dem man Schl"ussel verifizieren kann
. Dieser identifiziert einen Schl"ussel, so wie der menschliche Fingerabdruck einen Menschen (praktisch) eindeutig identifizier

gpg --fingerprint <ID oder Name des Schl"ussels>

Schl"usselpaar erzeugen
gpg --full-gen-key

Bitte w"ahlen Sie, welche Art von Schl"ussel Sie m"ochten:
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur unterschreiben/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
Ihre Auswahl?

ECC Schl"ussel¶
gpg --expert --full-gen-key

Schl"ussel importieren¶
Erh"alt man den "offentlichen Schl"ussel eines Kommunikationspartners oder will man ein Schl"usselpaar (also einen privaten und einen "offentlichen Schl"ussel) importieren, so muss man ihn zur weiteren Verwendung zun"achst in den Schl"usselbund importieren.

gpg --with-fingerprint /tmp/dateiname.asc
gpg --import /tmp/dateiname.asc


GnuPG

Schl"ussel importieren

Erh"alt man den "offentlichen Schl"ussel eines Kommunikationspartners oder will man ein Schl"usselpaar (also einen privaten und einen "offentlichen Schl"ussel) importieren, so muss man ihn zur weiteren Verwendung zun"achst in den Schl"usselbund importieren.

Man sollte aber auf keinen Fall Schl"ussel ungepr"uft verwenden! Entweder man nimmt pers"onlichen Kontakt zum Kommunikationspartner auf und gleicht den "fingerprint" ab, oder man nutzt das GnuPG/Web of Trust.

gpg --with-fingerprint /tmp/dateiname.asc

gpg --import /tmp/dateiname.asc



Schl"ussel exportieren

Ebenso kann man einen Schl"ussel exportieren. Das ist z.B. notwendig, wenn man seinen "offentlichen Schl"ussel auf seiner Webseite zum freien Herunterladen anbieten will,

gpg -a --output gpg-key --export <Schl"ussel-ID oder Name>
gpg -a --export <Schl"ussel-ID oder Name> | tee gpg-key

Verschl"usseln

gpg --encrypt -a --recipient <Name oder Key_Id> test.txt

Entschl"usseln

gpg --decrypt --output entschluesselt.txt test.txt.asc

Signieren

gpg --detach-sig -a test.txt

Nachdem man seine Passphrase erfolgreich eingegeben hat, erh"alt man eine Datei test.txt.asc. Diese enth"alt eine digitale Signatur der Originaldatei mit der sich die Authentizit"at beweisen l"asst. Hier ein Beispiel:

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFDTqEJxHY64NcyylkRAvZ2AJoDxlQ4VuqpIDfcTFnHEye4PGfNIACdEcRw
QVoj5npyj4VyaEzLzx4vdSs=
=ySv1
-----END PGP SIGNATURE---

gpg --verify test.txt.asc

gpg: Signature made Mon 19 Jun 2006 17:06:05 CEST using DSA key ID <Key_Id>
gpg: Good signature from "Person, von der die Signatur stammt"

adele@gnupp.des