CentOS 7 - VSFTPD এর মাধ্যমে তৈরি ডিরেক্টরিগুলি SELinux প্রসঙ্গ উত্তরাধিকার সূত্রে প্রাপ্ত নয়


8

আমাদের সংস্থার সেন্টোস 7 এর সাথে একটি ওয়েবসভার রয়েছে এবং আমাদের গ্রাহকরা তাদের ওয়েবসাইটগুলি এফটিপি (vsftpd) এর মাধ্যমে পরিচালনা করে। সেলইনাক্স কার্যকর করা মোডে রয়েছে।

সমস্যাটি হ'ল ভিএসএফটিপিডি এর মাধ্যমে তৈরি করা / আপলোডের ডেটা উপযুক্ত সেলইনাক্স প্রসঙ্গে উত্তরাধিকার সূত্রে প্রাপ্ত নয়। আমাকে বিস্তারিত বলতে দাও.

উদাহরণস্বরূপ, ওয়ার্ডপ্রেস সাইটগুলির জন্য সার্ভারের বাক্সের বাইরে রয়েছে, ইতিমধ্যে কয়েকটি নিয়ম ব্যবহার করা দেখা যায় semanage fcontext -l |grep '/var/www', যা হ'ল:

/var/www/html(/.*)?/uploads(/.*)?                  all files          system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)?               all files          system_u:object_r:httpd_sys_rw_content_t:s0

সুতরাং, আমি যখন কোনও ওয়ার্ডপ্রেস সাইট অনুলিপি করি /var/www/html/এসএসএইচ, ফোল্ডারগুলির দ্বারা একটি ডিরেক্টরিতে অন্য সার্ভার থেকে বলি wp-content/এবং wp-content/uploads/যথাযথ httpd_sys_rw_content_tসুরক্ষা প্রসঙ্গটি পাই । তবুও, যখন ফোল্ডারগুলি এফটিপি-র মাধ্যমে তৈরি করা হয়, তখন তারা প্রাপ্ত প্রসঙ্গটি httpd_sys_content_t(কোনও আরডাব্লু ) হয় না। এর অর্থ হ'ল আমাদের গ্রাহকরা সার্ভারে যে সাইটগুলি আপলোড করে সেগুলি অ্যাপাচি ব্যবহারকারী / গোষ্ঠীকে লেখার অনুমতি দেওয়ার পরেও সেই ডিরেক্টরিগুলিতে লিখতে পারে না, সুতরাং ওয়ার্ডপ্রেস অ্যাডমিন কাজ করে না। সুতরাং, যখন তারা কোনও সাইট আপলোড করেন তাদের এগুলি ঠিক করার জন্য আমাদের কাছ থেকে সহায়তা প্রার্থনা করতে হবে, যা জড়িত সবার পক্ষে সময় নষ্ট করে।

ধরা যাক গ্রাহকরা তাদের সাইটগুলিতে আপলোড করেছেন httpdocs, যদি এসএসএইচের মাধ্যমে আমি mv httpdocs/ httpdocs.2/ && cp -pr httpdocs.2/ httpdocs/ && rm httpdocs.2/ -frসমস্যাটি সমাধান করি তবে ডেটাতে কোনও সমস্যা নেই।

restorecon -Rv httpdocs/সমস্যাটি স্থির করার জন্য আমিও করতে পারি ।

সুতরাং, প্রশ্নটি হল: আমি কীভাবে ভিএসএফটিপিডি-র মাধ্যমে ডিরেক্টরিগুলি তৈরি / আপলোড করতে পারি এসএসএইচ-এর মাধ্যমে ডিরেক্টরিগুলি তৈরি / আপলোড করার সময় যথাযথ সেলইনাক্স প্রসঙ্গে যেমন উত্তরাধিকার সূত্রে প্রাপ্ত হয়?


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

ধন্যবাদ মাইকেল। আমি আপনার সাথে একমত হই তবে আমাদের ক্ষেত্রে আমরা আমাদের গ্রাহকদের জন্য "ftp.domain.com" ব্যবহার করি না এবং আমরা সার্ভারের সর্বজনীন আইপি ঠিকানাটি প্রকাশ করি না (সার্ভার NginX প্রক্সিটির পিছনে রয়েছে), সুতরাং এফটিপি সুরক্ষা কোনও সমস্যা নয় আমাদের জন্য. কেবলমাত্র আমরা যাদের এফটিপি ঠিকানা প্রেরণ করি তারা এফটিপি-র মাধ্যমে সংযোগ করার জন্য এমনকি সার্ভারের আইপি ঠিকানাও খুঁজে পেতে পারে।
জুয়ান পাবলো ব্যারিওস

উত্তর:


6

ডিফল্ট লেবেলিং যা রানটাইমের সময় ঘটে এবং সার্ভারে প্রযোজ্য নিয়মিত এক্সপ্রেশন ভিত্তিক পোস্ট-লেবেলিং নীতির মধ্যে পার্থক্য রয়েছে।

আপনি এখানে কি লক্ষ করছেন:

/var/www/html(/.*)?/uploads(/.*)?                  all files          system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)?               all files         system_u:object_r:httpd_sys_rw_content_t:s0

পোস্ট লেবেলিং নীতি।

