সেলইনাক্সের সাহায্যে সেন্টোজে ফ্যান্টমজেএস কীভাবে চালানো যায়?


9

আমি আমার সেন্টোস 5 মেশিনে ফ্যান্টমজেএস ব্যবহার করে একটি স্ক্রিনশট তৈরি করার চেষ্টা করছি, তবে আমি এটি সেলইনাক্সের সাথে একসাথে কাজ করতে পারি না। এটি সেলইনাক্স অক্ষমযুক্ত একটি অভিন্ন মেশিনে কাজ করে, তাই আমি সত্যিই সন্দেহ করি যে এর জন্য সেলইনাক্স দায়ী।

এখানে আমি যা চেষ্টা করেছি (সমস্ত কমান্ডগুলি রুট হিসাবে চালানো হয়েছিল) এবং আমি যে ত্রুটিগুলি পেয়েছি তা এখানে:

$ ls -Z /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin

-rwxr-xr-x  myusername myusername system_u:object_r:bin_t          phantomjs

চেষ্টা করা স্ক্রিনশট - ব্যর্থ

$ cat /var/log/messages | grep avc

Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:398): avc:  denied  { getattr } for  pid=6842 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:399): avc:  denied  { getattr } for  pid=6842 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.054:400): avc:  denied  { getattr } for  pid=6852 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.054:401): avc:  denied  { getattr } for  pid=6852 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:19 myserver kernel: type=1400 audit(1347531679.866:402): avc:  denied  { getattr } for  pid=6864 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:19 myserver kernel: type=1400 audit(1347531679.867:403): avc:  denied  { getattr } for  pid=6864 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:19 myserver kernel: type=1400 audit(1347531679.920:404): avc:  denied  { getattr } for  pid=6874 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:19 myserver kernel: type=1400 audit(1347531679.920:405): avc:  denied  { getattr } for  pid=6874 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:27 myserver kernel: type=1400 audit(1347531687.025:406): avc:  denied  { read } for  pid=6890 comm="phantomjs" name="3830d5c3ddfd5cd38a049b759396e72e-x86-64.cache-2" dev=dm-0 ino=2021753 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:var_t:s0 tclass=file
Sep 13 12:21:27 myserver kernel: type=1400 audit(1347531687.035:407): avc:  denied  { write } for  pid=6890 comm="phantomjs" name="myusername" dev=dm-0 ino=619658 scontext=system_u:system_r:httpd_t:s0 tcontext=user_u:object_r:user_home_dir_t:s0 tclass=dir
Sep 13 12:21:27 myserver kernel: type=1400 audit(1347531687.061:408): avc:  denied  { read } for  pid=6890 comm="phantomjs" name="e3ead4b767b8819993a6fa3ae306afa9-x86-64.cache-2" dev=dm-0 ino=2021752 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:var_t:s0 tclass=file
Sep 13 12:21:28 myserver kernel: type=1400 audit(1347531688.720:410): avc:  denied  { execmem } for  pid=6890 comm="phantomjs" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=process

ধরণের ফ্যান্টমজগুলি httpd_sys_script_exec_t এ পরিবর্তনের চেষ্টা করা হয়েছে

$ chcon -v -t httpd_sys_script_exec_t /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs

$ ls -Z /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin

-rwxr-xr-x  myusername myusername system_u:object_r:httpd_sys_script_exec_t phantomjs

পুনরায় চেষ্টা করা স্ক্রিনশট - ব্যর্থ

$ cat /var/log/messages | grep avc

Sep 13 12:26:05 myserver kernel: type=1400 audit(1347531965.891:414): avc:  denied  { read } for  pid=6962 comm="phantomjs" path="eventpoll:[9737788]" dev=eventpollfs ino=9737788 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=file
Sep 13 12:26:05 myserver kernel: type=1400 audit(1347531965.892:415): avc:  denied  { write } for  pid=6962 comm="phantomjs" path=2F7661722F72756E2F777367692E363535352E302E312E6C6F636B202864656C6574656429 dev=dm-0 ino=2022252 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_var_run_t:s0 tclass=file
Sep 13 12:26:05 myserver kernel: type=1400 audit(1347531965.892:416): avc:  denied  { write } for  pid=6962 comm="phantomjs" path=2F7661722F72756E2F777367692E363535352E302E322E6C6F636B202864656C6574656429 dev=dm-0 ino=2022255 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_var_run_t:s0 tclass=file
Sep 13 12:26:05 myserver kernel: type=1400 audit(1347531965.892:417): avc:  denied  { write } for  pid=6962 comm="phantomjs" path=2F7661722F72756E2F777367692E363535352E302E332E6C6F636B202864656C6574656429 dev=dm-0 ino=2022257 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_var_run_t:s0 tclass=file
Sep 13 12:26:05 myserver kernel: type=1400 audit(1347531965.893:418): avc:  denied  { write } for  pid=6962 comm="phantomjs" path=2F7661722F72756E2F777367692E363535352E302E342E6C6F636B202864656C6574656429 dev=dm-0 ino=2022266 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_var_run_t:s0 tclass=file

ধরণের ফ্যান্টমজগুলি httpd_t তে পরিবর্তন করার চেষ্টা করা হয়েছে

$ chcon -v -t httpd_t /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs

failed to change context of /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs to system_u:object_r:httpd_t
chcon: failed to change context of /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs to system_u:object_r:httpd_t: Permission denied

