# Support Learning

# DNS + Nameserver



# DNS (Domain Name System)

**Was ist ein DNS?**

DNS oder auch "Domain Name System" ist wie das Telefonbuch des Internets. Jedes Gerät, dass mit dem Internet verbunden ist, hat eine eindeutige IP-Adresse. (z. B. 10.12.15.257)

Web-Browser benutzen die IP-Adressen zur Interaktion. Damit man die IP-Adressen nicht jedes mal eingeben muss, um auf eine Website zu gelangen, übersetzt DNS die Domain-Namen um, damit die Ressourcen im Browser geladen werden können.

**Wie funktioniert DNS?**

Um eine DNS aufzulösen, benötigt man einen Hostnamen (z. B. alexandergreub.ch) damit der Computer die Domain in eine verständliche IP-Adresse umwandeln kann.

Jedes Gerät, dass sich mit dem Internet verbindet, erhält eine IP-Adresse, damit das Gerät gefunden werden kann, wie z. B. eine Postanschrift bei einem Haus.

Es gibt 2 Verschieden Arten von IP-Adressen:

- IPv4 Adressen: Diese Adressen sind die zurzeit gängigsten und bekanntesten IP-Adressen. Sie teilen sich in 4 Dezimalzahlen und haben eine Range von 1 - 255. Leider kommen IPv4 Adressen immer mehr an eine Grenze, da es nur eine begrenzte Anzahl gibt. Bei IPv4 Adressen gibt es nur 4 Milliarden mögliche Kombinationen, deswegen wird immer mehr auf IPv6 umgestellt.
- IPv6 Adressen: Diese Adressen werden in Zukunft immer mehr vorkommen, da sie das Hexadezimal-System verwenden. Das heisst sie bestehen aus Zahlen und Buchstaben. IPv6 werden aber nicht so gern verwendet, da sie sehr lang und kompliziert werden können. (z. B. **2001:0db8:85a3:08d3:1319:8a2e:0370:7344**)

