एक स्क्रिप्ट के माध्यम से (सिस्टम विभाजन से सब कुछ पोंछने के लिए) आत्म-विनाश के लिए लिनक्स डिविटेशन कैसे सेट करें


11

मैं लाइसेंस प्राप्त सॉफ्टवेयर का उपयोग करने वाले पाठ्यक्रम को सुविधाजनक बनाने में मदद करूंगा। सॉफ्टवेयर कुछ महंगा है और केवल समवर्ती प्रतिष्ठानों की सीमित संख्या की अनुमति देता है, इसलिए मैं क्या करूंगा कि एक एन्क्रिप्टेड वर्चुअल डिस्क पर उबंटू (या लिनक्स के कुछ अन्य स्वाद) के साथ एक इंस्टाल स्थापित किया जाए। बस होने से किसी भी अनावश्यक समुद्री डाकू की संभावना को कम करने के लिए, मैं पाठ्यक्रम के अंतिम दिन के तुरंत बाद चलाने के लिए एक स्व-विनाश वाली स्क्रिप्ट को शेड्यूल (क्रोन का उपयोग करके) करना चाहता हूं। (या अंतिम दिन के बाद बूट के पहले उदाहरण के दौरान नवीनतम पर।)

जितना मैं फ्रीवेयर और ओपन-सोर्स प्रोजेक्ट्स (और सामान्य रूप से क्राउड सोर्सिंग) से प्यार करता हूं, मेरे पास वाणिज्यिक सॉफ्टवेयर के लिए एक स्वस्थ सम्मान और डेवलपर्स द्वारा एक अच्छे उत्पाद के साथ आने का समय और प्रयास है - मैं नहीं अनजाने में अपने खून, पसीने और आँसू की चोरी में योगदान करना चाहते हैं।

लिनक्स मशीन पर इस सेल्फ डिस्ट्रक्ट स्क्रिप्ट को कैसे कार्यान्वित किया जाए, इस बारे में किसी भी विचार की सराहना करेंगे।


2
मुझे यकीन नहीं है कि यह क्यों ठुकरा दिया गया था। यह वैध मूल्य के साथ एक वैध प्रश्न है।
बाइनरीमिसिट

अच्छा प्रश्न। सॉफ्टवेयर डेवलपर्स की तलाश के लिए धन्यवाद। +1
D'rvit

मुझे यकीन नहीं है कि यह वास्तव में आपके लक्ष्यों को आगे बढ़ाने वाला है। यदि वे सॉफ़्टवेयर चोरी करने की योजना बनाते हैं, तो वे संभवतः पाठ्यक्रम के दौरान वीएम की एक प्रति हड़पने जा रहे हैं। वे अपने फुर्सत के पलों को बयां कर सकेंगे। वे हमेशा एक लाइव-सीडी से वीएम को बूट कर सकते हैं ताकि आप क्या किया यह पता लगाने के लिए बात की जांच कर सकें।
माइकल कोहेन

सभी को धन्यवाद जिन्होंने जवाब दिया, मैं इनपुट के लिए आभारी हूं। :)
टेकटेकमो

जवाबों:


3

जैसा कि कई बार उल्लेख किया गया है, एन्क्रिप्ट की गई छवि को हटाना पर्याप्त से अधिक होना चाहिए। एक अन्य तरीका यह होगा कि एप्लिकेशन को अपने विभाजन पर स्थापित किया जाए और बाद में इसे dd से मिटा दिया जाए।

dd if=/dev/zero of=/dev/TARGETPARTITION bs=1M

यह शून्य के साथ सब कुछ अधिलेखित कर देगा जो पुनर्प्राप्ति से परे डेटा को हटाने के लिए पर्याप्त है।


तो बस स्पष्ट करने के लिए, एक बार स्क्रिप्ट निष्पादित होने पर सिस्टम खुद को इस मामले में (इस मामले में आभासी) विभाजन से मिटा देगा, और कोई रद्द नहीं है? ऐसा लगता है कि मैं क्या करने का इरादा रखता हूं। :) क्या होगा, उदाहरण के लिए, मैं वर्चुअल मशीन को केवल कुछ सेकंड के लिए कमांड निष्पादित करने की शक्ति बताता हूं? हालांकि सिस्टम सुलभ हो सकता है, यह अभी भी सैद्धांतिक रूप से डिस्क के अपरिवर्तित भागों को माउंट करना संभव होगा? शायद स्क्रिप्ट का पहला चरण पहले सॉफ़्टवेयर को हटा दिया जाना चाहिए, और फिर स्वयं-विनाश स्क्रिप्ट को चलाना चाहिए?
टेकटेकमो

ठीक है, अगर उपयोगकर्ता उचित अनुमतियों के साथ एक उपयोगकर्ता के रूप में लॉग इन किया गया है, और अगर उन्हें पता है कि क्या चल रहा है, तो वे सिद्धांत रूप में, 'dd' कमांड को मार सकते हैं, लेकिन इससे पहले कि यह बहुत नुकसान न करे (विभाजन तालिकाओं उदाहरण के लिए, डिस्क के सामने के पास हैं)।
माइकल कोहेन