ধরণের ফ্যান্টমজগুলি httpd_var_run_t এ পরিবর্তন করার চেষ্টা করা হয়েছে

$ chcon -v -t httpd_var_run_t /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs

$ ls -Z /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin

-rwxr-xr-x  myusername myusername system_u:object_r:httpd_var_run_t phantomjs

পুনরায় চেষ্টা করা স্ক্রিনশট - ব্যর্থ

$ cat /var/log/messages | grep avc

Sep 13 12:29:36 myserver kernel: type=1400 audit(1347532176.754:420): avc:  denied  { execute } for  pid=7002 comm="httpd" name="phantomjs" dev=dm-0 ino=3032985 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_var_run_t:s0 tclass=file

ধরণের ফ্যান্টমজগুলি httpd_sys_script_t এ পরিবর্তন করার চেষ্টা করা হয়েছে

$ chcon -v -t httpd_sys_script_t /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs

failed to change context of /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs to system_u:object_r:httpd_sys_script_t
chcon: failed to change context of /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin/phantomjs to system_u:object_r:httpd_sys_script_t: Permission denied

এখানে আমার সেলইনাক্স সেটআপ সম্পর্কিত আরও কিছু তথ্য রয়েছে:

$ sestatus

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

...

$ getsebool -a | grep http

allow_httpd_anon_write --> off
allow_httpd_bugzilla_script_anon_write --> off
allow_httpd_cvs_script_anon_write --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_nagios_script_anon_write --> off
allow_httpd_prewikka_script_anon_write --> off
allow_httpd_squid_script_anon_write --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_network_connect --> off
httpd_can_network_connect_db --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> on
httpd_disable_trans --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> on
httpd_execmem --> off
httpd_read_user_content --> off
httpd_rotatelogs_disable_trans --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_suexec_disable_trans --> off
httpd_tty_comm --> on
httpd_unified --> on
httpd_use_cifs --> off
httpd_use_nfs --> off

...

$ uname -r

2.6.18-308.1.1.el5

সেলিনাক্স / httpd অভিজ্ঞতার সাথে কি কেউ জানেন যে আমি যা করার চেষ্টা করছি তার জন্য একটি ভাল মিল আছে এমন একটি প্রসঙ্গ আছে কিনা? বা সম্ভবত আমার পক্ষে বুলেট কামড়ানো উচিত এবং এর জন্য কিছু কাস্টম নীতি তৈরি করা উচিত?


সেলিনাক্স অক্ষম করবেন?

এটি খুব গঠনমূলক সমাধানের মতো শোনাচ্ছে না। স্নানের জল দিয়ে আমি বাচ্চাকে বাইরে ফেলে দেব তুমি কি ভাবি না?
ডেনিস বনসকেক

"সুতরাং আমি সত্যিই সন্দেহ করি যে সেলইনাক্স এর জন্য দায়ী" -> আপনি সেলিনাক্স অক্ষম করে সে সম্পর্কে নিশ্চিত হয়ে যাবেন।

আহ, এটাই আপনি বোঝাতে চেয়েছিলেন :) আমি চেষ্টা করব
ডেনিস বনসকেক

1
আমি 'সেটেনফোর্স 0' ব্যবহার করে সেলইনাক্সকে অক্ষম করার চেষ্টা করেছি, এবং তারপরে এটি কাজ করে, তাই
সেলইনাক্স

উত্তর:


5

এখানে থেকে কিছু স্নিপেট এর http://wiki.centos.org/HowTos/SELinux#7 কিভাবে সঙ্গে একটি কাস্টম নীতি মডিউল তৈরি করার allow2audit

চেষ্টা করে দেখুন

setenforce 0
grep phantomjs /var/log/audit/audit.log | audit2allow -m httpd_phantomjs > httpd_phantomjs.te
cat httpd_phantomjs.te

এটি ইনস্টল করুন

grep phantomjs /var/log/audit/audit.log | audit2allow -M httpd_phantomjs
semodule -i httpd_phantomjs.pp
ls /etc/selinux/targeted/modules/active/modules/ | grep httpd

এটা পরীক্ষা করো

setenforce 1
tail -f /var/log/audit/audit.log

এটি অন্টিস্টেড তাই প্রয়োজনীয় হিসাবে আপডেট করুন। আশা করি এটা তোমার জন্য কাজ করবে


1
এবং যদি আপনার কাছে অডিট 2 নেই, আপনার এটি ইনস্টল করতে হতে পারে ।
বিশপ

0

সবে একই সমস্যা ছিল এবং কাস্টম নীতি তৈরি না করে সেন্টোস 7.4 এ ভ্যান্ট কাজ করতে সক্ষম হয়েছিল। আমি এটি কীভাবে করেছি তা এখানে।

bin_tটাইপ ফ্যান্টমজ ফাইলটি পরিবর্তন করে সেলিনাক্স নীতি আপডেট করুন
semanage fcontext -a -t bin_t '/opt/phantomjs/bin/phantomjs'

সেলিনাক্স নীতিতে নতুন ধরণের যুক্ত করার পরে আপনাকে ফাইলের অনুমতিগুলি আপডেট করতে হবে
sudo /sbin/restorecon -v /opt/phantomjs/bin/phantomjs

এখন আপনাকে বুলেয়ান সেট করে httpd ডিমনকে তার সংস্থান সীমা পরিবর্তন করার অনুমতি দিতে হবে allow

sudo setsebool -P httpd_setrlimit 1

আশা করি এটা সাহায্য করবে :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.