इन-हाउस croc रिले सर्वर के साथ बड़े डेटा ट्रांसफर की गति बढ़ाना
यदि आप एक IT पेशेवर हैं, जो सुरक्षा नियमों के कारण बाहरी क्लाउड स्टोरेज का उपयोग नहीं कर सकते हैं और हर बार बड़े डेटा को स्थानांतरित करते समय अनुमोदन प्रक्रियाओं के कारण समय बर्बाद करते हैं, तो यह लेख आपके लिए समाधान है। croc PAKE प्रोटोकॉल का उपयोग करता है, इसलिए रिले सर्वर भी डेटा को नहीं देख सकता है। यहाँ सुरक्षा नीतियों का उल्लंघन किए बिना ट्रांसफ़र गति सुनिश्चित करने के तरीके बताए गए हैं।
1. समर्पित रिले सर्वर के साथ फ़ायरवॉल अनुमोदन के इंतजार को समाप्त करना
बाहरी सर्वर का उपयोग किए बिना DMZ क्षेत्र में सीधे रिले सर्वर रखने से सुरक्षा टीम की अनुमोदन प्रक्रियाओं को छोड़ा जा सकता है। croc नियंत्रण संकेतों के लिए TCP 9009 पोर्ट का उपयोग करता है, और डेटा ट्रांसफ़र के लिए 9010 से 9013 पोर्ट का उपयोग करता है। इस बैंड को फिक्स करने से फ़ायरवॉल नीति को पंजीकृत करना संभव हो जाता है।
वातावरण को अलग करने के लिए Docker के साथ कंटेनर चलाएँ।
`bash
docker network create --driver bridge croc-dmz-net
docker run -d --name croc-relay
-p 9009:9009 -p 9010-9013:9010-9013
-e CROC_PASS='비밀번호'
docker.io/schollz/croc:latest
`
कॉर्पोरेट सर्वर पर हर बार सर्वर पता और पासवर्ड दर्ज करने से बचने के लिए, प्रोफाइल फ़ाइल (~/.bashrc) में निम्नलिखित सेटिंग्स जोड़ें।
`bash
export CROC_RELAY="내부서버IP:9009"
export CROC_PASS='비밀번호'
`
ऐसा करने से, बाहरी सर्वर से गुजरे बिना डेटा ट्रांसफ़र अनुमोदन प्रतीक्षा समय समाप्त हो जाता है।
2. systemd के साथ रिले सर्वर का स्वचालित निष्पादन
हर बार सर्वर रीबूट होने पर मैन्युअल रूप से रिले शुरू करना अक्षम है। एक systemd यूनिट फ़ाइल बनाएँ और प्रक्रिया को हमेशा चालू रखें। root के बजाय nobody अकाउंट का उपयोग करने से सुरक्षा घटनाओं के मामले में नुकसान को कम किया जा सकता है।
/etc/systemd/system/croc-relay.service फ़ाइल बनाएँ।
`ini
[Unit]
Description=croc relay service
[Service]
User=nobody
ExecStart=/usr/local/bin/croc relay --ports "9009,9010,9011,9012,9013"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
`
लिखने के बाद, systemctl daemon-reload चलाएँ और systemctl enable --now croc-relay.service कमांड के साथ सेवा शुरू करें। यदि सर्वर क्रैश हो जाता है, तो यह 5 सेकंड के भीतर अपने आप ठीक हो जाएगा।
3. बड़े फ़ाइल अखंडता सुनिश्चित करने और ट्रांसफ़र टिप्स
जब आप सैकड़ों गीगाबाइट के प्रोजेक्ट फ़ोल्डर स्थानांतरित करते हैं, तो आपको फ़ाइलों के खोने से बचना चाहिए। tar के साथ संपीड़ित करने और चेकसम की जाँच करने की विधि का उपयोग करें।
ट्रांसफ़र स्क्रिप्ट का उदाहरण यहाँ दिया गया है।
`bash
प्रेषक पक्ष
tar -czf data.tar.gz ./project_folder
sha256sum data.tar.gz > checksum.txt
croc send data.tar.gz checksum.txt
प्राप्तकर्ता पक्ष
croc recv [코드]
sha256sum -c checksum.txt && tar -xzf data.tar.gz
`
यह CVE-2023-43616 जैसी डीकंप्रेसन कमजोरियों से बचते हुए, ट्रांसफ़र के तुरंत बाद यह सत्यापित करने की अनुमति देता है कि डेटा दूषित नहीं हुआ है।
4. नेटवर्क सेटिंग ट्यूनिंग के साथ गति बनाए रखना
जब डेटा ट्रांसफ़र टेराबाइट स्तर तक पहुँच जाता है, तो डिफ़ॉल्ट सेटिंग्स के साथ बाधाएँ उत्पन्न होती हैं। सत्र को डिस्कनेक्ट होने से बचाने के लिए /etc/sysctl.conf में सॉकेट पैरामीटर जोड़ें।
`bash
net.ipv4.tcp_keepalive_time=60
net.core.rmem_max=134217728
`
TCP कीप-अलाइव अवधि को 60 सेकंड तक कम करने से उस समस्या का समाधान हो सकता है जहाँ स्टेटफुल फ़ायरवॉल जबरन सत्र को समाप्त कर देते हैं। यदि कई टीमें एक साथ इस सर्वर का उपयोग करती हैं, तो टीम के अनुसार पोर्ट बैंड (जैसे 9010-9014, 9020-9024) आवंटित करें और अलग-अलग कंटेनर चलाएँ। यदि फ़ायरवॉल सेटिंग्स को फिक्स रखा जाता है, तो टीमें बिना किसी हस्तक्षेप के स्थिर ट्रांसफ़र कर सकती हैं।