আপনার সমস্যায় আপনি যা আলোচনা করেন তা আসলে রানটাইম নীতি সম্পর্কিত।

SELinux ব্যবহার করে কোনও ডিরেক্টরিতে কোনও এন্ট্রি তৈরি করা হলে ফাইল বা ডিরেক্টরিটি যে লেবেলটি শেষ হয় তা নিয়মিতভাবে আপনার উদ্ধৃতি অনুসারে প্রকাশ করা হয় না তবে নীচের মতো অন্যান্য বিধি দ্বারা নিয়ন্ত্রিত হয় না (আমি বিশ্বাস করি এটি সঠিক ক্রম তবে কিছু মিস হতে পারে)) ।

  1. একটি স্পষ্ট নামের type_transitionনিয়ম আছে।
  2. এখানে একটি স্পষ্টভাবে নামহীন type_transitionনিয়ম রয়েছে।
  3. প্যারেন্ট ডিরেক্টরি হিসাবে একই প্রসঙ্গে উত্তরাধিকারী।
  4. প্রয়োগ করুন default_context

সুতরাং, আমি যখন কোনও ওয়ার্ডপ্রেস সাইটের অনুলিপি করি তখন এসএসএইচ দ্বারা অন্য সার্ভার থেকে / var / www / html / ডিরেক্টরিতে ডিরেক্টরিতে বলি, ফোল্ডারগুলিতে ডব্লিউপি-সামগ্রী / এবং ডাব্লুপি-সামগ্রী / আপলোডগুলি / যথাযথ httpd_sys_rw_content_t সুরক্ষা প্রসঙ্গ থাকতে পারে।

সুতরাং, হ্যাঁ এটি এটি করে, তবে যে কারণে আপনি মনে করেন এটি এটি করে না। অবশ্যই পোস্ট লেবেলিং নীতির কারণে নয়।

এটি ঘটে কারণ একটি নির্দিষ্ট নামযুক্ত type_transitionবিধি বিদ্যমান যা এই আচরণ সরবরাহ করে।

$ sesearch -C -T -s unconfined_t -t httpd_sys_content_t -c dir

Found 4 named file transition filename_trans:
type_transition unconfined_t httpd_sys_content_t : dir httpd_sys_rw_content_t "wp-content"; 
type_transition unconfined_t httpd_sys_content_t : dir httpd_sys_rw_content_t "smarty"; 
type_transition unconfined_t httpd_sys_content_t : dir httpd_sys_rw_content_t "uploads"; 
type_transition unconfined_t httpd_sys_content_t : dir httpd_sys_rw_content_t "upgrade"; 

এটি মূলত বলা হচ্ছে।

  • আপনি যদি unconfined_t এবং
  • আপনি যদি লক্ষ্যটির ধরণে কোনও ক্রিয়া সম্পাদন করছেন httpd_sys_content_t এবং
  • নতুন এন্ট্রির ক্লাসটি যদি একটি ডিরেক্টরি হয় এবং
  • নতুন এন্ট্রিটির নাম যদি "আপলোড" হয় তবে
  • নতুন টাইপটি হ'ল httpd_sys_rw_content_t

এটি এসএসএইচডি-র জন্য কাজ করার কারণ হ'ল লগ ইন করার পরে আপনাকে এই সূত্রটি প্রযোজ্য উত্সের প্রসঙ্গ দেওয়া হবে unconfined_t

এটি এফটিপি পরিষেবাটির জন্য কাজ করে না কারণ এই পরিষেবার উত্সের প্রসঙ্গটি সম্ভবত ftpd_tএর কোনও মিলের নিয়ম নেই।

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

কমপক্ষে ফেডোরায় 23 এ অনুমতি দেওয়ার জন্য একটি ইন্টারফেস রয়েছে, এটির মতো একটি পলিসি মডিউল এটি করবে।

policy_module(local_ftpd, 7.2.0)

require {
  type ftpd_t;
}

apache_filetrans_named_content(ftpd_t)

আপনি selinux-policy-develপ্যাকেজ ইনস্টল এবং চলমান আছে তা নিশ্চিত করে এটিকে লোড করতে পারেন make -f /usr/share/selinux/devel/Makefile load


1
হাই ম্যাথু, কৌতুকটি করেছে !! আমি এটির সাথে পাগল হয়ে যাচ্ছিলাম বলে আপনার সহায়তার জন্য ধন্যবাদ। আমি যে নীতি মডিউলটি লিখেছিলাম সেগুলি সম্পর্কে আমি নিশ্চিত ছিলাম না কারণ আমি কখনই সেলইনাক্সকে কাস্টমাইজ করি নি, তাই আমি কিছুটা গুগল করেছিলাম এবং নিম্নলিখিতটি আমি যা করেছি তা হ'ল: আমি local_ftpd.teআপনার নীতিমালাটি দিয়ে ফাইলটি তৈরি করেছি , তারপরে আমি make -f /usr/share/selinux/devel/Makefile local_ftpd.ppএবং পরে করেছি semodule -i local_ftpd.pp। এটা কি ঠিক আছে? এখন এফটিপি এর মাধ্যমে তৈরি করা ফাইলগুলি পছন্দসই প্রসঙ্গের উত্তরাধিকারী। আবার ধন্যবাদ!
জুয়ান পাবলো ব্যারিওস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.