শেল স্ক্রিপ্টগুলিতে পাসওয়ার্ড লুকানো হচ্ছে


23

আমি কীভাবে শেল স্ক্রিপ্টগুলিতে একটি পাসওয়ার্ড আড়াল করতে পারি? এমন অনেকগুলি স্ক্রিপ্ট রয়েছে যা ডাটাবেস অ্যাক্সেস করছে। আমরা স্ক্রিপ্টটি খুললে অন্যরা ব্যবহারকারীর নাম এবং পাসওয়ার্ডও সচেতন করে। সুতরাং কেউ যদি কীভাবে আড়াল করতে জানে তবে দয়া করে আমাকে জানান।

আমার একটি উপায় আছে: কোনও ফাইলে পাসওয়ার্ড রাখুন এবং ফাইলটিকে লুকানো হিসাবে তৈরি করুন এবং কেউই ফাইল অ্যাক্সেস করতে পারবেন না (অনুমতি পরিবর্তন করুন এবং ডাটাবেসে অ্যাক্সেস করার সময় স্ক্রিপ্টে ফাইলটি ব্যবহার করুন)।

উত্তর:


35

প্রথমত , বেশিরভাগ লোক যেমন ইতিমধ্যে বলেছে, শংসাপত্রগুলি স্ক্রিপ্ট থেকে পৃথক রাখা অপরিহার্য। (বর্ধিত সুরক্ষা ছাড়াও এর অর্থ হ'ল আপনি বিভিন্ন শংসাপত্র সহ বেশ কয়েকটি সিস্টেমে একই স্ক্রিপ্টটি পুনরায় ব্যবহার করতে পারেন))

দ্বিতীয়ত , আপনাকে কেবল শংসাপত্রগুলির সুরক্ষাই বিবেচনা করা উচিত নয়, তবে / যখন এই শংসাপত্রগুলির সাথে আপস করা হয় তখন তার প্রভাবও বিবেচনা করা উচিত। ডাটাবেসে সমস্ত অ্যাক্সেসের জন্য আপনার কাছে কেবল একটি পাসওয়ার্ড থাকা উচিত নয়, আপনার বিভিন্ন স্তরের অ্যাক্সেসের সাথে বিভিন্ন শংসাপত্র থাকতে হবে। উদাহরণস্বরূপ, আপনার কাছে এমন একটি ডিবি ব্যবহারকারী থাকতে পারে যা ডাটাবেসে অনুসন্ধান করার ক্ষমতা রাখে - সেই ব্যবহারকারীর কেবল পঠনযোগ্য অ্যাক্সেস থাকা উচিত। অন্য ব্যবহারকারীর কাছে নতুন রেকর্ড সন্নিবেশ করার অনুমতি থাকতে পারে তবে সেগুলি মোছার নয়। তৃতীয়টির কাছে রেকর্ড মোছার অনুমতি থাকতে পারে।

প্রতিটি অ্যাকাউন্টের অনুমতিগুলি সীমাবদ্ধ করার পাশাপাশি, প্রতিটি অ্যাকাউন্ট কোথা থেকে ব্যবহার করা যেতে পারে সে সম্পর্কেও আপনার বাধা থাকতে হবে। উদাহরণস্বরূপ, আপনার ওয়েব সার্ভার দ্বারা ব্যবহৃত অ্যাকাউন্টটি ওয়েব সার্ভারের চেয়ে অন্য কোনও আইপি ঠিকানা থেকে সংযোগ করার অনুমতি দেওয়া উচিত নয়। ডাটাবেসটিতে সম্পূর্ণ রুটের অনুমতি সহ একটি অ্যাকাউন্ট প্রকৃতপক্ষে যেখানে এটি সংযোগ করতে পারে এবং ইন্টারেক্টিভভাবে অন্য কখনও ব্যবহার করা উচিত নয় সেই ক্ষেত্রে খুব সীমাবদ্ধ হওয়া উচিত। প্রতিটি অ্যাকাউন্টের দ্বারা ঠিক কী করা যায় তা সীমাবদ্ধ করতে ডাটাবেসে সঞ্চিত প্রক্রিয়াগুলিও বিবেচনা করুন।

এই বিধিনিষেধগুলি সিস্টেমের ডিবি-সার্ভার দিকে প্রয়োগ করা দরকার, যাতে ক্লায়েন্টের পক্ষ থেকে আপস করা হলেও, বিধিনিষেধগুলি এটি থেকে পরিবর্তন করা যায় না। (এবং, স্পষ্টতই, ডিবি কনফিগারেশন ছাড়াও ফায়ারওয়াল ইত্যাদির সাহায্যে ডিবি সার্ভারটি সুরক্ষিত করা দরকার ...)

কোনও ডিবি অ্যাকাউন্টের ক্ষেত্রে কেবলমাত্র কেবলমাত্র কেবলমাত্র পঠনযোগ্য অ্যাক্সেসের অনুমতি দেওয়া হয়েছে এবং কেবলমাত্র একটি নির্দিষ্ট আইপি ঠিকানা থেকে, ডেটার সংবেদনশীলতা এবং হোস্টের স্ক্রিপ্টের সুরক্ষার উপর নির্ভর করে আপনার আর কোনও শংসাপত্রের প্রয়োজন নেই might থেকে চালানো হচ্ছে। একটি উদাহরণ হতে পারে আপনার ওয়েবসাইটে অনুসন্ধানের ফর্ম, যা কেবল এমন কোনও ব্যবহারকারীর সাথে চালানো যেতে পারে যা কেবলমাত্র সঞ্চিত প্রক্রিয়া ব্যবহারের অনুমতিপ্রাপ্ত যা কেবলমাত্র ওয়েব পৃষ্ঠায় উপস্থাপন করা তথ্যগুলি নিষ্কাশন করে। এই ক্ষেত্রে, পাসওয়ার্ড যুক্ত করা কোনও অতিরিক্ত সুরক্ষা দেয় না কারণ যে তথ্যটি ইতিমধ্যে জনসাধারণের কাছে বোঝানো হয়েছে এবং ব্যবহারকারী আরও সংবেদনশীল হতে পারে এমন কোনও ডেটা অ্যাক্সেস করতে পারে না।

এটিও নিশ্চিত করে নিন যে ডাটাবেসের সাথে সংযোগটি টিএলএস ব্যবহার করে তৈরি হয়েছে, বা নেটওয়ার্কে যে কেউ শুনছেন আপনার শংসাপত্রগুলি পেতে পারে।

তৃতীয়ত , কোন ধরণের শংসাপত্রগুলি ব্যবহার করবেন তা বিবেচনা করুন। পাসওয়ার্ডগুলি কেবল একটি ফর্ম এবং সবচেয়ে সুরক্ষিত নয়। আপনি এর পরিবর্তে কিছু সরকারী / ব্যক্তিগত কী জুড়ি, বা AD / PAM বা এই জাতীয় পছন্দ ব্যবহার করতে পারেন।

চতুর্থত , স্ক্রিপ্টটি চালিত হবে সেই শর্তগুলির মধ্যে বিবেচনা করুন:

এটি যদি ইন্টারেক্টিভভাবে চালিত হয়, তবে আপনার পাসওয়ার্ড, বা ব্যক্তিগত পাসওয়ার্ডটি প্রাইভেট কী বা প্রাইভেট কীতে প্রবেশ করাতে হবে, বা কোনও বৈধ কার্বেরোস টিকিট দিয়ে লগ ইন করতে হবে, যখন আপনি এটি চালাবেন - অন্য কথায়, স্ক্রিপ্টটি এটি পাওয়া উচিত কোনও ফাইল থেকে সেগুলি পড়ার পরিবর্তে এটি চালানোর সময় সরাসরি আপনার কাছ থেকে শংসাপত্রগুলি।

যদি এটি কোনও ওয়েবসার থেকে চালিত হয়, আপনি ওয়েবসারভার শুরু করার সময় শংসাপত্রগুলি সেট আপ করার বিষয়টি বিবেচনা করুন। এখানে এসএসএল শংসাপত্রগুলির একটি ভাল উদাহরণ - তাদের একটি সার্বজনীন শংসাপত্র এবং একটি প্রাইভেট কী রয়েছে এবং ব্যক্তিগত কীটির পাসওয়ার্ড রয়েছে। আপনি ওয়েব সার্ভারে প্রাইভেট কী সংরক্ষণ করতে পারেন, তবে আপনি যখন অ্যাপাচি শুরু করবেন তখন আপনাকে এটিতে পাসওয়ার্ড প্রবেশ করতে হবে। আপনার কাছে কোনও ধরণের হার্ডওয়্যার, যেমন একটি ফিজিকাল কার্ড বা এইচএসএম এর শংসাপত্র থাকতে পারে, যা সার্ভার শুরু হয়ে গেলে তা সরানো বা লক করা যায়। (অবশ্যই, এই পদ্ধতির খারাপ দিকটি হ'ল যদি কিছু ঘটে থাকে তবে সার্ভার নিজে থেকে পুনরায় আরম্ভ করতে পারে না I আমি এটি আমার সিস্টেমের সাথে আপোস করার ঝুঁকির চেয়ে বেশি পছন্দ করব, তবে আপনার মাইলেজটি ভিন্ন হতে পারে ...)

যদি স্ক্রিপ্টটি ক্রোন থেকে চালানো হয় তবে এটি শক্ত অংশ। আপনি নিজের সিস্টেমে কোথাও শংসাপত্রগুলি পড়ে থাকতে চান না যেখানে কেউ সেগুলিকে অ্যাক্সেস করতে পারে - তবে আপনি কি তাদের চারপাশে শুয়ে থাকতে চান যাতে আপনার স্ক্রিপ্ট এগুলি অ্যাক্সেস করতে পারে, তাই না? ঠিক আছে, ঠিক না। স্ক্রিপ্টটি ঠিক কী করছে তা বিবেচনা করুন। এটি ডাটাবেসে কী অনুমতি দরকার? ভুল ব্যক্তি যদি এই অনুমতিগুলির সাথে সংযোগ স্থাপন করে তবে তাতে কী সমস্যা হয় তা এটিকে কী সীমাবদ্ধ করা যেতে পারে? আপনি অন্য ডিভাইস সার্ভারে স্ক্রিপ্টটি সরাসরি চালাতে পারেন যা অন্য ব্যবহারকারীদের থাকা সার্ভারের পরিবর্তে অন্য কারও অ্যাক্সেস নেই? যদি, কোনও কারণে যা আমি ভাবতে পারি না, তবে অবশ্যই আপনার অবশ্যই অনিরাপদ সার্ভারে স্ক্রিপ্ট চালু থাকতে হবে এবং এটি অবশ্যই হবে বিপজ্জনক / ধ্বংসাত্মক কিছু করতে সক্ষম হোন ... আপনার আর্কিটেকচারটি পুনরায় ভাবার জন্য এখন সময় ভাল time

পঞ্চম , আপনি যদি আপনার ডাটাবেসের সুরক্ষাটিকে মূল্য দেন, আপনার অন্য লোকেরা যে সার্ভারগুলিতে অ্যাক্সেস রয়েছে সেগুলিতে এই স্ক্রিপ্টগুলি চালানো উচিত নয়। কেউ আপনার সিস্টেমে লগ ইন করতে হয়, তাহলে তারা হবে আপনার শংসাপত্রগুলি এ পেতে সম্ভাবনা আছে। উদাহরণস্বরূপ, কোনও এসএসএল শংসাপত্রের সাথে একটি ওয়েবসারভারের ক্ষেত্রে, কোনও ব্যক্তি রুট অর্জন করতে এবং httpd প্রক্রিয়াটির মেমরির ক্ষেত্রটি অ্যাক্সেস করতে এবং শংসাপত্রগুলি বের করতে সক্ষম হওয়ার কমপক্ষে একটি তাত্ত্বিক সম্ভাবনা রয়েছে। সাম্প্রতিক সময়ে কমপক্ষে একটির শোষণ হয়েছে যেখানে এটি এসএসএলে করা যেতে পারে, এমনকি আক্রমণকারীকে লগ ইন করার প্রয়োজন হয় না।

আপনার ব্যবহারকারীরা কী করতে পারে তা সীমাবদ্ধ করার জন্য SELinux বা অ্যাপারমার বা আপনার সিস্টেমের জন্য যা কিছু উপলব্ধ তা ব্যবহার করার বিষয়টিও বিবেচনা করুন। তারা শংসাপত্রগুলিতে অ্যাক্সেস অর্জন করতে পরিচালিত করেও ব্যবহারকারীদের ডাটাবেসগুলির সাথে সংযোগ স্থাপনের চেষ্টা করার এমনকি আপনার পক্ষে অনুমতি দেওয়া সম্ভব করবে make

যদি এই সমস্ত কিছু আপনার কাছে ওভারকিলের মতো মনে হয় এবং আপনি এটি করার পক্ষে সময় বা সামর্থ্য রাখতে না পারেন - তবে আমার (অহংকারী এবং অভিজাত) মতামতে আপনার ডাটাবেসে কোনও গুরুত্বপূর্ণ বা সংবেদনশীল কিছু সংরক্ষণ করা উচিত নয়। এবং যদি আপনি কোনও গুরুত্বপূর্ণ বা সংবেদনশীল কোনও জিনিস সংরক্ষণ করেন না, তবে যেখানে আপনি আপনার শংসাপত্রগুলি সংরক্ষণ করবেন তাও গুরুত্বপূর্ণ নয় - এই ক্ষেত্রে কেন কোনও পাসওয়ার্ড ব্যবহার করবেন না?

সর্বশেষে , আপনি একেবারে পরিচয়পত্র কিছু সংরক্ষণ না এড়াতে পারি, তাহলে আপনি পরিচয়পত্র শুধুমাত্র পাঠযোগ্য এবং মূল এবং মূল মালিকানাধীন একটি অতীব অস্থায়ী ভিত্তিতে মালিকানা মঞ্জুর করেন পারা গেলে তার (একটি স্ক্রিপ্ট দ্বারা তা করার অনুরোধ কারণ আপনার স্ক্রিপ্টটি উচিত থাকতে পারে না হতে একেবারে প্রয়োজনীয় না হলে মূল হিসাবে চালান, এবং একটি ডেটাবেসে সংযুক্তি এটি প্রয়োজনীয় করে না)। তবে এটি এখনও ভাল ধারণা নয়।


9
মোটেও অহংকারী এবং অভিজাত নয়। নাহলে আমিও আছি। "চুরির ঘটনাটি ভেঙে গেলে আমি কীভাবে আমার গহনাগুলি রক্ষা করতে পারি?" "এটিকে এমন জায়গায় সংরক্ষণ করুন যা বল্টেড / ldালাইযুক্ত। "এটি খুব ঝামেলা, আমি কেবল একটি পোর্টেবল নিরাপদ পেয়ে যাব এবং একটি হুক থেকে চাবিটি ঝুলিয়ে দেব" " "তাহলে কোনও সেফ ব্যবহার করে বিরক্ত করবেন না।" বিশিষ্ট বুদ্ধিমান পরামর্শ।
ওয়াইল্ডকার্ড

12

প্রথমত, যদি কোনও উপায় থাকে তবে প্রথমে কোনও স্ক্রিপ্টের ভিতরে বা পাশের পাসওয়ার্ডটি সংরক্ষণ না করে আপনি জিনিসগুলি পরিবর্তন করতে পারেন, আপনার এটি করার জন্য সর্বাত্মক প্রচেষ্টা করা উচিত। জেনি ডি এর উত্তরটিতে সেই প্রভাবটির জন্য প্রচুর ভাল পরামর্শ রয়েছে।

অন্যথায়, সীমাবদ্ধ অনুমতি নিয়ে একটি পৃথক ফাইলে পাসওয়ার্ড রাখার আপনার ধারণাটি বেশ বেশি। আপনি উদাহরণস্বরূপ মূল স্ক্রিপ্ট থেকে ফাইলটি উত্স করতে পারেন:

. /usr/local/etc/secret-password-here

আপনি মূল স্ক্রিপ্টের অনুমতিগুলিও সীমাবদ্ধ করতে পারেন যাতে কেবল অনুমোদিত ব্যক্তিরা এটি সম্পাদন করতে পারে, তবে আপনি কেবলমাত্র একটি পাসওয়ার্ড হিসাবেই প্রস্তাবিত এবং একটি সীমাবদ্ধ ফাইলে সংরক্ষণ করে রাখাই ভাল। এই পদ্ধতিতে আপনি কোডটি নিজেই পরিদর্শন করতে পারবেন (সংবেদনশীল গোপনীয়তা ছাড়াই), সংস্করণ-নিয়ন্ত্রণ এবং আরও সহজে স্ক্রিপ্টের অনুলিপি, ইত্যাদি ...


@ বাসাইলস্টারিঙ্কেভিচ আহ, কিন্তু আমি দেখতে পাচ্ছি যে এটিতে " /usr/local/etcএকটি প্রতীকী লিঙ্কও হতে পারে " বলেছে /etc/local। আমি সেটা মিস করছিলাম. সুতরাং আপনিও ঠিক বলেছেন তবে এটি একটি মায় তাই এটি alচ্ছিক। তবে হ্যাঁ, এটি বেশি গুরুত্ব দেয় না এবং ব্যক্তিগত পছন্দ।
সেলেদা

1
আমি ব্যাকআপ করছি /etc/ তবে না /usr/local/ (যা আমি ধরে নিই যে ডিস্ক ক্রাশের পরে পুনর্নির্মাণ করা যেতে পারে)
বেসাইল স্টারিনকিভিচ

ব্যাকআপ সম্পর্কে ন্যায্য পয়েন্ট
সেলেদা

3

অন্যান্য উত্তর সুরাহা আছে কিভাবে , কিন্তু আমি বিবেচনা করব কিনা । আপনার ব্যবহারকারীরা কোন ধরণের ডাটাবেসের সাথে সংযুক্ত হচ্ছে তার উপর নির্ভর করে আপনার কাছে ইতিমধ্যে একটি উপযুক্ত পদ্ধতি থাকতে পারে যা ইতিমধ্যে সেই ক্লায়েন্ট প্রোগ্রামগুলি ব্যবহার করেছে, এক্ষেত্রে সেগুলি ব্যবহার করার বিষয়ে নিশ্চিত হন (আমি ভাবছি ~/.mysqlrcবা আমি ~/.pgpass)।

আপনি যদি বেশ কয়েকটি ব্যবহারকারীর ভাগ করে নেওয়া অ্যাকাউন্ট ব্যবহার করে নির্দিষ্ট জিজ্ঞাসা করার জন্য ডাটাবেস অ্যাক্সেস করার দক্ষতা দিচ্ছেন তবে আপনার সম্ভবত এটি করা উচিত নয়। পরিবর্তে, নিশ্চিত হয়ে নিন যে তাদের ডাটাবেসে অ্যাকাউন্ট রয়েছে এবং সেই অ্যাকাউন্টগুলির প্রয়োজনের তুলনায় আর অনুমতি নেই (সম্ভবত এটির বেশিরভাগ অংশে পড়ুন, এবং লেখার অল্প অ্যাক্সেস)। যদি তাদের নির্দিষ্ট টেবিলগুলিতে সুনির্দিষ্ট প্রশ্ন করা দরকার হয় যা তারা অন্যথায় অ্যাক্সেস করতে পারে না তবে SECURTY DEFINERতাদের এটি করার অনুমতি দেওয়ার জন্য সঞ্চিত পদ্ধতি সরবরাহ করুন।

উপরের কোনওটি যদি আপনার শংসাপত্র সংরক্ষণের প্রয়োজন এড়াতে না থাকে তবে অন্যান্য উত্তরগুলি এখানে পড়ুন।


1

আপনার অ্যাক্সেসযোগ্য জায়গায় পাসওয়ার্ডটি লুকানোর ধারণাটি পরিস্থিতি অনুসারে ঠিক হতে পারে।

যদি তথ্যটি পৃথক হয়, তার অর্থ ফাইলটির সহজ সম্পাদনা, যেমন কোনও সহকর্মীর সাথে কোড পর্যালোচনা চলাকালীন এটি প্রদর্শিত হচ্ছে না। তবে বুঝতে পারেন যে আপনার অ্যাকাউন্টে অ্যাক্সেস রয়েছে এমন যে কেউ সহজেই এই জাতীয় ফাইল খুঁজে পেতে পারেন। আমি এই ~/.sshজাতীয় উদ্দেশ্যে একটি সাব-ডাইরেক্টরি ব্যবহার করেছি , সাধারণ কারণে যে sshঅভিযোগ করে যে যদি অ্যাক্সেসের অধিকারগুলি ~/.sshযথেষ্ট পরিমাণে সীমাবদ্ধ না হয়।

ব্যবহারকারীর নাম এবং / অথবা পাসওয়ার্ডগুলির এ জাতীয় ঝলক আটকাতে আপনি অন্যান্য জিনিসগুলি করতে পারেন তবে।

অবরুদ্ধকরণ : আপনি যদি কোনও স্ক্রিপ্ট সম্পাদনা করার সময় কেউ ব্যবহারকারীর নাম বা পাসওয়ার্ড পড়তে না চান তবে আপনি এটি পাঠ্যে রাখতে পারেন তবে সরল পাঠ্য হিসাবে নয়, তবে অবরুদ্ধ। অপ্রকাশিত সংস্করণটি যদি কেউ এর মুখস্থ করে দেখে এর মুখস্থকরণকে যথেষ্ট পরিমাণে প্রতিরোধ করে তবে ডিক্রিপশন পদ্ধতি এবং কীটি সরল দৃষ্টিতে থাকলেও এটি জানা যাবে না। এটি অবশ্যই আপনার অ্যাকাউন্টে অ্যাক্সেস পেয়ে কেউ তুচ্ছভাবে ছদ্মবেশী হবে।

জিপিজি ব্যবহার :

আপনার সিস্টেমের মূল ব্যবহারকারীর দ্বারা আক্রমণের বিরুদ্ধে সম্পূর্ণ প্রমাণ না হলেও gpgএটি আপনার জনসাধারণের একটি ফাইলের মধ্যে ব্যবহারকারীর নাম / পাসওয়ার্ডের জোড়গুলি এনক্রিপ্ট করা এবং স্ক্রিপ্টটি ফাইলটিতে থাকা সামগ্রীটি পুনরুদ্ধার করা (যদি না হয় তবে আপনাকে পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে) ক্যাশে / মেয়াদ শেষ)। আমি জিজিপি-কার্ড ব্যবহার করি যাতে আমি যখন আমার ল্যাপটপটি প্রায় কাছাকাছি রেখে চলে যাই তবে কার্ডটি টানতে বের করি, পিনটি এখনও ক্যাশে থাকলেও কোনও অ্যাক্সেস সম্ভব হয় না। কমপক্ষে যদি আমি কয়েক মিনিটে 20 বার জিনিস চালাই তবে আমাকে কেবল একবার পিন সরবরাহ করতে হবে।

সুরক্ষা সর্বদা সুবিধার সাথে বিপরীতভাবে সম্পর্কিত বলে মনে হয় (সেটআপ করা এবং ব্যবহার করা)।


0

ব্যাশ স্ক্রিপ্টে পাসওয়ার্ডগুলি সংরক্ষণ করার একটি উপায় রয়েছে তবে আপনাকে স্ক্রিপ্টটি এনক্রিপ্ট করতে হবে এবং তা অবিচ্ছিন্ন করতে হবে যাতে এটি আসলে কী ঘটছে তা দেখতে কেউ এটি পড়তে বা কোনও ধরণের ডিবাগার চালাতে না পারে। একটি বাশ / শেল স্ক্রিপ্ট এনক্রিপ্ট এবং অস্পষ্ট করতে এবং এটি আসলে কার্যকর হতে পারে, এখানে অনুলিপি এবং আটকানোর চেষ্টা করুন:

http://www.kinglazy.com/shell-script-encryption-kinglazy-shieldx.htm

উপরের পৃষ্ঠায়, আপনাকে যা করতে হবে তা হ'ল আপনার স্ক্রিপ্ট জমা দেওয়া (আপনি নিজের মানসিক শান্তির জন্য প্রথমে একটি নমুনা স্ক্রিপ্ট জমা দিতে পারেন)। আপনার জন্য একটি জিপ ফাইল তৈরি করা হবে। ডাউনলোড লিঙ্কে ডান ক্লিক করুন এবং আপনার সরবরাহ করা URL টি অনুলিপি করুন। তারপরে, আপনার ইউনিক্স বাক্সে যান এবং নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন।

স্থাপন:

  1. জিপ-ফাইল-এ উইজেট

  2. সদ্য-ডাউনলোড হওয়া জিপ-ফাইলটি আনজিপ করুন

  3. সিডি / টিএমপি / কিংলজিশিয়েলড

  4. ./install.sh / var / tmp / KINGLAZY / SHIELDX- (আপনার স্ক্রিপ্ট-নাম) / হোম / (আপনার ব্যবহারকারীর নাম) -ফোর্স

উপরের ইনস্টল কমান্ডটি আপনার জন্য কি করবে:

  1. এটি আপনার স্ক্রিপ্টের এনক্রিপ্ট করা সংস্করণটি / var / tmp / KINGLAZY / SHIELDX- (আপনার স্ক্রিপ্ট-নাম) ডিরেক্টরিতে ইনস্টল করবে।

  2. এটি / এনক্রিপ্ট করা স্ক্রিপ্টের একটি লিঙ্ক স্থাপন করবে আপনি / home / (আপনার ব্যবহারকারীর নাম) প্রতিস্থাপনের ক্ষেত্রে যে কোনও ডিরেক্টরিতে - যেভাবে, এটি আপনাকে নিখুঁত পাথ টাইপ না করে সহজেই স্ক্রিপ্ট অ্যাক্সেস করতে দেয়।

  3. কোনও স্ক্রিপ্টটি সংশোধন করতে পারে না তা নিশ্চিত করে - এনক্রিপ্ট হওয়া স্ক্রিপ্টটি সংশোধন করার যে কোনও প্রচেষ্টা এটিকে অক্ষম রেন্ডার করে দেবে ... যতক্ষণ না এই প্রচেষ্টাগুলি থামানো বা সরিয়ে না দেওয়া হয়। এমনকি যখনই কেউ স্ক্রিপ্টটি চালানো ছাড়া অন্য কিছু করার চেষ্টা করে তা আপনাকে অবহিত করার জন্য এটি কনফিগার করা যেতে পারে ... যেমন হ্যাকিং বা পরিবর্তনের প্রচেষ্টা।

  4. একেবারে নিশ্চিত করে যে এটির অনুলিপি কেউ তৈরি করতে পারে না। কেউ আপনার স্ক্রিপ্টকে নির্জন স্থানে অনুলিপি করতে পারে এবং এটি কীভাবে কাজ করে তা দেখতে এটির সাথে স্ক্রু করার চেষ্টা করতে পারে না। স্ক্রিপ্টের সমস্ত অনুলিপিগুলি অবশ্যই মূল অবস্থানের লিঙ্কগুলি হবে যা আপনি ইনস্টলের সময় নির্দিষ্ট করেছেন (পদক্ষেপ 4)।

বিঃদ্রঃ:

আমি বিশ্বাস করি না এটি ইন্টারেক্টিভ স্ক্রিপ্টগুলির জন্য কাজ করে যা ব্যবহারকারীকে প্রতিক্রিয়ার জন্য অনুরোধ করে। স্ক্রিপ্টগুলিতে মানগুলি কঠোরভাবে কোড করা উচিত। এনক্রিপশনটি নিশ্চিত করে যে কেউ প্রকৃতপক্ষে সেই মানগুলি দেখতে না পাবে তাই আপনার এটি সম্পর্কে চিন্তা করার দরকার নেই।


0

সুরক্ষা বিবেচনা না করেই আরেকটি সমাধান (আমিও মনে করি শংসাপত্রগুলি অন্য কোনও ফাইল বা ডাটাবেসে রাখা ভাল) জিপিজি সহ পাসওয়ার্ড এনক্রিপ্ট করে স্ক্রিপ্টে সন্নিবেশ করানো।

আমি একটি ইউএসবিতে রাখি এমন একটি পাসওয়ার্ড-কম জিপিজি কী জুড়ি ব্যবহার করি। (দ্রষ্টব্য: আপনি যখন এই কী জুড়িটি রফতান করেন তখন -আর্মার ব্যবহার করবেন না, সেগুলি বাইনারি ফর্ম্যাটে রফতানি করুন)।

প্রথমে আপনার পাসওয়ার্ড এনক্রিপ্ট করুন:

echo -n "pAssw0rd" | gpg --armor --no-default-keyring --keyring /media/usb/key.pub --recipient someone@mail.com --encrypt

এটি স্ট্যান্ডার্ড আউটপুটে জিপিজি এনক্রিপ্ট হওয়া পাসওয়ার্ড প্রিন্ট আউট হবে। পুরো বার্তাটি অনুলিপি করুন এবং এটি স্ক্রিপ্টে যুক্ত করুন:

password=$(gpg --batch --quiet --no-default-keyring --secret-keyring /media/usb/key.priv --decrypt <<EOF 
-----BEGIN PGP MESSAGE-----

hQEMA0CjbyauRLJ8AQgAkZT5gK8TrdH6cZEy+Ufl0PObGZJ1YEbshacZb88RlRB9
h2z+s/Bso5HQxNd5tzkwulvhmoGu6K6hpMXM3mbYl07jHF4qr+oWijDkdjHBVcn5
0mkpYO1riUf0HXIYnvCZq/4k/ajGZRm8EdDy2JIWuwiidQ18irp07UUNO+AB9mq8
5VXUjUN3tLTexg4sLZDKFYGRi4fyVrYKGsi0i5AEHKwn5SmTb3f1pa5yXbv68eYE
lCVfy51rBbG87UTycZ3gFQjf1UkNVbp0WV+RPEM9JR7dgR+9I8bKCuKLFLnGaqvc
beA3A6eMpzXQqsAg6GGo3PW6fMHqe1ZCvidi6e4a/dJDAbHq0XWp93qcwygnWeQW
Ozr1hr5mCa+QkUSymxiUrRncRhyqSP0ok5j4rjwSJu9vmHTEUapiyQMQaEIF2e2S
/NIWGg==
=uriR
-----END PGP MESSAGE-----
EOF)

এই পদ্ধতিতে কেবল ইউএসবি সিস্টেমে মাউন্ট করা থাকলে পাসওয়ার্ডটি ডিক্রিপ্ট করা যায়। অবশ্যই আপনি সিস্টেমে কীগুলি আমদানি করতে পারেন (কম সুরক্ষিত, বা কোনও সুরক্ষা নেই) বা আপনি পাসওয়ার্ড সহ প্রাইভেট কীটি সুরক্ষা দিতে পারেন (যাতে এটি স্বয়ংক্রিয় হওয়া যায় না)।


-2
#!/bin/bash
unset username
unset password
unset dbname
echo -n "username:"
read username
echo -n "dbname:"
read dbname
prompt="password:"

    while IFS= read -p "$prompt" -r -s -n 1 char
            do
                    if [[ $char == $'\0' ]]
                            then
                                    break
                    fi
                    prompt='*'
                    password+="$char"
            #       read -s -p "Enter Password: "  pswd
            #       echo -e "\nYour password is: " $pswd
            done

3
আমি আপনার কোড ইন্ডেন্ট করেছি, আপনি যা করতে চাইছেন তা আপনি ব্যাখ্যা করতে পারেন?
আর্চেমার

-6

আমি বিশ্বাস করি না যে আপনার পাসওয়ার্ডটি কখনও সংরক্ষণ করা উচিত। আমি এর একক ভাল কারণ সম্পর্কে ভাবতে পারি না। পরিবর্তে, আপনাকে সেই পাসওয়ার্ডের একটি সল্ট হ্যাশ সংরক্ষণ করতে হবে - কিছু স্ট্রিং যা আসল পাসওয়ার্ডটি ইনপুট হিসাবে পাস করার পরে কোনও ফাংশন দ্বারা নির্ভরযোগ্যভাবে উত্পাদিত হয়, তবে কখনও পাসওয়ার্ড হয় না


5
এটি কীভাবে সমস্যার সমাধান করবে এ সম্পর্কে আমি অস্পষ্ট a) একটি পাসওয়ার্ডের প্রয়োজনীয় কোনও পরিষেবার সাথে সংযোগ স্থাপন করতে সক্ষম হওয়া এবং খ) ব্যবহারকারীরা স্ক্রিপ্টটি দেখতে সক্ষম হয়েছে এবং এইভাবে পাসওয়ার্ড কিনা তা প্রমাণীকরণের বিশদটি বের করতে সক্ষম হচ্ছে বা না
জেনি ডি