6

सब कुछ नष्ट करने के लिए एक छोटे से अधिक लगता है, कैसे के बारे में सिर्फ हटाने के लिए / अपने कार्यक्रम को रोकने के लिए।

rm -rf /path/to/your/program/ 

या आपके बारे में एक सामान्य लाइसेंसिंग सर्वर कैसे लागू होता है जिसे प्रोग्राम को शुरू करने से पहले संपर्क करना चाहिए?


अपडेट : एक खुले प्रश्न के रूप में, क्या आप अपने प्रोग्राम के साथ-साथ उपयोगकर्ताओं के डेटा को नष्ट करने की योजना बना रहे हैं? या क्या यूजर्स का डेटा कहीं और स्टोर किया गया है?

और हो सकता है कि उपयोगकर्ता को किसी प्रकार का नगवेयर नोटिस प्राप्त हो जाए, जिससे आप सब कुछ नष्ट कर दें! कुछ इस तरह

- "यदि आप अधिक पैसे नहीं देते हैं, तो आपके पास X दिन बचे हैं, तो यह सॉफ्टवेयर स्वयं नष्ट हो जाएगा।"

एक उपयोगकर्ता के रूप में मैं वास्तव में परेशान होऊंगा यदि आपने मेरे कंप्यूटर में कुछ भी नष्ट कर दिया है, यहां तक ​​कि मुझे यह बताए बिना कि यह होने वाला था (इसलिए मुझे कम से कम परिणाम को प्रभावित करने का कुछ मौका मिला)।

यह आपकी कंपनी के लिए बुरा है अगर आपके सभी भुगतान करने वाले आपसे नफरत करते हैं।


जैसा कि मैंने उल्लेख किया था कि सॉफ्टवेयर एक वर्चुअल ड्राइव में होगा जो विशेष रूप से सिर्फ कोर्स के लिए बनाया गया था। यह किसी भी उपयोगकर्ता फ़ाइलों के बिना एक अलग वातावरण है जो विशेष रूप से प्रतिभागियों को प्रशिक्षण w / सॉफ्टवेयर के एक टुकड़े पर कुछ हाथ देने की अनुमति देता है। एक चीज़ जो मैं संभालना चाहता हूं, वह है कि वर्चुअल ड्राइव पर कोई कॉपी करना, कहना, एक यूएसबी ड्राइव और अंततः सॉफ्टवेयर को पायरेट करना। इस प्रकार, मैं जानबूझकर इस तरह से कुछ होने की संभावना को कम करने के लिए पाठ्यक्रम के बाद सिस्टम को आत्म विनाश के लिए सेट करना चाहता हूं। आपकी चिंता निश्चित रूप से मान्य है, साझा करने के लिए धन्यवाद। :)
Techtechmo

वैसे वे किसी भी तरह से उपयोग किए जाने वाले सॉफ़्टवेयर का लाइसेंस नहीं खरीद रहे हैं। और यह देखते हुए कि दुनिया के मेरे हिस्से में कितनी कुख्यात चोरी है, मैं इसके बजाय सबसे खराब होने की तैयारी कर रहा हूं, लेकिन सबसे अच्छे के लिए काम कर रहा हूं। :)
टेकटेकमो

2

थोड़ा पुराना लेकिन ठीक है। उस सेटअप के अनुसार, मैं वास्तव में केवल VM फाइल सिस्टम को एन्क्रिप्ट करूंगा, और सत्रों के दौरान (यह मानते हुए कि वे नेटवर्क हैं) आप दूरस्थ रूप से लॉगिन करेंगे। यदि वे वीएम की नकल करेंगे तो उन्हें पासवर्ड को ब्रूटफोर्स करना होगा, शायद ही आपके उपयोगकर्ता को :) तक होना चाहिए

यदि आपको कोई आपत्ति नहीं है तो आप एक माउंटपॉइंट को एन्क्रिप्ट कर सकते हैं: नोट: यह सुरक्षा प्रणाली कुछ देशों / राज्यों में स्पष्ट रूप से अवैध है? (अच्छी तरह से अमेरिका में लेकिन आप इंग्लैंड से प्रतीत होते हैं?):

एक एन्क्रिप्टेड, पासवर्डयुक्त माउंट की स्थापना:

dd if=/dev/urandom of=/home/user/virtualfolder bs=16065b count=100  
modprobe loop  
modprobe cryptoloop  
modprobe aes  
losetup -e aes /dev/loop1 ./virtualfolder  
password: <enter your password here which you don't show to the users>  
mkreiserfs /dev/loop1  
mkdir /theprogram  
mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

अब अपने प्रोग्राम को / -प्रोग्राम में स्थापित / स्थानांतरित करें

(हर बार जब आप एक्सेस करना चाहते हैं / -प्रोग्राम फिर से करें):

बढ़ते

mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

अनमाउंट

umount /theprogram  
losetup -d /dev/loop1  
rmmod aes  
rmmod cryptoloop  
rmmod loop 

