নিরাপত্তা এবং পারমিশন (Security and Permissions)
নিরাপত্তা এবং পারমিশন লিনাক্স এবং ইউনিক্স সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, যা সিস্টেমের রিসোর্স এবং ডেটা অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। সিস্টেমের সঠিক নিরাপত্তা এবং পারমিশন কনফিগারেশন সিস্টেমের সুরক্ষা এবং ডেটা অখণ্ডতা নিশ্চিত করতে সহায়ক। ব্যবহারকারীদের এবং গ্রুপগুলির জন্য বিভিন্ন অনুমতি এবং সিস্টেম রিসোর্স অ্যাক্সেস নিয়ন্ত্রণ করার জন্য লিনাক্সে বিভিন্ন পদ্ধতি রয়েছে।
1. ব্যবহারকারী এবং গ্রুপ (Users and Groups)
লিনাক্স সিস্টেমে ব্যবহারকারী এবং গ্রুপ দিয়ে পারমিশন নিয়ন্ত্রণ করা হয়। প্রতিটি ব্যবহারকারী এবং গ্রুপের নিজস্ব একটি UID (User ID) এবং GID (Group ID) থাকে। ফাইল সিস্টেমের প্রতিটি ফাইল এবং ডিরেক্টরি একটি মালিক (ব্যবহারকারী) এবং গ্রুপের সাথে সংযুক্ত থাকে, যা এই ফাইল বা ডিরেক্টরি অ্যাক্সেস করার অনুমতি নির্ধারণ করে।
- ব্যবহারকারী (User): একটি একক সিস্টেম ব্যবহারকারী, যার নিজস্ব পাসওয়ার্ড, হোম ডিরেক্টরি এবং অন্যান্য ফাইল থাকে।
- গ্রুপ (Group): এক বা একাধিক ব্যবহারকারীর একটি গ্রুপ, যার জন্য একযোগে অ্যাক্সেস অনুমতি দেওয়া হয়।
2. পারমিশন (Permissions)
ফাইল পারমিশন ফাইল এবং ডিরেক্টরির উপর একটি নির্দিষ্ট ব্যবহারকারী বা গ্রুপের কাজ করার অনুমতি প্রদান করে। তিনটি ধরনের পারমিশন থাকে:
r(read): ফাইলের বিষয়বস্তু পড়ার অনুমতি।w(write): ফাইলের বিষয়বস্তু পরিবর্তন বা লেখা অনুমতি।x(execute): ফাইলটি এক্সিকিউট বা চালানোর অনুমতি (বিশেষত স্ক্রিপ্ট বা প্রোগ্রামের জন্য)।
পারমিশন তিনটি অংশে বিভক্ত:
- Owner (মালিক): ফাইলের মালিক ব্যবহারকারীর জন্য পারমিশন।
- Group: ফাইলের গ্রুপ সদস্যদের জন্য পারমিশন।
- 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 ব্যবহারের মাধ্যমে সাধারণ ব্যবহারকারীরও প্রশাসনিক কাজ করার অনুমতি দেওয়া হয়।
ফাইল পারমিশন এবং নিরাপত্তা
ফাইল পারমিশন এবং নিরাপত্তা UNIX এবং LINUX সিস্টেমে অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি সিস্টেমের অ্যাক্সেস কন্ট্রোল এবং ডেটার সুরক্ষা নিশ্চিত করতে সাহায্য করে। ফাইল পারমিশন সিস্টেম ব্যবহারকারীদের, গ্রুপগুলোর, এবং অন্যান্যদের জন্য নির্দিষ্ট ফাইল এবং ডিরেক্টরির অ্যাক্সেস নিয়ন্ত্রণ করে। নিরাপত্তা, বিশেষত ফাইল পারমিশন, সিস্টেমের গুরুত্বপূর্ণ তথ্য এবং সংবেদনশীল ডেটার অবাধ অ্যাক্সেস প্রতিরোধ করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
১. ফাইল পারমিশন সিস্টেম
ফাইল পারমিশন সিস্টেম হল একটি পদ্ধতি যার মাধ্যমে একটি ফাইল বা ডিরেক্টরি কিভাবে ব্যবহৃত হবে তা নির্ধারণ করা হয়। এটি সিস্টেমের মালিক (owner), গ্রুপ (group), এবং অন্যান্য (others) ব্যবহারকারীদের জন্য পৃথক পৃথক পারমিশন সেট করে।
১.১ ফাইল পারমিশনের ধরন
- রিড (Read -
r): ফাইলের কনটেন্ট পড়া যাবে। - ওয়্রাইট (Write -
w): ফাইলের কনটেন্ট পরিবর্তন বা মুছে ফেলা যাবে। - এক্সিকিউট (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 দিয়ে পারমিশন নির্ধারণ করেন এবং +, -, = দিয়ে পারমিশন যোগ, বিয়োগ বা সেট করেন।
কমান্ড উদাহরণ:
মালিকের জন্য এক্সিকিউট পারমিশন যোগ করা:
chmod u+x file.txtগ্রুপ থেকে লেখার পারমিশন সরানো:
chmod g-w file.txtসব ব্যবহারকারীর জন্য এক্সিকিউট পারমিশন যোগ করা:
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
কমান্ড উদাহরণ:
মালিকের জন্য পূর্ণ পারমিশন এবং গ্রুপ ও অন্যান্যদের জন্য রিড ও এক্সিকিউট পারমিশন:
chmod 755 file.txtমালিক এবং গ্রুপের জন্য পূর্ণ পারমিশন এবং অন্যদের জন্য শুধুমাত্র রিড পারমিশন:
chmod 774 file.txt
৩. ফাইল এবং ডিরেক্টরির মালিকানা পরিবর্তন
ফাইল বা ডিরেক্টরির মালিকানা এবং গ্রুপ পরিবর্তন করতে chown এবং chgrp কমান্ড ব্যবহার করা হয়।
৩.১ chown কমান্ড: মালিক পরিবর্তন
chown কমান্ড দিয়ে একটি ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করা যায়।
কমান্ড উদাহরণ:
ফাইলের মালিক পরিবর্তন:
sudo chown alice file.txtমালিক এবং গ্রুপ পরিবর্তন:
sudo chown alice:admin file.txt
৩.২ chgrp কমান্ড: গ্রুপ পরিবর্তন
chgrp কমান্ড দিয়ে একটি ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করা যায়।
কমান্ড উদাহরণ:
ফাইলের গ্রুপ পরিবর্তন:
sudo chgrp admin file.txt
৪. ফাইল পারমিশন এবং নিরাপত্তা
ফাইল পারমিশন সিস্টেম নিরাপত্তা নিশ্চিত করতে সাহায্য করে, কারণ এটি নির্ধারণ করে কে কিসে অ্যাক্সেস করতে পারবে এবং কে নয়। সঠিক ফাইল পারমিশন সেট না থাকলে, সিস্টেমে সুরক্ষা ত্রুটি হতে পারে এবং ব্যবহারকারীরা অন্যদের গুরুত্বপূর্ণ তথ্য অ্যাক্সেস বা পরিবর্তন করতে পারে।
৪.১ সঠিক পারমিশন সেটিংস:
- সাধারণত 700 (মালিকের জন্য পূর্ণ পারমিশন, অন্যদের জন্য কিছুই না) বা 755 (মালিকের জন্য পূর্ণ পারমিশন এবং গ্রুপ ও অন্যান্যদের জন্য রিড ও এক্সিকিউট পারমিশন) ফাইলের জন্য নিরাপদ পারমিশন হয়।
- 644 (মালিকের জন্য রিড এবং রাইট, অন্যদের জন্য রিড) ফাইলগুলোতে ব্যবহার করা যেতে পারে।
৪.২ অপ্রয়োজনীয় পারমিশন সরানো:
- 777 পারমিশন দেয়া ফাইলগুলি একটি নিরাপত্তা ঝুঁকি সৃষ্টি করতে পারে, কারণ এটি সব ব্যবহারকারীদের সম্পূর্ণ অ্যাক্সেস প্রদান করে। এটি শুধুমাত্র যদি প্রয়োজন হয়, তবে ব্যবহার করা উচিত।
৪.৩ সুযোগ সীমাবদ্ধ করা:
sudoব্যবহার করে শুধুমাত্র নির্দিষ্ট ব্যবহারকারী বা গ্রুপকে সুপারইউজার (root) পারমিশন দেয়া উচিত, যাতে সিস্টেমের অপরিহার্য ফাইল বা কনফিগারেশন মুছে ফেলা বা পরিবর্তন করা থেকে বিরত থাকা যায়।
৫. স্ট্রোকলগ বা অডিটিং
নিরাপত্তার জন্য লগিং অত্যন্ত গুরুত্বপূর্ণ। অনেক সিস্টেমে ফাইল এবং ডিরেক্টরি অ্যাক্সেসের লগ রাখা হয়, যেমন auditd এর মাধ্যমে, যাতে কোন ব্যবহারকারী কখন, কোথায় এবং কীভাবে একটি ফাইল অ্যাক্সেস বা পরিবর্তন করেছে তা ট্র্যাক করা যায়।
সারসংক্ষেপ
- ফাইল পারমিশন ব্যবহারকারীদের এবং গ্রুপের জন্য ফাইলের অ্যাক্সেস কন্ট্রোল করে, যা নিরাপত্তা নিশ্চিত করে।
chmod,chown, এবংchgrpকমান্ড ব্যবহার করে ফাইল পারমিশন এবং মালিকানা পরিবর্তন করা যায়।- সঠিক ফাইল পারমিশন এবং নিরাপত্তা কনফিগারেশন সিস্টেমের সুরক্ষা নিশ্চিত করতে গুরুত্বপূর্ণ, এবং অপ্রয়োজনীয় পারমিশন সরানো এবং লগিং ব্যবস্থাপনা একটি নিরাপদ সিস্টেমের অংশ।
chmod, chown, এবং chgrp কমান্ডের ব্যবহার
chmod, chown, এবং chgrp কমান্ডগুলি ফাইল এবং ডিরেক্টরির পারমিশন এবং মালিকানা পরিবর্তন করতে ব্যবহৃত হয়। এগুলি মূলত ফাইলের অ্যাক্সেস কন্ট্রোল সেট করতে এবং ব্যবহারকারীর/গ্রুপের অধিকার নির্ধারণ করতে সাহায্য করে। নিচে প্রতিটি কমান্ডের ব্যবহার বিস্তারিতভাবে ব্যাখ্যা করা হলো।
১. chmod কমান্ড: ফাইল পারমিশন পরিবর্তন
chmod (চেঞ্জ মডিফিকেশন) কমান্ডটি ফাইল এবং ডিরেক্টরির পারমিশন পরিবর্তন করতে ব্যবহৃত হয়। আপনি এই কমান্ডের মাধ্যমে নির্ধারণ করতে পারেন কে কোন ফাইল পড়তে, লিখতে, অথবা এক্সিকিউট করতে পারবে।
সিনট্যাক্স:
chmod [options] permissions filenamepermissions: পারমিশনের ধরণ (যেমনr,w,x– read, write, execute)।filename: ফাইল বা ডিরেক্টরির নাম।
পারমিশন ফরম্যাট:
r: রিড পারমিশন (পড়া)w: রাইট পারমিশন (লিখা)x: এক্সিকিউট পারমিশন (চালনা)
সিম্বোলিক পারমিশন (Symbolic Permissions):
u: মালিক (user)g: গ্রুপo: অন্যরাa: সকল (all)
কমান্ড উদাহরণ:
ফাইলের রিড, রাইট এবং এক্সিকিউট পারমিশন যোগ করা (মালিকের জন্য):
chmod u+rwx file.txtএখানে
u+rwxদ্বারা মালিকের জন্যr,w,xপারমিশন যোগ করা হয়েছে।গ্রুপের জন্য রিড এবং এক্সিকিউট পারমিশন দেওয়া:
chmod g+rx file.txtঅন্যদের জন্য শুধুমাত্র রিড পারমিশন দেওয়া:
chmod o+r file.txtফাইলের পারমিশন বিয়োগ করা:
chmod o-w file.txtএখানে
o-wদ্বারা অন্যদের থেকে রাইট পারমিশন বিয়োগ করা হয়েছে।
সংখ্যাত্মক পারমিশন (Numeric Permissions):
r= 4w= 2x= 1
এই মানগুলো যোগ করে পারমিশন সেট করা হয়। উদাহরণস্বরূপ:
7=rwx(4+2+1)6=rw-(4+2)5=r-x(4+1)4=r--(4)
কমান্ড উদাহরণ:
মালিককে সম্পূর্ণ পারমিশন এবং গ্রুপ ও অন্যদের রিড পারমিশন দেওয়া:
chmod 744 file.txtসব ব্যবহারকারীকে সম্পূর্ণ পারমিশন দেওয়া:
chmod 777 file.txt
২. chown কমান্ড: ফাইল মালিকানা পরিবর্তন
chown (চেঞ্জ মালিকানা) কমান্ডটি ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।
সিনট্যাক্স:
chown [new_owner]:[new_group] filenamenew_owner: নতুন মালিকের নাম।new_group: নতুন গ্রুপের নাম (ঐচ্ছিক)।filename: ফাইল বা ডিরেক্টরির নাম।
উদাহরণ:
ফাইলটির মালিক পরিবর্তন করা:
sudo chown john file.txtএটি
file.txtফাইলটির মালিককেjohnহিসাবে পরিবর্তন করবে।ফাইলের মালিক এবং গ্রুপ পরিবর্তন করা:
sudo chown john:admin file.txtএটি
file.txtফাইলটির মালিককেjohnএবং গ্রুপকেadminহিসেবে পরিবর্তন করবে।রিকার্সিভভাবে (subdirectories সহ) মালিকানা পরিবর্তন করা:
sudo chown -R john:admin /path/to/directoryএটি
/path/to/directoryডিরেক্টরির সকল ফাইল এবং সাব-ডিরেক্টরি গুলোর মালিক এবং গ্রুপ পরিবর্তন করবে।
৩. chgrp কমান্ড: ফাইল গ্রুপ পরিবর্তন
chgrp (চেঞ্জ গ্রুপ) কমান্ডটি ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।
সিনট্যাক্স:
chgrp [new_group] filenamenew_group: নতুন গ্রুপের নাম।filename: ফাইল বা ডিরেক্টরির নাম।
উদাহরণ:
ফাইলের গ্রুপ পরিবর্তন করা:
sudo chgrp admin file.txtএটি
file.txtফাইলটির গ্রুপকেadminহিসেবে পরিবর্তন করবে।রিকার্সিভভাবে (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: শুধুমাত্র ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়।
এই কমান্ডগুলি সিস্টেমের নিরাপত্তা এবং ফাইল অ্যাক্সেস কন্ট্রোলের জন্য অত্যন্ত গুরুত্বপূর্ণ।
ফায়ারওয়াল সেটআপ: 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 ACCEPTSSH (পোর্ট 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.v4iptablesরিসেট করা:
ফায়ারওয়াল সব নিয়ম মুছে ফেলার জন্য: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 enableufwনিষ্ক্রিয় করা:sudo ufw disable
ufwস্ট্যাটাস দেখতে:sudo ufw statusএটি বর্তমানে কার্যকর নিয়মের তালিকা দেখাবে।
- নতুন নিয়ম যোগ করা:
HTTP (পোর্ট 80) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি:
sudo ufw allow 80SSH (পোর্ট 22) এর জন্য ইনবাউন্ড ট্রাফিক অনুমতি:
sudo ufw allow sshHTTPS (পোর্ট 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
| ফিচার | iptables | ufw |
|---|---|---|
| কনফিগারেশন | কমান্ড-লাইন ভিত্তিক এবং কাস্টমাইজযোগ্য | সহজ, ব্যবহারকারী বান্ধব কমান্ড-লাইন টুল |
| লাভ | অত্যন্ত শক্তিশালী এবং কাস্টমাইজযোগ্য | সহজ এবং দ্রুত সেটআপ |
| ব্যবহারকারী | বিশেষজ্ঞ এবং অ্যাডভান্সড ব্যবহারকারীদের জন্য | নতুন ব্যবহারকারীদের জন্য উপযুক্ত |
| ফায়ারওয়াল নিয়ম | কাস্টম নিয়ম সৃজনশীলভাবে তৈরি করা সম্ভব | পূর্বনির্ধারিত নিয়মের মাধ্যমে সহজ কনফিগারেশন |
| ডিফল্ট পলিসি | ডিফল্টভাবে কিছু নেই, প্রয়োজনীয় নিয়ম তৈরি করতে হয় | ডিফল্টভাবে ইনবাউন্ড ট্রাফিক ব্লক এবং আউটবাউন্ড অনুমতি দেয় |
সারসংক্ষেপ
iptables এবং ufw উভয়ই শক্তিশালী ফায়ারওয়াল টুল, তবে তাদের ব্যবহারে কিছু পার্থক্য রয়েছে। iptables শক্তিশালী এবং কাস্টমাইজযোগ্য, যা সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য উপযুক্ত, তবে এটি কিছুটা জটিল হতে পারে। অন্যদিকে, ufw সহজ এবং ব্যবহারকারী বান্ধব, যা নতুন ব্যবহারকারীদের জন্য একটি উপযুক্ত ফায়ারওয়াল টুল। সিস্টেমের নিরাপত্তা নিশ্চিত করতে উভয় টুলই ব্যবহার করা যেতে পারে, তবে আপনার ব্যবহারের প্রয়োজন অনুসারে সঠিক টুল নির্বাচন করা উচিত।
SSH এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেস
SSH (Secure Shell) একটি শক্তিশালী প্রোটোকল যা ল্যান (LAN) বা ওয়াইড অ্যারিয়া নেটওয়ার্ক (WAN) এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেস সরবরাহ করে। এটি ব্যবহারকারীদের দূরবর্তী সার্ভার বা কম্পিউটারে লগইন করতে এবং বিভিন্ন কমান্ড এক্সিকিউট করতে সক্ষম করে, কিন্তু সম্পূর্ণ এনক্রিপ্টেড সংযোগের মাধ্যমে, যাতে তৃতীয় পক্ষের দ্বারা তথ্য চুরি বা পরিবর্তন করা সম্ভব না হয়।
এটি বিশেষভাবে গুরুত্বপূর্ণ যখন আপনি সার্ভার বা সিস্টেমে কমান্ড চালাতে চান এবং আপনি নিশ্চিত হতে চান যে আপনার যোগাযোগ সুরক্ষিত এবং নিরাপদ।
SSH এর মাধ্যমে নিরাপদ রিমোট অ্যাক্সেসের সুবিধা:
- এনক্রিপ্টেড যোগাযোগ: SSH ডেটা এনক্রিপ্ট করে, যার মানে হলো আপনার রিমোট সেশন এবং ডেটা সুরক্ষিত থাকবে।
- পাসওয়ার্ড বা কী-ভিত্তিক অথেনটিকেশন: SSH পাসওয়ার্ড বা পাবলিক কী অথেনটিকেশন সমর্থন করে, যা পাসওয়ার্ডের তুলনায় আরও নিরাপদ।
- ফাইল ট্রান্সফার: SCP (Secure Copy Protocol) এবং SFTP (Secure File Transfer Protocol) ব্যবহার করে আপনি SSH এর মাধ্যমে সিস্টেমে বা সিস্টেম থেকে নিরাপদভাবে ফাইল স্থানান্তর করতে পারেন।
- রিমোট টার্মিনাল: SSH এর মাধ্যমে আপনি রিমোট কম্পিউটার বা সার্ভারে টার্মিনাল অ্যাক্সেস পেতে পারেন এবং সরাসরি কমান্ড চালাতে পারেন।
SSH ইনস্টলেশন
SSH সাধারণত Linux/UNIX সিস্টেমে পূর্বেই ইনস্টল করা থাকে, তবে যদি এটি ইনস্টল না থাকে, তবে আপনাকে এটি ইনস্টল করতে হবে।
১. SSH সার্ভার ইনস্টল করা
Ubuntu/Debian:
sudo apt update sudo apt install openssh-serverCentOS/RHEL:
sudo yum install openssh-serverFedora:
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 এর মাধ্যমে আপনি নিরাপদ এবং সহজে দূরবর্তী সিস্টেমে কাজ করতে পারেন।
Read more