Mein eigener Multipurpose-Server mit Online Zugriff

trialgod

Lt. Commander
Registriert
Feb. 2008
Beiträge
1.552
Hallo Liebe CB-Gemeinde

Dies soll mein Thread für viele Fragen rund um einen virtualisierten eigenen DEV-Server gehen.

Ich habe eine FTTH-Leitung mit 1GB sync. Zusätzlich habe ich mir jetzt einen Proxmox-Server aufgestellt und eine VM eingerichtet, auf welcher aktuell Gitlab installiert ist. Mir ist dann in den Sinn gekommen, dass es ja cool wäre, alles über Internet erreichbar zu machen.

Das ist jetzt also mal meine erste Aufgabe. Ich habe mir bereits eine Domain gesichert. Allerdings habe ich natürlich auch keine statische IP, sodass ich mir wohl irgendeinen DynDNS Service einrichten sollte.

Ich habe wenig Ahnung von Netzwerk und auch nur Grundkenntnisse mit Linux. Bin aber gewillt beides zu lernen. Kann mir jemand einen Hint geben, was ich genau machen muss, damit meine VMs bzw. Docker Container über die Domain bzw. Subdomains erreicht werden kann? Würde mal mit gitlab.meine.domain starten.
 
trialgod schrieb:
Mir ist dann in den Sinn gekommen, dass es ja cool wäre, alles über Internet erreichbar zu machen.
trialgod schrieb:
Ich habe wenig Ahnung von Netzwerk und auch nur Grundkenntnisse mit Linux. Bin aber gewillt beides zu lernen.
Merkst du woran es hapert?

Ein Server im Internet ist kein Spielzeug, wirklich nicht, so gar nicht. Nicht nur, dass deine Daten beliebig ungeschützt sind, auch der Server selbst ist es. Die Botnetze von anonymous und Co, mit denen sie zB Firmen mit massiven DDoS-Attacken lahmlegen, setzen sich aus Servern zusammen, die unzureichend abgesichert sind - in der Regel von Laien, die es "ganz cool" fänden, einen Server zu haben.

Nimm das bitte nicht persönlich, aber unterschätze das nicht. Nicht ohne Grund hat ein IT-Admin eine Ausbildung oder gar ein Studium hinter sich.

Wenn du etwas über Server lernen willst, dann tu das lokal - sei es auf einem physischen Server auf einem alten PC oder auch in einer VM auf deinem aktuellen PC.

Für Verbindungen von außen nimmst du dann bitte eine VPN-Verbindung, über die du dann verschlüsselt in dein Heimnetzwerk kommst und dort auch den lokalen Server nutzen kannst, ohne dass dieser offen wie ein Scheunentor im www steht.
 
Es gibt Domain Provider die auch DDNS unterstützen.
 
Also kurzes Update:

Ich habe jetzt ein DynDNS Account und einen entsprechenden Eintrag in meiner Fritzbox. Die Fritzbox hat Portforwarding von 80/443/22 auf einen NGINX Server, welcher in einem Docker Container auf einer VM auf Proxmox läuft. Zudem konnte ich über die Domain alles korrekt durchschleifen, sodass ich jetzt auf meinem NGINX Server lande.

Meine nächsten Schritte sind:
1. Certbot Docker-Container hinzufügen
2. NGINX auf HTTPS umstellen
3. Gitlab in NGINX (Reverse-Proxy) konfigurieren

Meine weiteren Überlegungen:
Ich habe mir über die Trennung der Netze auch schon Gedanken gemacht. Ich möchte aber nicht anfangen und kein DHCP mehr benutzen. Zur Zeit ist alles auf Bridges aufgebaut, sodass natürlich alle Geräte/VMs/Container im selben Netz sind. Dass das nicht optimal ist, ist mir natürlich auch bewusst und wäre wohl die nächste Priorität nach den 3 oben genannten Teilen. Ich habe mir überlegt die VMs in Proxmox in ein eigenes Netzwerk zu stecken und dann einen NAT zu konfigurieren. Das müsste doch Sicherheitstechnisch erstmal ausreichen oder nicht? Oder sollte ich die Serverinfrastruktur lieber in ein anderes Subnetz schieben? Wie gewährleiste ich dann den Zugriff zwischen den beiden Netzen (Internet, SSH)? Wäre zusätzliche Hardware benötigt oder geht das mit Bordmitteln (Fritzbox, dedizierter Server)?

