Ruroco - "RUn RemOte Command" UDP का उपयोग करके रिमोट कमांड इनवोकेशन
(github.com/beac0n)- सर्वर को UDP पैकेट भेजकर कमांड चलाने वाला टूल
- कमांड सर्वर साइड पर कॉन्फ़िगर किए जाते हैं, इसलिए क्लाइंट चलाए जाने वाले कमांड को परिभाषित नहीं करता, बल्कि केवल मौजूदा कमांड में से चुनता है
- 3 बाइनरी से मिलकर बना है
- client: कंप्यूटर पर चलकर UDP पैकेट भेजता है
- server: UDP पैकेट प्राप्त करता है और उसकी वैधता जांचता है
- commander: UDP पैकेट के डेटा में एन्कोड किया गया कमांड वैध होने पर उसे चलाता है
- सुरक्षा
- UDP से भेजे जाने के कारण सर्वर बिल्कुल भी जवाब नहीं देता: पोर्ट स्कैनिंग संभव नहीं
- क्लाइंट से सर्वर तक भेजा जाने वाला डेटा RSA का उपयोग करके एन्क्रिप्ट किया जाता है
- क्लाइंट केवल चलाए जाने वाले कमांड को निर्दिष्ट करता है और कमांड सर्वर पर संग्रहीत रहते हैं -> क्लाइंट कमांड चुन सकता है, लेकिन उन्हें परिभाषित नहीं कर सकता
- सर्वर सॉफ़्टवेयर को यथासंभव कम operating system permissions के साथ चलाएँ
- सर्वर द्वारा प्राप्त सभी पैकेट blocklist में जोड़ दिए जाते हैं ताकि replay से सुरक्षा मिल सके
- (WIP) DoS सुरक्षा
उपयोग उदाहरण : single packet authorization (SPA)
सर्वर की सुरक्षा के लिए SSH को पूरी तरह बंद करने के बजाय, SSH पोर्ट को थोड़े समय के लिए खोलकर फिर बंद करने का तरीका अपनाया जा सकता है
address = "0.0.0.0:8080" # Ruroco सर्वर जिस पते पर सुनता है (यदि systemd/ruroco.socket का उपयोग नहीं किया जा रहा है)
config_dir = "/etc/ruroco/" # वह पथ जहाँ कॉन्फ़िगरेशन फ़ाइलें संग्रहीत होती हैं
[commands]
# SSH खोलें (केवल उस IP पते के लिए जिससे अनुरोध आया है)
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"
# SSH बंद करें (केवल उस IP पते के लिए जिससे अनुरोध आया है)
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"
- सर्वर पर इस तरह Ruroco कॉन्फ़िगर करें और क्लाइंट साइड पर निम्न कमांड चलाएँ
ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5 - सर्वर RSA का उपयोग करके सत्यापित करता है कि क्लाइंट को संबंधित कमांड चलाने का अधिकार है, और फिर
open_sshके अंतर्गत परिभाषित कमांड चलाता है --deadlineआर्ग्युमेंट का अर्थ है कि कमांड चलाने के 5 सेकंड के भीतर सर्वर पर कमांड शुरू हो जानी चाहिए- SSH पोर्ट तक पहुंच केवल उसी IP के लिए अनुमति दी जाती है जिससे UDP पैकेट भेजा गया था
- बेशक, जैसे SSH पोर्ट इंटरनेट पर एक्सपोज़ होने पर किया जाता है, वैसे ही अन्य सभी सुरक्षा सख्ती के उपाय भी करने चाहिए
- कॉन्फ़िगरेशन फ़ाइल में और कमांड जोड़कर मनचाही संख्या में कमांड परिभाषित किए जा सकते हैं
अभी कोई टिप्पणी नहीं है.