Initial commit: IHK Ausbildung materials

This commit is contained in:
2026-03-13 11:46:08 +01:00
commit eb4a13ef7c
67 changed files with 11361 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# Lernfeld 9: Netzwerke und Dienste bereitstellen
## Übersicht
Dieses Lernfeld behandelt die Bereitstellung von Netzwerken und Netzwerkdiensten.
## Themen
| Nr. | Thema | Beschreibung |
|-----|-------|-------------|
| 9.1 | [[LF9-01-Netzwerkdienste|Netzwerkdienste]] | DHCP, DNS, HTTP |
| 9.2 | [[LF9-02-Server|Server]] | Betrieb, Virtualisierung |
| 9.3 | [[LF9-03-Virtualisierung|Virtualisierung]] | Container, Cloud |
| 9.4 | [[LF9-04-Monitoring|Monitoring]] | Überwachung, Alerts |
## Lernziele
- Netzwerkdienste konfigurieren
- Server betreiben
- Virtualisierung verstehen
- Systeme überwachen
---
## Querverweise
- [[LF8-04-ETL-Prozesse|Zurück: ETL-Prozesse]]
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
---
*Stand: 2024*

View File

@@ -0,0 +1,157 @@
# 9.1 Netzwerkdienste
## Wichtige Netzwerkdienste
### Übersicht
```
Netzwerkdienste
├── DHCP (IP-Adressen)
├── DNS (Namen auflösen)
├── HTTP/HTTPS (Web)
├── SMTP (E-Mail)
├── FTP/SFTP (Dateien)
├── SSH (Remote-Zugriff)
└── LDAP (Verzeichnis)
```
---
## DHCP (Dynamic Host Configuration Protocol)
### Funktion
```
DHCP - Ablauf
Client → DHCP Discover (Broadcast)
Server → DHCP Offer
Client → DHCP Request
Server → DHCP Acknowledge
```
### Konfiguration
```
DHCP-Server - Einstellungen
├── IP-Bereich (Pool)
├── Subnetzmaske
├── Gateway
├── DNS-Server
├── Lease Time
└── Reservierungen
```
### Beispiel
```yaml
# DHCP-Konfiguration (ISC DHCP)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}
```
---
## DNS (Domain Name System)
### Aufbau
```
DNS - Hierarchie
. (Root)
├── de
│ └── example.de
├── com
│ └── example.com
└── org
└── wikipedia.org
```
### DNS-Records
| Typ | Bedeutung | Beispiel |
|-----|----------|----------|
| A | IPv4-Adresse | example.com → 93.184.216.34 |
| AAAA | IPv6-Adresse | example.com → ... |
| CNAME | Alias | www → example.com |
| MX | Mail-Server | @ → mail.example.com |
| TXT | Text | v=spf1 include:_spf.google.com ~all |
### nslookup/dig
```bash
# DNS-Abfrage
nslookup example.com
dig example.com
# Bestimmter Record-Typ
dig MX example.com
```
---
## HTTP/HTTPS
### HTTP-Request
```
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
```
### HTTPS/TLS
```
HTTPS - Ablauf
1. Client → Server: Hallo
2. Server → Client: Zertifikat + Public Key
3. Client: Zertifikat prüfen
4. Client → Server: Pre-Master-Secret (verschlüsselt)
5. Beide: Session Key generieren
6. Verschlüsselte Kommunikation
```
---
## Weitere Dienste
### SSH (Secure Shell)
```bash
# Verbinden
ssh benutzer@server.example.com
# Datei kopieren
scp datei.txt benutzer@server:/pfad/
# Schlüssel generieren
ssh-keygen -t ed25519
```
### SMTP (E-Mail-Versand)
```
SMTP - Ablauf
1. EHLO client
2. MAIL FROM: absender@example.com
3. RCPT TO: empfaenger@example.com
4. DATA
5. Nachricht
6. QUIT
```
---
## Querverweise
- [[LF9-02-Server|Nächstes Thema: Server]]
---
*Stand: 2024*

View File

