Back to Question Center
0

مجوز سیستم فایل برای Semalt؟

1 answers:

ما یک پروژه منبع باز هستیم و یک وب سرور آپاچی با MediaWiki 1 داریم. 25. این یک نصب مستقل است، بنابراین ما عوارض میزبانی مشترک یک کاربردهای مختلف را نداریم - mongodb for analytics. Semalt 20 سال یا بیشتر و چندین مهاجرت، ما فایل هایی با مبلغ منصفانه متعلق به "هیچ کاربر" و "هیچ گروه".

ریشه: apache ، که مالک آن با rw و گروه با r . این تصادف نبود در عوض ما مجوزهای ناخواسته را با دستورات مانند find / var / www -nouser ، find / var / www -nogroup ، find / var / www \ -user root و find / var / www \! آپاچی گروه .

ما همچنین دو مورد خاص را شناسایی کردیم: ریشه: ریشه و apache: apache و تنظیم مجوز مجوز. ریشه: ریشه تنظیم مجدد شد زیرا به این معنی بود که فایل به سرور وب قابل دسترسی نبود. آپاچی: آپاچی تنظیم مجدد شد، به این معنی که یک کامپوننت با ریسک بالا دارای مجوزهای نوشتن بود.

آپاچی: آپاچی مشکل : ما موفق به شکستن آپلود و ریز عکسها MediaWiki، ) تنظیم مجدد. عمدتا OK است، زیرا مدیران از این ویژگی استفاده می کنند و ما می دانیم که چه چیزی باعث شکست شد. من اکنون سعی می کنم صبحت را اصلاح کنم، اما نمیتوانم تعیین کنم که مجوزهای سیستم فایل چیست. جستجو مجازات سطح برنامه را برای مواردی مانند LocalSettings آشکار می کند. php و $ wgGroupPermissions . و مدارک MediaWiki Architecture به آن بحث نمی کنند.

سوال : آیا مجوز فایل سیستمی برای نصب مدیاویکی در پیکربندی غیر به اشتراک گذاشته شده است؟


برای تکمیل، "غیر به اشتراک گذاشته" به معنی "تک کاربر" استفاده مورد از نقل قول چه مجوز باید فایل ها / پوشه های وب سایت من در سرور وب لینوکس است؟ VM به ما اختصاص داده شده است و تنها یک کاربر Semalt، MediaWiki و MySQL وجود دارد (MediaWiki به نظر می رسد Piggy-back در Semalt است، بنابراین تنها کاربران Semalt و MySQL وجود دارد).

ما نه در یک محیط میزبانی میزبان با نمونه های مختلف آپاچی و MediaWiki که در زیر زمینه های مختلف کاربر اجرا می شوند یا با مجوزهای مختلف فایل برای هر یک از مشترکین مجزا.


استثنا زمانی است که من سعی میکنم فایل را آپلود کنم. من مجبور شدم آن را آپلود کنم، زمانی که مجوزهای سیستم فایل "سریع و شل" بودند:

    [724f5260] / ویکی / ویژه: آپلود MWException از خط 1856 از / var / www / html / w / شامل / filerepo / file / LocalFile. php: قفل برای 'Vs2005-dynamic' برای قفل نبود. زیپ. "عقب نشینی:# 0 / var / www / html / w / شامل / filerepo / file / LocalFile. php (1148): localfile-> lock  
# 1 / var / www / html / w / includes / upload / UploadBase. php (715): LocalFile-> upload (string، string، boolean، integer، array، boolean، user) # 2 / var / www / html / w / includes / specials / SpecialUpload. php (476): UploadBase-> performUpload (string، boolean، boolean، user) # 3 / var / www / html / w / includes / specials / SpecialUpload. php (195): SpecialUpload-> processUpload
# 4 / var / www / html / w / includes / specialpage / SpecialPage. php (384): SpecialUpload-> execute (NULL) # 5 / var / www / html / w / شامل / specialpage / SpecialPageFactory. php (582): SpecialPage-> run (NULL) # 6 / var / www / html / w / includes / MediaWiki. php (267): SpecialPageFactory :: executePath (Title، RequestContext) # 7 / var / www / html / w / includes / MediaWiki. php (566): مدیاویکی-> performRequest
# 8 / var / www / html / w / includes / MediaWiki. php (414): مدیاویکی-> main
# 9 / var / www / html / w / index. php (41): مدیاویکی-> run
# 10 {اصلی}

در اینجا زمینه های کاربران برای وب سرور در حال اجرا است.

    $ sudo ps aux | egrep -i (apache | http | media | wiki)