Es könnte sein, dass ich auf dem jetzigen Server einen Kubernetes Agent laufen lasse und dann noch einen zusätzlichen Server hinzustelle, welcher dann zusätzliche Clients (ich glaub in Kubernetessprech heissen die Pods) hinzufügt. Der Zweite Server wird auch auf Proxmox bauen, sodass ich auch da wahrscheinlich ein Cluster betreiben kann. Kommt bissl auf Corona an, wann ich mal wieder zu meiner Family nach Deutschland fahren kann und die dort rumliegende Hardware einsammeln kann.

@Raijin
Ist ja nett gemeint, aber hilft halt so gar nicht weiter. Vielleicht als Eingrenzung zu meinem Kontext: Ich bin Software Architekt mit einiger Erfahrung in der Softwareentwicklung. Vor 12 Jahren habe ich auch einen debian root server administriert, welcher mit eigener PHP Software am Netz hing. Seitdem war ich aber eher auf Code-Seite unterwegs. Meine Karriere bringt mich jetzt aber mehr in die Richtung von Cloud Themen und viel Komplexität aus der Softwareentwicklung wird durch Microservices in Operations-Themen verlagert. Ich möchte und muss hier also meinen Horizont erweitern. Security gehört genauso zu den Themen, welche ich beherrschen muss, wie Networking allgemein.

Ich habe den Thread hier eröffnet um Hilfestellung von Leuten zu bekommen, die das vielleicht schon länger machen. Eine richtige Serverumgebung aufzubauen, schliesst halt eine ordenltiche Absicherung mit ein, das ist mir durchaus bewusst.
 
Zuletzt bearbeitet:
trialgod schrieb:
Ich habe mir über die Trennung der Netze auch schon Gedanken gemacht. Ich möchte aber nicht anfangen und kein DHCP mehr benutzen
Trennung der Netze - hier sind verschiedene Subnetze in jeweils ihrem eigenen Netzwerk (LAN oder VLAN) gemeint - hat so gar nichts mit DHCP zu tun. DHCP ist nur eine Technik mit der IP-Adressen automatisch vergeben werden. Ich habe zB 4+ Subnetze zu Hause, alle mit ihrem eigenen Subnetz inkl. DHCP-Server, alles über LANs und VLANs weiterverteilt..

trialgod schrieb:
Ist ja nett gemeint, aber hilft halt so gar nicht weiter.
[..]
Eine richtige Serverumgebung aufzubauen, schliesst halt eine ordenltiche Absicherung mit ein, das ist mir durchaus bewusst.
Das Ding ist einfach, dass man sowas nicht live im Internet "lernt". Ein Chirurg fängt auch nicht gleich mit einer OP am offenen Herzen an, sondern macht zunächst einmal Trockenübungen an einem Dummy.
Auf einen Server übertragen bedeutet das, dass du erst einmal mit einer VM oder eben einem physischen Server zu Hause Erfahrungen sammelst. Das heißt, dass du dich mit der Firewall beschäftigst, der Absicherung von ssh und so weiter.


Ich würde daher dazu raten, erstmal die Basics von iptables zu lernen, wie man eine Firewall konfiguriert. Das kann man problemlos auch im Heimnetzwerk ausprobieren. Idealerweise hat man dazu aber ein zweites Netzwerk parat, um eben auch Zugriffe aus einem anderen Subnetz gegen die Firewall zu testen.

Für ein separates Netzwerk daheim bietet sich entweder eine DIY-DMZ mit einer Routerkaskade an oder man besorgt sich einen adäquaten Router, der mit mehreren (V)LANs umgehen kann, zB ein EdgeRouter-X für ~50€ oder auch ein Router mit OpenWRT, o.ä,. Letzteres ist die flexiblere Variante, weil man bei einer DIY-DMZ mittels Routerkaskade zwingend auf die Standard-Absicherung (inkl. NAT) eines 08/15 Routers angewiesen ist und zB das NAT eben in den meisten Fällen gar nicht abschalten kann.

