Sicherer Remote-Zugriff auf das Heimnetzwerk

Diese ausführliche Anleitung zeigt Ihnen, wie Sie einen sicheren Remote-Zugriff auf Ihr Heimnetzwerk einrichten. Wir kombinieren verschiedene Technologien zu einer robusten und sicheren Lösung:

  • Proxmox VE als Virtualisierungsplattform
  • WireGuard als modernes, schnelles VPN
  • Nginx Proxy Manager für die Verwaltung von Reverse Proxies
  • Fail2ban und UFW für zusätzliche Sicherheit

Inhaltsverzeichnis

  1. Komponenten und ihre Funktionen
  2. VPS-Auswahl und Grundeinrichtung
  3. Sicherheitskomponenten (UFW & Fail2ban)
  4. WireGuard-Setup (VPS & Proxmox)
  5. Nginx Proxy Manager Installation und Konfiguration
  6. Troubleshooting und Wartung

1. Komponenten und ihre Funktionen

Proxmox VE

Proxmox Virtual Environment (VE) ist eine Open-Source-Virtualisierungsplattform. Sie ermöglicht das Betreiben von virtuellen Maschinen (VMs) und Linux Containern (LXC) auf einem physischen Server. Für unser Setup dient es als Basis-Plattform im Heimnetzwerk.

WireGuard

WireGuard ist ein modernes VPN-Protokoll, das sich durch hohe Geschwindigkeit und einfache Konfiguration auszeichnet. Es ist seit Linux Kernel 5.6 direkt im Kernel integriert und gilt als zukunftssicher und effizient.

Nginx Proxy Manager

Der Nginx Proxy Manager bietet eine benutzerfreundliche Weboberfläche zur Verwaltung von Nginx als Reverse Proxy. Er vereinfacht die Konfiguration von SSL-Zertifikaten und Weiterleitungsregeln erheblich.

Fail2ban

Fail2ban ist ein Sicherheitstool, das Angriffe erkennt und blockiert. Es analysiert Log-Dateien und sperrt IP-Adressen, die verdächtiges Verhalten zeigen.

UFW (Uncomplicated Firewall)

UFW ist eine benutzerfreundliche Firewall für Linux-Systeme. Sie vereinfacht die Verwaltung von iptables-Regeln und hilft beim Absichern des Servers.

2. VPS-Auswahl und Grundeinrichtung

2.1 Empfohlene VPS-Anbieter

  • Hetzner Cloud (Standorte in Deutschland)
  • Contabo (deutsche Server verfügbar)
  • Netcup (deutscher Anbieter)
  • OVH (europäische Server)
  • DigitalOcean (internationale Standorte)

2.2 Mindestanforderungen

  • 1GB RAM
  • 20GB SSD Speicher
  • Uneingeschränkter Traffic
  • Standort in Deutschland/EU für beste Latenz

2.3 Grundkonfiguration des VPS


# System aktualisieren
sudo apt update && sudo apt upgrade -y

# Hostname setzen
sudo hostnamectl set-hostname vps-vpn

# Zeitzonen einstellen
sudo timedatectl set-timezone Europe/Berlin

# Basis-Tools installieren
sudo apt install -y curl wget git htop

3. Sicherheitskomponenten einrichten

3.1 UFW Firewall Installation und Konfiguration


# UFW installieren
sudo apt install -y ufw

# Standard-Regeln setzen
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH absichern (vor dem Aktivieren!)
sudo ufw allow ssh

# Ports für WireGuard und Nginx öffnen
sudo ufw allow 51820/udp  # WireGuard
sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS

# Firewall aktivieren
sudo ufw enable

# Status prüfen
sudo ufw status verbose

3.2 Fail2ban Installation und Konfiguration


# Fail2ban installieren
sudo apt install -y fail2ban

# Konfigurationsdatei kopieren
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Basis-Konfiguration erstellen
sudo cat > /etc/fail2ban/jail.local << EOF
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
EOF

# Fail2ban neustarten
sudo systemctl restart fail2ban

4. WireGuard-Setup

4.1 WireGuard auf dem VPS (Server) einrichten

Installation und Schlüsselerzeugung


# WireGuard installieren
sudo apt install -y wireguard

# Ordner erstellen und Berechtigungen setzen
sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard

# Server-Schlüsselpaar generieren
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

# Schlüssel anzeigen und notieren
echo "Server Private Key: $(cat server_private.key)"
echo "Server Public Key: $(cat server_public.key)"

Server-Konfiguration


# Server-Konfiguration erstellen
sudo cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = $(cat server_private.key)
Address = 10.0.0.1/24
ListenPort = 51820
SaveConfig = true

