আমি কেবল একটি উবুন্টু ১১.১০ বাক্স কাটিয়েছি এবং তারপরে বাক্সে apt-get install apache2 php5
অ্যাপাচি 2 এবং পিএইচপি 5 ইনস্টল করতে দৌড়েছি । এখন এটি একটি "ওয়েব সার্ভার" হিসাবে কাজ করছে এবং এটি "এটি কাজ করে!" পাতা। এখন আমি সুরক্ষা জোরদার করার চেষ্টা করছি এবং লিনাক্স ওয়েব সার্ভার সম্পর্কে আমার নিম্নলিখিত প্রশ্নগুলি রয়েছে:
- কে আপাচে চলবে?
- এই ব্যবহারকারীর কোন গ্রুপে থাকতে হবে?
- কোন প্যাকেজ (গুলি) পিএইচপি (এবং অ্যাপাচি?) ফাইলগুলির মালিক হিসাবে চালাতে পারে? (ভাগ করা ওয়েব হোস্টগুলির মত) আমার কি এই প্যাকেজগুলি ব্যবহার করা উচিত? এগুলি কি কোনও ছোট সিস্টেমে বজায় রাখা সহজ / সম্ভাব্য?
- ওয়েবে অ্যাপাচি চলমান থাকা ফাইল এবং ফোল্ডারগুলির জন্য ডিফল্ট অনুমতিগুলি কী হওয়া উচিত
www-data
? ব্যবহারকারী হিসাবে অ্যাপাচি / পিএইচপি চলমান?
আমি ডিফল্ট সেটআপ পরীক্ষায় নিম্নলিখিত জিনিসগুলি করেছি:
ফাইল স্ট্রাকচার
যখন আমি cd /
এবং ls -al
সামগ্রীর একটি তালিকা করি, আমি দেখতে পাই /var
:
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/
যদি আমি cd
ভিতরে যাই var
এবং ls -al
আমি দেখতে পাই:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/
পরিশেষে, ভিতরে /var/www
আমি দেখতে পেয়েছি:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 ../
-rw-r--r-- 1 root root 177 2012-02-04 20:47 index.html
আমার মূল কথাটি হ'ল এখন পর্যন্ত এই সমস্ত ফাইলের অন্তর্ভুক্ত root:root
, ফাইলগুলির 644 এর অনুমতি রয়েছে এবং ডিরেক্টরিতে 755 এর অনুমতি রয়েছে।
অ্যাপাচি এর অনুমতি
আমি যদি /var/www/test.php
বিষয়বস্তুগুলির সাথে রুট হিসাবে কোনও ফাইল তৈরি করি :
<?php echo shell_exec('whoami');
এবং সেই ফাইলটি একটি ব্রাউজারে লোড করুন এটি আমাকে বলে www-data
, যা /etc/apache2/envvars
ফাইলের মতো:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
আমি যদি ps aux | grep -i apache
নিম্নলিখিতগুলি দেখতে পাই:
root 1916 1.2 104664 7488 Ss 20:47 /usr/sbin/apache2 -k start
www-data 1920 0.8 105144 5436 S 20:47 /usr/sbin/apache2 -k start
www-data 1921 1.0 105144 6312 S 20:47 /usr/sbin/apache2 -k start
www-data 1922 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1923 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1924 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1925 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
তাহলে আপাচে কে চলছে? দেখে মনে হচ্ছে সম্ভবত প্রথম প্রক্রিয়াটি হ'ল root
, /etc/init.d/apache
সিস্টেমটি যখন শুরু হয়েছিল তখন স্ক্রিপ্ট থেকে এবং অন্যটি যেমন www-data
প্রথম থেকেই তৈরি হয়েছিল। এটা কি ঠিক?
পরবর্তী, আমি যদি টাইপ করি groups www-data
তবে আমি দেখতে পাই www-data : www-data
- সুতরাং এটি কেবলমাত্র www-data
গ্রুপে রয়েছে বলে মনে হচ্ছে । আমি অনুমান করছি এটি স্ট্যান্ডার্ড অনুশীলনও।
ভাগ করা হোস্টিং এবং সুরক্ষা
সুতরাং আমি যদি জিনিসগুলি সঠিকভাবে বুঝতে পারি, যদি আপাচি চলমান থাকে www-data
এবং আমি যদি অ্যাপাচি ডিরেক্টরিটি পড়তে সক্ষম হয় তবে x
বিটটি বিশ্ব (অন্যান্য) গোষ্ঠী ( o+x
) এর জন্য সেট করা দরকার এবং এটি সমস্ত পিতামাতার উপরও সেট করা দরকার সমস্ত উপায়ে চেইন ( www
, var
) পর্যন্ত ডিরেক্টরি। এবং আমি যদি আপাচি কোনও ফাইল থেকে পড়তে সক্ষম হতে চাই তবে o+r
বিট সেট করা দরকার।
দুর্ভাগ্যক্রমে আমি বিশ্বাস করি যে এটি একই লিনাক্স বাক্সে একাধিক অ্যাপ্লিকেশন এবং / অথবা একাধিক ব্যবহারকারীদের জন্য একটি সুরক্ষা গর্ত প্রবর্তন করে: সমস্ত ওয়েব ফাইলগুলি বিশ্ব-পঠনযোগ্য হওয়া দরকার এবং তাই সেগুলি সিস্টেমের অন্যান্য অ্যাপ্লিকেশন এবং অন্যান্য ব্যবহারকারীদের দ্বারাও অ্যাক্সেসযোগ্য। যদি সিস্টেমে ইনস্টল করা একটি অ্যাপ্লিকেশনটির এমন সুরক্ষা দুর্বলতা থাকে যা কাঁচা, অবৈধ ব্যবহারকারীর ইনপুটকে মঞ্জুরি দেয়, যা পিএইচপি দ্বারা কার্যকর করা হয়েছিল, তখন রিমোট আক্রমণকারী ওয়েব সিস্টেমে অন্য সমস্ত ফাইল ব্রাউজ করতে পারে যা বিশ্ব পাঠযোগ্য। তেমনিভাবে, যদি বাক্সটির একাধিক ব্যবহারকারী থাকে এবং কোনও ব্যবহারকারী অন্য ব্যবহারকারীর ওয়েব ফাইলগুলির পথ জানত, তবে সে ফাইলের বিষয়বস্তু পড়তে পারে (এবং সংবেদনশীল জিনিস যেমন ডাটাবেস সংযোগের স্ট্রিং ইত্যাদি দেখতে পারে)।
আমি দুটি প্যাকেজ শুনেছি suphp
এবং phpsuexec
এটি ব্যবহারকারীর ফাইলগুলি একটি ভাগ করা সিস্টেমে "তাদের হিসাবে" পরিবেশন করার অনুমতি দেয় deal এর অন্যতম বৈশিষ্ট্য হ'ল এটি ওয়েব অ্যাপ্লিকেশনগুলিকে (ওয়ার্ডপ্রেসের মতো) ফাইল তৈরি এবং সংশোধন করার অনুমতি দেয় - থিম, প্লাগইন এবং সফ্টওয়্যার আপগ্রেড করার জন্য খুব সহায়ক। অবশ্যই ম্যানুয়ালি এই জিনিসগুলি করা আরও সুরক্ষিত তবে উপরে বর্ণিত প্যাকেজগুলির মধ্যে একটির সাথে সম্ভবত কোনও আপস করা যেতে পারে? অথবা সম্ভবত chown
ওয়ার্ডপ্রেস ডিরেক্টরি গোষ্ঠীটি অন্তর্ভুক্ত করে www-data
এবং গোষ্ঠীতে স্টিকি বিট সেট করতে ব্যবহার করে g+s
?
আমি এগুলি কেবলমাত্র একটি ওয়েব হোস্টিং সংস্থার শেষ ব্যবহারকারী হিসাবে ব্যবহার করেছি এবং তাই আমি সেগুলির ইন-আউটগুলি জানি না এবং যদি তারা একটি ছোট সিস্টেমে ইনস্টল করা এমনকি যুক্তিসঙ্গত হয় তবে বা অন্য কোনও কিছু থাকলে এর পরিবর্তে আমার সুরক্ষা ব্যবস্থাগুলি ব্যবহার করা উচিত তবে আমি ভেবেছিলাম যে আমি তাদের এখানে উল্লেখ করব কারণ তারা আমার কিছু উদ্বেগের সমাধান করার একটি সম্ভাব্য উপায় বলে মনে হচ্ছে।
প্রশ্নগুলিতে ফিরে যান
- কে আপাচে চলবে?
- এই ব্যবহারকারীর কোন গ্রুপে থাকতে হবে?
- কোন প্যাকেজ (গুলি) পিএইচপি (এবং অ্যাপাচি?) ফাইলগুলির মালিক হিসাবে চালাতে পারে? (ভাগ করা ওয়েব হোস্টগুলির মত) আমার কি এই প্যাকেজগুলি ব্যবহার করা উচিত? এগুলি কি কোনও ছোট সিস্টেমে বজায় রাখা সহজ / সম্ভাব্য?
- ওয়েবে অ্যাপাচি চলমান থাকা ফাইল এবং ফোল্ডারগুলির জন্য ডিফল্ট অনুমতিগুলি কী হওয়া উচিত
www-data
? ব্যবহারকারী হিসাবে অ্যাপাচি / পিএইচপি চলমান?