এলএফসিএ: লিনাক্স সিস্টেম সুরক্ষা কীভাবে উন্নত করা যায় - পার্ট 20


যেমনটি আমরা সবাই জানি, মূল ব্যবহারকারীটি রাজা এবং লিনাক্স সিস্টেমে সীমাহীন সুযোগ-সুবিধাগুলি রাখেন। তবে নন-রুট ব্যবহারকারীরা মূল কাজগুলিতেই সীমাবদ্ধ। তদতিরিক্ত, sudo ব্যবহারকারীদের নির্দিষ্ট উচ্চতর কার্য সম্পাদন করতে রুট ব্যবহারকারী দ্বারা উপযুক্ত হিসাবে বিবেচিত হিসাবে কিছু নির্দিষ্ট ডিগ্রি প্রদান করা হয়।

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

[আপনি এটি পছন্দ করতে পারেন: ডেটা এবং লিনাক্স সুরক্ষার জন্য দরকারী টিপস]

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

সিস্টেম সুরক্ষায় আমরা নিম্নলিখিত মূল বিষয়গুলিতে মনোনিবেশ করব:

  • অ্যাক্সেসের অধিকার - ব্যবহারকারী এবং গোষ্ঠী অনুমতি
  • প্যাম মডিউল দিয়ে পাসওয়ার্ড নীতি প্রয়োগ করুন।

অ্যাক্সেস রাইটস - ব্যবহারকারী এবং গ্রুপ বিচ্ছেদ

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

rwx        rwx	     rwx
User       Group     Others

পূর্বে দেখা গেছে, ls কমান্ডে প্রদর্শিত আছে।

$ ls -l

কেবল পুনরায় কাটাতে, অনুমতিগুলি সাধারণত নয়টি অক্ষর দ্বারা প্রতিনিধিত্ব করা হয়। প্রথম তিনটি অক্ষর ফাইলটির মালিকানাধীন প্রকৃত ব্যবহারকারীর অ্যাক্সেস অধিকারকে উপস্থাপন করে। অক্ষরের দ্বিতীয় সেট ফাইলের গ্রুপের মালিকের অনুমতিগুলি উপস্থাপন করে। অবশেষে, অন্যান্য বা বিশ্বব্যাপী ব্যবহারকারীদের জন্য শেষ সেট। এই অক্ষরগুলি পড়ার, লেখার, সম্পাদনের (rwx) ক্রমে স্থায়ীভাবে থাকে।

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

ফাইল/ডিরেক্টরি অনুমতি এবং মালিকানা পরিবর্তন করা

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

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

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

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

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

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

ডিরেক্টরিতে স্টিকি বিটটি চালু করতে, chmod কমান্ডটি নিম্নরূপ ব্যবহার করুন:

$ chmod +t directory_name

নীচের উদাহরণে, আমরা পরীক্ষা নামক ডিরেক্টরিটিতে একটি স্টিকি বিট প্রয়োগ করেছি। ডিরেক্টরিগুলির ক্ষেত্রে, সমস্ত বিষয়বস্তু স্টিকি বিট অনুমতিগুলির উত্তরাধিকারী হবে। আপনি ls -ld কমান্ড ব্যবহার করে স্টিকি বিট অনুমতিগুলি যাচাই করতে পারেন। ফাইলের অনুমতি শেষে t চিহ্নটি লক্ষ্য করা নিশ্চিত করুন।

$ ls -ld test

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

এবং এটি স্টিক বিট ফাইলের অনুমতিটির মূল বক্তব্য।

এসইউডি (সেট ব্যবহারকারী আইডি) হ'ল একটি বিশেষ ফাইল অনুমতি যা অন্য নিয়মিত ব্যবহারকারীর ফাইল ফাইলের অনুমতি নিয়ে ফাইল চালানোর অনুমতি দেয়। এটি সাধারণত একটি x এর পরিবর্তে ফাইল অনুমতিগুলির ব্যবহারকারীর অংশে প্রতীকী মান s দ্বারা চিহ্নিত করা হয় যা সম্পাদনের অনুমতিগুলি প্রতিনিধিত্ব করে। এসইউডিটির একটি সংখ্যাগত মান 4000।

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

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

