Skill

নিরাপত্তা এবং পারমিশন

ইউনিক্স/লিনাক্স (UNIX / LINUX) - Computer Programming

236

নিরাপত্তা এবং পারমিশন (Security and Permissions)

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


1. ব্যবহারকারী এবং গ্রুপ (Users and Groups)

লিনাক্স সিস্টেমে ব্যবহারকারী এবং গ্রুপ দিয়ে পারমিশন নিয়ন্ত্রণ করা হয়। প্রতিটি ব্যবহারকারী এবং গ্রুপের নিজস্ব একটি UID (User ID) এবং GID (Group ID) থাকে। ফাইল সিস্টেমের প্রতিটি ফাইল এবং ডিরেক্টরি একটি মালিক (ব্যবহারকারী) এবং গ্রুপের সাথে সংযুক্ত থাকে, যা এই ফাইল বা ডিরেক্টরি অ্যাক্সেস করার অনুমতি নির্ধারণ করে।

  • ব্যবহারকারী (User): একটি একক সিস্টেম ব্যবহারকারী, যার নিজস্ব পাসওয়ার্ড, হোম ডিরেক্টরি এবং অন্যান্য ফাইল থাকে।
  • গ্রুপ (Group): এক বা একাধিক ব্যবহারকারীর একটি গ্রুপ, যার জন্য একযোগে অ্যাক্সেস অনুমতি দেওয়া হয়।

2. পারমিশন (Permissions)

ফাইল পারমিশন ফাইল এবং ডিরেক্টরির উপর একটি নির্দিষ্ট ব্যবহারকারী বা গ্রুপের কাজ করার অনুমতি প্রদান করে। তিনটি ধরনের পারমিশন থাকে:

  • r (read): ফাইলের বিষয়বস্তু পড়ার অনুমতি।
  • w (write): ফাইলের বিষয়বস্তু পরিবর্তন বা লেখা অনুমতি।
  • x (execute): ফাইলটি এক্সিকিউট বা চালানোর অনুমতি (বিশেষত স্ক্রিপ্ট বা প্রোগ্রামের জন্য)।

পারমিশন তিনটি অংশে বিভক্ত:

  1. Owner (মালিক): ফাইলের মালিক ব্যবহারকারীর জন্য পারমিশন।
  2. Group: ফাইলের গ্রুপ সদস্যদের জন্য পারমিশন।
  3. Others: অন্যান্য সমস্ত ব্যবহারকারীর জন্য পারমিশন।

এগুলোর মাধ্যমে ফাইল বা ডিরেক্টরির অ্যাক্সেস নিয়ন্ত্রণ করা হয়। পারমিশন সাধারণত rwx ফরম্যাটে লেখা হয়।

3. পারমিশন চেক করা (Check Permissions)

ফাইল বা ডিরেক্টরির পারমিশন দেখতে ls -l কমান্ড ব্যবহার করা হয়।

  • ব্যবহার:

    ls -l [ফাইল/ডিরেক্টরি নাম]
  • যেমন:

    ls -l myfile.txt
  • আউটপুট:

    -rwxr-xr--
    1 user group 1024 Oct 10 10:00 myfile.txt

এখানে:

  • - প্রথম চরিত্র ফাইলের ধরন (ফাইল বা ডিরেক্টরি)।
  • rwx প্রথম তিনটি চিহ্ন মালিকের জন্য পারমিশন (পড়া, লেখা, চালানো)।
  • r-x পরের তিনটি চিহ্ন গ্রুপের জন্য পারমিশন।
  • r-- পরের তিনটি চিহ্ন অন্যদের জন্য পারমিশন।

3. পারমিশন পরিবর্তন (Changing Permissions)

ফাইলের পারমিশন পরিবর্তন করার জন্য chmod কমান্ড ব্যবহার করা হয়। এটি নম্বর এবং চিহ্ন দিয়ে পারমিশন পরিবর্তন করতে সহায়ক।

1. নম্বর দিয়ে পারমিশন সেট করা

লিনাক্সে পারমিশনকে একটি সংখ্যা দিয়ে বোঝানো হয়। **r=4, w=2, x=1**। পারমিশন সংমিশ্রণ গঠনের জন্য এই মানগুলির যোগফল করা হয়। তিনটি সংখ্যার মাধ্যমে মালিক, গ্রুপ এবং অন্যদের জন্য পারমিশন সেট করা হয়।

  • উদাহরণ:
    • 7 (rwx) = 4 + 2 + 1 (পড়া, লেখা, চালানো)
    • 6 (rw-) = 4 + 2 (পড়া, লেখা)
    • 5 (r-x) = 4 + 1 (পড়া, চালানো)
    • 4 (r--) = 4 (পড়া)