@@ -0,0 +1,179 @@
# 9.2 Server
## Server-Grundlagen
### Serverarten
| Typ | Aufgabe |
|-----|----------|
| Webserver | HTTP bereitstellen |
| Datenbankserver | Daten speichern |
| Fileserver | Dateien bereitstellen |
| Mailserver | E-Mail |
| Druckserver | Drucker verwalten |
| Authentifizierungsserver | Anmeldung (AD, LDAP) |
### Betriebssysteme
```
Server-Betriebssysteme
├── Windows Server
│ ├── 2019
│ └── 2022
├── Linux
│ ├── Ubuntu Server
│ ├── CentOS/RHEL
│ └── SUSE
└── BSD
```
---
## Linux-Server
### Grundbefehle
```bash
# Paketverwaltung (Debian/Ubuntu)
apt update
apt upgrade
apt install paketname
# Systemd
systemctl start dienst
systemctl stop dienst
systemctl status dienst
systemctl enable dienst
# Prozesse
ps aux
top
htop
```
### Benutzerverwaltung
```bash
# Benutzer anlegen
sudo useradd -m benutzername
# Passwort ändern
sudo passwd benutzername
# Zur Gruppe hinzufügen
sudo usermod -aG gruppe benutzername
# Benutzer löschen
sudo userdel benutzername
```
---
## Windows Server
### Rollen
```
Windows Server Rollen
├── Active Directory (AD DS)
├── DNS-Server
├── DHCP-Server
├── IIS (Webserver)
├── Dateiserver
├── Drucker-Server
└── Hyper-V
```
### PowerShell
```powershell
# Dienst starten
Start-Service -Name "Spooler"
# Prozesse anzeigen
Get-Process
# Benutzer anlegen
New-LocalUser -Name "Benutzer" -Password (ConvertTo-SecureString "Passwort" -AsPlainText -Force)
```
---
## Webserver
### Apache
```apache
# Virtual Host
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```
### Nginx
```nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
---
## Server-Hardware
### Komponenten
| Komponente | Bedeutung |
|------------|----------|
| CPU | Rechenleistung |
| RAM | Arbeitsspeicher |
| Festplatte | Speicher (SSD bevorzugen) |
| Netzwerk | Bandbreite |
| USV | Ausfallschutz |
### RAID
```
RAID - Stufen
├── RAID 0: Striping (keine Redundanz)
├── RAID 1: Mirroring (Spiegelung)
├── RAID 5: Parität (min. 3 Platten)
├── RAID 6: Doppelte Parität
└── RAID 10: Spiegel + Striping
```
---
## Querverweise
- [[LF9-01-Netzwerkdienste|Zurück: Netzwerkdienste]]
- [[LF9-03-Virtualisierung|Nächstes Thema: Virtualisierung]]
---
*Stand: 2024*

View File

@@ -0,0 +1,175 @@
# 9.3 Virtualisierung
## Virtualisierung - Grundlagen
### Was ist Virtualisierung?
```
Virtualisierung
Mehrere virtuelle Maschinen auf einer
physischen Hardware betreiben
```
### Vorteile
| Vorteil | Beschreibung |
|---------|-------------|
| Kosteneinsparung | Weniger Hardware |
| Flexibilität | Schnell bereitgestellt |
| Isolation | Getrennte Umgebungen |
| Skalierung | Leicht erweiterbar |
| Testumgebung | Schnell aufgesetzt |
---
## Virtualisierungstypen
### Full Virtualization
```
Gast-OS läuft unverändert
├── VMware Workstation
├── VirtualBox
└── Hyper-V
```
### Para-Virtualization
```
Gast-OS weiß von Virtualisierung
├── Xen
└── Citrix XenServer
```
### Container-Virtualisierung
```
Leichtgewichtige Virtualisierung
├── Docker
├── Podman
└── Kubernetes
```
---
## Docker
### Grundlagen
```
Docker - Begriffe
├── Image: Vorlage (Template)
├── Container: Laufende Instanz
├── Dockerfile: Image-Beschreibung
├── Registry: Image-Speicher
└── Volume: Persistenter Speicher
```
### Docker-Befehle
```bash
# Container starten
docker run -d -p 8080:80 nginx
# Container auflisten
docker ps
docker ps -a
# Container stoppen
docker stop container_id
# Image bauen
docker build -t mein-image .
# Container entfernen
docker rm container_id
```
### Dockerfile
```dockerfile
# Basis-Image
FROM node:18-alpine
# Arbeitsverzeichnis
WORKDIR /app
# Dateien kopieren
COPY package*.json ./
COPY . .
# Abhängigkeiten installieren
RUN npm install
# Port freigeben
EXPOSE 3000
# Startbefehl
CMD ["node", "server.js"]
```
---
## Kubernetes
### Architektur
```
Kubernetes - Komponenten
├── Master Node
│ ├── API Server
│ ├── Scheduler
│ ├── Controller Manager
│ └── etcd
├── Worker Nodes
│ ├── Kubelet
│ ├── Kube Proxy
│ └── Container Runtime
└── Add-ons (DNS, Dashboard)
```
### Kubernetes-Objekte
| Objekt | Beschreibung |
|--------|-------------|
| Pod | Kleinste Einheit (1+ Container) |
| Deployment | Replikate, Updates |
| Service | Netzwerkzugriff |
| Ingress | HTTP-Routing |
| ConfigMap | Konfiguration |
| Secret | Sensitive Daten |
---
## Cloud-Computing
### Service-Modelle
```
Cloud - Modelle
├── IaaS: Infrastructure as a Service
│ └── Virtuelle Maschinen, Netzwerk
├── PaaS: Platform as a Service
│ └── Laufzeitumgebung
└── SaaS: Software as a Service
└── Fertige Anwendung
```
### Anbieter
| Anbieter | Service |
|----------|----------|
| AWS | EC2, S3, Lambda |
| Azure | VMs, Blob, Functions |
| Google Cloud | Compute Engine, Cloud Storage |
---
## Querverweise
- [[LF9-02-Server|Zurück: Server]]
- [[LF9-04-Monitoring|Nächstes Thema: Monitoring]]
---
*Stand: 2024*

View File

@@ -0,0 +1,176 @@
# 9.4 Monitoring
## Monitoring - Grundlagen
### Was wird überwacht?
```
Monitoring-Bereiche
├── Verfügbarkeit (Ist das System erreichbar?)
├── Performance (CPU, RAM, Disk)
├── Netzwerk (Traffic, Latenz)
├── Anwendungen (Logs, Fehler)
└── Sicherheit (Eindringlinge)
```
### Wichtige Metriken
| Metrik | Beschreibung | Beispiel |
|--------|-------------|----------|
| CPU | Auslastung | < 80% |
| RAM | Speicherauslastung | < 85% |
| Disk | Festplattennutzung | < 90% |
| Network | Durchsatz | 100 Mbps |
| Latency | Antwortzeit | < 200ms |
---
## Monitoring-Tools
### Nagios
```
Nagios - Features
├── Host-Überwachung
├── Service-Überwachung
├── Alerting
├── Plugins
└── Web-Interface
```
### Prometheus + Grafana
```
Stack
├── Prometheus: Metriken sammeln
├── Alertmanager: Alarme
├── Grafana: Visualisierung
└── Exporters: Datenquellen
```
### Prometheus - Beispiel
```yaml
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
```
### Grafana Dashboard
```
Grafana - Verwendung
1. Datenquelle hinzufügen (Prometheus)
2. Dashboard erstellen
3. Panels konfigurieren (Graph, Stat, Table)
4. Alerts einrichten
```
---
## Logging
### Log-Management
```
Log-Stufen
├── DEBUG: Detaillierte Informationen
├── INFO: Allgemeine Informationen
├── WARNING: Warnungen
├── ERROR: Fehler
└── CRITICAL: Kritische Fehler
```
### Zentrales Logging
```
ELK-Stack
├── Elasticsearch: Suchmaschine
├── Logstash: Verarbeitung
├── Kibana: Visualisierung
└── Beats: Sammlung
```
### Logging in Python
```python
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
logger.info("Anwendung gestartet")
logger.error("Fehler aufgetreten")
```
---
## Alerting
### Alert-Regeln
```yaml
groups:
- name: example
rules:
- alert: HighCPU
expr: cpu_usage > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Hohe CPU-Auslastung auf {{ $labels.instance }}"
```
### Benachrichtigungswege
| Kanal | Einsatz |
|-------|----------|
| E-Mail | Standard |
| Slack | Team-Kommunikation |
| PagerDuty | Incident Management |
| SMS | Kritische Alarme |
---
## Verfügbarkeit
### Uptime
```
Uptime-Berechnung
99% → 7,3 Stunden/Jahr offline
99,9% → 8,7 Stunden/Jahr offline
99,99% → 52 Minuten/Jahr offline
99,999% → 5 Minuten/Jahr offline
```
### Checks
```
Verfügbarkeitsprüfung
├── Ping
├── Port-Check
├── HTTP-Response
├── Zertifikat
└── Transaktion
```
---
## Querverweise
- [[LF9-03-Virtualisierung|Zurück: Virtualisierung]]
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
---
*Stand: 2024*

View File

@@ -0,0 +1,187 @@
# LF 9: Netzwerke und Dienste bereitstellen
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
## Kernkompetenz
Die Schülerinnen und Schüler verfügen über die Kompetenz, Netzwerke und Dienste zu planen, zu konfigurieren und zu erweitern.
---
## Lernziele
Nach diesem Lernfeld kannst du:
- [ ] Anforderungen an Netzwerke und Dienste ermitteln
- [ ] Netzwerkkomponenten auswählen
- [ ] Dienste konfigurieren (DNS, DHCP, etc.)
- [ ] Netzwerksicherheit implementieren
- [ ] Funktionsprüfungen durchführen
- [ ] Dokumentation erstellen
---
## Netzwerkdienste
### DNS (Domain Name System)
**Aufgabe**: Namen zu IP-Adressen auflösen
**Zonentypen:**
- **Master**: Originaldaten, Schreibzugriff
- **Slave**: Kopie vom Master
- **Forward**: Name → IP
- **Reverse**: IP → Name
**Beispiel named.conf:**
```
zone "example.com" {
type master;
file "db.example.com";
};
```
### DHCP (Dynamic Host Configuration Protocol)
**Aufgabe**: IP-Konfiguration automatisch vergeben
**Konfigurationsbeispiel:**
```
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 86400;
}
```
### Weitere Dienste
| Dienst | Port | Beschreibung |
|--------|------|--------------|
| HTTP | 80/443 | Webserver |
| FTP | 21 | Dateiübertragung |
| SSH | 22 | Sichere Shell |
| SMTP | 25 | E-Mail-Versand |
| IMAP/POP3 | 143/110 | E-Mail-Abruf |
| LDAP | 389 | Verzeichnisdienst |
| SNMP | 161/162 | Netzwerküberwachung |
---
## Netzwerksicherheit
### Firewall
**Typen:**
- **Paketfilter**: Layer 3/4
- **Stateful Inspection**: Verbindungsverfolgung
- **Application Layer Gateway**: Layer 7
**iptables-Beispiel:**
```bash
# Eingehend blocken, ausgehend erlauben
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Lokale Kommunikation erlauben
iptables -A INPUT -i lo -j ACCEPT
# SSH erlauben
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Bestehende Verbindungen erlauben
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
```
### VPN (Virtual Private Network)
**Arten:**
- **Site-to-Site**: Netzwerk-zu-Netzwerk
- **Remote Access**: Einzelner Client
**Protokolle:**
- **IPsec**: Sicher, weit verbreitet
- **OpenVPN**: Open Source, flexibel
- **WireGuard**: Modern, einfach
---
## VLAN (Virtual Local Area Network)
### VLAN-Konzepte
```
┌────────────────────────────────────┐
│ Switch │
├──────┬──────┬──────┬─────────────┤
│ VLAN10│ VLAN20│ VLAN30│ Native │
│ (Mgmt)│ (Data)│ (Voice)│ │
└──────┴──────┴──────┴─────────────┘
```
**VLAN-Tagging (802.1Q):**
- Jeder Frame erhält VLAN-ID
- Tagged Frames über Trunk-Ports
### Routing zwischen VLANs
```
┌────────┐ ┌────────┐
│ VLAN10 │──────│ │
│ 192.168.10.0/24 │ Router│
├────────┤ │ │ ┌────────┐
│ VLAN20 │──────│ │──────│ VLAN30 │
│ 192.168.20.0/24 │ │ │ 192.168.30.0/24
└────────┘ └────────┘ └────────┘
```
---
## Netzwerk-Monitoring
### Tools
| Tool | Typ | Beschreibung |
|------|-----|--------------|
| Nagios | Monitoring | Verfügbarkeitsprüfung |
| Zabbix | Monitoring | Umfassend |
| Wireshark | Analyse | Paket Sniffing |
| tcpdump | Analyse | Kommandozeile |
| Cacti | Visualisierung | Graphen |
### SNMP (Simple Network Management Protocol)
**Komponenten:**
- **Manager**: Überwachungssystem
- **Agent**: Auf überwachtem Gerät
- **MIB**: Management Information Base
**SNMP-Versionen:**
- v1: Keine Sicherheit
- v2c: Performance, keine Sicherheit
- v3: Authentifizierung und Verschlüsselung
---
## Handlungsphasen
1. **Informieren**: Anforderungen erheben, recherchieren
2. **Planen**: Konzept erstellen, Komponenten wählen
3. **Konfigurieren**: Dienste einrichten, testen
4. **Dokumentieren**: Konfiguration beschreiben
5. **Reflektieren**: Optimierungsmöglichkeiten finden
---
## Prüfungsrelevanz
- Wichtig für Systemintegration
- Netzwerkkenntnisse in Teil 2
---
## Querverweise
- [[2-Ausbildungsyear/LF8-Daten-bereitstellen|Vorher: LF 8]]
- [[3-Ausbildungsyear/LF10a-Benutzeroberflächen|Nachher: LF 10a]]
---
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*