লিনাক্সে SID বিট সেট করে সমস্ত ফাইল সন্ধান করতে রুট ব্যবহারকারী হিসাবে ফাইন্ড কমান্ডটি চালান।

$ find / -perm -4000 type -f

ডিরেক্টরি পরিচালনার জন্য:

$ find / -perm -4000 type -d

এসজিআইডি বিট সেট চালিয়ে সমস্ত ফাইল সন্ধান করতে:

$ find / -perm -2000 type -f

ডিরেক্টরিগুলি কার্যকর করতে:

$ find / -perm -2000 type -d

কোনও ফাইলের SID বিট অপসারণ করতে, chmod কমান্ডটি প্রদর্শিত হিসাবে চালনা করুন:

$ chmod u-s /path/to/file

কোনও ফাইলের এসজিআইডি বিট অপসারণ করতে কমান্ডটি কার্যকর করুন:

$ chmod g-s filename /path/to/file

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

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

উবুন্টু 18.04 এবং পরবর্তী সংস্করণগুলিতে pam_pwquality মডিউল ইনস্টল করতে, চালনা করুন:

$ sudo apt install libpam_pwquality

RHEL/CentOS 8 এর জন্য, কমান্ডটি চালান:

$ sudo dnf install libpwquality

নিম্নলিখিত অবস্থানে কনফিগারেশন ফাইলটি পাওয়া যায়:

  • দেবিয়ান-সিস্টেমে - /etc/pam.d/common-password
  • রেডহ্যাট সিস্টেমগুলিতে - /etc/pam.d/system-auth

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

এগুলি /etc/login.defs ফাইলে পাওয়া যাবে।

ফাইলটিতে নিম্নলিখিত কী পাসওয়ার্ড নিয়ন্ত্রণ রয়েছে:

  • PASS_MAX_DAYS: একটি পাসওয়ার্ড ব্যবহারের জন্য সর্বাধিক সংখ্যক দিন
  • PASS_MIN_DAYS: সর্বনিম্ন সংখ্যা। পাসওয়ার্ড পরিবর্তনগুলির মধ্যে দিনের অনুমতি দেওয়া হয়েছে
  • PASS_WARN_AGE: পাসওয়ার্ডের মেয়াদ শেষ হওয়ার আগে প্রদত্ত দিনের সতর্কতা

ডিফল্ট মানগুলি নীচে নির্দেশিত।

PASS_MAX_DAYS গুণাবলী কোনও ব্যবহারকারী তাদের পাসওয়ার্ড ব্যবহার করতে পারে এমন দিনের সংখ্যা সীমিত করে। যখন এই মানটি পাওয়া যায় বা পাসওয়ার্ডটির মেয়াদ শেষ হয়, ব্যবহারকারীকে সিস্টেমে লগ ইন করার জন্য তাদের পাসওয়ার্ড পরিবর্তন করতে বাধ্য করা হয়। ডিফল্টরূপে, এই মানটি 99999 এ সেট করা থাকে, যা 273 বছর অনুবাদ করে। এটি যতটা সুরক্ষার সাথে সম্পর্কিত, তত বেশি অর্থবোধ করে না কারণ ব্যবহারকারীরা তাদের সারাজীবন তাদের পাসওয়ার্ড ব্যবহার চালিয়ে যেতে পারেন।

আপনি এটি একটি অর্থবহ মানতে সেট করতে পারেন, দেখানো হিসাবে 30 দিন বলুন।

PASS_MAX_DAYS  30

30 দিন অতিবাহিত হওয়ার পরে, ব্যবহারকারী তাদের পাসওয়ার্ডটি অন্য একটিতে পরিবর্তন করতে বাধ্য হবে।

PASS_MIN_DAYS বৈশিষ্ট্যটি ন্যূনতম সময়কালের জন্য বানান করে যা ব্যবহারকারীরা এটি পরিবর্তন করার আগে তাদের পাসওয়ার্ডটি ব্যবহার করতে পারে। এটার মানে কি? উদাহরণস্বরূপ, যদি এই মানটি 15 দিনের জন্য সেট করা থাকে তবে 15 দিন অতিবাহিত হওয়ার আগে ব্যবহারকারী আবার তাদের পাসওয়ার্ড পরিবর্তন করতে সক্ষম হবে না।