chmod কমান্ড দিয়ে পারমিশন পরিবর্তন করা:

chmod 755 myfile.txt

এটি myfile.txt ফাইলের পারমিশন সেট করবে:

  • মালিকের জন্য rwx (পড়া, লেখা, চালানো)
  • গ্রুপের জন্য r-x (পড়া, চালানো)
  • অন্যদের জন্য r-x (পড়া, চালানো)

2. চিহ্ন দিয়ে পারমিশন পরিবর্তন

chmod কমান্ডে চিহ্নের সাহায্যে পারমিশন পরিবর্তন করা যায়, যেমন:

  • + : পারমিশন যোগ করা
  • - : পারমিশন বাদ দেওয়া
  • = : নির্দিষ্ট পারমিশন সেট করা

উদাহরণ:

  • পারমিশন যোগ করা:

    chmod +x myfile.sh

    এটি myfile.sh ফাইলে execute পারমিশন যোগ করবে।

  • পারমিশন বাদ দেওয়া:

    chmod -x myfile.sh

    এটি myfile.sh ফাইল থেকে execute পারমিশন সরিয়ে নেবে।

  • পারমিশন নির্দিষ্ট করা:

    chmod u+x myfile.txt

    এটি মালিকের জন্য execute পারমিশন যোগ করবে।


4. মালিকানা পরিবর্তন (Changing Ownership)

chown কমান্ড ব্যবহার করে ফাইলের মালিকানা এবং গ্রুপ পরিবর্তন করা যায়।

  • ব্যবহার:

    sudo chown [নতুন মালিক] [ফাইল নাম]
    sudo chown [নতুন মালিক]:[নতুন গ্রুপ] [ফাইল নাম]
  • যেমন:

    sudo chown john:admins myfile.txt

এটি myfile.txt ফাইলের মালিকানা john এবং গ্রুপ admins এ পরিবর্তন করবে।


5. গ্রুপ পারমিশন পরিবর্তন (Changing Group Permissions)

chgrp কমান্ড ব্যবহার করে ফাইলের গ্রুপ পরিবর্তন করা যায়।

  • ব্যবহার:

    sudo chgrp [নতুন গ্রুপ] [ফাইল নাম]
  • যেমন:

    sudo chgrp developers myfile.txt

এটি myfile.txt ফাইলের গ্রুপ developers এ পরিবর্তন করবে।


6. সুপার ইউজার (Root User) এবং Sudo

root ব্যবহারকারী হলো সিস্টেমের প্রশাসক, যার সম্পূর্ণ সিস্টেমে পূর্ণ নিয়ন্ত্রণ থাকে। sudo (SuperUser DO) হল একটি কমান্ড যা সাধারণ ব্যবহারকারীকে প্রশাসনিক কমান্ডগুলো চালানোর অনুমতি দেয়, যেগুলি সাধারণভাবে root ব্যবহারকারী দ্বারা এক্সিকিউট করা হয়।

  • sudo ব্যবহার করা:

    sudo command
  • উদাহরণ:

    sudo apt update

এটি root এর অধিকার নিয়ে apt update কমান্ড চালাবে।


সারসংক্ষেপ

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

Content added By

ফাইল পারমিশন এবং নিরাপত্তা

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


১. ফাইল পারমিশন সিস্টেম

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

১.১ ফাইল পারমিশনের ধরন

  1. রিড (Read - r): ফাইলের কনটেন্ট পড়া যাবে।
  2. ওয়্রাইট (Write - w): ফাইলের কনটেন্ট পরিবর্তন বা মুছে ফেলা যাবে।
  3. এক্সিকিউট (Execute - x): ফাইলটিকে প্রোগ্রাম বা স্ক্রিপ্ট হিসেবে চালানো যাবে।

এই পারমিশন তিনটি শ্রেণির জন্য নির্ধারিত হয়:

  • Owner (মালিক): ফাইল বা ডিরেক্টরির মালিক।
  • Group (গ্রুপ): ফাইল বা ডিরেক্টরির মালিকের সাথে একই গ্রুপের সদস্যরা।
  • Others (অন্যান্য): অন্য সকল ব্যবহারকারী, যাদের মালিকানা বা গ্রুপের সাথে সম্পর্ক নেই।

