23 সেন্টস সার্ভার কঠোর করার সুরক্ষা টিপস - পার্ট 2


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

  1. 20 সেন্টস সার্ভার কঠোর করার সুরক্ষা টিপস - অংশ 1

21. অকেজো SID এবং SGID কমান্ড অক্ষম করুন

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

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

# find /  -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

সেটুইড বিট আনসেট করতে নীচের কমান্ডটি কার্যকর করুন:

# chmod u-s /path/to/binary_file

সেটগিড বিট আনসেট করতে নীচের কমান্ডটি চালান:

# chmod g-s /path/to/binary_file

22. অজানা ফাইল এবং ডিরেক্টরিগুলির জন্য পরীক্ষা করুন

কোনও বৈধ অ্যাকাউন্টের মালিকানাধীন ফাইল বা ডিরেক্টরিগুলি অবশ্যই কোনও ব্যবহারকারী এবং গোষ্ঠী থেকে অনুমতি নিয়ে মুছে ফেলা বা নির্ধারিত হতে হবে।

ব্যবহারকারী বা গোষ্ঠী ছাড়া ফাইল বা ডিরেক্টরি তালিকাবদ্ধ করতে নীচের ফাইন্ড কমান্ডটি জারি করুন।

# find / -nouser -o -nogroup -exec ls -l {} \;

23. ওয়ার্ল্ড লিখনযোগ্য ফাইল তালিকাভুক্ত

যে কেউ এটিকে সংশোধন করতে পারে তার কারণে সিস্টেমে একটি বিশ্ব লিখনযোগ্য ফাইল রাখা বিপজ্জনক হতে পারে। সিমলিংক ব্যতীত শব্দ-রচনামূলক ফাইলগুলি প্রদর্শন করার জন্য নীচের কমান্ডটি কার্যকর করুন যা সর্বদা বিশ্ব লিখনযোগ্য।

# find / -path /proc -prune -o -perm -2 ! -type l –ls

24. শক্তিশালী পাসওয়ার্ড তৈরি করুন

সর্বনিম্ন আট অক্ষরের একটি পাসওয়ার্ড তৈরি করুন। পাসওয়ার্ডে অবশ্যই অঙ্ক, বিশেষ অক্ষর এবং বড় হাতের অক্ষর থাকতে হবে।/Dev/urandom ফাইল থেকে 128 বিটের পাসওয়ার্ড তৈরি করতে pwmake ব্যবহার করুন।

# pwmake 128

25. স্ট্রং পাসওয়ার্ড নীতি প্রয়োগ করুন

/Etc/pam.d/passwd ফাইলটিতে নীচের লাইনটি যুক্ত করে সিস্টেমটিকে শক্তিশালী পাসওয়ার্ডগুলি ব্যবহার করতে বাধ্য করুন।

password required pam_pwquality.so retry=3

উপরের লাইনটি যুক্ত করে, প্রবেশ করা পাসওয়ার্ডটিতে একঘেয়েমিক ক্রমের মধ্যে 3 টিরও বেশি অক্ষর থাকতে পারে না, যেমন অ্যাবসিডি, এবং 1111 এর মতো টানা 3 টির বেশি অভিন্ন অক্ষর।

ব্যবহারকারীদের সমস্ত শ্রেণীর অক্ষর সহ সর্বনিম্ন 8 টি অক্ষরের দৈর্ঘ্য সহ একটি পাসওয়ার্ড ব্যবহার করতে বাধ্য করার জন্য, অক্ষর ক্রমগুলির জন্য শক্তি-পরীক্ষা এবং একটানা অক্ষরগুলি /etc/security/pwquality.conf ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন।

minlen = 8
minclass = 4
maxsequence = 3
maxrepeat = 3

26. পাসওয়ার্ড एजিং ব্যবহার করুন

চেজ কমান্ডটি ব্যবহারকারীর পাসওয়ার্ড বার্ধক্যের জন্য ব্যবহার করা যেতে পারে। 45 দিনের মধ্যে মেয়াদ শেষ হওয়ার জন্য কোনও ব্যবহারকারীর পাসওয়ার্ড সেট করতে, নিম্নলিখিত আদেশটি ব্যবহার করুন:

# chage -M 45 username

পাসওয়ার্ড সমাপ্তির সময় অক্ষম করতে কমান্ডটি ব্যবহার করুন:

# chage -M -1 username

