এলএক্সসি পাত্রে সুরক্ষার সীমান্তরেখা কোথায়?


8

আমার প্রশ্নটি একটি এলএক্সসি ধারকটির সুরক্ষা সম্পর্কে around

যদি আমি আমার বাক্সে একাধিক কনটেইনার চালাচ্ছি এবং ব্যবহারকারীদের তাদের মালিকানাধীন ধারকটিতে একটি পৃথক ssh অ্যাক্সেস দিচ্ছি, তবে container ধারকগুলির মধ্যে যে কোনওটি সেই বাক্সের অন্য পাত্রে বা এমনকি হোস্ট মেশিনে হ্যাক করতে পারে?

এলএক্সসি পাত্রে সুরক্ষার সীমান্তরেখা কোথায়?


আপনি জানেন যে এটি সম্পর্কে চিন্তা করা দরকার, অ্যাপঅর্মার এটি যত্ন নেবে।
rʒɑdʒɑ

উত্তর:


8

যেমনটি আমি দেখেছি এলএক্সসি এটি কনটেইনার তথ্য এবং (ডিফল্ট ব্যাকিং স্টোর সহ) / var / lib / lxc এর অধীনে মূল ফাইল সিস্টেমগুলি সঞ্চয় করে। ধারক তৈরি টেমপ্লেটগুলি / var / cache / lxc এর অধীনে ক্যাশেড বিতরণ তথ্য সংরক্ষণ করতে ঝোঁক।

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

তবে উবুন্টু বিকাশকারীরা ইতিমধ্যে এই স্থানে আসতে পারে এবং তারা অ্যাপআর্মার সাহায্যে একটি সুরক্ষিত সমাধান সরবরাহ করেছে।

ধারকটির অভ্যন্তরে বিশেষাধিকারের দুর্ঘটনাজনিত অপব্যবহার থেকে হোস্টকে রক্ষা করার উদ্দেশ্যে একটি অ্যাপ্পর্মার প্রোফাইলযুক্ত এলএক্সসি জাহাজ। উদাহরণস্বরূপ, ধারক /proc/sysrq-triggerবেশিরভাগ /sysফাইলগুলিতে বা লিখতে সক্ষম হবে না ।

Usr.bin.lxc-start প্রোফাইলটি lxc-start চালিয়ে প্রবেশ করা হয়। এই প্রোফাইলটি মূলত ধারকটির মূল ফাইল সিস্টেমের বাইরে নতুন ফাইল সিস্টেমগুলি মাউন্ট করা থেকে lxc-start প্রতিরোধ করে। ধারকটির আরম্ভ কার্যকর করার আগে, LXC ধারকটির প্রোফাইলে স্যুইচ করার অনুরোধ করে। ডিফল্টরূপে, এই প্রোফাইলটি lxc- ধারক-ডিফল্ট নীতি যা সংজ্ঞায়িত হয়েছে /etc/apparmor.d/lxc/lxc-default। এই প্রোফাইলটি ধারকটিকে অনেকগুলি বিপজ্জনক পাথ অ্যাক্সেস করা থেকে এবং বেশিরভাগ ফাইল সিস্টেমে মাউন্ট করা থেকে বাধা দেয়।

যদি আপনি দেখতে পান যে কোনও বৈধ অ্যাক্সেসের কারণে lxc-start ব্যর্থ হচ্ছে যা এর অ্যাপারমার নীতি দ্বারা অস্বীকার করা হচ্ছে, আপনি lxc-start প্রোফাইলটি অক্ষম করতে পারেন:

sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start
sudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disabled/

এটি lxc-start রানটিকে অসমর্থিত করে তুলবে, তবে ধারকটিকে নিজেই সীমাবদ্ধ রাখবে। আপনি যদি ধারকটির সীমাবদ্ধতাও অক্ষম করতে চান তবে usr.bin.lxc-startপ্রোফাইলটি অক্ষম করার পাশাপাশি আপনাকে অবশ্যই যুক্ত করতে হবে:

lxc.aa_profile = unconfined

ধারক কনফিগারেশন ফাইল। আপনি যদি কাস্টম প্রোফাইলে কোনও ধারক চালাতে চান তবে আপনি এর অধীনে একটি নতুন প্রোফাইল তৈরি করতে পারেন /etc/apparmor.d/lxc/। Lxc-start এই প্রোফাইলটিতে স্থানান্তরিত হওয়ার মঞ্জুরি দেওয়ার জন্য অবশ্যই এর নামটি lxc- দিয়ে শুরু করা উচিত। নীতি তৈরির পরে, এটি ব্যবহার করে লোড করুন:

sudo apparmor_parser -r /etc/apparmor.d/lxc-containers

পুনরায় বুট করার পরে প্রোফাইলটি স্বয়ংক্রিয়ভাবে লোড হবে, কারণ এটি ফাইলের মাধ্যমে উত্সাহিত /etc/apparmor.d/lxc-containers। পরিশেষে, ধারক সিএন এই নতুন ব্যবহার করতে lxc-CN-profile, এর কনফিগারেশন ফাইলে নিম্নলিখিত লাইনটি যুক্ত করুন:

lxc.aa_profile = lxc-CN-profile

lxc-execute কোনও অ্যাপারমোর প্রোফাইল প্রবেশ করে না, তবে এটি যে পাত্রে স্প্যান করেছে তা সীমাবদ্ধ থাকবে।


আপনার উত্তরের জন্য অনেক ধন্যবাদ। সুতরাং, আপনি কি বলছেন যে আমি যদি অ্যাপআর্মার ব্যবহার করি তবে এটি নিরাপদ?
আইকোড

@ আইকোড, হ্যাঁ অ্যাপ অ্যাপর্মটি উবুন্টু অ্যাপ্লিকেশন এবং এলএক্সসি সুরক্ষার জন্য ডিজাইন করা হয়েছে যদি আপনি অ্যাপআরমার ব্যবহার করেন তবে সুরক্ষার ক্ষেত্রেও দুর্দান্ত সমর্থন পাবে।
rʒɑdʒɑ

AppArmor সব কিছু নয়, উদাহরণস্বরূপ আমি দেখেছি যে dmesgকোনও পাত্রে (কমপক্ষে ডিফল্ট কনফিগারেশনে) থেকে কল করা যেতে পারে। আমি আশঙ্কা করছি এটিই কেবল সুরক্ষা ঝুঁকি নয় ...
ড্যানিয়েল অ্যাল্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.