[![04_adresse_kuerzen_w640_h400.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/Inh75C8ZzpgOJhpZ-04-adresse-kuerzen-w640-h400.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/Inh75C8ZzpgOJhpZ-04-adresse-kuerzen-w640-h400.png)[![IP_Adresse Aufbau-01.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/bX2T4pkuuEEVADXe-ip-adresse-aufbau-01.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/bX2T4pkuuEEVADXe-ip-adresse-aufbau-01.png)

Hilfreiche Ressourcen:

[https://www.cloudflare.com/de-de/learning/dns/what-is-dns/](https://www.cloudflare.com/de-de/learning/dns/what-is-dns/ "Was ist DNS? (Cloudflare)")

# Die 3 Server zum Laden einer Webseite

Damit eine Webseite geladen werden kann, braucht es noch 3 Schritte.

- **Der rekursive DNS Resolver** - Der DNS Resolver ist ein Server, der die Anfragen der Clients, die z. B. eine Domain im Browser eintippen empfängt und sendet die Anfrage weiter an die nächsten zuständigen Sever. Falls eine Webseite schon einmal aufgerufen wurde, wird sie im sogenannten Cache gespeichert, damit die Domain z. B. erscheint, wenn man nur ein paar Buchstaben eintippt.  
    Diese Server sind auch beliebte Angriffsziele für Hacker, da der Traffic sehr hoch sein kann.
- **Der DNS Nameserver** - Bei Webland gibt es 4 Nameserver. NS1 und NS2 sind die Hauptnameserver und NS3 sowie NS4 sind Backup Server. Bei den Nameservern sind die Domaininformationen einer Webseite hinterlegt.
- **Der DNS Root Nameserver** - Es gib insgesamt 8 Root-Server. Die Root-Zone beinhaltet die Informationen aller Top-Level-Domains (TLD). Jeder Rechner der mit dem Internet verbunden ist, ist bei einem Root-Server zugewiesen.
- **Der TLD Nameserver** - Diese Server sind Länderspezifisch und werden vom Root-Server angefragt und werden

<div drawio-diagram="37"><img src="https://book.holzfeind.ch/uploads/images/drawio/2023-08/ORVH4wktEFLN7rjT-drawing-4-1691077162.png" alt=""/></div>

####   


#### Ablauf einer DNS-Anfrage

Zur Repetition beschreibe ich kurz die einzelnen Schritte einer DNS-Abfrage für www.alexandergreub.ch, um darauf aufbauen zu können:

<div class="uncode_text_column" id="bkmrk-der-client-durchsuch">- Der Client durchsucht zuerst seine Host-Datei und anschliessend seinen DNS-Cache, ob dort alexandergreub.ch mit der dazugehörigen IP-Adresse hinterlegt ist.
- Falls nicht, leitet der Client die DNS-Anfrage an seinen DNS-Resolver weiter. Wenn der DNS-Resolver die IP-Adresse zu alexandergreub.ch nicht in seinem Cache hat, kontaktiert er als nächstes einen Root-Nameserver. Der Root-Nameserver sendet die IP-Adressen der «.ch»-Zone-Nameserver an den DNS-Resolver zurück.
- Nun sendet der DNS-Resolver die DNS-Anfrage an einen der «.ch»-Zone-Nameserver (z.B. nic.ch). Dieser wiederum sendet die IP-Adresse der autoritativen Nameserver für tec-bite.ch zurück.
- Als nächster Schritt sendet der DNS-Resolver die DNS-Anfrage an den autoritativen Nameserver von alexandergreub.ch. Dieser antwortet anschliessend mit der IP-Adresse welche für alexandergreub.ch hinterlegt ist.
- Der DNS-Resolver sendet die erhaltene Antwort an den Client.

</div>

# DNS-Zone

##### Erklärung der DNS-Zoneneinträge

<table border="1" id="bkmrk-a-%C2%A0" style="border-collapse: collapse; width: 100%; height: 336.766px; border-width: 1px;"><colgroup><col style="width: 17.0581%;"></col><col style="width: 82.9419%;"></col></colgroup><tbody><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`A `  
</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">IPv4 Adresse</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`AAAA`  
</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">IPv6 Adresse</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`MX`  
</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">Mail-Server</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`SRV`</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">Gibt einen Host und einen Port für bestimmte Dienste an (z.B. Instant Messaging, Kalender, VoIP)</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`NS`</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">Autoritative Nameserver</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">`TXT`</td><td class="align-center" style="height: 48.1094px; border-width: 1px; padding: 15px;">Texteintrag (z. B. zur Unterbindung von Spam)</td></tr><tr style="height: 48.1094px;"><td class="align-center" style="border-width: 1px; padding: 15px; height: 48.1094px;">`CNAME`  
</td><td class="align-center" style="border-width: 1px; padding: 15px; height: 48.1094px;">Kanonischer Name (z. B. Verweis von einer Domain, wenn ein Alias besteht)</td></tr></tbody></table>

##### Zonen-File im System Configurator

[![2023-07-19 14_39_10-WEBLAND.CH - System Configurator.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/OLgiFgfonk7NEhej-2023-07-19-14-39-10-webland-ch-system-configurator.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/OLgiFgfonk7NEhej-2023-07-19-14-39-10-webland-ch-system-configurator.png)

**Zonen-Editor im WLCM**

[![2023-07-19 14_41_31-WLCM (Webland Customer Management).png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/uMobaglFECPW6yx3-2023-07-19-14-41-31-wlcm-webland-customer-management.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/uMobaglFECPW6yx3-2023-07-19-14-41-31-wlcm-webland-customer-management.png)

[![2023-07-19 14_41_04-Window.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/a3x0oCSH8FX6LVhT-2023-07-19-14-41-04-window.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/a3x0oCSH8FX6LVhT-2023-07-19-14-41-04-window.png)

# DNSSEC

DNSSEC steht für "Domain Name System Security Extension" die das DNS mit verschiedenen Sicherheitsmöglichkeiten erweitert.

Bei der DNS Abfrage wird der ein gesamter Durchlauf durchgeführt, d.h. Der Länder-Nameserver, der Root Server und der Autoritative Nameserver wird angesprochen. Bei allen Server müssen die DNSSEC Daten vorhanden sein, damit die Abfrage erfolgreich ist.

<p class="callout info">Auflistung der DNSSEC Abfrage: [DNSSEC](https://bind9.readthedocs.io/en/v9.18.14/dnssec-guide.html)</p>

##### Einträge

<table border="1" id="bkmrk-rrsig-enth%C3%A4lt-eine-k" style="border-collapse: collapse; width: 100%; height: 150.234px;"><colgroup><col style="width: 17.1829%;"></col><col style="width: 82.8171%;"></col></colgroup><tbody><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;"><span style="background-color: rgb(255, 255, 255);">`<span style="font-family: 'Lucida Console', 'DejaVu Sans Mono', 'Ubuntu Mono', Monaco, monospace; font-size: 11.76px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; text-align: start; white-space-collapse: preserve; background-color: rgb(255, 255, 255);">RRSIG</span>`</span>  
</td><td class="align-center" style="height: 30.1094px;">Enthält eine kryptographische Signatur</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`DNSKEY`</td><td class="align-center" style="height: 30.1094px;">Enthält einen Public Key</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`DS`  
</td><td class="align-center" style="height: 30.1094px;">Enthält den Hash eines DNSKEY Eintrags</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`NSEC und NSEC3`  
</td><td class="align-center" style="height: 30.1094px;">Für die explizite Anerkennung eines Nicht-Existenten DNS Eintrags</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">`CDNSKEY und CDS`  
</td><td class="align-center" style="height: 29.7969px;">Für die untergeordnete Zone zur Anfrage von Aktualisierungen eines DNS Eintrags in der Übergeordneten Zone</td></tr></tbody></table>

[![RRset.png](https://book.holzfeind.ch/uploads/images/gallery/2023-08/scaled-1680-/DwvTAKRrc9t4suyf-rrset.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-08/DwvTAKRrc9t4suyf-rrset.png)

*Definition eines RRset*

Beim RRset werden Einträge mit dem gleichen Namen und Typ gebündelt.

##### ZSK (Zone Signing Key)

[![RRSIG.png](https://book.holzfeind.ch/uploads/images/gallery/2023-08/scaled-1680-/euz8dZIJaaWeFvd5-rrsig.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-08/euz8dZIJaaWeFvd5-rrsig.png)

*Definition des RRSIG Eintrags*

Im RRSIG Eintrag befinden sich die Daten des Private Key und werden beim Zonenbetreiber im Nameserver hinterlegt.

[![Schema ZSK.png](https://book.holzfeind.ch/uploads/images/gallery/2023-08/scaled-1680-/RXx6iUeea7RZ22yz-schema-zsk.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-08/RXx6iUeea7RZ22yz-schema-zsk.png)

*Schema des ZSK*

##### KSK (Key Signing Key)

Der KSK siginert zusätzlich den öffentlichen ZSK, der im DNSKEY Eintrag gespeichert ist und erstellt einen neuen RRSIG für den DNSKEY.

[![Schema KSK.png](https://book.holzfeind.ch/uploads/images/gallery/2023-08/scaled-1680-/r7XAolR1esFqK76v-schema-ksk.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-08/r7XAolR1esFqK76v-schema-ksk.png)

*Schema des KSK*

##### Ablauf einer DNSSEC Abfrage

[![DNSSEC Ablauf.png](https://book.holzfeind.ch/uploads/images/gallery/2023-08/scaled-1680-/0ZdwWCfmh1FHtnf5-dnssec-ablauf.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-08/0ZdwWCfmh1FHtnf5-dnssec-ablauf.png)

1. Wenn ein Client die [www.agreub.ch](https://www.agreub.ch) eintippt, wird die Anfrage zum autoritativen Nameserver geschickt. Wenn der Nameserver nun DNSSEC aktiviert hat, kann die Abfrage weiter erfolgen, ansonsten wird die Abfrage nicht weitergeführt.
2. Der Nameserver hat DNSSEC aktiviert und sendet als Antwort den A-Record und eine verschlüsselte Signatur zurück.
3. Der Resolver benötigt diese kryptographischen Signaturen und holt beim Nameserver den Public und den Private Key.
4. Der Nameserver sendet die Keys und die Signaturen an den Resolver, damit die Verifizierung erfolgreich durchgeführt werden kann.
5. Der Resolver fragt den TLD Nameserver an, ob dort die benötigten Daten hinterlegt sind.
6. Die zu verifizierenden Informationen werden vom TLD Nameserver an den Resolver weitergeleitet.  
    Wenn die Informationen übereinstimmen, ist die Domain validiert.
7. Eigentlich wäre der Prozess hier beendet, jedoch ist hier ein Angriff immer noch möglich und deshalb wird der Root-Nameserver von .ch angefragt.  
    Der Resolver fragt den TLD Nameserver nach den kryptographischen Keys, um die Informationen zu verifizieren.
8. Der TLD Nameserver erhält die gewünschten Informationen (Keys und Signaturen).
9. Der Resolver fragt den Root-Server für die zu verifizierenden Informationen, die beim TLD Nameserver hinterlegt sind.
10. Der Root-Server sendet die zu verifizierenden Informationen zurück und der Resolver verifiziert die Informationen des TLD Nameservers.
11. Der Resolver fragt den Root-Server nach den Kryptographischen Keys um die Informationen vom Resolver zu verifizieren.
12. Der Root-Server sendet die Keys, damit die Informationen vom TLD Nameserver verifiziert werden können.

##### Die Kette des Vertrauens

Wie kann man sicherstellen, das der Root-Nameserver sicher ist? Jeder Verifizierende Resolver hat nur einer Entität zu vertrauen und zwar dem Root-Server.

Der Resolver hat bereits die benötigten Schlüssel des Root-Server im Verzeichnis. Das heisst, nach Punkt 12 wird verglichen ob die Informationen des Resolvers und des Root-Server übereinstimmen. Man kann somit der TLD .ch und der Domain vertrauen.

# Linux



# Linux Befehle

##### Rechtesystem unter Linux

<table border="1" id="bkmrk-typ-user-%28u%29-group-%28" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col></colgroup><tbody><tr><td>**Typ**</td><td>**User (u)**</td><td>**Group (g)**</td><td>**Other (o)**</td></tr><tr><td>Die Vergaben gelten nur als Beispiel. Man kann z. B. für alle Typen die gleichen Rechte vergeben!</td><td>read = 4 write = 2

</td><td>read = 4 write = 2

</td><td>ex = 1</td></tr></tbody></table>

##### Standardrechte (Nummerisch)

<table border="1" id="bkmrk-644-wird-verwendet-b" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 10.0142%;"></col><col style="width: 89.9858%;"></col></colgroup><tbody><tr><td class="align-center">644</td><td class="align-center">Wird verwendet bei Dateien</td></tr><tr><td class="align-center">755</td><td class="align-center">Wird verwendet bei Verzeichnissen</td></tr><tr><td class="align-center">007</td><td class="align-center">Nicht zu empfehlen!!!</td></tr><tr><td class="align-center">777</td><td class="align-center">Wird für Debugging verwendet</td></tr></tbody></table>

##### Benutzerrechte erstellen

<table border="1" id="bkmrk-befehl-erkl%C3%A4rung-chm" style="border-collapse: collapse; width: 100%; height: 266.4px;"><colgroup><col style="width: 9.89165%;"></col><col style="width: 90.1083%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">**Befehl**</td><td class="align-center" style="height: 29.6px;">**Bedeutung**</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`chmod`</td><td class="align-center" style="height: 29.6px;">Dateirechte verändern</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`chown`</td><td class="align-center" style="height: 29.6px;">Besitzer wechseln</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`chgroup`</td><td class="align-center" style="height: 29.6px;">Gruppe wechseln</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`w`</td><td class="align-center" style="height: 29.6px;">Schreibberechtigung</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`r`</td><td class="align-center" style="height: 29.6px;">Leseberechtigung</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`x`</td><td class="align-center" style="height: 29.6px;">Ausführungsberechtigung</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`+`</td><td class="align-center" style="height: 29.6px;">Berechtigung erteilen</td></tr><tr style="height: 29.6px;"><td class="align-center" style="height: 29.6px;">`-`</td><td class="align-center" style="height: 29.6px;">Berechtigung entziehen</td></tr></tbody></table>

##### Weitere Linux Befehle

<table border="1" id="bkmrk-befehl-bedeutung-ls-" style="border-collapse: collapse; width: 100%; height: 449.766px;"><colgroup><col style="width: 8.40574%;"></col><col style="width: 91.5943%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Befehl**</td><td class="align-center" style="height: 29.7969px;">**Bedeutung**</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`ls`  
</td><td class="align-center" style="height: 30.1094px;">Verzeichnis anzeigen

</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`cd`  
</td><td class="align-center" style="height: 30.1094px;">Verzeichnis öffnen </td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`mv`</td><td class="align-center" style="height: 30.1094px;">Datei oder Verzeichnis verschieben oder umbenennen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`cp`  
</td><td class="align-center" style="height: 30.1094px;">Datei oder Verzeichnis in ein anderes Verzeichnis kopieren</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`rm`  
</td><td class="align-center" style="height: 30.1094px;">Datei löschen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`rmdir`  
</td><td class="align-center" style="height: 30.1094px;">Verzeichnis löschen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`mkdir`</td><td class="align-center" style="height: 30.1094px;">Verzeichnis erstellen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`grep`  
</td><td class="align-center" style="height: 30.1094px;">Suche innerhalb einer Datei</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`find`  
</td><td class="align-center" style="height: 30.1094px;">Suche innerhalb eines Verzeichnis</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">`echo`  
</td><td class="align-center" style="height: 29.7969px;">Gibt einen nachfolgenden Text aus</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">`wc`  
</td><td class="align-center" style="height: 29.7969px;">Wortzähler</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;"> </td></tr></tbody></table>

##### Spezielle Zeichen

<table border="1" id="bkmrk-%C2%A0" style="border-collapse: collapse; width: 100%; height: 367.953px;"><colgroup><col style="width: 8.77566%;"></col><col style="width: 91.2243%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Befehl**</td><td class="align-center" style="height: 29.7969px;">**Bedeutung**</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`>`</td><td class="align-center" style="height: 30.1094px;">Dieses Zeichen nennt man Pipe und überschreibt eine Ausgabe von z. B. `ls `in eine Datei</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`>>`</td><td class="align-center" style="height: 30.1094px;">Hier wird die Ausgabe in einer Datei angehängt</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`<<ENDE`</td><td class="align-center" style="height: 30.1094px;">In Kombination mit `grep` kann man hier Verschiedene Begriffe auflisten und spezifisch gesucht werden</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`*`  
</td><td class="align-center" style="height: 30.1094px;">Platzhalter für 0.1 bis unendlich Zeichen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`?`</td><td class="align-center" style="height: 30.1094px;">Platzhalter für genau 1 Zeichen</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`!`  
</td><td class="align-center" style="height: 30.1094px;">Ein Ausrufezeichen in Klammern bedeutet, dass alle Zeichen ausser das definierte zulässig sind. (z. B. `[!Aa]`)</td></tr><tr style="height: 34.2188px;"><td class="align-center" style="height: 34.2188px;">`[]`</td><td class="align-center" style="height: 34.2188px;">Innerhalbe der Klammern werden Buchstaben, Zeichen und Zahlen definiert, um Bereiche zu definieren. (z. B. `[a-z]`)</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`|`</td><td class="align-center" style="height: 30.1094px;">  
</td></tr><tr style="height: 57.7812px;"><td class="align-center" style="height: 57.7812px;">`;`</td><td class="align-center" style="height: 57.7812px;">Das Semikolon wird verwendet, um mehrere Befehle hintereinander zu verketten.

(Nachteil: Auch wenn der erste Befehl fehlschlägt, wird der nächste trotzdem ausgeführt)

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">`&&`  
</td><td style="height: 35.3906px;">Logisches Und: Wenn z. B. der erste Befehl der Verkettung fehlschlägt, wird der nächste nicht Automatisch ausgeführt

</td></tr><tr><td>  
</td><td></td></tr></tbody></table>

# Linux

<p class="callout warning">*Im Remote Desktop Manager hat jeder Mitarbeitende eine Root-Berechtigung auf den Linux-Servern.* </p>

# Linux Befehlaufbau

##### Befehl: *grep \[Optionen\] Pfad \[Datei\]*

<table border="1" id="bkmrk-%C2%A0" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 13.2717%;"></col><col style="width: 86.8519%;"></col></colgroup><tbody><tr><td class="align-center">`grep -v `</td><td class="align-center">Alle Zeilen heraussuchen, die das angegebene Textmuster nicht enthalten.</td></tr><tr><td class="align-center">`grep -w`</td><td class="align-center">Nur Zeilen heraussuchen, in denen das Suchmuster als ganzes Wort enthalten ist.</td></tr><tr><td class="align-center">`grep -n`</td><td class="align-center">Die Zeilennummern, in denen der Text enthalten ist, ausgeben.</td></tr><tr><td class="align-center">`grep -H`</td><td class="align-center">Den Dateinamen aller Dateien ausgeben, die den angegebenen Text enthalten.</td></tr><tr><td class="align-center">  
</td><td class="align-center">  
</td></tr><tr><td class="align-center">  
</td><td class="align-center">  
</td></tr><tr><td class="align-center">  
</td><td class="align-center">  
</td></tr><tr><td class="align-center">  
</td><td class="align-center"> </td></tr></tbody></table>

# Mail-Dienste



# Mail-Protokolle

<table border="1" id="bkmrk-smtp-%28simple-message" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>SMTP (Simple Message Transfer Protocol)</td><td>Postausgangsserver (Das Simple Mail Transfer Protocol ist ein Protokoll der Internetprotokollfamilie, das zum Austausch von E-Mails in Computernetzen dient. Es wird dabei vorrangig zum Einspeisen und zum Weiterleiten von E-Mails verwendet.)</td></tr><tr><td>IMAP (Internet Message Access Protocol)</td><td>Posteingangsserver (Mit IMAP-Konten werden Nachrichten auf einem Remoteserver gespeichert. Benutzer können sich über verschiedenen E-Mail-Clients auf Computern oder mobilen Geräten anmelden und die gleiche Nachricht lesen.)</td></tr><tr><td>POP3 (Post Office Protocol)</td><td>Posteingangsserver (Mit POP3 (Post Office Protocol) holt ein E-Mail-Programm die E-Mails vollständig vom Server. Die Dateien sind danach nicht mehr am Server, sondern nur noch in Ihrem E-Mail-Programm gespeichert.)</td></tr></tbody></table>

<div drawio-diagram="30"><img src="https://book.holzfeind.ch/uploads/images/drawio/2023-07/yhaF3jQzserZlLUI-drawing-4-1689939415.png" alt=""/></div>

 Unterschied zwischen IMAP und POP3

# Abwehr vor Spam

<table border="1" id="bkmrk-spf-%28sender-policy-f" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>SPF (Sender Policy Framework)

</td><td>Der SPF Eintrag soll das Versenden von gefälschten und nicht vertrauenswürdigen Absendern verhindern. Dieses Verfahren dient somit der Spam-Abwehr. Der SPF wird in der DNS-Zone festgelegt.</td></tr><tr><td>DKIM (Domain Key Identified Mail)</td><td>DKIM ist ein Protokoll, das eine Nachricht verifiziert, um vor unerwünschtem Spam und Pishing-Mails zu schützen.

Es gibt einen Public und einen Private Key. Der Private Key befindet sich beim Benutzer und sendet Nachrichten Verschlüsselt.

Der Public Key befindet sich in der DNS-Zone.

</td></tr><tr><td>DMARC (Domain-based Message Authentication, Reporting and Conformance)</td><td>DMARC baut auf dem selben System auf wie SPF und DKIM.

Der unterschied besteht darin, das dem DMARC Funktionen zugewiesen werden können, wie bei Situation gehandelt werden soll. z. .B können so Berichte wie LOGS an den Empfänger geschickt werden.

</td></tr></tbody></table>

<div drawio-diagram="32"><img src="https://book.holzfeind.ch/uploads/images/drawio/2023-07/azG2UfFao7jJrNc0-drawing-4-1689940105.png" alt=""/></div>

*<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">SPF Verfahren </span>*

<div drawio-diagram="33"><img src="https://book.holzfeind.ch/uploads/images/drawio/2023-07/kqaJkr54VHLTJmVB-drawing-4-1689941407.png" alt=""/></div>

*DKIM Verfahren*

*DMARC Verfahren*

##### Greylisting

Beim Greylisting handelt es sich um ein Verfahren zur Abwehr vor Spam und weist E-Mails zunächst ab. Nach der Abweisung wird eine Sperre von meistens 90 Sekunden verhängt bevor man eine neue E-Mail schicken kann.

##### Blacklisting

Beim Blacklisting werden bestimmte Absender und Ausdrücke permanent gesperrt. Es gibt viele Anbieter, die Listen zur Verfügung stellen, in denen Bekannte Absender und Ausdrücke schon erfasst sind.

Man kann aber auch eine eigene Blacklist über verschiedene Mailprogramme erstellen.

##### Aufbau des DKIM Eintrags

<table border="1" id="bkmrk-name-typ-inhalt-%5Bsel" style="border-collapse: collapse; width: 100%; height: 119.5px;"><colgroup><col style="width: 30.1607%;"></col><col style="width: 7.66653%;"></col><col style="width: 62.1728%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Name**</td><td class="align-center" style="height: 29.7969px;">**Typ**</td><td class="align-center" style="height: 29.7969px;">**Inhalt**</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`[selector]._domainkey.[domain]`</td><td class="align-center" style="height: 30.1094px;">TXT</td><td class="align-center" style="height: 30.1094px;">`v=DKIM1; p=76E629F05F709EF665853333EEC3F5ADE69A2362BECE40`  
</td></tr></tbody></table>

*Der DKIM Eintrag in der <abbr title="Domain Name System">DNS</abbr> Zone definiert den Public Key.*

##### DKIM Header

Beispiel für einen DKIM-Header:

<span style="background-color: rgb(255, 255, 255);">`v=1; a=rsa-sha256; d=example.com; s=big-email; h=from:to:subject; bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=; b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qyHi2hUFpYS5pkeiNVoQk/Wk4w ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=`</span>

<table border="1" id="bkmrk-eintrag-beschreibung" style="border-collapse: collapse; width: 100%; height: 269.735px;"><colgroup><col style="width: 58.8442%;"></col><col style="width: 41.1558%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Eintrag**</td><td class="align-center" style="height: 29.7969px;">**Beschreibung**</td></tr><tr style="height: 30.1094px;"><td class="col0 align-center" style="height: 30.1094px;">`v=1`</td><td class="align-center" style="height: 30.1094px;">Version des DKIM</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`d=example.com`  
</td><td class="align-center" style="height: 30.1094px;">Domainname des Absenders</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`s=big-email`  
</td><td class="align-center" style="height: 30.1094px;">Selector des Absenders</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`h=from:to:subject`  
</td><td class="align-center" style="height: 30.1094px;">Auflistung der Header-Felder die zur Erstellung der digitalen Signatur benötigt werden.</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">`bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=;`</td><td class="align-center" style="height: 30.1094px;">Hash des E-Mail Text. Dies ist eine Mathematische Funktion, die für die Berechnung der digitalen Signatur für den Empfangenden Mail-Server</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">`b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qyHi2hUFpYS5pkeiNVoQk/Wk4w ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=`  
</td><td class="align-center" style="height: 29.7969px;">Digitale Signatur, die aus h und bh erzeugt und mit dem privaten Schlüssel signiert wurde.</td></tr></tbody></table>

##### Nützliche Links:

<p class="callout info">[SPF](https://de.wikipedia.org/wiki/Sender_Policy_Framework)</p>

<p class="callout info">[DKIM](https://de.wikipedia.org/wiki/DomainKeys_Identified_Mail)</p>

<p class="callout info">[DMARC](https://de.wikipedia.org/wiki/DMARC "DMARC")</p>

# SSL Zertifikate



# Typen

 **Single - Domains (kostenpflichtig)**

<table border="1" id="bkmrk-dv-%C2%A0" style="border-collapse: collapse; width: 100%; height: 165.781px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Single - Domain DV</td><td style="height: 46.5938px;">Domain-Validation: Hier wird nur die Identität über die Domain Validiert. Geeignet für Private </td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Single - Domain OV</td><td style="height: 29.7969px;">Organisations-Validation: Hier wird zusätzlich der Antragsteller und die Organisation geprüft. Geeignet für Organisationen und KMU.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Single - Domain EV</td><td style="height: 29.7969px;">Extended-Validation: Dies ist noch eine Erweiterung der OV. Hier wird der Antragssteller und die Organisation sehr genau geprüft. Sieht man oft bei Banken oder Regierungen.</td></tr></tbody></table>

Für Unternehmen die zusätzlich verschiedene Sub-Domains besitzen, können auch sogenannte "Wildcards" kaufen, bei denen auch alle Sub-Domains zertifiziert werden.

[![2023-07-19 12_47_09-Window.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/gPz6TAoSckW4cHEG-2023-07-19-12-47-09-window.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/gPz6TAoSckW4cHEG-2023-07-19-12-47-09-window.png)

*Beispiel kostenpflichtiges Zertifikat*

**Kostenlose SSL-Zertifikate**

Bei kostenlosen Zertifikaten (z. B. Let`s Encrypt) wird nur die Domain validiert.

[![2023-07-19 12_46_23-Window.png](https://book.holzfeind.ch/uploads/images/gallery/2023-07/scaled-1680-/WIqq7hpypvPeSdUf-2023-07-19-12-46-23-window.png)](https://book.holzfeind.ch/uploads/images/gallery/2023-07/WIqq7hpypvPeSdUf-2023-07-19-12-46-23-window.png)

*Beispiel kostenloses Zertifikat*

# Netzwerk



# Ports

##### Die wichtigsten Ports

<table border="1" id="bkmrk-port-tcp-udp-beschre" style="border-collapse: collapse; width: 100%; height: 436.953px;"><colgroup><col style="width: 9.2707%;"></col><col style="width: 7.78739%;"></col><col style="width: 7.78739%;"></col><col style="width: 75.1545%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Port**</td><td class="align-center" style="height: 29.7969px;">**TCP**</td><td class="align-center" style="height: 29.7969px;">**UDP**</td><td class="align-center" style="height: 29.7969px;">**Beschreibung**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">20</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">FTP-Datenübertragung</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">21</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">FTP-Verbindungsaufbau und Steuerung</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">22</td><td class="align-center" style="height: 46.5938px;">+</td><td class="align-center" style="height: 46.5938px;">+</td><td class="align-center" style="height: 46.5938px;">Secure Shell (SSH) für die verschlüsselte Dateiübertragung und für getunnelte Portweiterleitung *(scp und sftp)*</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">25</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">SMTP (Simple Mail Transfer Protokoll) Übertragung</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">587</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;">SMTP E-Mail Message Submission (Webland Standard) (unverschlüsselt)</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">118</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">SQL (Structured Query Language) Dienste</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">443</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">HTTPS (Secure Hypertext Transfer Protokoll) SSL</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">443</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">Kommt auch in HTTP/3 vor</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">993</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">IMAPS über TLS/SSL</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; text-align: center;">143</span></td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; text-align: center;"> IMAP (Internet Message Access Protokoll) (unverschlüsselt)</span>  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">995</td><td class="align-center" style="height: 29.7969px;">+</td><td class="align-center" style="height: 29.7969px;">-</td><td class="align-center" style="height: 29.7969px;">POP3 über TLS/SSL</td></tr><tr style="height: 32.7969px;"><td class="align-center" style="height: 32.7969px;">110</td><td class="align-center" style="height: 32.7969px;">  
</td><td class="align-center" style="height: 32.7969px;">  
</td><td class="align-center" style="height: 32.7969px;">POP3 (unverschlüsselt)</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">465</td><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;">  
</td><td class="align-center" style="height: 29.7969px;">SMTP (Verschlüsselt)</td></tr></tbody></table>

<p class="callout info">Hier sind alle standardisierten Ports aufgelistet: [Standard Ports](https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports)</p>

# HTTP-Statuscodes

##### Die wichtigsten Statuscodes

<table border="1" id="bkmrk-code-nachricht-bedeu" style="border-collapse: collapse; width: 100%; height: 391.156px;"><colgroup><col style="width: 11.2485%;"></col><col style="width: 18.1672%;"></col><col style="width: 70.5843%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Code**</td><td class="align-center" style="height: 29.7969px;">**Nachricht**</td><td class="align-center" style="height: 29.7969px;">**Bedeutung**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">400</td><td class="align-center" style="height: 29.7969px;">Bad Request</td><td class="align-center" style="height: 29.7969px;">Die Anfrage war fehlerhaft</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">401</td><td class="align-center" style="height: 29.7969px;">Unauthorized</td><td class="align-center" style="height: 29.7969px;">Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">403</td><td class="align-center" style="height: 63.3906px;">Forbidden</td><td class="align-center" style="height: 63.3906px;">Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist oder ein als HTTPS konfigurierter URL nur mit HTTP aufgerufen wurde.</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">404</td><td class="align-center" style="height: 29.7969px;">Not Found</td><td class="align-center" style="height: 29.7969px;">Die Website wurde nicht gefunden.</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">500</td><td><span lang="en">Internal Server Error</span></td><td class="align-center" style="height: 29.7969px;">Dies ist ein „Sammel-Statuscode“ für unerwartete Serverfehler.</td></tr></tbody></table>

##### Statusbereich des Codes

<table border="1" id="bkmrk-bereich-bedeutung-1x" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 15.6174%;"></col><col style="width: 84.5062%;"></col></colgroup><tbody><tr><td class="align-center">**Bereich**</td><td class="align-center">**Bedeutung**</td></tr><tr><td class="align-center">1xx</td><td class="align-center">Informationen</td></tr><tr><td class="align-center">2xx</td><td class="align-center">Erfolgreiche Operationen</td></tr><tr><td class="align-center">3xx</td><td class="align-center">Umleitung</td></tr><tr><td class="align-center">4xx</td><td class="align-center">Client-Fehler</td></tr><tr><td class="align-center">5xx</td><td class="align-center">Server-Fehler</td></tr><tr><td class="align-center">9xx</td><td class="align-center">Proprietäre Fehler (Softwarespezifische Fehler)</td></tr></tbody></table>

<p class="callout info"><span style="color: rgb(1, 70, 108); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; background-color: rgb(211, 239, 255);">Alle HTTP Statuscodes: </span>[Statuscodes und Bereiche](https://de.wikipedia.org/wiki/HTTP-Statuscode)</p>

# Informationsspeicherung



# Bits und Bytes

##### ASCII und Unicode

# Datenbanken

#### Arten von Datenbanken

<table border="1" id="bkmrk-einzeltabelledatenba" style="border-collapse: collapse; width: 100%; height: 270.156px;"><colgroup><col style="width: 30.1607%;"></col><col style="width: 69.8393%;"></col></colgroup><tbody><tr style="height: 57.7812px;"><td class="align-center" style="height: 57.7812px;">Einzeltabelledatenbanken</td><td class="align-center" style="height: 57.7812px;">Dienen zur einfachen Verwaltung von Informationen eines bestimmten Typs

(z. B. Anschriften)

</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">Relationelle Datenbanken</td><td class="align-center" style="height: 46.5938px;">Man kann mehrere Einzeltabellen miteinander verknüpfen um die Daten konsistent zu halten</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">Objektorientierte Datenbanken</td><td class="align-center" style="height: 46.5938px;">Grundlage von Klassen und Objekten, die komplexe und Nicht Lineare Beziehungen zulassen</td></tr></tbody></table>

##### MySQL 









#### SQL (Structured Query Language)

# Apache Webserver



# Erstellen eines Virtual Hosts