Rust में विकसित व्यक्तिगत निजी सर्वर के लिए TOTP रिवर्स प्रॉक्सी
(github.com/KBluePurple)यह TOTP-आधारित authentication के साथ लागू किया गया एक reverse proxy है, जो तब उपयोगी है जब आपको सार्वजनिक स्थान से access करना पड़े या किसी दोस्त को अस्थायी रूप से access देना हो।
यह Cloudflare के Pingora का उपयोग करता है और Rust भाषा में विकसित किया गया है, इसलिए यह बहुत lightweight है और तेज़ performance देता है!
मुझे Rust भाषा बहुत पसंद आई, लेकिन कोई खास project बना नहीं पाया था और बस थोड़ा-बहुत छेड़छाड़ करते हुए पढ़ाई ही कर रहा था। तभी एक project idea सूझा जो लगा कि इसके लिए बिल्कुल उपयुक्त होगा, और इस तरह यह मेरा पहला ठीक-ठाक सार्वजनिक Rust project बना।
Google Authenticator या TOTP को support करने वाले अन्य apps के जरिए one-time OTP बनाकर authentication किया जा सकता है और access पाया जा सकता है।
डिफ़ॉल्ट रूप से session अधिकतम 30 मिनट तक बना रहता है, और चाहें तो TLS/HTTPS भी enable किया जा सकता है। थोड़ा-सा configuration करने पर किसी दूसरे proxy के ज़रिए आई requests को भी सही तरह से process किया जा सकता है।
चूंकि यह security के लिए विकसित किया गया proxy है, इसलिए मैंने इसे बनाते समय security को यथासंभव पहली प्राथमिकता दी है!
यह अभी एक छोटा project है जिसे अब तक केवल मैंने ही इस्तेमाल किया है, इसलिए feedback, Issue, PR आदि हमेशा स्वागतयोग्य हैं!
4 टिप्पणियां
मैं जानना चाहता हूँ कि किसी दोस्त को अस्थायी रूप से access देने वाला scenario कैसे लागू किया जा सकता है। मेरी समझ यह है कि सभी users एक ही secret value का उपयोग करते हैं।
यह ऐसा परिदृश्य है जहाँ मैं अपने दोस्त को secret के ज़रिए बना हुआ 6-अंकों का password दे दूँ, और वह अस्थायी रूप से authenticate करके अंदर आकर उसका उपयोग कर सके!
async स्थिति में इसका उपयोग करना मुश्किल हो सकता है, लेकिन मैंने ज़्यादातर अस्थायी server-sharing स्थितियों में इसे काफ़ी उपयोगी पाया है!
आह, समझ गया धन्यवाद
ओ.....