Beispiel DMZ mit Routerkaskade:

www
|
Internetrouter (WLAN+LAN) --- DMZ, Server
(LAN)
|
(WAN)
ZweiterRouter (WLAN+LAN) --- Heimnetzwerk

In dieser Konstellation ist der Server vor dem Heimnetzwerk ausgelagert. Ein etwaiger Angreifer, der den Server übernimmt, müsste noch durch den ZweitRouter kommen, um das Heimnetzwerk anzugreifen.


Sowas sollte nicht "später mal" kommen, sondern ist eigentlich die Basis für alles andere. Sobald man im Router eine Portweiterleitung einrichtet, wird sie nur Minuten später schon von außen angegriffen, insbesondere bei Standardports für http(s), ftp, ssh und Co. Das heißt auch, dass es schon zu spät sein kann, wenn man erst danach anfängt, den Server abzusichern.
 
  • Gefällt mir
Reaktionen: trialgod
Raijin schrieb:
Ich würde daher dazu raten, erstmal die Basics von iptables zu lernen, wie man eine Firewall konfiguriert.
Oder direkt eine Firewall wie pfSense vorschalten. Ich selbst weiß nichts über iptables, mein Server ist dennoch gesichert. 😉

pfSense bietet auch Certbot, ReverseProxy etc an. Eine eigene Domain mit z.B. Cloudflare etc. ist aber empfehlenswert.
 
Zuletzt bearbeitet:
Das mit DHCP ist mir btw. klar, ich meinte nur dass es bei manueller Konfiguration der IPs/Subnetze ggf. zu Einschränkungen vom DHCP Server kommen kann. Da ich recht viele Geräte am "Heimnetz" habe, wollte ich das definitiv vermeiden.

Danke Bob.Dig für den pfSense Hint. Das klingt gut, gibt sogar eine Noobyanleitung für mich.

Was ich jetzt brauch:
  • eine zusätzliche PCIe Netzwerkkarte
  • ein zusätzliches LANkabel um zurück zum Raumverteiler zu kommen
  • ein Switch um Server/NAS/Hue Bridge im Serverraum zu haben

Physisch sieht das dann so aus wie im angehängten Bild.

Lohnt es sich hier ein bestimmtes Switch für Switch1 zu kaufen, also eines was zusätzliche Features hat?
 

Anhänge

  • Netzwerkaufbau.jpeg
    Netzwerkaufbau.jpeg
    98,2 KB · Aufrufe: 452
trialgod schrieb:
ich meinte nur dass es bei manueller Konfiguration der IPs/Subnetze ggf. zu Einschränkungen vom DHCP Server kommen kann.
Ich kann dir nicht folgen bzw. wir reden wohl von zwei verschiedenen Dingen. Wenn du mehrere Subnetze auf derselben Infrastruktur verwendest, dann sind das keine zwei Netzwerke, weil es nach wie vor ein und dasselbe physische Netzwerk ist. Da DHCP aber eine Ebene tiefer arbeitet, also noch unter den IPs, kommt es zwangsläufig zu Konflikten, wenn man einfach im heimischen Netzwerk mit verschiedenen Subnetzen arbeitet. Es ist daher ein großes NoNo, einfach zwei IP-Kreise im selben Netzwerk zu verwenden. Mit "Trennung" hat das dann auch nix zu tun, weil jedes Endgerät einfach eine passende IP einstellen müsste, um wieder dabei zu sein.

Deswegen gehören zur Verwendung mehrerer Subnetze eben auch mehrere physische oder virtuelle Netzwerke, sprich komplett separate Router-Switch-AP oder selbige mit VLANs unterteilt. Es ist absolut kein Thema, dann mit mehreren DHCPs zu arbeiten, weil sie alle nur in ihrem separaten Netzwerk agieren.

