[WiP] Ein eigner HTTP Server und Tools

  • Auch wenn diese Idee vielleicht ganz schnell Augenrollen verursachen kann, traue ich mich dennoch. :D

    Aber erst mal grundlegend: Was ist die Idee?
    Da ich von Apache weg möchte und NGINX mir nie gefallen hat, habe ich schon länger darüber nachgedacht, zu versuchen, meinen eigenen Webserver zu entwickeln. Sprich: Anfragen verarbeiten, PHP verarbeiten usw. Ein klassischer Webdienst eben. Also habe ich angefangen, in Go einen Server für Windows zu erstellen – und demnächst auch für Linux und macOS. Wobei jetzt während der Entwicklung erst mal Windows im Fokus steht.

    Stand jetzt ist Version 0.3.7 Hotfix 2, da es einige Fehler bezüglich dynamischer Pfade (PHP / htdocs etc.) gab.

    Lokal auf meinem Testserver läuft die neuste Version, auf dem „Live-Test“-Server läuft noch die Version 0.3.6 Hotfix 1 – u. a. wird dort das Forum gehostet, weshalb er als Live-Testumgebung dient (als Forensoftware kommt XenForo zum Einsatz).

    Jetzt fragen sich wohl einige: Bist du verrückt? Warum schon wieder ein HTTP-Serverdienst?

    Ich war und bin neugierig. Einfach nur Software zu nutzen ist zwar OK – aber hier lerne ich viel über die Struktur und den Aufbau. Grundlegend ist es als Hobby- und Spaßprojekt gedacht, ein großer Release für andere ist also nicht geplant. Ich würde es dann auf meinen Servern nutzen. Ich finde den Weg interessant, von der Idee bis hin zur Umsetzung.

    Und ich sage gleich: Ja, KI hilft mir. Denn allein würde ich das Ganze nicht hinbekommen. Oft kommen Fragen auf, bei denen ich auf die KI zurückgreife.

    Wie oben erwähnt, läuft der Live-Testserver bereits mit dem eigenen Serverdienst. Er ist aber noch weit weg von der Qualität eines Apache. Aber ja, ich sehe es eher als Hobbyprojekt. Daher würde ich hier gern mit euch den Fortschritt und Updates teilen. Später werde ich vielleicht sogar mal einen Link teilen (der Testserver läuft auf einem Netcup-Server).

    Mir ist bewusst, dass ich wohl nie die Qualität erreichen werde wie die großen Open-Source-Projekte – aber ja, ich möchte sehen, wie weit ich kommen werde.

    Gern bin ich auf eure Meinungen und Kommentare gespannt.

    EDV = Erfolg durch Versuche *g*

    Einmal editiert, zuletzt von chenjung (22. Juli 2026 um 12:42)

  • Ich war und bin neugierig. Einfach nur Software zu nutzen ist zwar OK – aber hier lerne ich viel über die Struktur und den Aufbau.

    Das fühle ich. Hab auch schon einiges selber entwickelt, was es eigentlich schon in fertig und besser gibt. Aber so lernt man unheimlich viel

    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Das klingt nach einem mega spannenden aber auch unglaublich komplexen Projekt!
    Und ich bin sehr gespannt was du in Zukunft noch so weiter dazu schreibst :)

    Weiter so!

    Und wie du ja so schön schreibst: Am Ende ist es Spielerei und für dich.
    Somit: Wieso nicht?

  • Jetzt fragen sich wohl einige: Bist du verrückt?

    […]

    Wie oben erwähnt, läuft der Live-Testserver bereits mit dem eigenen Serverdienst. […] Später werde ich vielleicht sogar mal einen Link teilen (der Testserver läuft auf einem Netcup-Server).

    Sofern der "Live-Testserver (mit PHP-Unterstützung)" von außen erreichbar ist und nicht innerhalb eines nicht-privilegierten System-Containers läuft, ist das leider grober Leichtsinn. Gerade bei Webservern (in Verbindung mit "angebundenen" Script-Sprachen) gibt es für Linux eine Vielzahl von RCE-Einbruchtests (remote code execution). Und im "Security"-Unterforum finden sich ein paar ausgewählte Beispiele, warum es gerade heute gefährlich ist, nicht mit entsprechender Erfahrung/Vorbereitung in abgeschlossenen Umgebungen zu testen* (unter Verwendung von Werkzeugen, welche Sicherheitslücken aufspüren) oder überhaupt das Rad neu zu erfinden. (Je größer die Nutzergruppe, um so höher die Wahrscheinlichkeit, dass das Mehraugenprinzip Fehler aufdeckt; "selbstgestrickte" Lösungen, insbesondere, wenn alles von Grund auf neu gebaut wird, sind extremst anfällig.)

    Wenn wie oben geschrieben zunächst der Fokus auf Windows liegt (ohne Nutzung des dortigen Linux-Subsystems), gelingt dort eine Abschottung eigentlich nur mithilfe einer virtuellen Maschine (was bei Netcup ohne nested virtualization keine Option ist). (Und generell ist die Absicherung von Windows auf einem öffentlich erreichbaren (Einzel-)Host (ohne vorgeschaltete externe Zugangskontrollen), zumal in Eigenregie, sowieso nicht machbar.)

    In einer Zeit, wo es (trotz einer – im Vergleich mit den vor 20–30 Jahren verfügbaren teuren Ressourcen – "relativ überschaubaren" Kostenexplosion, was RAM/Festplatten anbelangt) überhaupt kein Problem darstellt, Testumgebungen daheim (entweder offline oder stark abgeschirmt) innerhalb weniger Minuten "aus dem Boden zu stampfen" (unter Verwendung eines NUC/SBC/des eigenen Laptops, der noch 8GB RAM übrig hat für eine VM), verstehe ich immer weniger, warum Tests unbedingt in Umgebungen durchgeführt werden, über die man keine vollständige Kontrolle hat. Das ist so, als würde man irgendwelche Geräte/Aufbauten die meiste Zeit des Tages unbewacht auf dem Marktplatz stehen lassen oder Fotos der eigenen VISA-Karte (Vorder- und Rückseite) irgendwo im Freien aufhängen. Intuitiv muss doch klar sein, dass das keine Bombenidee ist, alleine schon deswegen, weil es die Mehrheit der Mitmenschen eben nicht macht … ?

    *und zwar, weil fast alle Linux-Kernelversionen derzeit bekannte/laufend bekannt werdende ("Gruppen von") Sicherheitslücken aufweisen, die durch Administratoren nicht umgehend geschlossen werden können (inklusive einer großen Zahl von LPE-Lücken (local privilege escalation), welche kombiniert mit einem funktionierenden RCE-Einbruch ganz schnell die Kontrolle des betreffenden Hosts kosten können).

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE

    4 Mal editiert, zuletzt von m_ueberall (22. Juli 2026 um 16:43)

  • Das ist soweit richtig. Da stimme ich dir zu.

    Auf dem Testserver ist aber nichts, was kritisch wäre. Entsprechend, selbst wenn dort ein Einbruch oder der gleichen ausgeübt werden sollte, schalte ich ihn ab, spiele das Backup auf.

    Langfristig ist aufjeden Fall das Thema Sicherheit eine Sache. Keine Frage. Aber zur Zeit ist es eben ein "Test" - noch.

    Aber Nachts werde ich ihn ausmachen, dann sollte da nichts passieren ~ Danke für deinen Kommentar.

    PS: Backup ausgeführt (für den Fall der Fälle) ^^

    EDV = Erfolg durch Versuche *g*

    3 Mal editiert, zuletzt von chenjung (22. Juli 2026 um 16:40)

  • Das Dashbaord des Servers liefert schon erste Infos - 0.3.8 Alpha läuft zur Zeit nur local auf dem Testserver (nicht erreichbar von außen).

    image.png

    Das Routing scheint aber noch Probleme zu machen, wie z.b. bei Wordpress, die Installation leitet zwar um, aber zurück ins Root-Verzeichnis-, wenn man also die Installation startet localhost/word/wp-admin/install spring die Weiterleitung zurück auf /word/ und somit kommt Error 404. Man kann es installieren, wenn man manuell die URL anpasst, aber das ist ja nicht der Sinn der Sache. Auch der Login springt immer wieder zurück:

    image.png
    Hier sollte bei dem Login localhost/word/ .... stehen

    Hier muss ich mal schauen, dass das ganze später dann automatisch richtig läuft. Auch werden die CSS Dateien nicht geladen. Hier ist also noch einiges Arbeit nötig. ;)

    Update:
    Problem gelöst, die Routen laufen nun richtig.

    EDV = Erfolg durch Versuche *g*

    2 Mal editiert, zuletzt von chenjung (23. Juli 2026 um 07:53)

  • Auf dem Testserver ist aber nichts, was kritisch wäre. Entsprechend, selbst wenn dort ein Einbruch oder der gleichen ausgeübt werden sollte, schalte ich ihn ab, spiele das Backup auf.

    Die Frage von mir ist, wie du das feststellen willst, dass hier ein Einbruch stattgefunden hat? :?:

    Clevererweise würde hier ein rootkit auf deinem netcup Server installiert werden und das ist eine gute und mächtige Beute für einen Hacker, der von dir nicht oder nur schwer erkannt werden kann. (Im schlimmsten Fall erst durch hartes Abschalten und einer Abuse Meldung bei netcup und Schaden für viele andere Kunden z.B. durch Spam oder einfach schlechteres Karma für die IP oder den Netzblock). Nicht so wie dein gekaperter Heimserver also Raspberry Pi / alte Hardware oder alles was m_ueberall dankenswerterweise schon geschrieben hat für einen nicht so potenten Entenraketenwerfer mit stabiler Gigabit Anbindung am Netz, der richtig Schaden anrichten kann bei Kaperung.

    Verrätst du auch noch was für ein netcup Server das ist auf dem der Test gerade läuft?
    Auch eine mögliche Absicherung durch ein Benutzerkonzept für den Dienst / Prozess, damit der nicht als root laufen muss?

    Bevor ich aber zu viel meckere Respekt und Hut ab vor dem Vorhaben und der Lust auf Lernen durch Ausprobieren. <3
    (Auch meine bevorzugte Art zu Lernen. Auch wenn ich hier eher eine DynDNS Adresse auf meiner privaten Internetleitung mit einem "Testserver" gestartet hätte.)

    WH1000 SE OST22 OST23 OST24 | WH1000 SE ADV25 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️ ➡️ VPS nano G11s

  • Hallo Copro, das ist eine sehr gute Frage!

    Erkennen wäre in der Tat schwierig. Guter Punkt.

    Da die Entwicklung noch auf Windows läuft, läuft der Prozess mit dem Administrator-Account. Das werde ich aber abändern und einen "normalen" Account erstellen, welcher über keine Administrativen-Rechte verfügt. Wieder ein guter Hinweis, das werde ich ändern. Einziger Pluspunkt, solange ich nicht am Server arbeite, ist dieser auch "aus" - also kein Zugriff möglich.

    Als Test-Server ist ein VPS 1000 G12 im Einsatz. Das läuft soweit ganz gut :)

    Danke für deinen Kommentar. Dieser war aufschlussreich, und hat wieder Punkte aufzeigt, die ich nicht im Auge hatte.

    Das GGControl Panel ist nun auch vorhanden, und ermöglicht den Login zur Server-Steuerung (zur Zeit noch keine Einstellungen möglich). Beim dem ersten Start über die .exe oder Powershell wird ein Einmalpasswort erstellt, welches für den Login notwendig ist. Dies soll später nach dem Login abänderbar sein.

    EDV = Erfolg durch Versuche *g*

    Einmal editiert, zuletzt von chenjung (23. Juli 2026 um 12:25)

  • Das Thema Sicherheit wird mir in diesem Zusammenhang und durch eure Kommentare klarer. Ich baue nun neben dem GGServer nun auch an einem Tool, was Ordner, Prozesse prüfen soll. Wenn hier z.b. Veränderungen erkannt werden, oder Prozesse starten, oder Programme abgelegt werden (z.b. c:\windows) soll das Tool mir erst mal eine Mail zu senden.

    Wird erkannt, das innerhalb einer Zeit viele Dateien geändert, oder gelöscht werden, möchte ich versuchen, dass der Netzwerkdienst sich kappt. Ich denke mir, lieber den "Stecker" ziehen und dann offline Prüfen, was da passiert.

    Sicherlich muss hier genau dem Tool gesagt werden, was es tun soll, auch die Ordner die Überwacht werden sollen usw. Aber generell finde ich dies eine gute Idee. Ich möchte versuchen, das ganze mal umzusetzen und wenn was passiert, soll das System den Netzwerkdienst kappen oder deaktivieren. Ich muss mal schauen, was sich umsetzen lässt.

  • Ich baue nun neben dem GGServer nun auch an einem Tool, was Ordner, Prozesse prüfen soll. Wenn hier z.b. Veränderungen erkannt werden, oder Prozesse starten, oder Programme abgelegt werden (z.b. c:\windows) soll das Tool mir erst mal eine Mail zu senden.

    Was du hier beschreibst ist das Wunder-Tool, dass Microsoft und viele anderen Anti-Viren- und Malware Hersteller, ähm ich meine natürlich Softwarefirmen im Bereich Cyber Security / Anti-Virus / Anti-Malware versuchen herzustellen. Das ist aber selbst für Microsoft nicht so einfach und erfordert neben vielen Prüfungen auf Signaturen eigener Software auch tiefe Eingriffe ins Betriebssystem, um entsprechende Sicherheitsrichtlinien zu verankern. Ich finde aber deinen Enthusiasmus in der Richtung gut und bin gespannt, was da noch kommt.

    Aber ich will deine Lernkurve nicht schmälern oder vorher kleinreden ... also berichte gerne einmal, wie es dir hier unter Windows mit Prozessstarterkennung, Programmablage o.Ä. geht. Auch die dunkle Seite - also die Trojaner Programmierer und solche, die so einen erbeuteten Server absichern nutzen solche Werkzeuge, um eine Erkennung zu verhindern und sind dabei sehr clever. Einiger Sourcecode ist auch öffentlich und kann sicher zu Anschauungszwecken seziert werden, bzw. die KI wird sich daraus gerne bedienen. Neben Randomisierung, dem Tarnen als bekannter Windows Dienste oder ähnlicher Tools gibt es da sicher noch viele weitere Schmankerl, die dich begeistern werden. 8)

    WH1000 SE OST22 OST23 OST24 | WH1000 SE ADV25 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️ ➡️ VPS nano G11s

  • Da hast du auf jeden Fall Recht, das ist eine Sache, die keine kleinigkeit ist. Vielen dank für deinen Kommentar. Eure Meinungen und Ideen / Kritik sind immer willkommen.

    Das merkte ich schon bei den ersten Versuchen, denn zur Zeit wird nur erkannt, dass sich etwas in den hinterlegeten Ordner ändert, oder gelöscht wird. Später soll dann neben der Mail an den Admin, auch die Prozesse beeinflusst werden, aber bis dahin ist es noch ein langer weg.

    Die Entwicklung des HTTP Servers geht aber auch weiter, dazu werden hier dann auch Updates folgen :)

    Ich habe mal kurz zusammengefasst, stand jetzt und was demnächst so kommen soll. Sorry für den Wall-of-Text.

    EDV = Erfolg durch Versuche *g*

    4 Mal editiert, zuletzt von chenjung (25. Juli 2026 um 11:10)

  • Entwicklerkommentar

    Mit Version 0.8.0 Foundation beginnt ein neuer Abschnitt in der Entwicklung von GGGuard.

    Während sich die bisherigen Versionen hauptsächlich auf die zuverlässige Erkennung von Dateiänderungen konzentrierten, schafft diese Version die technische Grundlage für ein deutlich leistungsfähigeres und modular aufgebautes Sicherheitssystem.

    Das Ziel bleibt unverändert: GGGuard soll sich Schritt für Schritt zu einem modernen Host Intrusion Detection System (HIDS) für Windows entwickeln.

    GGServer 0.3.9 Alpha mit GGControl 0.1 Alpha

    Die Version auf der Offline Server Umgebung.

    EDV = Erfolg durch Versuche *g*

    3 Mal editiert, zuletzt von chenjung (26. Juli 2026 um 12:58)

  • chenjung 26. Juli 2026 um 12:45

    Hat den Titel des Themas von „[WiP] Ein eigner HTTP Server“ zu „[WiP] Ein eigner HTTP Server und Tools“ geändert.
  • Virtual Hosts und SSL sind nun aktiv unterstützt.

    Das Controll Panel erstellt nun Websites die u.a. als forum.domain.de aufgerufen werden können.

    image.png

    Die SSL Funktion wird noch getestet, local läuft es soweit.

    image.png

    Es nimmt langsam fahrt auf - aber es ist noch ein weiter Weg :)

  • Erste Benchmarks mit ApacheBench gegen GGServer 0.4.1 im Vergleich zu Webhosting 1000 und Webhosting EiWoMiSau mit unfairerweise nginx und keinem Apachen dafür HTTPS und einer einfachen HTML Seite mit PHP Echo in der index.php ;)

    HTTP: ab -n 100 -c 10 http://sub.domain.tld:80
    HTTPS: ab -n 100 -c 10 https://sub.domain.tl:443

    Server SoftwareGGServer/0.4.1 (HTTP - nc VPS 1000 G12)nginx (HTTPS - nc WH1000)nginx (HTTPS - nc WH🥚🧶🥛🐖)
    Longest Request (ms)38612131152

    WH1000 SE OST22 OST23 OST24 | WH1000 SE ADV25 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️ ➡️ VPS nano G11s

  • Vielen dank für deine Mühe!

    Da steht noch einige Arbeit an für den GGServer ~ der GGServer hat zwar hier den geringsten Wert, aber er hat ja noch nicht alle Module wie z.b ein Apache :D Für den Anfang gut, aber ich denke noch nicht wirklich Aussagekräftig, da noch einige Module und Erweiterungen kommen. Aber es macht Mut - der Weg scheint zu stimmen :)

    Der Test unter Linux steht noch aus, denn das habe ich noch nicht ausprobiert - also auf meinem Linux Server den HTTP Dienst zu testen.

    EDV = Erfolg durch Versuche *g*

    2 Mal editiert, zuletzt von chenjung (29. Juli 2026 um 07:01)

  • Meine Empfehlung:
    Beschränke deinen Webserver tatsächlich auf das absolute Minimum, das nötig ist, um Seiten ins Netz zu stellen und erliege nicht der Versuchung nach und nach immer mehr Module und Funktionen zu integrieren, sondern versuche so schlank wie möglich zu bleiben.
    Und konzentiere dich dann darauf den Webserver so sicher und robust wie möglich zu machen.
    Schnell, klein, robust. Kann vielleicht nicht alles, aber das zuverlässig und flink