जब किया जाता है, तो सॉफ़्टवेयर फ़ोल्डर को यादृच्छिक बाइट्स की एक फ़ाइल की तरह बनाएं।

आप यह भी सुनिश्चित कर सकते हैं कि वीएम सत्र के दौरान वे जिन उपयोगकर्ता खातों का उपयोग करते हैं उनके पास suअधिकार नहीं है कि वे पूरी बात की नकल करें।


0

मुझे नहीं पता कि आपका सेटअप क्या है, लेकिन अगर आपको अपने उपयोगकर्ताओं को ऑन-लाइन करने की आवश्यकता हो सकती है, तो आप एक अलग रणनीति लेना चाहते हैं - जब भी वे इसे चलाते हैं, तो एक नेटवर्क कनेक्शन पर सॉफ़्टवेयर लोड करने का प्रयास करें। यह केवल व्यवहार्य है, और यह आप पर निर्भर करता है कि आप व्यक्तिगत उपयोगकर्ताओं को किसी प्रकार की आईडी जारी करने में सक्षम हों। आपके पास VM पर एक स्टब होगा, और स्टब एक दूरस्थ सर्वर को माउंट करेगा और वहां से बाइनरी चलाएगा। कुछ भी नहीं है कि वे थोड़ा काम के साथ चारों ओर नहीं मिल सकता है, लेकिन यह कम से कम ऑटो-डिस्ट्रक्ट के आसपास होने से कठिन होगा।

वैकल्पिक रूप से, आप दूरस्थ सर्वर कुंजी के साथ प्रतिक्रिया कर सकते हैं, और डिस्क पर प्रोग्राम का एन्क्रिप्टेड संस्करण रख सकते हैं - स्टब सर्वर को कुंजी के लिए प्रश्न करता है, डिक्रिप्ट करता है और प्रोग्राम को चलाता है, डिक्रिप्ट बाइनरी को उपयुक्त के रूप में हटाता है। यह भी चारों ओर पाने के लिए कठिन होगा, लेकिन फिर से अद्वितीय उपयोगकर्ता आईडी (जो आपके लिए संभव नहीं हो सकता है) की आवश्यकता होती है।


अच्छा विचार है, लेकिन मुझे लगता है कि कुछ इस तरह की व्यवस्था को लागू करने के साथ कुछ अनुभव और आराम की आवश्यकता होगी - दुर्भाग्य से मेरे पास वह लक्जरी नहीं है। :) सॉफ्टवेयर के साथ हैंड्स-ऑन कमरे में किया जाएगा, जहां मुझे सुविधा होगी, हालांकि मैं अपने कंधे पर नज़र रखना नहीं चाहता। प्रश्न में आपकी टिप्पणी ठीक वही है जो मैं अनुमान लगा रहा हूं - भले ही वे वीएम की एक प्रति ले लें, अगली बार जब वे इसे बूट करेंगे तो वीएम को खुद को सब कुछ साफ करना चाहिए। (मैं भी सब कुछ स्क्रिप्ट मिटा के अस्तित्व का उल्लेख नहीं किया जाएगा।)
Techtechmo

समस्या यह है कि एक बार जब वे वीएम को खुद को नष्ट करते हुए देखते हैं, तो वे अपने यूएसबी स्टिक से एक और कॉपी प्राप्त करेंगे, वीएम को एक लाइव सीडी से बूट करेंगे और तब तक इधर-उधर टटोलना शुरू करेंगे जब तक उन्हें यह पता नहीं लग जाता है कि यह खुद को मारने के लिए क्या करता है। जब तक आप इस तथ्य से सहज हैं कि एक पर्याप्त रूप से प्रेरित उपयोगकर्ता इसके चारों ओर मिल सकता है, तब तक आप सुनहरे हैं। फिर आपको बस इतना करना है कि प्रत्येक वर्ग से पहले वीएम छवि को अपडेट करना है ...
माइकल कोहेन

मैं स्थापित करने पर VM फाइलसिस्टम एन्क्रिप्ट कर रहा हूँ (उम्मीद है - यह मेरा पहला प्रयास होगा टी ऐसा करते हैं), तो यह है कि एक और साधन के रूप में चोर हो जाएगा। जैसा कि मैंने कहा था, इस परेशानी के सभी होने की संभावना अधिक होगी - औसत उपयोगकर्ता यह नहीं सोच सकता है कि यह चारों ओर poking रखने के लिए परेशानी के लायक है। लेकिन मैं वास्तव में वैसे भी सबसे खराब मान सकता हूँ - चोरी यहाँ आदर्श है। सॉफ्टवेयर जो मैं उपयोग कर रहा हूँ वह विंडोज़ के लिए देशी है: अच्छी बात यह वाइन के माध्यम से लिनक्स पर काम करती है। और मैं लिनक्स पर सब कुछ तैयार करता हूं क्योंकि ईमानदारी से यह सॉफ्टवेयर को वहां से पायरेट करने के लिए बहुत कठिन होगा। एक बार फिर धन्यवाद!
Techtechmo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.