১.২ পারমিশন প্রদর্শন

ls -l কমান্ড ব্যবহার করে ফাইল পারমিশন চেক করা যায়:

ls -l file.txt

আউটপুট:

-rwxr-xr--

এখানে:

  • প্রথম -: ফাইলের ধরন (ফাইল হলে -, ডিরেক্টরি হলে d)
  • rwx: মালিকের পারমিশন (রিড, রাইট, এক্সিকিউট)
  • r-x: গ্রুপের পারমিশন (রিড, এক্সিকিউট, রাইট নয়)
  • r--: অন্যান্যদের পারমিশন (রিড, কিন্তু রাইট বা এক্সিকিউট নয়)

২. chmod কমান্ড: পারমিশন পরিবর্তন

chmod (Change Mode) কমান্ড ব্যবহার করে ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন করা হয়।

২.১ সিম্বলিক মোড

সিম্বলিক মোডে, আপনি r, w, x দিয়ে পারমিশন নির্ধারণ করেন এবং +, -, = দিয়ে পারমিশন যোগ, বিয়োগ বা সেট করেন।

কমান্ড উদাহরণ:

  1. মালিকের জন্য এক্সিকিউট পারমিশন যোগ করা:

    chmod u+x file.txt
  2. গ্রুপ থেকে লেখার পারমিশন সরানো:

    chmod g-w file.txt
  3. সব ব্যবহারকারীর জন্য এক্সিকিউট পারমিশন যোগ করা:

    chmod a+x file.txt

২.২ নিউমেরিক মোড

নিউমেরিক মোডে, প্রতিটি পারমিশনের জন্য একটি সংখ্যা থাকে:

  • রিড (r) = 4
  • রাইট (w) = 2
  • এক্সিকিউট (x) = 1

এই সংখ্যাগুলো যোগ করে 3 ডিজিটের সংখ্যা তৈরি হয়:

  • 7 (rwx) = 4+2+1
  • 6 (rw-) = 4+2
  • 5 (r-x) = 4+1
  • 4 (r--) = 4
  • 0 (---) = 0

কমান্ড উদাহরণ:

  1. মালিকের জন্য পূর্ণ পারমিশন এবং গ্রুপ ও অন্যান্যদের জন্য রিড ও এক্সিকিউট পারমিশন:

    chmod 755 file.txt
  2. মালিক এবং গ্রুপের জন্য পূর্ণ পারমিশন এবং অন্যদের জন্য শুধুমাত্র রিড পারমিশন:

    chmod 774 file.txt

৩. ফাইল এবং ডিরেক্টরির মালিকানা পরিবর্তন

ফাইল বা ডিরেক্টরির মালিকানা এবং গ্রুপ পরিবর্তন করতে chown এবং chgrp কমান্ড ব্যবহার করা হয়।

৩.১ chown কমান্ড: মালিক পরিবর্তন

chown কমান্ড দিয়ে একটি ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করা যায়।

কমান্ড উদাহরণ:

  1. ফাইলের মালিক পরিবর্তন:

    sudo chown alice file.txt
  2. মালিক এবং গ্রুপ পরিবর্তন:

    sudo chown alice:admin file.txt

৩.২ chgrp কমান্ড: গ্রুপ পরিবর্তন

chgrp কমান্ড দিয়ে একটি ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করা যায়।

কমান্ড উদাহরণ:

  1. ফাইলের গ্রুপ পরিবর্তন:

    sudo chgrp admin file.txt

৪. ফাইল পারমিশন এবং নিরাপত্তা

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

৪.১ সঠিক পারমিশন সেটিংস:

  • সাধারণত 700 (মালিকের জন্য পূর্ণ পারমিশন, অন্যদের জন্য কিছুই না) বা 755 (মালিকের জন্য পূর্ণ পারমিশন এবং গ্রুপ ও অন্যান্যদের জন্য রিড ও এক্সিকিউট পারমিশন) ফাইলের জন্য নিরাপদ পারমিশন হয়।
  • 644 (মালিকের জন্য রিড এবং রাইট, অন্যদের জন্য রিড) ফাইলগুলোতে ব্যবহার করা যেতে পারে।

৪.২ অপ্রয়োজনীয় পারমিশন সরানো:

  • 777 পারমিশন দেয়া ফাইলগুলি একটি নিরাপত্তা ঝুঁকি সৃষ্টি করতে পারে, কারণ এটি সব ব্যবহারকারীদের সম্পূর্ণ অ্যাক্সেস প্রদান করে। এটি শুধুমাত্র যদি প্রয়োজন হয়, তবে ব্যবহার করা উচিত।

