Benutzer-Werkzeuge

Webseiten-Werkzeuge


aufgaben:tag2_server_installation

Übungen Tag 2: Server-Installation und SSH

Diese Übungen vertiefen die Themen von Tag 2 des Linux Expert Workshops.

← Zurück zur Agenda

Übung 2.1: Ubuntu Server Installation

Ziel: Ubuntu Server in VirtualBox installieren und konfigurieren

Aufgaben:

  1. Erstellen Sie eine neue VM in VirtualBox (2GB RAM, 20GB HDD)
  2. Installieren Sie Ubuntu Server 22.04 LTS
  3. Partitionierung:
    • /boot: 500MB
    • /: 15GB
    • /home: 3GB
    • swap: 1.5GB
  4. Hostname: webserver01
  5. Benutzer: admin (mit sudo-Rechten)
  6. Installieren Sie openssh-server während der Installation

Checkliste nach Installation:

  • [ ] System bootet korrekt
  • [ ] Hostname ist gesetzt
  • [ ] Netzwerk funktioniert (ping google.com)
  • [ ] SSH-Server läuft
  • [ ] sudo funktioniert

Verifikation

Verifikation

# Hostname prüfen
hostname
hostnamectl
 
# Netzwerk testen
ip addr show
ping -c 4 google.com
 
# SSH-Server prüfen
sudo systemctl status ssh
 
# sudo testen
sudo whoami  # Sollte "root" ausgeben
 
# Partitionen prüfen
lsblk
df -h


Übung 2.2: SSH-Konfiguration

Ziel: SSH sicher konfigurieren und nutzen

Aufgaben:

  1. Generieren Sie ein SSH-Schlüsselpaar auf Ihrem Client:
ssh-keygen -t ed25519 -C "admin@webserver01"
  1. Kopieren Sie den Public Key auf den Server:
ssh-copy-id admin@SERVER_IP
  1. Konfigurieren Sie /etc/ssh/sshd_config:
    • Deaktivieren Sie Password-Authentication
    • Deaktivieren Sie Root-Login
    • Ändern Sie den Port auf 2222
  2. Testen Sie die Verbindung

SSH-Hardening-Checklist:

# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
AllowUsers admin
 
# Testen und neu starten
sudo sshd -t
sudo systemctl restart sshd

Lösung

Lösung

# SSH-Schlüssel generieren
ssh-keygen -t ed25519 -C "admin@webserver01"
 
# Public Key auf Server kopieren
ssh-copy-id admin@SERVER_IP
 
# SSH-Config bearbeiten
sudo nano /etc/ssh/sshd_config
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
AllowUsers admin
# Testen und neu starten
sudo sshd -t
sudo systemctl restart sshd
 
# Verbindung testen
ssh admin@SERVER_IP -p 2222


Übung 2.3: SSH-Tunneling

Ziel: Port-Forwarding und SSH-Tunnel nutzen

Aufgaben:

  1. Installieren Sie einen Webserver auf dem Server:
sudo apt install nginx
  1. Erstellen Sie einen SSH-Tunnel von Ihrem Client:
ssh -L 8080:localhost:80 admin@SERVER_IP -p 2222
  1. Öffnen Sie http://localhost:8080 im Browser
  2. Erstellen Sie einen SOCKS-Proxy:
ssh -D 1080 admin@SERVER_IP -p 2222

Erweitert:

  1. Richten Sie einen Reverse-Tunnel ein
  2. Nutzen Sie ProxyJump für Multi-Hop-SSH

Lösung

Lösung

# Nginx installieren
sudo apt install nginx -y
 
# Local Port-Forwarding
ssh -L 8080:localhost:80 admin@SERVER_IP -p 2222
# Öffne Browser: http://localhost:8080
 
# SOCKS-Proxy
ssh -D 1080 admin@SERVER_IP -p 2222
# Browser-Proxy: SOCKS5 localhost:1080
 
# Reverse-Tunnel
ssh -R 8080:localhost:80 admin@SERVER_IP -p 2222
 
# ProxyJump (über Bastion)
ssh -J bastion.example.com target.example.com


Übung 2.4: Netzwerk-Konfiguration

Ziel: Statische IP mit netplan konfigurieren

Aufgaben:

  1. Erstellen Sie /etc/netplan/01-static.yaml:
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  1. Wenden Sie die Konfiguration an:
sudo netplan try
sudo netplan apply
  1. Testen Sie die Netzwerkverbindung:
ip addr show
ping -c 4 8.8.8.8
ping -c 4 google.com

Lösung

Lösung

# Netplan-Datei erstellen
sudo nano /etc/netplan/01-static.yaml
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
# Anwenden
sudo netplan try
sudo netplan apply
 
# Testen
ip addr show
ping -c 4 8.8.8.8
ping -c 4 google.com
 
# Bei Problemen zurücksetzen
sudo netplan revert


Übung 2.5: Firewall mit ufw

Ziel: Basis-Firewall konfigurieren

Aufgaben:

  1. Installieren und aktivieren Sie ufw:
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
  1. Erlauben Sie SSH (Port 2222):
sudo ufw allow 2222/tcp
  1. Erlauben Sie HTTP/HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
  1. Aktivieren Sie die Firewall:
sudo ufw enable
sudo ufw status verbose

Erweitert:

  1. Limitieren Sie SSH-Verbindungen (gegen Brute-Force):
sudo ufw limit 2222/tcp
  1. Erlauben Sie nur von bestimmter IP:
sudo ufw allow from 192.168.1.50 to any port 2222

Lösung

Lösung

# UFW installieren und konfigurieren
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
 
# Ports freigeben
sudo ufw allow 2222/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
 
# Aktivieren
sudo ufw enable
 
# Status prüfen
sudo ufw status verbose
sudo ufw status numbered
 
# Erweitert: Rate-Limiting
sudo ufw limit 2222/tcp
 
# Von bestimmter IP
sudo ufw allow from 192.168.1.50 to any port 2222
 
# Regel löschen
sudo ufw delete allow 80/tcp
# oder nach Nummer
sudo ufw status numbered
sudo ufw delete [NUMMER]


Zusatz-Challenge: Kompletter Server-Setup

Erstellen Sie ein Deployment-Skript, das:

  1. System updated
  2. SSH härtet
  3. Firewall konfiguriert
  4. Fail2ban installiert und konfiguriert
  5. Automatische Updates einrichtet
#!/bin/bash
# Server Hardening Script
 
set -e  # Bei Fehler abbrechen
 
echo "=== Server Hardening Script ==="
 
# Update System
echo "Updating system..."
sudo apt update && sudo apt upgrade -y
 
# SSH Hardening
echo "Hardening SSH..."
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl restart sshd
 
# Firewall
echo "Configuring firewall..."
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable
 
# Fail2ban
echo "Installing fail2ban..."
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
 
# Automatic Updates
echo "Configuring automatic updates..."
sudo apt install unattended-upgrades -y
echo 'APT::Periodic::Update-Package-Lists "1";' | sudo tee -a /etc/apt/apt.conf.d/20auto-upgrades
echo 'APT::Periodic::Unattended-Upgrade "1";' | sudo tee -a /etc/apt/apt.conf.d/20auto-upgrades
 
echo "=== Server hardening completed! ==="
echo "Remember to:"
echo "  1. Test SSH connection on port 2222"
echo "  2. Configure fail2ban jails"
echo "  3. Review firewall rules"

</hidden>

Siehe auch

aufgaben/tag2_server_installation.txt · Zuletzt geändert: von 127.0.0.1