Beispiel EdgeRouter-X:

eth0 = 192.168..0.1 /24 ; DHCP 192.168.0.100 - 192.168.0.199
eth1 = 192.168.1.1 /24 ; DHCP 192.168.1.100 - 192.168.1.199
eth2 = 192.168.2.1 /24 ; DHCP 192.168.2.100 - 192.168.2.199

Das sind drei getrennte Netzwerke. Klar, wenn man nu eth0-2 einfach an einen unmanaged Switch anklemmt, sind sie wieder alle auf derselben Infrastruktur, daher müsste man entweder 3 Switches verwenden (für jedes Interface einen eigenen) oder den gemeinsamen Switch in 3 VLANs aufteilen.


Bob.Dig schrieb:
Oder direkt eine Firewall wie pfSense vorschalten. Ich selbst weiß nichts über iptables, mein Server ist dennoch gesichert. 😉
Ob pfSense, EdgeRouter, MikroTik oder sonstwas ist ja unerheblich, sind alles Hardware-Firewalls/Router - die im übrigen unter der Haube in der Regel mit iptables bzw. netfilter arbeiten (bzw. im Falle von pfSense natürlich der namensgebende packet filter ;) ).

trialgod schrieb:
Lohnt es sich hier ein bestimmtes Switch für Switch1 zu kaufen, also eines was zusätzliche Features hat?
Auf jeden Fall. Wie ich eben am Beispiel vom ER-X beschrieben habe gehört zu jedem separaten Netzwerk eine eigene Infrastruktur. Um nun also den Proxmox-Cluster oben rechts vom Hauptnetzwerk zu isolieren, darf er natürlich nicht einfach an einen unmanaged Switch angeschlossen werden. Stattdessen muss Switch 1 VLANs unterstützen und der Router, in dem Falle dann also die pfSense-FW, die VLANs untereinander routen - oder eben nicht.

HW-Firewall (zB pfSense)
|
(VLAN10+20 tagged)
|
(Port1, Trunk)
Switch1 (Port24, VLAN10 untagged) --- Proxmox-Cluster
(Port2-23; VLAN20 untagged)
|
Rest des Netzwerks

In der pfSense werden dann die beiden VLANs 10 und 20 mit jeweils einem eigenen Subnetz samt DHCP-Server konfiguriert sowie die Firewall-Regeln angelegt, die den Datenverkehr zwischen VLAN10 und VLAN20 definieren.

Für Switch1 bietet sich hierbei so ziemlich jeder handelsübliche smart managed Switch an, sei es ein Zyxel GS1900-24E, ein Netgear JGS524E oder dergleichen. Wichtiges Feature: VLAN-Funktionalität (u.a. 802.1Q)
 
Wäre es da nicht einfacher eine Multiport-Netzwerkkarte zu benutzen und die (V)LANs über pfSense zu konfigurieren? So nach dem Motto:

LAN1: WAN
LAN2: Serverinfrastruktur
LAN3: Heimnetz

So wie ich das verstanden habe, kann ich pfSense virtualisiert auf Proxomox laufen lassen und zusätzlich auch andere VMs incl. Docker, Kubernetes, etc. auf dem gleichen Server starten. Entsprechend dann natürlich mit der richtigen Netzwerkbrücke konfiguriert. Ist das korrekt? Weil eine ganze Maschine nur als Firewall finde ich unnötig, dann kaufe ich lieber noch einen entsprechenden Router/Switch, whatever.

Noch zur Hardware:
Server1: i7-2600 4C8T 3.4Ghz, 16GB DDR3
Server2 (noch nicht vollständig): Xeon E5-2630v3 8C16T 2.4Ghz, 32GB DDR4
 
Also wenn Du die getrennten Netze quasi nur virtuell brauchst und deine Räume alle im selben Subnet sein können, dann brauchst du tatsächlich kein vlan.
 
"Einfacher" im eigentlichen Sinne wird es nicht. Die Firewall-Regeln in der pfSense, o.ä. interessiert es nicht wirklich ob sie nu den Verkehr zwischen physischen LANs oder virtuellen LANs regeln. LAN A darf nicht nach LAN B, aber LAN B darf nach LAN A, egal was für ein LAN das ist.