৪.৩ সুযোগ সীমাবদ্ধ করা:

  • sudo ব্যবহার করে শুধুমাত্র নির্দিষ্ট ব্যবহারকারী বা গ্রুপকে সুপারইউজার (root) পারমিশন দেয়া উচিত, যাতে সিস্টেমের অপরিহার্য ফাইল বা কনফিগারেশন মুছে ফেলা বা পরিবর্তন করা থেকে বিরত থাকা যায়।

৫. স্ট্রোকলগ বা অডিটিং

নিরাপত্তার জন্য লগিং অত্যন্ত গুরুত্বপূর্ণ। অনেক সিস্টেমে ফাইল এবং ডিরেক্টরি অ্যাক্সেসের লগ রাখা হয়, যেমন auditd এর মাধ্যমে, যাতে কোন ব্যবহারকারী কখন, কোথায় এবং কীভাবে একটি ফাইল অ্যাক্সেস বা পরিবর্তন করেছে তা ট্র্যাক করা যায়।


সারসংক্ষেপ

  • ফাইল পারমিশন ব্যবহারকারীদের এবং গ্রুপের জন্য ফাইলের অ্যাক্সেস কন্ট্রোল করে, যা নিরাপত্তা নিশ্চিত করে।
  • chmod, chown, এবং chgrp কমান্ড ব্যবহার করে ফাইল পারমিশন এবং মালিকানা পরিবর্তন করা যায়।
  • সঠিক ফাইল পারমিশন এবং নিরাপত্তা কনফিগারেশন সিস্টেমের সুরক্ষা নিশ্চিত করতে গুরুত্বপূর্ণ, এবং অপ্রয়োজনীয় পারমিশন সরানো এবং লগিং ব্যবস্থাপনা একটি নিরাপদ সিস্টেমের অংশ।
Content added By

chmod, chown, এবং chgrp কমান্ডের ব্যবহার

chmod, chown, এবং chgrp কমান্ডগুলি ফাইল এবং ডিরেক্টরির পারমিশন এবং মালিকানা পরিবর্তন করতে ব্যবহৃত হয়। এগুলি মূলত ফাইলের অ্যাক্সেস কন্ট্রোল সেট করতে এবং ব্যবহারকারীর/গ্রুপের অধিকার নির্ধারণ করতে সাহায্য করে। নিচে প্রতিটি কমান্ডের ব্যবহার বিস্তারিতভাবে ব্যাখ্যা করা হলো।


১. chmod কমান্ড: ফাইল পারমিশন পরিবর্তন

chmod (চেঞ্জ মডিফিকেশন) কমান্ডটি ফাইল এবং ডিরেক্টরির পারমিশন পরিবর্তন করতে ব্যবহৃত হয়। আপনি এই কমান্ডের মাধ্যমে নির্ধারণ করতে পারেন কে কোন ফাইল পড়তে, লিখতে, অথবা এক্সিকিউট করতে পারবে।

সিনট্যাক্স:

chmod [options] permissions filename
  • permissions: পারমিশনের ধরণ (যেমন r, w, x – read, write, execute)।
  • filename: ফাইল বা ডিরেক্টরির নাম।

পারমিশন ফরম্যাট:

  • r: রিড পারমিশন (পড়া)
  • w: রাইট পারমিশন (লিখা)
  • x: এক্সিকিউট পারমিশন (চালনা)

সিম্বোলিক পারমিশন (Symbolic Permissions):

  • u: মালিক (user)
  • g: গ্রুপ
  • o: অন্যরা
  • a: সকল (all)

কমান্ড উদাহরণ:

  1. ফাইলের রিড, রাইট এবং এক্সিকিউট পারমিশন যোগ করা (মালিকের জন্য):

    chmod u+rwx file.txt

    এখানে u+rwx দ্বারা মালিকের জন্য r, w, x পারমিশন যোগ করা হয়েছে।

  2. গ্রুপের জন্য রিড এবং এক্সিকিউট পারমিশন দেওয়া:

    chmod g+rx file.txt
  3. অন্যদের জন্য শুধুমাত্র রিড পারমিশন দেওয়া:

    chmod o+r file.txt
  4. ফাইলের পারমিশন বিয়োগ করা:

    chmod o-w file.txt

    এখানে o-w দ্বারা অন্যদের থেকে রাইট পারমিশন বিয়োগ করা হয়েছে।

