In diesem zweiteiligen Beitrag möchte darstellen, wie ein Server mit Internet-Diensten zu Hause betrieben werden kann. Dabei liebt die Betonung auf Internet-Dienste, also im öffentlichen Internet erreichbare Services, z.B. ein Web- oder Mailserver.
Davon abzugrenzen sind so genannte "Homeserver", wie z.B. ein NAS für das eigene LAN. Von diesen ist hier nicht die Rede.
Im ersten Teil stelle ich einige Grundlagen und Überlegungen vor. Im zweiten Teil geht es dann an die praktische Umsetzung an einem Beispiel.
Einen Internet-Server zu Hause betreiben? Wofür soll das gut sein? Es gibt doch Webhoster und VPS. Das ist richtig, und wenn man mit desen Angeboten zufrieden ist, spricht auch nichts dagegen, solche Angebote zu nutzen.
Den Server aber auf eigener Hardware zu Hause zu betreiben gibt aber nochmal ein anderes Level an Kontrolle, Freiheiten und digitaler Souveränität.
Nun kann zugegebenermaßen keine vollkommene Unabhängigkeit erreicht werden - schließlich soll am Internet teilgenommen werden, und irgendjemand muss die Pakete von A nach B transportieren. Wohl die wenigsten Privatpersonen werden die Möglichkeit haben, ein eigenes Autonomes System (AS) im Internet zu betreiben und Peering-Abkommen mit anderen Betreibern abzuschließen. In der Regel muss daher auf den eigenen Internet-Service-Provider (ISP) zurückgegriffen werden.
Der ideale Fall sieht so aus, dass der ISP eine feste IPv4-Adresse zuteilt. Das ist heutzutage nur selten der Fall, und wenn dann nur bei Geschäftskunden-Anschlüssen.
Der zweitbeste Fall ist die Zuteilung einer dynamischen IPv4-Adresse. Dann gibt es die Möglichkeit einen so genannten DynDNS-Dienst zu verwenden. Das ist bei Webservern auch meist kein Problem, bei Mailservern z.B. dagegen schon eher, da die IPv4-Ranges, die dynamisch vergeben werden, von den meisten Mailprovidern blockiert werden. Wenn man so einen Server betreiben möchte, bleibt nur sich eine feste IPv4-Adresse zu "besorgen"
Dies trifft auch auf alle zu, deren ISP nur Carrier-Grade NAT oder so genanntes DS Lite anbietet. In beiden Fällen wird keine "echte" öffentliche IPv4-Adrese zugeteilt. Auch hier muss eine IPv4-Adresse organisiert werden. Es sei denn, der Dienst soll ausschließlich über IPv6 angeboten werden - was theoretisch möglich ist, aber auch wohl einen Großteil der Internet-Nutzer:innen ausschließen würde.
Sofern man nicht zu den wenigen, glücklichen gehört, die eine feste IPv4-Adresse vom ISP erhalten, muss diese besorgt werden. Es gibt diverse Dienste, bei denen man sich eine IPv4-Adresse "mieten" kann - persönlich finde ich diese zu teuer.
Die günstigste Möglichkeit, die ich kenne ist, sich einen sehr kleinen VPS zu mieten. Viele Provider bieten eine solche Einsteiger oder Mini-VPS für 1 - 2 Euro pro Monat an. Zu dieser gehört dann auch eine feste IPv4-Adresse. Nachteil: Man begibt sich doch irgendwie wieder in die Hände eines Anbieters. Wir wollen aber in dem Fall keine Daten auf dem dort gehosteten Server speichern und anbieten - er soll lediglich dazu dienen, uns die IPv4-Adresse zur Verfügung zu stellen. Diese IPv4 kann z.B. per VPN an den heimischen Server weiter geleitet werden.
Der oder die öffentliche(n) Server sollte nicht im eigenen Heimnetz betrieben werden. Es ist daher zu anzuraten, den Server in einem eigenen Netz - ich nenne dieses hier das Servernetz - zu betreiben Die günstigste Variante ist es, sich einen preiswerten Router zu besorgen, diesen mit dem Internet-Router zu verbinden und dahinter das Servernetz zu betreiben, welches nur für die öffentlichen Server zuständig ist. Es ist darauf zu achten, dass dieser Servernetz-Router nur Pakete an den Internet-Router weiterleitet, nicht aber in das Heimnetz. Auf TP-Link Routern beispielsweise ist dieser Punkt unter "Access Control" zu finden, dort kann verboten werden, dass Geräte aus dem Servernetz auf das Heimnetz zugreifen.
Ich bin ein Verfechter der "grünen" IT. Unsere Server-Hardware sollte daher nicht unbedingt nagelneu sein, sondern "refurbished". (Ausnahme: Datenträger). Außerdem sollte sie stromsparend sein. Einen nagelneuen, ausgewachsenen Server werden wohl die wenigsten benötigen.
Im Netz gibt es zahlreiche Refurbished-Anbieter, auch für Server-Hardware. Oft tut es aber auch ein ausrangierter Mini-PC oder ähnliches. Es kommt natürlich auch stark auf die eigenen Bedürfnisse an. Spoiler: Ein Einplatinen-Computer wie der Raspberry Pi war mir von der Leistung her zu schwach. Ich habe mich daher für ein Mini-ITX-Board mit einer Intel Atom D510-CPU entschieden (25 Euro gebraucht).
Soll nur ein Dienst betrieben werden reicht natürlich auch ein einziger Server bzw. Host aus. Oft wird aber später der Wunsch wach, weitere Services zu betreiben. Diese können zwar auf demselben Host betrieben werden, aber im Interesse der Sicherheit sollten die Dienste getrennt werden. Hier gilt die Fausregel ein Dienst, ein Host.
Dazu muss aber nicht zwingend weitere Hardware angeschafft werden. Auf der vorhanden Hardware können die Hosts virtualisiert betrieben werden, oder notfalls auch in Containern - dann aber bitte in unprivilegierten Containern (Container, die nicht mit Root-Rechten laufen). Auf dem VM-Host bzw. dem Container-Host selbst sollten dann keine Internet-Dienste laufen, sondern ausschließlich ind den VM bzw. Containern.
Hier eine (unvollständige) grafische Darstellung der Realisierung. Die Umsetzung folgt in Teil 2.
.--. _ -( )- _ .--,( INTERNET ),--. _.-( .----------. )-._ VPN-Tunnel ( | IPv4-VPS |<....................... '-._( '----------' )_..' . '__,( ),__' | . - ._(__)_. - | . | . _________ _____|___ . [_...__...]------------- [_..._'...] . Servernetz . Internet-Router. . Router | | . | ' . | .-,( ),-. . | .-( )-. . | ( Heimnetz ) . | '-( ).-' . | '-.( ).-' . .'-. . _ -( )- _ . .--,( Servernetz ),--. . _.-( .--------. )-._ . ( | Server |<..........................' '-._( '--------' )_.-' VPN-Tunnel '__,( ),__' - ._(__)_. -