PASS_MAX_DAYS  15

PASS_WARN_AGE বৈশিষ্ট্যটি নির্দিষ্ট করে যে কোনও ব্যবহারকারী তাদের পাসওয়ার্ডের মেয়াদ শেষ হওয়ার আগেই তার আসন্ন মেয়াদ শেষ হওয়ার বিষয়ে একটি সতর্কতা পাবেন। উদাহরণস্বরূপ, আপনি প্রদর্শিত হিসাবে এটি 7 দিন সেট করতে পারেন।

PASS_MAX_DAYS  7

দ্রষ্টব্য: এই পাসওয়ার্ড নিয়ন্ত্রণগুলি প্রাক-বিদ্যমান অ্যাকাউন্টগুলির সাথে কাজ করে না। এগুলি শুধুমাত্র নিয়ম সংজ্ঞায়নের পরে তৈরি করা নতুন অ্যাকাউন্টগুলিতে প্রয়োগ করা হয়।

আপনি /etc/pam.d/common- পাসওয়ার্ড ফাইল সম্পাদনা করার আগে একটি ব্যাকআপ অনুলিপি তৈরি করুন। এই উদাহরণে, আমরা সাধারণ-পাসওয়ার্ড.ব্যাক ব্যাকআপ কপি ফাইল তৈরি করেছি।

$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak

তারপরে ফাইলটি ওপেন করুন।

$ sudo vim /etc/pam.d/common-password 

নীচে প্রদর্শিত লাইনটি সন্ধান করুন।

password        requisite          pam_pwquality.so retry=3

পুনরায় চেষ্টা বিকল্পটি ত্রুটি পাওয়ার আগে আপনাকে সঠিক পাসওয়ার্ড দেওয়ার সর্বাধিক সংখ্যা নির্ধারণ করে। ডিফল্টরূপে, এটি 3 এ সেট করা হয়েছে This এটি কেবলমাত্র একটি বিকল্প এবং আমরা বেশ কয়েকটি বিকল্প অন্তর্ভুক্ত করতে চলেছি।

লাইনে নিম্নলিখিত বৈশিষ্ট্যগুলি যুক্ত করুন:

minlen=10 difok=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 reject_username 

আসুন আমরা এই গুণাবলী থেকে বেরিয়ে আসি।

  • minlen = 10: পাসওয়ার্ডের জন্য সর্বনিম্ন গ্রহণযোগ্য আকার সেট করে। এই ক্ষেত্রে, 10 টি অক্ষর
  • ডিফোক = 3: এটি পূর্বের পাসওয়ার্ডে উপস্থিত অক্ষরের সর্বাধিক সংখ্যা
  • lcredit = -1: এটি পাসওয়ার্ডে উপস্থিত হওয়া উচিত এমন ছোট ছোট অক্ষরের সর্বনিম্ন সংখ্যা
  • ucredit = -1: পাসওয়ার্ডে উপস্থিত হওয়া উচিত এমন ছোট ছোট অক্ষরের সর্বাধিক সংখ্যা
  • dcredit = -1: পাসওয়ার্ডে সংজ্ঞায়িত করা উচিত এমন সংখ্যার অক্ষরের ন্যূনতম সংখ্যা
  • ocredit = -1: বিশেষ অক্ষরের ন্যূনতম সংখ্যা যেমন @, #, এবং এটি পাসওয়ার্ডে সংজ্ঞায়িত করা উচিত
  • অস্বীকার_ ব্যবহারকারীর নাম: পাসওয়ার্ডটি যদি সরল বা বিপরীত বিন্যাসে হয় তবে এই বিকল্পটি পাসওয়ার্ডটিকে প্রত্যাখ্যান করে gers

আপনি যদি এমন কোনও নতুন ব্যবহারকারী তৈরি করার চেষ্টা করেন যা পাসওয়ার্ড নীতিমালার চেয়ে কম থাকে তবে আপনি যেমন দেখানো হয়েছে তেমন ত্রুটিগুলিতে ঝাঁপিয়ে পড়তে চলেছেন।

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