সংখ্যাত্মক পারমিশন (Numeric Permissions):

  • r = 4
  • w = 2
  • x = 1

এই মানগুলো যোগ করে পারমিশন সেট করা হয়। উদাহরণস্বরূপ:

  • 7 = rwx (4+2+1)
  • 6 = rw- (4+2)
  • 5 = r-x (4+1)
  • 4 = r-- (4)

কমান্ড উদাহরণ:

  1. মালিককে সম্পূর্ণ পারমিশন এবং গ্রুপ ও অন্যদের রিড পারমিশন দেওয়া:

    chmod 744 file.txt
  2. সব ব্যবহারকারীকে সম্পূর্ণ পারমিশন দেওয়া:

    chmod 777 file.txt

২. chown কমান্ড: ফাইল মালিকানা পরিবর্তন

chown (চেঞ্জ মালিকানা) কমান্ডটি ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।

সিনট্যাক্স:

chown [new_owner]:[new_group] filename
  • new_owner: নতুন মালিকের নাম।
  • new_group: নতুন গ্রুপের নাম (ঐচ্ছিক)।
  • filename: ফাইল বা ডিরেক্টরির নাম।

উদাহরণ:

  1. ফাইলটির মালিক পরিবর্তন করা:

    sudo chown john file.txt

    এটি file.txt ফাইলটির মালিককে john হিসাবে পরিবর্তন করবে।

  2. ফাইলের মালিক এবং গ্রুপ পরিবর্তন করা:

    sudo chown john:admin file.txt

    এটি file.txt ফাইলটির মালিককে john এবং গ্রুপকে admin হিসেবে পরিবর্তন করবে।

  3. রিকার্সিভভাবে (subdirectories সহ) মালিকানা পরিবর্তন করা:

    sudo chown -R john:admin /path/to/directory

    এটি /path/to/directory ডিরেক্টরির সকল ফাইল এবং সাব-ডিরেক্টরি গুলোর মালিক এবং গ্রুপ পরিবর্তন করবে।


৩. chgrp কমান্ড: ফাইল গ্রুপ পরিবর্তন

chgrp (চেঞ্জ গ্রুপ) কমান্ডটি ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।

সিনট্যাক্স:

chgrp [new_group] filename
  • new_group: নতুন গ্রুপের নাম।
  • filename: ফাইল বা ডিরেক্টরির নাম।

উদাহরণ:

  1. ফাইলের গ্রুপ পরিবর্তন করা:

    sudo chgrp admin file.txt

    এটি file.txt ফাইলটির গ্রুপকে admin হিসেবে পরিবর্তন করবে।

  2. রিকার্সিভভাবে (subdirectories সহ) গ্রুপ পরিবর্তন করা:

    sudo chgrp -R admin /path/to/directory

    এটি /path/to/directory ডিরেক্টরির সকল ফাইল এবং সাব-ডিরেক্টরি গুলোর গ্রুপ পরিবর্তন করবে।


সারসংক্ষেপ

কমান্ডব্যবহারকমান্ড উদাহরণ
chmodফাইল পারমিশন পরিবর্তনchmod 755 file.txt
chmod u+x file.txt
chownফাইল মালিকানা এবং গ্রুপ পরিবর্তনsudo chown john file.txt
sudo chown john:admin file.txt
chgrpফাইলের গ্রুপ পরিবর্তনsudo chgrp admin file.txt
sudo chgrp -R admin /path/to/directory
  • chmod: ফাইল পারমিশন সেট বা পরিবর্তন করতে ব্যবহৃত হয় (অর্থাৎ কে কি করতে পারবে)।
  • chown: ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।
  • chgrp: শুধুমাত্র ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।

এই কমান্ডগুলি সিস্টেমের নিরাপত্তা এবং ফাইল অ্যাক্সেস কন্ট্রোলের জন্য অত্যন্ত গুরুত্বপূর্ণ।

Content added By

ফায়ারওয়াল সেটআপ: iptables এবং ufw

ফায়ারওয়াল সিস্টেমের নিরাপত্তা নিশ্চিত করার জন্য গুরুত্বপূর্ণ একটি উপাদান, যা আপনার সার্ভারে কোন ট্রাফিক ইনপুট এবং আউটপুট হবে তা নিয়ন্ত্রণ করে। iptables এবং ufw দুটি জনপ্রিয় ফায়ারওয়াল টুল যা বিভিন্ন সিস্টেমে নিরাপত্তা ব্যবস্থাপনার জন্য ব্যবহৃত হয়।