Die VLAN-Unterteilung im Switch1 bräuchte man, wenn dieser sowohl als auch verteilen soll. Schließt man aber in deinem Beispiel an LAN2 einen eigenen Switch an, kann man dort alle Server anklemmen, ohne VLANs - oder man schließt den Server direkt an, ganz ohne Switch.
Soll aber alles zentral über Switch1 laufen, muss dieser mit VLANs aufgeteilt werden, zB Port1-12 Hauptnetzwerk, Port 13-24 Servernetz. Dann muss der Switch wie gesagt min. smart managed sein.rwarten ist.

Ob du pfSense nun als VM laufen lassen willst (und dann ggfs mit mehreren NICs arbeitest) oder ob du pfSense auf einem separaten PC laufen lässt oder entsprechend eine fertige pfSense bzw. dann eben alternativ EdgeRouter, MikroTik, etc. besorgst, ist nicht zuletzt eine Frage des Budgets. Ein ER-X hat 5 LAN-Ports und kostet 50€. MikroTiks hEX ist ähnlich günstig.

Aber wie gesagt, pfSense kann auch virtualisiert laufen und das tun hier im Forum auch einige. Ich bin nicht unbedingt ein Fan davon, weil ich zumindest der Firewall bzw. dem Router doch lieber eigene Hardware spendiere, aber das ist vielleicht auch einfach nur Oldschool ;)
 
Raijin schrieb:
aber das ist vielleicht auch einfach nur Oldschool ;)
Bei mir ist es Geiz und die Skalierbarkeit. Ich würde aber lügen, wenn ich sagte, dass es deswegen noch keine Probleme gab. 😉
Wobei wenn man es richtig machen will, dann brauch man auch wieder supportete (z.B. intel-) NICs, die alleine schon nicht günstig sind, Plus dem entsprechenden Homeserver, der auch immer läuft.
 
Zuletzt bearbeitet:
Ja also ich glaube ich werde mir einen EdgeRouter besorgen. Das macht es wahrscheinlich robuster und das Internet darf nicht ausfallen, bloss weil ein PC nicht richtig funktioniert. So teuer ist der ja nun nicht.
 
Wenn Du verschiedene Subnets hast, dann muss für öffentliches IPv6 auch dein ISP mitspielen. Meiner tut das nicht. Tele Columbus (Pyur) gibt nur einen einzigen /64er Prefix aus, d.h. ich kann auch nur in einem Subnet IPv6 haben.
 
Muss nochmal nachfragen, da sich was geändert hat. Es scheint so, als ob ich nicht wirklich sinnvoll ein Kabel in die Abstellkammer ziehen kann - meine Frau ist nicht so glücklich damit :D

Es müssen die Server also mit ins Büro. Es ist bei uns eine etwas merkwürdige Verkabelung, der Drucker ist z.B. riesig, wäre also gut wenn er da bleiben kann, wo er steht. Ich habe nochmal eine neue Grafik angehangen.

Das VLAN muss ja dann ganz vorne im Edgerouter konfiguriert werden, damit das Heimnetz komplett abgetrennt ist - so hab ich das jedenfalls verstanden. Es müssten dann auf allen Ports, ausser im Büro bspw. VLAN10 eingestellt sein, erst am Switch im Büro müsste dann aufgeteilt werden. Das bedeutet im Netgear-Router im Schlafzimmer müsste bspw. Port 1 vom Router, Port 2 VLAN10 und Port 3 VLAN10 und VLAN20 "geswitcht" werden.

Funktioniert das mit VLAN-fähigen Switches so? Habe ich das richtig verstanden?

Im Zweifelsfall könnte ich das Schlafzimmer auflösen und die Geräte auch ins Büro umziehen. Der Drucker ist aber wirklich gross und meine Frau wäre auch nicht so zufrieden damit.
 

Anhänge

  • Neue Infrastuktur.jpeg
    Neue Infrastuktur.jpeg
    110,1 KB · Aufrufe: 377