নিম্নলিখিত কমান্ডটি চালিয়ে তাত্ক্ষণিক পাসওয়ার্ডের মেয়াদোত্তীর্ণকরণ (ব্যবহারকারী অবশ্যই পরবর্তী লগইনে পাসওয়ার্ড পরিবর্তন করতে হবে):

# chage -d 0 username

27. অ্যাকাউন্টগুলি লক করুন

পাসওয়ার্ড বা ইউজারমড কমান্ড কার্যকর করে ব্যবহারকারীর অ্যাকাউন্টগুলি লক করা যেতে পারে:

# passwd -l username
# usermod -L username

অ্যাকাউন্টগুলি আনলক করতে পাসওয়ার্ড কমান্ডের জন্য -u বিকল্প এবং ব্যবহারকারীর জন্য -U বিকল্পটি ব্যবহার করুন।

28. অ্যাকাউন্ট শেল অ্যাক্সেস প্রতিরোধ করুন

ব্যাশ শেলের অ্যাক্সেস পেতে সিস্টেম অ্যাকাউন্ট (সাধারণ অ্যাকাউন্ট বা পরিষেবা অ্যাকাউন্ট) রোধ করতে, নীচের কমান্ডটি জারি করে রুট শেলটি/usr/sbin/nologin বা/etc/passwd ফাইলটিতে/বিন/মিথ্যে পরিবর্তন করুন:

# usermod -s /bin/false username

নতুন ব্যবহারকারী তৈরি করার সময় শেল পরিবর্তন করতে নিম্নলিখিত কমান্ডটি প্রদান করুন:

# useradd -s /usr/sbin/nologin username

29. লক দিয়ে ভার্চুয়াল ব্যবহারকারী কনসোলটি লক করুন

লিনাক্স কনসোলে একটি একাধিক সেশন লক করার জন্য ভলক হ'ল একটি প্রোগ্রাম। প্রোগ্রামটি ইনস্টল করুন এবং নীচের কমান্ডগুলি চালিয়ে আপনার টার্মিনাল সেশনটি লক করা শুরু করুন:

# yum install vlock
# vlock

30. অ্যাকাউন্ট এবং প্রমাণীকরণ পরিচালনা করার জন্য একটি কেন্দ্রীয়ীকরণ সিস্টেম ব্যবহার করুন

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

এর মধ্যে কয়েকটি পরিষেবা ডিফল্টরূপে ক্রিপ্টোগ্রাফিক প্রোটোকল এবং সিমমেট্রিক-কী ক্রিপ্টোগ্রাফি, যেমন কারবেরোসের সাহায্যে অত্যন্ত সুরক্ষিত।

31. ইউএসবি মিডিয়াতে কেবল পঠনযোগ্য মাউন্টিংয়ের জন্য চাপ দিন

ব্লকদেব ইউটিলিটি ব্যবহার করে আপনি সমস্ত অপসারণযোগ্য মিডিয়াকে কেবল পঠনযোগ্য হিসাবে মাউন্ট করতে বাধ্য করতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত সামগ্রীর সাহায্যে /etc/udev/rules.d/ ডিরেক্টরিতে 80-পঠনযোগ্য-usb.rules নামে একটি নতুন udev কনফিগারেশন ফাইল তৈরি করুন:

SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"

তারপরে, নীচের কমান্ডটি দিয়ে নিয়মটি প্রয়োগ করুন:

# udevadm control -reload

32. টিটিওয়াইয়ের মাধ্যমে রুট অ্যাক্সেস অক্ষম করা হচ্ছে

সমস্ত কনসোল ডিভাইস (টিটিওয়াই) এর মাধ্যমে রুট অ্যাকাউন্টটি সিস্টেম লগ-ইন করা থেকে বিরত রাখতে, নিম্নলিখিত কমান্ড টার্মিনাল প্রম্পটটিকে রুট হিসাবে টাইপ করে সুরক্ষিত ফাইলের সামগ্রীগুলি মুছুন।

# cp /etc/securetty /etc/securetty.bak
# cat /dev/null > /etc/securetty

মনে রাখবেন যে এই বিধিটি এসএসএইচ লগইন সেশনগুলির জন্য প্রযোজ্য নয়
এসএসএইচ এর মাধ্যমে রুট লগইন প্রতিরোধ করতে/etc/ssh/sshd_config ফাইলটি সম্পাদনা করুন এবং নীচের লাইনটি যুক্ত করুন:

PermitRootLogin no

33. সিস্টেমের অনুমতিগুলি প্রসারণ করতে পসিক্স এসিএলগুলি ব্যবহার করুন

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

উদাহরণ স্বরূপ,

# setfacl -m u:user:rw file
# getfacl file

34. এনফোর্স মোডে সেলইনাক্স সেটআপ করুন

লিনাক্স কার্নেলের SELinux বর্ধিতকরণ ম্যান্ডেটরি অ্যাক্সেস কন্ট্রোল (ম্যাক) নীতি প্রয়োগ করে, ব্যবহারকারীরা একটি সুরক্ষা নীতি নির্ধারণ করতে সক্ষম করে যা সমস্ত ব্যবহারকারী, প্রোগ্রাম, প্রক্রিয়া, ফাইল এবং ডিভাইসগুলির জন্য দানাদার অনুমতি দেয়।

কার্নেলের অ্যাক্সেস নিয়ন্ত্রণের সিদ্ধান্তগুলি সমস্ত সুরক্ষা-প্রাসঙ্গিক প্রসঙ্গের ভিত্তিতে এবং প্রমাণীকৃত ব্যবহারকারীর পরিচয়ের ভিত্তিতে নয়।

সেলিনাক্সের স্থিতি পেতে এবং নীতির প্রয়োগ করতে নীচের কমান্ডগুলি চালান:

# getenforce
# setenforce 1
# sestatus

35. সেলইনাক্স অতিরিক্ত ইউটিলিটিগুলি ইনস্টল করুন

পলিসিকিউটিস-পাইথন প্যাকেজ ইনস্টল করুন যা সেলইনাক্স পরিচালনার জন্য অতিরিক্ত পাইথন ইউটিলিটি সরবরাহ করে: অডিট 2 নিল, অডিট 2, চ্যাচ্যাট এবং সেমেনেজ।

সমস্ত বুলিয়ান মানগুলি সংক্ষিপ্ত বর্ণনার সাথে একসাথে প্রদর্শন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

# semanage boolean -l

উদাহরণস্বরূপ, httpd_enable_ftp_server এর মান প্রদর্শন এবং সেট করতে নীচের কমান্ডটি চালান:

# getsebool httpd_enable_ftp_server

বুবলিয়ানটির মান পুনরায় বুট করার জন্য, নীচের উদাহরণে চিত্রিত হিসাবে সেটসবুলের -P বিকল্পটি উল্লেখ করুন:

# setsebool -P httpd_enable_ftp_server on

36. সেন্ট্রালাইজড লগ সার্ভার ব্যবহার করুন

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

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

37. প্রক্রিয়া অ্যাকাউন্টিং সক্ষম করুন

সিস্টেম অ্যাকাউন্টিং ফাইলে রেকর্ডকৃত পূর্বে সম্পাদিত কমান্ডগুলি সম্পর্কে তথ্য প্রদর্শন করতে এবং সিস্টেম অ্যাকাউন্টিং ফাইলে রেকর্ডকৃত পূর্বে সম্পাদিত কমান্ডগুলির তথ্য সংক্ষিপ্ত করতে sacacct ইউটিলিটি ইনস্টল করে লাস্টকম কমান্ড ব্যবহার করে প্রক্রিয়া অ্যাকাউন্টিং সক্ষম করুন।

38. কঠোর করা /etc/sysctl.conf

সিস্টেমটি সুরক্ষিত করতে নিম্নলিখিত কার্নেল পরামিতি নিয়মগুলি ব্যবহার করুন:

net.ipv4.conf.all.accept_source_route=0
ipv4.conf.all.forwarding=0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

আইসিএমপি পুনর্নির্দেশিত প্যাকেটগুলির গ্রহণযোগ্যতা এবং প্রেরণটি অক্ষম করুন যদি না বিশেষভাবে প্রয়োজন হয়।

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.all.rp_filter=2

সমস্ত আইসিএমপি ইকো অনুরোধ উপেক্ষা করুন (সক্ষম করতে 1 এ সেট করুন)

net.ipv4.icmp_echo_ignore_all = 0

39. সুরক্ষিত পাবলিক নেটওয়ার্কগুলিতে আপনার জায়গা অ্যাক্সেস করতে ভিপিএন পরিষেবাদি ব্যবহার করুন

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