1. iptables ফায়ারওয়াল

iptables হল একটি কমান্ড লাইন টুল যা LINUX সিস্টেমে ফায়ারওয়াল নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। এটি সিস্টেমের নেটওয়ার্ক ট্রাফিক ফিল্টার করার জন্য কাস্টম নিয়ম সেট আপ করতে সক্ষম। iptables খুবই শক্তিশালী এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের ট্রাফিক নিয়ন্ত্রণের জন্য বিস্তৃত নিয়ম এবং পলিসি তৈরি করতে সক্ষম।

1.1 iptables এর সাধারণ কমান্ড

  • ফায়ারওয়াল নিয়ম দেখতে:

    sudo iptables -L

    এই কমান্ডটি বর্তমানে কার্যকর ফায়ারওয়াল নিয়মগুলি প্রদর্শন করবে।

  • নতুন নিয়ম যোগ করা:
    উদাহরণস্বরূপ, HTTP (পোর্ট 80) এবং HTTPS (পোর্ট 443) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি দেওয়া:

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • SSH (পোর্ট 22) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি দেওয়া:

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • অবশ্যই কিছু নিয়ম ডিফল্টভাবে বাদ দিতে:
    সিস্টেমের সমস্ত ইনবাউন্ড ট্রাফিক ব্লক করতে:

    sudo iptables -A INPUT -j DROP
  • ফায়ারওয়াল সংরক্ষণ করা:
    iptables নিয়মগুলো সিস্টেম পুনরায় চালু করার পরেও অব্যাহত রাখতে, আপনি iptables-save এবং iptables-restore কমান্ড ব্যবহার করতে পারেন:

    sudo iptables-save > /etc/iptables/rules.v4
  • iptables রিসেট করা:
    ফায়ারওয়াল সব নিয়ম মুছে ফেলার জন্য:

    sudo iptables -F

1.2 iptables এর কিছু গুরুত্বপূর্ণ প্যারামিটার:

  • -A: একটি নিয়ম অ্যাড করা
  • -D: একটি নিয়ম মুছে ফেলা
  • -L: বর্তমান নিয়মের তালিকা
  • -p: প্রোটোকল (যেমন tcp, udp)
  • --dport: নির্দিষ্ট পোর্ট নম্বর

2. ufw (Uncomplicated Firewall)

ufw হল একটি ইউজার-ফ্রেন্ডলি এবং সহজে কনফিগারযোগ্য ফায়ারওয়াল টুল যা iptables এর উপরে একটি ফ্রন্টএন্ড হিসাবে কাজ করে। ufw ব্যবহার করে সিস্টেম অ্যাডমিনিস্ট্রেটররা খুব সহজভাবে ফায়ারওয়াল নিয়ম সেট করতে পারেন এবং সিস্টেমের নিরাপত্তা নিশ্চিত করতে পারেন। এটি বিশেষ করে নতুন ব্যবহারকারীদের জন্য উপযোগী।

2.1 ufw এর সাধারণ কমান্ড

  • ufw চালু এবং নিষ্ক্রিয় করা:
    • ufw চালু করা:

      sudo ufw enable
    • ufw নিষ্ক্রিয় করা:

      sudo ufw disable
  • ufw স্ট্যাটাস দেখতে:

    sudo ufw status

    এটি বর্তমানে কার্যকর নিয়মের তালিকা দেখাবে।

  • নতুন নিয়ম যোগ করা:
    • HTTP (পোর্ট 80) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি:

      sudo ufw allow 80
    • SSH (পোর্ট 22) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি:

      sudo ufw allow ssh
    • HTTPS (পোর্ট 443) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি:

      sudo ufw allow 443
    • একটি নির্দিষ্ট পোর্টের জন্য ট্রাফিক অনুমতি:

      sudo ufw allow 8080
  • নিয়ম মুছে ফেলা:

    sudo ufw delete allow 80
  • ফায়ারওয়াল রিসেট করা:

    sudo ufw reset
  • ফায়ারওয়াল স্ট্যাটাসের সাথে আরও বিস্তারিত তথ্য দেখতে:

    sudo ufw status verbose

2.2 ufw এর কিছু সাধারণ প্যারামিটার:

  • allow: ট্রাফিক অনুমতি দেওয়া
  • deny: ট্রাফিক নিষিদ্ধ করা
  • status: বর্তমান ফায়ারওয়াল অবস্থা দেখতে
  • reset: ফায়ারওয়াল সেটিংস রিসেট করা