# IPv4 Forwarding aktivieren
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostDown = ufw route delete allow in on wg0 out on eth0
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
EOF

IPv4-Forwarding aktivieren


# IPv4-Forwarding permanent aktivieren
sudo cat > /etc/sysctl.d/99-wireguard.conf << EOF
net.ipv4.ip_forward = 1
EOF

# Änderungen sofort anwenden
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf

4.2 WireGuard auf Proxmox (Client) einrichten

LXC Container erstellen


# Auf dem Proxmox Host ausführen
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard.sh)"

Schlüssel im Container generieren


# Im WireGuard LXC Container:
mkdir -p /etc/wireguard
cd /etc/wireguard
umask 077

# Client-Schlüsselpaar generieren
wg genkey | tee client_private.key | wg pubkey > client_public.key

# Schlüssel anzeigen und notieren
echo "Client Private Key: $(cat client_private.key)"
echo "Client Public Key: $(cat client_public.key)"

Client-Konfiguration


# Im WireGuard LXC Container:
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = $(cat client_private.key)
Address = 10.0.0.2/24

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = VPS.DOMAIN.OR.IP:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
EOF

4.3 Peer-Konfigurationen verbinden


# Auf dem VPS
sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2/32

# Dienste auf beiden Systemen aktivieren
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

# Status prüfen
sudo systemctl status wg-quick@wg0
sudo wg show

5. Nginx Proxy Manager Installation und Konfiguration

5.1 Docker Installation


# Docker installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Docker Compose installieren
sudo apt install -y docker-compose

# Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER

5.2 Nginx Proxy Manager aufsetzen


# Verzeichnis erstellen und wechseln
mkdir -p ~/nginx-proxy-manager
cd ~/nginx-proxy-manager

# Docker Compose Konfiguration erstellen
cat > docker-compose.yml << EOF
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
EOF

# Container starten
docker-compose up -d

5.3 Proxy Manager konfigurieren

Zugriff auf die Weboberfläche:

  • URL: http://vps-ip:81
  • Standard Login:
    • Email: admin@example.com
    • Passwort: changeme

