TOTP-Reverse-Proxy für private persönliche Server, entwickelt in Rust
(github.com/KBluePurple)Ein Reverse-Proxy mit TOTP-basierter Authentifizierung, der sich gut eignet, wenn man von öffentlichen Orten aus zugreifen muss oder Freunden vorübergehend Zugriff geben möchte.
Er verwendet Pingora von Cloudflare und wurde in Rust entwickelt, wodurch er sehr leichtgewichtig ist und eine hohe Performance bietet!
Mir hat die Sprache Rust schon lange sehr gefallen, aber statt nur hier und da herumzuprobieren und zu lernen, kam mir endlich eine Projektidee in den Sinn, für die sie perfekt passt — damit ist dies mein erstes richtiges öffentliches Rust-Projekt.
Die Authentifizierung erfolgt über ein einmaliges OTP, das mit Google Authenticator oder anderen TOTP-fähigen Apps erzeugt wird. Danach ist der Zugriff möglich.
Standardmäßig bleibt eine Sitzung bis zu 30 Minuten bestehen. Auf Wunsch kann TLS/HTTPS aktiviert werden, und mit etwas Konfiguration lassen sich auch Anfragen korrekt verarbeiten, die über einen anderen Proxy weitergeleitet wurden.
Da dieser Proxy für die Sicherheit entwickelt wurde, habe ich bei der Entwicklung Sicherheit so weit wie möglich zur obersten Priorität gemacht!
Da es noch ein unausgereiftes Projekt ist, das bisher nur von mir selbst genutzt wurde, sind Feedback, Issues und PRs jederzeit willkommen!
4 Kommentare
Ich frage mich, wie sich das Szenario umsetzen lässt, einem Freund vorübergehend Zugriff zu gewähren. So wie ich es verstehe, verwenden alle Nutzer denselben Secret-Wert.
Das ist ein Szenario, in dem ich einem Freund nur das über ein Secret erzeugte 6-stellige Passwort gebe, damit er sich vorübergehend authentifizieren, darauf zugreifen und es nutzen kann!
In asynchronen Situationen ist es zwar möglicherweise schwer zu verwenden, aber ich habe es in den meisten Fällen, in denen ein Server vorübergehend geteilt wird, als sehr nützlich empfunden!
Ah, verstanden, danke.
Oh.....