Ls, rm এবং অন্যান্য সিস্টেম কমান্ডের মতো কমান্ডগুলি ব্যবহার না করা যা কোনও ব্যবহারকারীর দ্বারা প্রতিরোধ করা সম্ভব যা সিস্টেমটির ক্ষতি করতে পারে। তবে ব্যবহারকারীদের শেল প্রোগ্রামগুলি কার্যকর করতে সক্ষম হওয়া উচিত।
ls
আদেশ না!
Ls, rm এবং অন্যান্য সিস্টেম কমান্ডের মতো কমান্ডগুলি ব্যবহার না করা যা কোনও ব্যবহারকারীর দ্বারা প্রতিরোধ করা সম্ভব যা সিস্টেমটির ক্ষতি করতে পারে। তবে ব্যবহারকারীদের শেল প্রোগ্রামগুলি কার্যকর করতে সক্ষম হওয়া উচিত।
ls
আদেশ না!
উত্তর:
আপনার প্রশ্নটি হওয়া উচিত:
আমি আমার ব্যবহারকারীদের উপর বিশ্বাস করি না। বোবা ব্যক্তিরা ইন্টারনেটে কিছু দেখেন এবং এটি কী করে তা না বুঝে চেষ্টা করে দেখুন। বিভ্রান্ত ব্যক্তিরা চারপাশে স্নোপ করা এবং অন্যান্য লোকের ফাইলগুলি দেখতে এবং তাদের ধারণাগুলি চুরি করতে পছন্দ করে। এবং অলস, অলসগুলিতে আমাকে আরম্ভ করবেন না।
আমি কীভাবে আমার ব্যবহারকারীদের থেকে আমার সিস্টেম এবং ব্যবহারকারীদের সুরক্ষা করব?
প্রথমত, ইউনিক্সে খুব বিস্তৃত ফাইল-সিস্টেম অনুমতি সিস্টেম রয়েছে। এটি ইউনিক্স ফাইল সিস্টেমের অনুমতিগুলির জন্য একটি শালীন টিউটোরিয়াল বলে মনে হচ্ছে । এর সংক্ষিপ্তসারটি হ'ল ডিরেক্টরিগুলি এমন সেট করা যেতে পারে যে কোনও ব্যবহারকারী কোনও ডিরেক্টরিতে যেতে পারেন এবং সেই ডিরেক্টরি থেকে প্রোগ্রাম চালাতে পারেন তবে সেই ডিরেক্টরিটির বিষয়বস্তু দেখতে পাচ্ছেন না। আপনি যদি এটি করেন, উদাহরণস্বরূপ, / ঘরে, ব্যবহারকারী যদি / বাসায় বাস চালায় তবে তারা অনুমতি প্রাপ্ত ত্রুটি অস্বীকার করে।
যদি আপনি সত্যই আপনার ব্যবহারকারীদের থেকে ভয় পান এবং একটি সুপারম্যাক্স প্রকারের সীমিত পরিবেশে তাদের আটকে রাখতে চান তবে ফ্রিবিএসডি জেল বা সোলারিসের জোনগুলির মতো কিছু ব্যবহার করুন - প্রতিটি ব্যবহারকারীর নিজস্ব দর্জি তৈরি পরিবেশ পায়। যুক্ত পয়েন্টগুলির জন্য জেডএফএস ব্যবহার করুন যাতে তারা যখন লগ ইন করেন তখন পরিবেশের একটি স্ন্যাপশট নিতে পারেন যদি তারা তাদের ফাইলগুলি মুছলে আপনি কেবল তাদের স্ন্যাপশট থেকে টানতে পারেন।
আপনি যা জিজ্ঞাসা করছেন তা পুরোপুরি করার জন্য এখানে তিনটি জিনিস থাকা দরকার:
ভাল পরিমাপের জন্য বেল্ট, সাসপেন্ডার এবং একটি প্রধান-বন্দুক। সেখানে ভুল করা শক্ত।
অ্যাপাকর্ম আকর্ষণীয় কারণ একটি নির্দিষ্ট কার্যকরকরণের জন্য ম্যাক তার সমস্ত শিশুদের দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত। কোনও ব্যবহারকারীর লগইন হতে /bin/bash-bob
সেট করুন, সেই নির্দিষ্ট বাইনারি ডানদিকের জন্য অ্যাপআর্মার প্রোফাইল সেট করুন এবং কেবলমাত্র তারা সেই অনুমতি জেল থেকে বেরিয়ে আসছেন তা কর্নেল শোষণের মধ্য দিয়ে। যদি কিছু অলস ইনস্টল স্ক্রিপ্ট /var/opt/vendor/tmp
কিছু বোকা কারণে বিশ্বব্যাপী- লেখার যোগ্য ছেড়ে যায় তবে/bin/bash-bob
তাদের শেল হিসাবে ব্যবহারকারীরা সেখানে লিখতে পারবেন না । বাশ-বব প্রোফাইলটি কেবল তাদের হোম ডিরেক্টরিতে লেখার অনুমতি দেওয়ার জন্য সেট করুন /tmp
এবং এ জাতীয় অনুমতি ভুলগুলি লাভ করা যায় না। এমনকি যদি তারা একরকম রুট পাসওয়ার্ড খুঁজে, জন্য AppArmor প্রফাইল /bin/bash-bob
থাকা সত্বেও তারা পরে প্রয়োগ করা হবে su
আপ থেকে su
এবং bash
প্রক্রিয়া এটা spawns সন্তান /bin/bash-bob
।
শক্ত অংশটি সেই অ্যাপআর্মর প্রোফাইল তৈরি করছে।
আমার মতে, আপনার কেবলমাত্র 2 এবং 3 পদক্ষেপের প্রয়োজন, যেহেতু তারা উভয় পদক্ষেপেই আপনার সেট আপ করা সতর্কতার সাথে নির্মিত বাক্সের বাইরে কোনও ক্ষতিকারক কিছু করার ক্ষমতা রোধ করে।
ঠিক আছে, আপনি লিখেছেন এমন একটি প্রোগ্রামে আপনি ব্যবহারকারীর শেল সেট করতে পারেন যা কেবল তাদের নির্দিষ্ট শেল স্ক্রিপ্টগুলি চালাতে দেয়।
অবশ্যই এটি প্রোগ্রাম এবং শেল স্ক্রিপ্টগুলির মতোই নিরাপদ হবে; অনুশীলনে, এই ধরণের বিধিনিষেধযুক্ত শেল সাধারণত স্মার্ট আক্রমণকারীর বিরুদ্ধে নিরাপদ নয়।
কমান্ডগুলি সীমাবদ্ধ না করুন, ফাইলের অনুমতি সীমাবদ্ধ করুন। আপনি সিস্কলগুলিতে ব্যবহারিকভাবে লোকের অ্যাক্সেসকে সীমাবদ্ধ করতে পারবেন না, সুতরাং যে কারও কারও কারও কারও কারও কারওই প্রয়োজন হয় যে আপনি যে "বিপজ্জনক" কমান্ড ব্যবহার করতে চান না তার নিজের অনুলিপি প্রদান করুন, এবং আপনি স্টাফ করেছেন।
আপনি যদি ব্যবহারকারীটি কেবল নির্দিষ্ট স্ক্রিপ্ট / বাইনারিগুলি চালাতে সক্ষম হন তবে আপনি একটি সীমাবদ্ধ শেল ব্যবহার করতে পারেন । এটি (উইকিপিডিয়া নিবন্ধ হিসাবে উল্লেখ করা হয়েছে) পুরোপুরি সুরক্ষিত নয়, তবে আপনি যদি গ্যারান্টি দিতে পারেন যে কোনও অ্যাপ্লিকেশন চালানোর অনুমতি নেই কোনও নতুন শেল কার্যকর করতে সক্ষম নয় তবে এটি একটি ভাল বিকল্প।
কোনও ব্যবহারকারীকে সীমাবদ্ধ শেল সেটআপ করতে, /bin/rbash
(বা অনুরূপ, বেশিরভাগ শেল ব্যবহারকারীদের শেল হিসাবে বাইনারি নামকরণ করা হলে r *** নাম *) সীমাবদ্ধ মোডে প্রবেশ করে । তারপরে, ** বাশার্ক (বা সমতুল্য) সম্পাদনা করুন এবং $PATH
একটি ডিরেক্টরিতে সেট করুন যেখানে সমস্ত অনুমোদিত বাইনারি / স্ক্রিপ্ট সংরক্ষণ করা আছে।
হ্যাঁ, এটি সম্ভব, তবে বাস্তবে এটি অনেক কাজ এবং পরিকল্পনা গ্রহণ করবে। আপনি স্ক্রিপ্টগুলি তৈরি করতে পারেন এবং সেগুলি একটি সুবিধাযুক্ত ব্যবহার হিসাবে চালাতে পারেন, তারপরে প্রশ্নযুক্ত ব্যবহারকারী থেকে সমস্ত সুযোগ-সুবিধা সরান। অথবা, আপনি নিজের তৈরি কিছুতে ব্যবহারকারীর শেল সেট করতে পারেন যা কেবলমাত্র আপনি যা স্পষ্টভাবে অনুমতি দেন তা করতে দেয় do
তবে, লিনাক্সের স্ট্যান্ডার্ড অনুমতিগুলি সাধারণ ব্যবহারকারীর জন্য "সিস্টেমের ক্ষতি করতে" প্রায় অসম্ভব করে তোলে। আপনি কোন ধরণের ক্ষতি প্রতিরোধ করার চেষ্টা করছেন? ব্যবহারকারীরা তাদের হোম ডিরেক্টরি থেকে বাইরে সফ্টওয়্যার ইনস্টল করতে বা প্রোগ্রাম চালাতে সক্ষম হতে বাঁচানো তুচ্ছ এবং আপনি আরও লম্বা করে সিস্টেমটি লক করে রাখতে ক্রোট ব্যবহার করতে পারেন।
আপনি [lshell] [1] (সীমিত শেল) চেষ্টা করতে চাইতে পারেন।
lshell হল পাইথনে কোডেল একটি শেল, যা আপনাকে ব্যবহারকারীর পরিবেশকে সীমিত কমান্ডের মধ্যে সীমাবদ্ধ করতে দেয়, এসএসএইচ (যেমন এসসিপি, এসএফটিপি, আরএসএনসি, ইত্যাদি) কোনও কমান্ড সক্ষম / অক্ষম করতে পছন্দ করে, লগ ব্যবহারকারীর কমান্ড, সময় সীমাবদ্ধতা প্রয়োগ করে, এবং আরও।
[1]: http://lshell.ghantoos.org/ ওভারভিউ এল শেল
আমি সাধারণত যেভাবে এই জাতীয় বিধিনিষেধগুলি প্রয়োগ করি তার জন্য বেশ কয়েকটি শর্ত পূরণ করা প্রয়োজন, অন্যথায় এই সীমাবদ্ধতাটি সহজেই নিষিদ্ধ করা যেতে পারে:
wheel
গোষ্ঠীভুক্ত নয়, কেবলমাত্র একমাত্র ব্যবহারের জন্য অনুমোদিত su
(পিএএম এর মাধ্যমে প্রয়োগ করা হয়েছে)।কেবলমাত্র একটি প্রাইভেটের কাছে কেবল পঠন- পয়েন্টকে নির্দেশ করে ব্যবহারকারীকে সঠিকভাবে সুরক্ষিত দেওয়া হয়েছে , এই ডিরেক্টরিটিতে সাধারণ ইউটিলিটিগুলির লিঙ্ক রয়েছে:rbash
PATH
~/bin
~/bin/
$ ll ~/bin
total 0
lrwxrwxrwx. 1 root dawud 14 Sep 17 08:58 clear -> /usr/bin/clear*
lrwxrwxrwx. 1 root dawud 7 Sep 17 08:58 df -> /bin/df*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 egrep -> /bin/egrep*
lrwxrwxrwx. 1 root dawud 8 Sep 17 08:58 env -> /bin/env*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 fgrep -> /bin/fgrep*
lrwxrwxrwx. 1 root dawud 9 Sep 17 08:58 grep -> /bin/grep*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 rview -> /bin/rview*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 rvim -> /usr/bin/rvim*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 sudo -> /usr/bin/sudo*
lrwxrwxrwx. 1 root dawud 17 Sep 17 08:58 sudoedit -> /usr/bin/sudoedit*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 tail -> /usr/bin/tail*
lrwxrwxrwx. 1 root dawud 11 Sep 17 08:58 wc -> /usr/bin/wc*
ব্যবহারকারী একটি সীমাবদ্ধ, শুধুমাত্র পাঠযোগ্য পরিবেশ দেওয়া হয় (যেমন কাপড় মনে LESSSECURE
, TMOUT
, HISTFILE
ভেরিয়েবল)।
staff_u
এবং এর মাধ্যমে প্রয়োজনীয় অন্যান্য ব্যবহারকারী হিসাবে কমান্ডগুলো করার অধিকার দেওয়া sudo
।ব্যবহারকারী এর /home
, /tmp
এবং সম্ভবত /var/tmp
মাধ্যমে polyinstantiated হয় /etc/security/namespace.conf
:
/tmp /tmp/.inst/tmp.inst-$USER- tmpdir:create root
/var/tmp /tmp/.inst/var-tmp.inst-$USER- tmpdir:create root
$HOME $HOME/$USER.inst/ tmpdir:create root
এছাড়াও, /etc/security/namespace.init
সমস্ত কঙ্কালের ফাইলগুলি ব্যবহারকারীর জন্য পঠনযোগ্য এবং মালিকানাধীন করে তোলে root
।
এই পদ্ধতিতে আপনি $USER
নিজের পক্ষ থেকে কোনও কমান্ড কার্যকর করতে পারবেন কিনা (ব্যক্তিগত ~/bin
ডিরেক্টরিতে একটি লিঙ্কের মাধ্যমে /etc/skel
, উপরে বর্ণিত হিসাবে সরবরাহ করা হয়েছে), অন্য ব্যবহারকারীর পক্ষে (মাধ্যমে sudo
) বা মোটেও নয় none