5.4 Proxy Host einrichten

  1. "Add Proxy Host" auswählen
  2. Domain Name eingeben
  3. Scheme: http
  4. Forward Hostname: IP der Proxmox VM/Container
  5. Forward Port: Service-Port
  6. SSL aktivieren (Let's Encrypt)

6. Troubleshooting und Wartung

6.1 WireGuard Probleme


# Verbindungsstatus prüfen
sudo wg show

# Logs überprüfen
sudo journalctl -xeu wg-quick@wg0

# Interface neustarten
sudo wg-quick down wg0
sudo wg-quick up wg0

6.2 Nginx Proxy Manager Probleme


# Container Logs
docker logs nginx-proxy-manager

# Container neustarten
docker-compose restart

6.3 Firewall und Fail2ban


# UFW Status
sudo ufw status verbose

# Fail2ban Status
sudo fail2ban-client status

# Gebannte IPs anzeigen
sudo fail2ban-client status sshd

7. Sicherheitshinweise

  • Regelmäßige Updates aller Komponenten durchführen
  • Starke Passwörter verwenden
  • Private Keys sicher aufbewahren
  • Logs regelmäßig überprüfen
  • Backup-Strategie implementieren

8. Nützliche Ressourcen

Bookmarklet: Tweets eines Users (ohne Antworten und Retweets) anzeigen

Ein praktisches Bookmarklet, mit welchem man nur die Original-Tweets eines User anschauen kann (ohne Retweets und Antworten)

Bookmarklet

Wenn man sich den Feed eines Twitter-Users anschaut stören häufig Retweets. Man kann dann zwar auf “Tweets & Antworten” umschalten, aber dann stören die ganzen @Antworten an andere User. Ich möchte gerne sehen welche Tweets der User selbst verfasst hat. Hier kann immerhin die Twitter-Suche bemühen, denn man kann den Parameter “exclude:replies” oben in der Suche hinzufügen, der genau das macht. Das ist aber umständlich und erfordert nervige Handarbeit.

Hier hilft mein Bookmarklet:

nur Tweets

Das Bookmarklet einfach in eure Bookmarkleiste ziehen, und schon könnt ihr es benutzen. Wenn ihr auf dem Profil eines Twitter-Users seid dann klickt ihr einfach das gewünschte Bookmarklet und schon kommen die Original-Tweets des Users. Leider geht dies nicht bei geschützten Profilen.

Hier findet ihr mein anderes Twitter-Bookmarklet.

Verbindungsprobleme mit Alexa Echo und Unitymedia Connect Box (gelöst)

Was ein Krampf es doch war. Mein Amazon Alexa Echo kam gestern, und wie das so ist will man das neue Gadget natürlich schnellstmöglich in Betrieb sehen. Also rasch ausgepackt, das Plastik abgezogen und das gute Stück mit Strom versorgt. Aber es sollte dieses Mal nicht so leicht sein.

Amazon Alexa Echo mit Connect Box

Nachdem ich die Alexa-App (Playstore) installiert hatte konnte es losgehen. Man verbindet sich in das Ad-hoc-Netz vom Gerät und befolgt die Schritte, die man erledigen muss. Eigentlich alles easy.

Doch wenn Echo sich dann mit dem heimischen WLAN verbinden soll, kam immer recht schnell ein Fehler:

Fehler 7:3:0:0:1

Ich war damit nicht alleine. Ich fand heraus, dass es Probleme im Zusammenspiel mit der Connect Box von Unitymedia gibt. Nach endlosen Versuchen und der Idee einen Repeater dazwischen zu schalten ging es dann plötzlich – die Alexa teilte mir mit, dass sie nun einsatzbereit sei.

Aber so einfach gab ich mich damit nicht zufrieden und suchte weiter.

Schlussendlich hatte ich eine Lösung gefunden, die auch ohne Repeater funktioniert. Und diese Lösung ist recht banal:

Einstellungen Connect Box

Die Connect Box bietet das WLAN über eine SSID an, bei der 2,4GHz und 5GHz gleichzeitig ausgestrahlt werden. Damit kommt Amazon Echo anscheinend nicht zurecht.

Als ich für jede Frequenz eine eigene separate SSID einrichtete ging es sofort ohne Probleme.

“Alexa, bist du online?”

“Ja, ich bin derzeit mit dem Internet verbunden.”

🙂

Bookmarklet: Twitter Retweet Suche

Ein praktisches Bookmarklet um zu schauen ob eine URL schon einmal auf Twitter retweetet wurde.

Häufig möchte ich Inhalte (Videos, News, Posts, o.ä.) einer Seite twittern, die eventuell schon von der Seite selbst oder von jemand anderem getwittert wurden um diese dann zu retweeten. Bisher habe ich dazu mittels der Twittersuche nach der URL gesucht. Das funktioniert auch wunderbar, ist nur etwas umständlich, weil man immer copy und pasten muss.

Screenshot des Bookmarklet
Screenshot des Bookmarklet

Deswegen habe ich mir zwei kleine Bookmarklets geschrieben und in die Bookmarkleiste geschoben. Mit dem einen kann ich ausschließlich nach deutschen Tweets suchen, mit dem anderen nach allen.

Twitter RT Suche deutsch

Twitter RT Suche

Die Bookmarklets einfach in eure Bookmarkleiste ziehen, und schon könnt ihr diese benutzen. Wenn ihr auf einer Seite seid und nach Tweets suchen wollt, die genau auf diese Seite zeigen klickt ihr dann einfach das gewünschte Bookmarklet an.

Ich bestelle doch recht gerne bei Amazon

[+] Found 17 filters, processing...
[+] Processing    last30 	(   4 orders)... 	     98.45 EUR
[+] Processing  months-6 	(  35 orders)... 	    659.01 EUR
[+] Processing year-2014 	(   5 orders)... 	    122.84 EUR
[+] Processing year-2013 	(  81 orders)... 	   2108.50 EUR
[+] Processing year-2012 	( 100 orders)... 	   3204.85 EUR
[+] Processing year-2011 	(  30 orders)... 	   2069.95 EUR
[+] Processing year-2010 	(  31 orders)... 	    953.97 EUR
[+] Processing year-2009 	(  17 orders)... 	    526.81 EUR
[+] Processing year-2008 	(  28 orders)... 	   1149.82 EUR
[+] Processing year-2007 	(  36 orders)... 	   2174.61 EUR
[+] Processing year-2006 	(  27 orders)... 	   1248.30 EUR
[+] Processing year-2005 	(   8 orders)... 	    293.70 EUR
[+] Processing year-2004 	(   7 orders)... 	    321.44 EUR
[+] Processing year-2003 	(   5 orders)... 	    126.28 EUR
[+] Processing year-2002 	(   3 orders)... 	     97.42 EUR
[+] Processing year-2001 	(   4 orders)... 	     43.87 EUR
[+] Processing year-2000 	(  10 orders)... 	    120.88 EUR
[+] Grand total (years only) 	( 392 orders)... 	  14563.24 EUR

Und ihr so? Benutzt dieses Script.