40. বহিরাগত সিস্টেম স্ক্যান সম্পাদন করুন

আপনার ল্যানের উপর থেকে দূরবর্তী পয়েন্টগুলি থেকে নির্দিষ্ট সরঞ্জামগুলি যেমন:

  1. এনম্যাপ - নেটওয়ার্ক স্ক্যানার 29 এনএমপ কমান্ডের উদাহরণ
  2. নেসাস - সুরক্ষা স্ক্যানার
  3. ওপেনওয়াস - দুর্বলতা এবং ব্যাপক দুর্বলতা পরিচালনার জন্য স্ক্যান করতে ব্যবহৃত
  4. নিক্টো - লিনাক্সে একটি দুর্দান্ত সাধারণ গেটওয়ে ইন্টারফেস (সিজিআই) স্ক্রিপ্ট স্ক্যানার স্ক্যান ওয়েব ভুবনশীলতা li

41. অভ্যন্তরীণভাবে সিস্টেম রক্ষা করুন

ভাইরাস, রুটকিটস, ম্যালওয়ারের বিরুদ্ধে অভ্যন্তরীণ সিস্টেম সুরক্ষা ব্যবহার করুন এবং একটি ভাল অনুশীলন হিসাবে অনুপ্রবেশ সনাক্তকরণ সিস্টেমগুলি ইনস্টল করুন যা অননুমোদিত কার্যকলাপ (ডিডিএস আক্রমণ, পোর্ট স্ক্যান) সনাক্ত করতে পারে:

  1. এইড - উন্নত অনুপ্রবেশ সনাক্তকরণ পরিবেশ - http://aide.sourceforge.net/
  2. ক্ল্যামএভি - অ্যান্টিভাইরাস স্ক্যানার https://www.clamav.net
  3. আরখুন্টার - রুটকিট স্ক্যানার
  4. লিনিস - লিনাক্সের জন্য সুরক্ষা নিরীক্ষণ এবং স্ক্যান করার সরঞ্জাম
  5. ট্রিপওয়ায়ার - সুরক্ষা এবং ডেটা ইন্টিগ্রিটি http://www.tripwire.com/
  6. ব্যর্থ 2 ব্যান - অনুপ্রবেশ নেটওয়ার্ক প্রতিরোধ
  7. ওএসএসইসি - (এইচআইডিএস) হোস্ট-ভিত্তিক অনুপ্রবেশ সনাক্তকরণ সিস্টেম http://ossec.github.io/
  8. মোড_সিকিউরিটি - ব্রুট ফোর্স বা ডিডোএস আক্রমণগুলি রক্ষা করুন

42. ব্যবহারকারী পরিবেশ পরিবর্তনশীল পরিবর্তন করুন ify

নীচের কমান্ড জারি করে কমান্ড এক্সিকিউশন সংরক্ষণ করার জন্য তারিখ এবং সময় ফর্ম্যাট যুক্ত করুন:

# echo 'HISTTIMEFORMAT="%d/%m/%y  %T  "' >> .bashrc'

প্রতিবার কোনও কমান্ড টাইপ করার সাথে সাথে তাত্ক্ষণিকভাবে HISTFILE রেকর্ড করতে বাধ্য করুন (লগআউটের পরিবর্তে):

# echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc

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

# echo ‘TMOUT=120’ >> .bashrc

কার্যকর করে সমস্ত বিধি প্রয়োগ করুন:

# source .bashrc

43. ব্যাকআপ ডেটা

কোনও সিস্টেমের ব্যর্থতার ক্ষেত্রে আপনার সিস্টেমের অনুলিপি, পছন্দমতো অফসাইট সংরক্ষণ করার জন্য LVM স্ন্যাপশট ইত্যাদি ব্যবহার করুন।

সিস্টেমটি আপস হয়ে গেলে আপনি পূর্বের ব্যাকআপগুলি থেকে ডেটা পুনরুদ্ধার করতে পারেন।

অবশেষে, ভুলে যাবেন না যে আপনার সিস্টেমকে সুরক্ষিত রাখতে আপনি কতগুলি সুরক্ষা ব্যবস্থা এবং বিপরীত ব্যবস্থা গ্রহণ করেন না কেন, যতক্ষণ না আপনার মেশিনটি প্লাগ ইন এবং চালিত হয় ততক্ষণ আপনি কখনই 100% সম্পূর্ণ সুরক্ষিত হতে পারবেন না।