কিছু অ্যাপ্লিকেশনগুলির জন্য কেন একটি গ্রুপ এবং ব্যবহারকারী তৈরি করার পরামর্শ দেওয়া হচ্ছে?


12

বেশিরভাগ সময়, উত্স থেকে প্রোগ্রাম ইনস্টল করার সময় একটি নতুন ব্যবহারকারী এবং একটি নতুন গোষ্ঠী তৈরি করা এবং /usr/local/<myapp>সদ্য নির্মিত ব্যবহারকারী এবং গোষ্ঠীর মালিকানা দেওয়ার পরামর্শ দেওয়া হয়।

  • কেন এই জাতীয় অভ্যাসটি একটি ভাল অনুশীলন হিসাবে বিবেচিত হয়?

  • এটা কি উন্নতি করে?

উদাহরণ: মাইএসকিউএল ডাটাবেস সার্ভারের জন্য মাইএসকিএল ব্যবহারকারী / মাইএসকিএল গ্রুপ।

উত্তর:


11

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

ডেমন একটি উত্সর্গীকৃত ব্যবহারকারী হিসাবে চালিত হয় যাতে এটি যদি খারাপ আচরণ করে (কোনও বাগের কারণে সম্ভবত আক্রমণকারী দ্বারা চালিত হয়) তবে এটির ক্ষতির পরিমাণটি সীমাবদ্ধ রয়েছে: কেবলমাত্র ডিমনটির ডেটা ফাইলগুলি ক্ষতিগ্রস্থ হয় (যদি না আক্রমণকারী স্থানীয় রুটের ছিদ্রটি সন্ধান করতে সক্ষম হয় তবে) , যা ঘটতে পারে)। উদাহরণস্বরূপ, ডেটাবেস ডেমন mysqldএকটি ডেডিকেটেড ব্যবহারকারী এবং গোষ্ঠী হিসাবে চলে এবং ডাটাবেসের mysql:mysqlডেটা ফাইলগুলি ( /var/lib/mysql/*) এর সাথে সম্পর্কিত mysql:mysql

মনে রাখবেন যে ডেমন এক্সিকিউটেবল এবং অন্যান্য স্থিতিশীল ডেটা এবং কনফিগারেশন ফাইলগুলি ব্যবহৃত হয় তবে ডেমন দ্বারা সংশোধন করা উচিত নয় নিবেদিত ব্যবহারকারীর অন্তর্ভুক্ত থাকতে হবে; root:rootবেশিরভাগ প্রোগ্রাম এবং কনফিগারেশন ফাইলগুলির মতো এগুলির মালিকানা হওয়া উচিত । mysqldপ্রক্রিয়া প্রতিটি ব্যবসার মুছে যাওয়ার হয়েছে /usr/sbin/mysqldবা /etc/mysql/my.cnfতাই এই ফাইলগুলি করা উচিত নয়, mysqlব্যবহারকারী বা দ্বারা লিখনযোগ্য হতে mysqlব্যবহারকারী বা mysqlগ্রুপ। যদি কিছু ফাইল কেবল ডেমন এবং প্রশাসকের দ্বারা পঠনযোগ্য হয় তবে সেগুলি ব্যবহারকারী রুট এবং ডেডিকেটেড গ্রুপের মালিকানাধীন হওয়া উচিত এবং 0640 ( rw-r-----) মোড থাকা উচিত ।

এক্সিকিউটেবলের একটি বিশেষ বিভাগ যা মালিকানার মালিকানাধীন নয় root:rootএমন প্রোগ্রামগুলি যা কোনও ব্যবহারকারী দ্বারা আহ্বান করা হয় তবে অতিরিক্ত সুযোগ-সুবিধা দিয়ে চালানো দরকার need এই এক্সিকিউটেবলগুলি অবশ্যই নির্ধারিত রুট হতে হবে যদি তাদের রুট হিসাবে চালানোর প্রয়োজন হয় (কমপক্ষে কিছু অংশে); তারপরে এক্সিকিউটেবলের অবশ্যই মোড 4755 ( rwsr-xr-x) থাকতে হবে। প্রোগ্রামটি যদি অতিরিক্ত সুবিধাগুলি সহ প্রয়োজন হয় তবে মূল হিসাবে নয়, তবে প্রোগ্রামটি সেটগিড করা উচিত, যাতে অতিরিক্ত সুবিধাগুলি কোনও গ্রুপের মাধ্যমে আসে, ব্যবহারকারীর মাধ্যমে নয়। এক্সিকিউটেবলের তখন মোড 2755 ( rwxr-sr-x) থাকে। কারণগুলি দ্বিগুণ:

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

3

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


1

এটিকে একটি ভাল অনুশীলন হিসাবে বিবেচনা করার কারণ হ'ল নির্দিষ্ট অ্যাপ্লিকেশনের জন্য সিস্টেমের ওভাররাইডিং ডেটা এবং কনফিগারেশন ফাইলের অন্যান্য ব্যবহারকারীদের প্রতিরোধ করা।

উদাহরণ হিসাবে mysql/ mysqlমাইএসকিএল ডাটাবেস ফাইলগুলির জন্য স্টোরেজের মালিক হওয়ায় যে কেউ অ্যাপ্লিকেশন এপিআই ব্যবহার না করে তা ডাটাবেসগুলি দূষিত হতে বাধা দেয়। এছাড়াও ব্যবহারকারীর mysqlসাধারণত একটি আসল শেল থাকে না যাতে কোনওরূপে ব্যবহারকারী হিসাবে লগইন করতে পারে।


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

@ গিলস এগুলি মূলের মালিকানাধীন হতে পারে এবং বিতরণের মাধ্যমে ইনস্টল করা বেশিরভাগ অ্যাপ্লিকেশনগুলি তবে তাদের দরকার হয় না এবং এটি হওয়ার দরকার নেই। প্রকৃতপক্ষে উবুন্টুর /usr/bin/atমালিকানাdaemon/daemon
কার্লসন

1
atডেমন নয় এটি সেটুইড daemonযাতে এটি atdব্যক্তিগত ফাইলগুলির মাধ্যমে ডেমনের সাথে যোগাযোগ করতে পারে ।
গিলস 16:52-তে

1

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

আপনার ডিমন ভুলভাবে কনফিগার করা হয়েছে এবং / অথবা কোনও সুরক্ষা সম্পর্কিত বাগ রয়েছে সে ক্ষেত্রে এই পার্থক্যটি গুরুত্বপূর্ণ।

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

নিজস্ব বিশেষ ব্যবহারকারীর অধীনে ডেমন চালানো কেবল একটি সুরক্ষা কৌশল, অন্যরা হ'ল কিছু প্রকারের 'ক্রুটিং' বা বাধ্যতামূলক অ্যাক্সেস কন্ট্রোল (ম্যাক) সিস্টেম (যেমন SELinux) ব্যবহার করে।


1

এটি একটি সুরক্ষার বিবেচনা। এটি ডেমন অ্যাপ্লিকেশনটি ভেঙে এমন কোনও ব্যক্তির দ্বারা যে ক্ষতি হতে পারে তা সীমাবদ্ধ করে। ব্যবহারকারীর অ্যাপ্লিকেশনটি সাধারণত একটি স্ট্যান্ডার্ড ইউজারিডের মালিকানায় থাকে root

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

সুপারিশ অনুসারে যদি তাদের সকলের আলাদা আলাদা অ্যাকাউন্ট থাকে তবে কেবল আপোষযুক্ত অ্যাপ্লিকেশনটি অ্যাক্সেসযোগ্য হবে। অন্যটির সার্বজনীন কনফিগারেশনের বিশদটি পড়তে পারা যায়, তবে সম্ভবত পরিবর্তনগুলি করা সম্ভব নয়।

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

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


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

@ গিলস: সেই অনুসারে স্বীকৃত ও সম্পাদিত।
বিলথোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.