ریشه 127 0. 0 1. 2 552216 13424؟ اس اس 01:35 0:12 / usr / sbin / httpd-قبل از دور
آپاچی 7318 0. 5 2. 5 564804 27140؟ S 11:57 0:05 / usr / sbin / httpd -DFOREGROUND
آپاچی 7346 0. 3 2. 4 565124 25548؟ S 11:58 0:03 / usr / sbin / httpd -DFOREGROUND
آپاچی 7351 0. 6 3. 4 574220 36580؟ S 11:58 0:05 / usr / sbin / httpd -DFOREGROUND
آپاچی 7477 0. 1 1. 3 554088 14012؟ S 12:10 0:00 / usr / sbin / httpd -DFOREGROUND
آپاچی 7487 0. 9 2. 9 571148 30632؟ ساعت 12:11 0:00 / usr / sbin / httpd-قبل از دور   

Semalt 1. 27 مهاجرت برنامه ریزی شده است. ما تا زمانی که مجوزهای درست را دریافت کنیم، برگزار می شود.

February 13, 2018
. Selinux را برای نصب نصب کنید.

  setenforce 0 

اولین نسخه Mediawiki را از https: // releases دریافت کنید. wikimedia. org / mediawiki / ، در زمان نوشتن آخرین https: // releases است. wikimedia. org / mediawiki / 1. 27 / mediawiki-1 .

هدایت به https: // www. مثال. com / w و دستورالعمل های روی صفحه را برای تولید محتوای مورد استفاده برای LocalSettings دنبال کنید . پی اچ پی + SHIFT + v برای قرار دادن محتوا، ESC -> برای خروج از حالت درج، Z Z (دو بار حرف Z) برای ذخیره و خروج vi). اکنون LocalSettings را امن کنید. php با

  ریشه chown: apache / var / www / html / w / LocalSettings. پی اچ پی
chmod 640 / var / www / html / w / LocalSettings. پی اچ پی 

اگر وجود داشته باشد، mw-config را حذف کنید، زیرا فقط برای راه اندازی اولین mediawiki استفاده می شود.

  rm -rf / var / www / html / w / mw-config 

فعال کردن استفاده از. فایل های htaccess با ایجاد فایل پیکربندی سفارشی برای آپاچی httpd.

  گربه >> / etc / httpd / conf. conf << EOF
 / var / www / html / w ">Allow Override All

EOF 

حالا باید LocalSettings را سفارشی کنید. php به طعم شما. رسانه ها. org / wiki / manual: Configuration_settings

از آنجا که ما می خواهیم برای دسترسی به نصب MediaWiki ما تحت https: // www. com / wiki ما باید $ wgArticlePath را در LocalSettings تنظیم کنیم. پی اچ پی. فقط خط زیر را در پایین LocalSettings اضافه کنید. php

  $ wgArticlePath = "/ ویکی / $ 1"؛ 

و به روز رسانی / etc / httpd / conf. D / Ssl. conf اضافه کردن یک خط.

  
Alias ​​/ wiki / var / www / html / w / index. php # <- فقط این خط را اضافه کنید 

Captchas ها آزار دهنده هستند، اما اگر به درستی پیکربندی شده، موثر برای کاهش هرزنامه. دیدن https: // www. رسانه ها. org / wiki / extension: ConfirmEdit برای گزینه های پیکربندی.

حالا می خواهیم یک لیست سیاه از کلمات داشته باشیم که نمی توان در هر مقاله استفاده کرد.

  $ wgSpamRegex = "/". "s-e-x | zoofilia | sexyongpin | grusskarte | geburtstagskarten | animalsex |". "جنسیت با | سگ سکس | بزرگسالان | بزرگسالان | کامسکس | سکسکه | livesex | sexchat". "chatsex | onlinesex | adultporn | adultvideo | adultweb. | hardcoresex | hardcoreporn |. "" نوجوان "| xxxporn | lesbiansex | livegirl | livenude | livesex | livevideo | camgirl |". "spycam | voyeursex | casino-online آنلاین casino | kontaktlinsen | cheap-phone |. "paris-hilton | paris tape | 2large | fuel dispenser | fueling-dispenser | huojia |". "jinxinghj | telematicsone | telematiksone | a-mortgage | diamondabrasives |". "reuterbrook | sex-plugin | sex-zone | lazy stars | eblja | liuhecai |". "خرید viagra | -cialis | -levitra | پسر و دختر باسن |". "dirare \. com | adipex | phentermine | وب سایت بزرگسالان \. com | ". "overflow \ s *: \ s * auto |". "قد \ s *: \ s * [0-4] px |". "== 
