Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Fachinformatiker für Systemintegration - Unterstützung bei allen Themen der FiSi-Ausbildung/Umschulung. Verwende diesen Skill bei: FiSi-Lehrplan-Themen (Netzwerke, Linux/Windows-Server, Datenbanken, Scripting, IT-Sicherheit, Cloud, Virtualisierung), Prüfungsvorbereitung (AP1/AP2), Projektarbeit, Hausaufgaben, Code-Reviews, Konfigurationsdateien, Examensfragen,typische FiSi-Aufgaben wie "Wie richte ich einen DHCP-Server ein?", "Erkläre mir Subnetting", "Hilf mir bei der Bash-Skript-Aufgabe", "Was
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-23 | ✗→✗ | = Same ✗ | — | — |
| case-04 | ✗→✗ | = Same ✗ | — | — |
| case-14 | ✗→✗ | = Same ✗ | — | — |
| case-19 | ✗→✗ | = Same ✗ | — | — |
Dieser Skill unterstützt dich umfassend bei deiner Umschulung zum Fachinformatiker für Systemintegration. Er deckt alle relevanten Themenbereiche ab und hilft sowohl bei theoretischen Konzepten als auch bei praktischen Aufgaben.
Ich achte auf:
Aufgabenstellung: Berechne Subnetze bei gegebenem Netz und erforderlicher Host-Zahl.
Vorgehensweise:
2^n >= required_hosts/32 - n oder 255.255.255.xBeispiel: 192.168.10.0/24, benötigt 6 Subnetze mit mindestens 20 Hosts
| Subnetz | Netzadresse | Nutzbarer Bereich | Broadcast | |---------|-------------|-------------------|-----------| | 1 | 192.168.10.0 | 192.168.10.1 - 192.168.10.30 | 192.168.10.31 | | 2 | 192.168.10.32 | 192.168.10.33 - 192.168.10.62 | 192.168.10.63 | | 3 | 192.168.10.64 | 192.168.10.65 - 192.168.10.94 | 192.168.10.95 |
Berechnung: Für 20+ Hosts braucht man 5 Bits (2^5=32). Subnetzmaske: /27 (255.255.255.224).
Aufgabe: Verzeichnis /var/www/projekt konfigurieren:
Befehle:
bash# Besitzer und Gruppe setzen sudo chown www-data:webentwickler /var/www/projekt # Berechtigungen: rwxr-x--- (750) sudo chmod 750 /var/www/projekt # SGID-Bit setzen (Gruppenvererbung) sudo chmod g+s /var/www/projekt # oder: sudo chmod 2750 /var/www/projekt
Oktalnotation:
Container vs. Virtuelle Maschinen:
Dockerfile für Node.js-Backend:
dockerfile# Multi-Stage Build für optimierte Image-Größe FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --only=production FROM node:18-alpine RUN addgroup -g 1001 -S nodejs && adduser -S nodeuser -u 1001 WORKDIR /app COPY --from=builder --chown=nodeuser:nodejs /app/node_modules ./node_modules COPY --chown=nodeuser:nodejs . . USER nodeuser EXPOSE 3000 CMD ["node", "server.js"]
docker-compose.yml (Node.js + PostgreSQL + Nginx):
yamlversion: '3.8' services: backend: build: ./backend ports: - "3000:3000" environment: - DATABASE_URL=postgresql://user:pass@db:5432/appdb depends_on: - db networks: - appnet db: image: postgres:15-alpine environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=pass - POSTGRES_DB=appdb volumes: - db_data:/var/lib/postgresql/data networks: - appnet nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - backend networks: - appnet volumes: db_data: networks: appnet:
Sicherheitshinweise:
.dockerignore erstellen (node_modules, .env, .git ausschließen)Aufgabe: Fileserver mit 8 Festplatten à 2 TB konfigurieren. Vergleiche RAID 1, RAID 5 und RAID 10.
Vergleichstabelle:
| RAID-Level | Nutzbare Kapazität | Lesen | Schreiben | Max. Ausfälle | |------------|-------------------|-------|-----------|---------------| | RAID 1 (Spiegelung) | 8 TB (50%) | Sehr gut | Gut | 7 Platten | | RAID 5 (Striping + Parität) | 14 TB (87.5%) | Gut | Mäßig | 1 Platte | | RAID 10 (Spiegel + Stripe) | 8 TB (50%) | Sehr gut | Sehr gut | Bis zu 4 Platten |
\ Bei 4 gespiegelten Paaren: Ein Ausfall pro Paar tolerierbar \\ Bei RAID 10: Bis zu 50% Ausfälle, solange kein Paar komplett ausfällt
Berechnung:
Empfehlung für Dokumentenserver: RAID 10 – Begründung: Höchste Performance bei Lese- und Schreibzugriffen (wichtig für viele gleichzeitige Benutzer), gute Ausfallsicherheit, schneller Rebuild bei Plattenausfall.
Tabellen: kunden (id, name, ort) und bestellungen (id, kunden_id, produkt, betrag)
Aufgabe (a): Alle Kunden mit Bestellungen anzeigen (auch ohne Bestellungen)
sql-- LEFT JOIN: Alle Kunden, auch ohne Bestellung SELECT k.name, b.produkt, b.betrag FROM kunden k LEFT JOIN bestellungen b ON k.id = b.kunden_id;
Aufgabe (b): Gesamtumsatz pro Kunde berechnen
sql-- GROUP BY mit Aggregatfunktion SUM SELECT k.name, COALESCE(SUM(b.betrag), 0) AS gesamtumsatz FROM kunden k LEFT JOIN bestellungen b ON k.id = b.kunden_id GROUP BY k.id, k.name;
Aufgabe (c): Nur Kunden mit mehr als 500 EUR Umsatz
sql-- HAVING filtert auf Aggregat-Ergebnisse SELECT k.name, SUM(b.betrag) AS gesamtumsatz FROM kunden k JOIN bestellungen b ON k.id = b.kunden_id GROUP BY k.id, k.name HAVING SUM(b.betrag) > 500;
JOIN-Typen im Vergleich (Venn-Diagramm-Prinzip):
INNER JOIN: LEFT JOIN: RIGHT JOIN:
╔═══╗ ╔═══════╗ ╔═══════╗
║ ▓▓║ ║▓▓▓▓▓▓▓║ ║▓▓▓▓▓▓▓║
A ║▓▓▓ ║ B A ║▓▓▓▓▓▓▓║ B A ║▓▓▓▓▓▓▓║ B
║▓▓▓▓║ ║▓▓▓▓▓▓▓║ ║▓▓▓▓▓▓▓║
╚═══╝ ╚═══════╝ ╚═══════╝
(Nur Schnitt) (A komplett) (B komplett)| JOIN | Beschreibung | Verwendung | |------|--------------|------------| | INNER JOIN | Nur passende Zeilen beider Tabellen (Schnittmenge) | Wenn Daten in beiden Tabellen existieren müssen | | LEFT JOIN | Alle Zeilen der linken Tabelle, passende der rechten (A gesamt) | Wenn alle Datensätze der Haupttabelle erhalten bleiben sollen | | RIGHT JOIN | Alle Zeilen der rechten Tabelle, passende der linken (B gesamt) | Selten verwendet (umgekehrter LEFT JOIN) |
Aufgabe: Ordne Protokolle und Geräte den korrekten OSI-Schichten zu.
OSI-Schichten-Übersicht:
| Schicht | Name | Protokolle/Geräte | Einheit | Schlüsselbegriffe | |---------|------|-------------------|---------|-------------------| | 7 | Anwendung | HTTP, HTTPS, FTP, SMTP, DNS | Daten | TLS/SSL, Port 443 | | 6 | Darstellung | TLS, SSL, ASCII, JPEG, MPEG | Daten | Verschlüsselung, Kompression | | 5 | Sitzung | NetBIOS, RPC, PPTP | Daten | Sitzungsmanagement | | 4 | Transport | TCP, UDP, SCTP | Segment | Port-Nummern, Segmentierung | | 3 | Netzwerk | IP, ICMP, ARP, Router | Paket | IP-Adressen, Routing | | 2 | Sicherung | Ethernet, PPP, Switch, MAC | Frame | MAC-Adressen, VLAN | | 1 | Bitübertragung | Hub, Kabel, Glasfaser, Funk | Bit | Bits, elektrische/optische Signale |
Datenkapselung bei HTTPS-Aufruf:
Merksatz (oben nach unten): „Alle Tiefen Säufer Nennen Das Feiern” (Anwendung, Transport, Sitzung, Darstellung, Netzwerk, Daten, Bit)
Aufgabe: Unternehmen mit 500 GB Daten, täglich 20 GB Änderungen, Backup-Fenster 22:00–06:00. Entwirf ein Backup-Konzept.
Die 3-2-1-Regel:
Backup-Arten im Vergleich:
| Backup-Typ | Bezugspunkt | Backup-Zeit | Wiederherstellung | Speicherbedarf | |------------|-------------|-------------|-------------------|----------------| | Vollbackup | Komplett | Lang (500 GB) | Schnell | Hoch (500 GB/Tag) | | Differentiell | Letztes Vollbackup | Mittel (~20 GB) | Mittel | Mittel | | Inkrementell | Letztes Backup | Kurz (~20 GB) | Langsam (Kette) | Niedrig |
Beispiel-Berechnung (Woche):
RPO und RTO definieren:
Symmetrische vs. Asymmetrische Verschlüsselung:
| Eigenschaft | Symmetrisch | Asymmetrisch | |-------------|-------------|--------------| | Schlüssel | Gleicher Schlüssel | Schlüsselpaar (öffentlich/privat) | | Geschwindigkeit | Sehr schnell | Langsam | | Algorithmen | AES, ChaCha20, 3DES | RSA, ECDSA, DSA | | Einsatz | Große Datenmengen | Schlüsselaustausch, Signaturen |
TLS-Handshake (HTTPS-Verbindung):
Warum beide Verfahren kombiniert?
Forward Secrecy (PFS):
Empfohlene Schlüssellängen:
| Algorithmus | Schlüssellänge | Sicherheitsstufe | |-------------|----------------|------------------| | AES | 256 Bit | Hohe Sicherheit | | RSA | 2048-4096 Bit | Mindestens 2048 Bit | | ECDSA/ECDH | 256 Bit (P-256) | Empfohlen statt RSA | | ChaCha20 | 256 Bit | Alternative zu AES |
Aufgabe: Mittelständisches Unternehmen mit Abteilungen Vertrieb, Entwicklung, Verwaltung strukturieren.
OU-Struktur:
corp.local
├── OU=Benutzer
│ ├── OU=Vertrieb
│ ├── OU=Entwicklung
│ └── OU=Verwaltung
├── OU=Computer
│ ├── OU=Clients
│ └── OU=Server
└── OU=Gruppen
└── OU=SicherheitsgruppenAGDLP-Prinzip (Account → Global → Domain Local → Permission):
Beispiel GPO – Passwortrichtlinie:
powershell# GPO erstellen und verknüpfen New-GPO -Name "Passwortrichtlinie" | New-GPLink -Target "OU=Benutzer,DC=corp,DC=local" # Einstellungen konfigurieren (Gruppenrichtlinienverwaltung) # Computerkonfiguration → Windows-Einstellungen → Sicherheitseinstellungen → Kontorichtlinien
GPO-Einstellungen:
| Richtlinie | Wert | Beschreibung | |------------|------|--------------| | Min. Kennwortlänge | 12 Zeichen | Komplexität erforderlich | | Kennwortablauf | 90 Tage | Regelmäßiger Wechsel | | Bildschirmsperre | 10 Min. | Automatische Sperre | | Kontosperrung | 5 Fehlversuche | Schutz vor Brute-Force |
Aufgabe: Büro mit Abteilungen Verwaltung (VLAN 10), Technik (VLAN 20), Gäste (VLAN 30) trennen.
Tagged vs. Untagged (802.1Q):
| Typ | Bezeichnung | Beschreibung | |-----|-------------|--------------| | Untagged | Access Port | Endgeräte-Port, kein VLAN-Tag | | Tagged | Trunk Port | Uplink zwischen Switches, mehrere VLANs |
Switch-Konfiguration (Beispiel Cisco):
bash# VLANs erstellen vlan 10 name Verwaltung vlan 20 name Technik vlan 30 name Gaeste # Access-Ports konfigurieren interface gi0/1 switchport mode access switchport access vlan 10 # Trunk-Port konfigurieren interface gi0/24 switchport mode trunk switchport trunk allowed vlan 10,20,30
Inter-VLAN-Routing (Router-on-a-Stick):
bash# Router-Subinterfaces interface gi0/0.10 encapsulation dot1Q 10 ip address 192.168.10.1 255.255.255.0 interface gi0/0.20 encapsulation dot1Q 20 ip address 192.168.20.1 255.255.255.0
Sicherheit: Gäste-VLAN isoliert, kein Zugriff auf interne VLANs (Firewall-Regel).
Aufgabe: Backup-Skript erstellen, das /home-Verzeichnisse archiviert und alte Backups löscht.
bash#!/bin/bash # backup.sh - Automatisiertes Home-Verzeichnis-Backup # Konfiguration BACKUP_DIR="/backup" SOURCE_DIR="/home" RETENTION_DAYS=7 DATE=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="home_backup_${DATE}.tar.gz" # Funktion: Fehlerbehandlung cleanup() { echo "Fehler aufgetreten. Bereinige..." rm -f "${BACKUP_DIR}/tmp_*" exit 1 } trap cleanup ERR # Prüfung: Backup-Verzeichnis existiert? if [ ! -d "$BACKUP_DIR" ]; then echo "Erstelle Backup-Verzeichnis..." mkdir -p "$BACKUP_DIR" || { echo "Fehler: Kann Verzeichnis nicht erstellen"; exit 1; } fi # Backup erstellen echo "Starte Backup von $SOURCE_DIR..." tar -czf "${BACKUP_DIR}/${BACKUP_FILE}" "$SOURCE_DIR" 2>/dev/null # Prüfung erfolgreich? if [ $? -eq 0 ]; then echo "Backup erfolgreich: ${BACKUP_FILE}" logger -t backup "Home-Verzeichnis gesichert" else echo "Backup fehlgeschlagen!" exit 1 fi # Alte Backups löschen (Retention) find "$BACKUP_DIR" -name "home_backup_*.tar.gz" -mtime +$RETENTION_DAYS -delete echo "Backups älter als $RETENTION_DAGE Tage gelöscht" # Übersicht anzeigen du -sh "${BACKUP_DIR}/home_backup_"*.tar.gz | tail -5
Wichtige Bash-Konstrukte:
| Konstrukt | Beschreibung | Beispiel | |-----------|--------------|----------| | if [ ] | Bedingung testen | if [ -f datei ] | | for var in | Schleife | for i in {1..10} | | while | While-Schleife | while read line | | $? | Exit-Code | if [ $? -eq 0 ] | | > / >> | Umleiten/Anhängen | echo "log" >> datei | | \|\| / && | Oder / Und | befehl || fehler |
Aufgabe: AD-Benutzer anlegen und Systemdienste überwachen.
powershell# Benutzerverwaltung New-ADUser -Name "Max Mustermann" ` -SamAccountName "mmustermann" ` -UserPrincipalName "mmustermann@corp.local" ` -Path "OU=Entwicklung,OU=Benutzer,DC=corp,DC=local" ` -AccountPassword (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force) ` -Enabled $true ` -ChangePasswordAtLogon $true # Mehrere Benutzer aus CSV importieren Import-Csv "C:\\users.csv" | ForEach-Object { New-ADUser -Name $_.Name -SamAccountName $_.SAM ` -Path "OU=Benutzer,DC=corp,DC=local" -Enabled $true } # Systemdienste prüfen Get-Service | Where-Object {$_.Status -eq "Running" -and $_.StartType -eq "Auto"} | Select-Object Name, DisplayName, Status | Export-Csv "C:\\services.csv" # Remote-Computer verwalten (WinRM erforderlich) Invoke-Command -ComputerName "SERVER01" -ScriptBlock { Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 }
PowerShell-Operatoren:
| Operator | Beschreibung | Beispiel | |----------|--------------|----------| | -eq | Gleich | $a -eq $b | | -ne | Ungleich | $status -ne "Running" | | -like | Wildcard | $name -like "*Admin*" | | -match | Regex | $email -match "@corp.local$" | | | | Pipe | Get-Process | Where-Object | | $() | Subexpression | Write-Host "CPU: $($proc.CPU)" |
Aufgabe: Webserver absichern – SSH, HTTP und HTTPS erlauben, restlichen Traffic blockieren.
bash# Alle bestehenden Regeln löschen iptables -F iptables -X # Standard-Policy: Alles verbieten iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Loopback erlauben iptables -A INPUT -i lo -j ACCEPT # Established connections erlauben iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH (Port 22) erlauben iptables -A INPUT -p tcp --dport 22 -j ACCEPT # HTTP (Port 80) und HTTPS (Port 443) erlauben iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # ICMP (Ping) begrenzt erlauben iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT # Alles andere loggen und verwerfen iptables -A INPUT -j LOG --log-prefix "FIREWALL-DROP:" iptables -A INPUT -j DROP
iptables-Optionen:
| Option | Bedeutung | Beispiel | |--------|-----------|----------| | -A | Anhängen (Append) | -A INPUT | | -P | Policy setzen | -P INPUT DROP | | -p | Protokoll | -p tcp | | --dport | Zielport | --dport 22 | | -j | Jump (Ziel) | -j ACCEPT | | -m | Modul laden | -m state |
Je nach Aufgabe:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.