Ein rudimentäres Beispiel wie das ganze aussehen könnte:

VLANs
10 = Heimnetz = 192.168.10.0/24
20 = Servernetz = 192.168.20.0/24

EdgeRouter
eth0 = WAN => Uplink zur Fritzbox
eth3-4 => switch0
switch0 => eth3 = VLAN 10 untagged => Uplink zum PoE-Switch Heimnetz
switch0 => eth4 = VLAN 10+20 tagged => Uplink zum GS105E
switch0.10 = 192.168.10.1/24
switch0.20 = 192.168.20.1/24
services => DHCP => DHCP10 = 192.168.10.100 - .199
services => DHCP => DHCP20 = 192.168.20.100 - .199
firewall => Regeln, die ggfs Verbindungen zwischen 192.168.10.x und 192.168.20.y einschränken


GS105E
Port1-2 = VLAN 10+20 tagged = Uplinks zum EdgeRouter + neuer Switch
Port3+ = VLAN 10 untagged

Neuer Switch
Port1 = VLAN 10+20 tagged => Uplink zum GS105E
Port2-3 = VLAN 20 untagged => Proxmox-Server1+2
Port4-6 = VLAN 10 untagged => PC+PC+Laptop

Aber: Der Traffic zwischen den VLANs geht nun komplett über den EdgeRouter und zwar über den Trunk-Port zwischen ER und GS105E. Das heißt, dass an dieser Stelle der Gesamttraffic auf 1 GBit/s limitiert ist, weil alles über ein einzelnes Kabel getunnelt wird. Das kann in Szenarien mit viel Datenverkehr zwischen den VLANs zum Flaschenhals werden. Bleiben die Netze weitestgehend untereinander, sollte das aber kaum ins Gewicht fallen.
 
So, nachdem der erste ER-X leider defekt war, habe ich nun einen 2. welcher auch funktionert.

Leider bekomme ich die VLANs nicht zum laufen. Folgende Einstellungen habe ich im ER-X vorgenommen:

Interfaces:
1585327232588.png


VLAN switch0:
1585327270565.png


DHCP Server:
1585328114216.png


DHCP 10:
1585327315019.png


DHCP 20 analog dazu, ist aber erstmal unwichtig.

Ich habe nun noch einen zusätzlichen GS108v3, welchen ich nun konfigurieren will. Der GS105 ist aktuell durch einen unmanaged Switch ersetzt.

Port 1: 10,20 tagged
Port 2-4: 20 untagged (server)
Port 5-8: 10 untagged (heimnetz)

Wenn ich das Switch ohne VLAN konfiguriere, dann bekomme ich weiter einen DHCP-Lease aus 192.168.1.0/24
Der Switch holt sich ebenso die IP aus dem gleichen Subnet. Alle Verbindungen funktionieren noch.

Wenn ich jetzt aber das VLAN auf dem Switch konfigurieren, funktioniert es leider nicht mehr.

Man MUSS PVIDs zuordnen, das habe ich so gemacht:
Port 1: 10 (Uplink)
Port 2-4: 20
Port 5-8: 10 (Mein PC ist an Port 5)

Dann die VLAN Membership 10 und 20 hinzugefügt und wie oben erwähnt eingestellt. VLAN 1 sind alle zwingend auf untagged eingestellt, sofern ich nicht die PVIDs anpasse. Nachdem ich das umgestellt habe, kann ich die Zugehörigkeiten zu 1 löschen.

Wenn ich jetzt mein Kabel vom PC abziehe und wieder anstecke, bekomme ich keine IP mehr. Der Switch hat weiter die alte IP, bekommt aber scheinbar auch nix mehr zugewiesen und konfiguriert sich (wahrscheinlich selber) irgendein Subnetz im 168...* Bereich. Dieser wird in dem Tool als "Befindet sich im IP-Netzwerk" angezeigt.

Erst wenn ich die VLAN Konfiguration im Switch wieder disable, funktioniert wieder alles wie vorher.
 
Zurück
Oben