\ [|". "\ <\ s * a \ s * href |". "نمایش \ s *: \ s * هیچ". "/من"؛ $ wgSummarySpamRegex = "/". "s-e-x | zoofilia | sexyongpin | grusskarte | geburtstagskarten | animalsex |". "جنسیت با | سگ سکس | بزرگسالان | بزرگسالان | کامسکس | سکسکه | livesex | sexchat". "chatsex | onlinesex | adultporn | adultvideo | adultweb. | hardcoresex | hardcoreporn |. "" نوجوان "| xxxporn | lesbiansex | livegirl | livenude | livesex | livevideo | camgirl |". "spycam | voyeursex | casino-online آنلاین casino | kontaktlinsen | cheap-phone |. "laser-eye | eye-laser | fuelcellmarket | lasikclinic | cragrats | parishilton |". "paris-hilton | paris tape | 2large | fuel dispenser | fueling-dispenser | huojia |". "jinxinghj | telematicsone | telematiksone | a-mortgage | diamondabrasives |". "reuterbrook | sex-plugin | sex-zone | lazy stars | eblja | liuhecai |". "خرید viagra | -cialis | -levitra | پسر و دختر باسن |". "dirare \. com | adipex | phentermine | وب سایت بزرگسالان \. com | ". "overflow \ s *: \ s * auto |". "قد \ s *: \ s * [0-4] px |". "==
\ [|". "\ <\ s * a \ s * href |". "نمایش \ s *: \ s * هیچ". "/من"؛

برای سایت های کوچک تا متوسط، فرمت "Moderation"، https: // www. رسانه ها. org / wiki / extension: Moderation برای مبارزه با SPAM بسیار موثر است. در پایان LocalSettings خطوط زیر را اضافه کنید. php

  $ wgGroupPermissions ['user'] ['move'] = false؛                            

توضیح بخش SELinux.

من در مورد هیچ چیز در مورد mediawiki می دانم اما استفاده از SELinux روزانه، بنابراین من می دانم من می خواهم به توضیح آنچه شما تنظیم می کنید. من تعاریف را از صفحات مختلف مرد دریافت کردم.

httpd_can_network_connect_db (سرویس HTTPD)

اجازه دهید اسکریپت ها و ماژول های HTTPD برای اتصال به پایگاه داده ها به شبکه متصل شوند.

httpd_can_network_connect (سرویس HTTPD)

اجازه دهید اسکریپت ها و ماژول های HTTPD برای اتصال به شبکه.

httpd_builtin_scripting (سرویس HTTPD)

اجازه HTTPD برای پشتیبانی از اسکریپت ساخته شده در

setsebool -P httpd_execmem 1

اجازه اسکریپت ها و ماژول های httpd execmem / execstack را بدهید. فعال کردن این بولین از دیدگاه امنیتی توصیه نمی شود، زیرا محافظت در برابر جریان های بافر را کاهش می دهد.

  semanage fcontext -a -t httpd_sys_rw_content_t "/ var / www / html / w / cache (/. *)؟ "
semanage fcontext -a -t httpd_sys_rw_content_t "/ var / www / html / w / images (/. *)؟ "
restorecon -R / var / www / html / w 

دستور semanage fcontext با افزودن -a ، نوع سلینکس، -t ، httpd_sys_rw_content_t (اساسا به این معنا است که به httpd اجازه می دهد به رونوشت به پوشه و هر چیزی تحت پوشه به طور پیش فرض) به پوشه ها / var / www / html / w / {cache، images}

restorecon -R / var / www / html / w نوع دایرکتوری جدید را به SELinux DB اضافه می کند، من این را به عنوان restecon اجرا می کنم -Rv / var / www / html / w / * بنابراین می توانم تغییرات را ببینم.

من سعی کردم تعاریف مختصر را حفظ کنم، اگر شما نیاز به جزئیات بیشتری دارید، می توانم بیشتر ارائه دهم.

  grep hugetlbfs audit. ورود | | audit2allow -M hugetlbfs
semodule-i hugetlbfs. ص 

این دستور دستی باعث ایجاد قوانین سیاست SELinux از ممیزی می شود. وارد شوید. audit2allow فایل سیاستگذاری را ایجاد می کند که semodule از آن برای اضافه کردن به ماژول خطمشی SELinux استفاده می کند. اطلاعات بیشتر را می توان در صفحات man برای audit2allow و semodule پیدا کرد. من نمی خواهم جزئیات بیشتری را با آن 2 در نظر بگیرم چون می تواند یک سوراخ خرگوش باشد.