3. ufw বনাম iptables

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

সারসংক্ষেপ

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

Content added By

SSH এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেস

SSH (Secure Shell) একটি শক্তিশালী প্রোটোকল যা ল্যান (LAN) বা ওয়াইড অ্যারিয়া নেটওয়ার্ক (WAN) এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেস সরবরাহ করে। এটি ব্যবহারকারীদের দূরবর্তী সার্ভার বা কম্পিউটারে লগইন করতে এবং বিভিন্ন কমান্ড এক্সিকিউট করতে সক্ষম করে, কিন্তু সম্পূর্ণ এনক্রিপ্টেড সংযোগের মাধ্যমে, যাতে তৃতীয় পক্ষের দ্বারা তথ্য চুরি বা পরিবর্তন করা সম্ভব না হয়।

এটি বিশেষভাবে গুরুত্বপূর্ণ যখন আপনি সার্ভার বা সিস্টেমে কমান্ড চালাতে চান এবং আপনি নিশ্চিত হতে চান যে আপনার যোগাযোগ সুরক্ষিত এবং নিরাপদ।


SSH এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেসের সুবিধা:

  1. এনক্রিপ্টেড যোগাযোগ: SSH ডেটা এনক্রিপ্ট করে, যার মানে হলো আপনার রিমোট সেশন এবং ডেটা সুরক্ষিত থাকবে।
  2. পাসওয়ার্ড বা কী-ভিত্তিক অথেনটিকেশন: SSH পাসওয়ার্ড বা পাবলিক কী অথেনটিকেশন সমর্থন করে, যা পাসওয়ার্ডের তুলনায় আরও নিরাপদ।
  3. ফাইল ট্রান্সফার: SCP (Secure Copy Protocol) এবং SFTP (Secure File Transfer Protocol) ব্যবহার করে আপনি SSH এর মাধ্যমে সিস্টেমে বা সিস্টেম থেকে নিরাপদভাবে ফাইল স্থানান্তর করতে পারেন।
  4. রিমোট টার্মিনাল: SSH এর মাধ্যমে আপনি রিমোট কম্পিউটার বা সার্ভারে টার্মিনাল অ্যাক্সেস পেতে পারেন এবং সরাসরি কমান্ড চালাতে পারেন।

SSH ইনস্টলেশন

SSH সাধারণত Linux/UNIX সিস্টেমে পূর্বেই ইনস্টল করা থাকে, তবে যদি এটি ইনস্টল না থাকে, তবে আপনাকে এটি ইনস্টল করতে হবে।

১. SSH সার্ভার ইনস্টল করা

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install openssh-server
  • CentOS/RHEL:

    sudo yum install openssh-server
  • Fedora:

    sudo dnf install openssh-server

২. SSH সার্ভিস চালু করা

ইনস্টলেশনের পর, SSH সার্ভিস চালু এবং সিস্টেম রিস্টার্ট করার জন্য:

sudo systemctl start ssh
sudo systemctl enable ssh

এটি SSH সার্ভিস চালু করবে এবং সিস্টেম রিস্টার্টের পরেও এটি চালু থাকবে।


SSH এর মাধ্যমে রিমোট অ্যাক্সেস

১. SSH দিয়ে রিমোট সার্ভারে লগইন করা

SSH ব্যবহার করে আপনি রিমোট সার্ভারে লগইন করতে পারেন। এর জন্য আপনাকে শুধুমাত্র ব্যবহারকারীর নাম এবং রিমোট সার্ভারের আইপি ঠিকানা বা হোস্টনেম জানাতে হবে।

ssh username@hostname_or_ip

উদাহরণ:

ssh user@192.168.1.100

এটি আপনাকে user ব্যবহারকারী হিসেবে 192.168.1.100 আইপি ঠিকানাযুক্ত রিমোট সিস্টেমে লগইন করবে।

২. SSH পাসওয়ার্ড অথেনটিকেশন

যদি এটি আপনার প্রথমবারের মতো SSH লগইন হয়, তবে আপনাকে রিমোট সার্ভারের SSH হোস্ট কী যাচাই করতে বলা হবে। আপনি yes লিখে এক্সিকিউট করলে হোস্ট কী গ্রহণ করা হবে। তারপর আপনাকে পাসওয়ার্ড প্রবেশ করতে বলা হবে।

৩. SSH পাসওয়ার্ড ছাড়া লগইন (পাবলিক কী অথেনটিকেশন)