1
আমার উত্তরটি লেখার আগে আপনি জেনে নেওয়ার দাবি করছেন।
জেনি ডি

1
আমি এখন আমার উত্তর লিখেছি। আমি আপনার কাছ থেকে যা পেতে চেষ্টা করছিলাম তা আংশিকভাবে আমার পঞ্চম পয়েন্ট ছিল once একবার শংসাপত্রগুলি স্মৃতিতে সঞ্চিত হয়ে গেলে তারা সার্ভারে অ্যাক্সেস সহ আক্রমণকারী থেকে সম্পূর্ণ সুরক্ষিত হয় না। এছাড়াও আপনার সংক্ষিপ্ত উত্তরটি ভুল না হলেও, খুব কার্যকর ছিল না। আমি পরের বার এটির দিকে ইঙ্গিত করার কথা ভাবছি যখন কেউ অভিযোগ করে যে সার্ভারফল্টে আমরা ইউনিক্স / লিনাক্স :-) এর লোকদের মতো সুন্দর নই
জেনি ডি

2
@ জেনিডি - একবার ক্রেডিট স্মৃতিতে থাকলে - অবশ্যই সেখানে থাকার দরকার নেই - এবং এটি যেভাবেই হোক ডাব্লু / হ্যাশগুলি মোকাবেলা করার পক্ষে খুব ভাল কারণ। তবুও, আমি আনন্দের সাথে সম্প্রদায়ের সৌজন্য মানদণ্ডকে এর উদাহরণস্বরূপ হিসাবে বড় আকারে উপস্থাপন করব - সত্যই এই বৈশিষ্ট্যের জন্য আমি খুব পরিচিত।
মাইকজার্ভ

4
আপনার বড় আলোচনার পরে আমি কেবল উল্লেখ করতে চাই যে কোনও ভুল বোঝাবুঝির বিষয়টি হ'ল আমিই জেনিকে নয়, আমিই হ্রাস পেয়েছি। এবং কারণটি কোনও শংসাপত্র এবং প্রাইভেসি বা ইন্টারেক্টিভ-প্রবেশ করা পাসওয়ার্ড ব্যবহার করা বা ওপি যা চায় বা যা চায় তা করা ভাল ধারণা বা না হওয়ার বিষয়ে কোনও মতামত ছিল না। এর কারণ এটি দাঁড়িয়েছিল উত্তরটি ভুল: ক্লায়েন্টের শংসাপত্র হিসাবে পাসওয়ার্ডের একটি সল্ট হ্যাশ সংরক্ষণ করা কোনও জিনিস নয়: সল্টেড হ্যাশগুলি এমন একটি জিনিস যা আপনি সংযোগের শেষে রাখছেন যা লেখককে যাচাই করছে, তার উপর নয় পাশ যে এটি জমা হয়।
সেলেদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.