পাসওয়ার্ড ছাড়া SSH লগইন করতে আপনি পাবলিক-প্রাইভেট কী পেয়ার ব্যবহার করতে পারেন। এটি আরও নিরাপদ এবং সুবিধাজনক। নিচে কী জেনারেট এবং সেটআপ করার পদ্ধতি দেয়া হলো।

৩.১: SSH কী পেয়ার তৈরি করা

প্রথমে, একটি SSH কী পেয়ার তৈরি করুন:

ssh-keygen -t rsa

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

৩.২: পাবলিক কী রিমোট সিস্টেমে কপি করা

আপনি ssh-copy-id ব্যবহার করে আপনার পাবলিক কী রিমোট সিস্টেমে কপি করতে পারেন:

ssh-copy-id username@hostname_or_ip

এটি আপনার পাবলিক কী রিমোট সার্ভারের ~/.ssh/authorized_keys ফাইলে কপি করবে।

৩.৩: SSH পাসওয়ার্ড ছাড়া লগইন

এখন আপনি পাসওয়ার্ড ছাড়া SSH লগইন করতে পারবেন:

ssh username@hostname_or_ip

এটি আপনার পাবলিক কী ব্যবহার করে নিরাপদভাবে লগইন করবে।


SSH পোর্ট ফরওয়ার্ডিং

SSH পোর্ট ফরওয়ার্ডিং একটি সুরক্ষিত টানেল তৈরি করতে সাহায্য করে, যা দূরবর্তী সিস্টেমে নিরাপদভাবে অ্যাক্সেস প্রদান করে।

১. লুকাল পোর্ট ফরওয়ার্ডিং:

লুকাল পোর্ট ফরওয়ার্ডিংয়ে, আপনি স্থানীয় সিস্টেমের পোর্টে কোনো সেবা ফরওয়ার্ড করেন যা রিমোট সিস্টেমের পোর্টে চালু থাকে।

ssh -L 8080:localhost:80 username@hostname_or_ip

এটি আপনার স্থানীয় সিস্টেমের পোর্ট 8080 কে রিমোট সিস্টেমের পোর্ট 80 এর সাথে যুক্ত করবে।

২. রিমোট পোর্ট ফরওয়ার্ডিং:

রিমোট পোর্ট ফরওয়ার্ডিংয়ে, আপনি দূরবর্তী সিস্টেমের পোর্টে স্থানীয় সিস্টেমের পোর্ট ফরওয়ার্ড করেন।

ssh -R 8080:localhost:80 username@hostname_or_ip

এটি রিমোট সিস্টেমের পোর্ট 8080 কে আপনার স্থানীয় সিস্টেমের পোর্ট 80 এর সাথে যুক্ত করবে।


SSH ত্বরা ফাইল ট্রান্সফার (SCP, SFTP)

১. SCP (Secure Copy Protocol):

SCP ব্যবহার করে আপনি ফাইল স্থানান্তর করতে পারেন। এটি একটি নিরাপদ কপি প্রোটোকল, যা SSH এর মাধ্যমে কাজ করে।

ফাইল কপি করা:

scp localfile.txt username@hostname_or_ip:/path/to/destination

ফোল্ডার কপি করা:

scp -r localfolder username@hostname_or_ip:/path/to/destination

২. SFTP (Secure File Transfer Protocol):

SFTP ব্যবহার করে ফাইল স্থানান্তর করতে পারেন, যা SCP এর মতো কিন্তু আরও বেশি ফিচার সহ।

SFTP শুরু করা:

sftp username@hostname_or_ip

এটি SFTP প্রম্পট খুলবে, যেখানে আপনি ফাইল স্থানান্তরের জন্য put, get, ls, cd ইত্যাদি কমান্ড ব্যবহার করতে পারেন।


সারসংক্ষেপ

SSH একটি নিরাপদ পদ্ধতি যা রিমোট সিস্টেমে লগইন করতে এবং কমান্ড এক্সিকিউট করতে ব্যবহৃত হয়। এটি পাসওয়ার্ড এবং পাবলিক-কি অথেনটিকেশন সমর্থন করে, যা নিরাপত্তা নিশ্চিত করে। আপনি SSH এর মাধ্যমে রিমোট টার্মিনাল, পোর্ট ফরওয়ার্ডিং, এবং ফাইল ট্রান্সফার (SCP/SFTP) ব্যবহার করতে পারেন। SSH এর মাধ্যমে আপনি নিরাপদ এবং সহজে দূরবর্তী সিস্টেমে কাজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...