本站首页    管理页面    写新日志    退出


«July 2020»
1234
567891011
12131415161718
19202122232425
262728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7228507
建立时间:2006年5月29日




[SELinux]SELinux 的配置小解
软件技术

lhwork 发表于 2008-3-18 9:14:57

【转载】SELinux 是从FC3和AS4起,所提供的一个高级安全特性。它可以对系统上运行的任何一个应用程序做权限上的控制。版本低于FC3/AS4的Linux,没有提供SELinux特性,或者默认就是禁用这个特性的。为了运行Plesk,需要对SELinux做一些修改,否则可能会造成某些服务运行不正常或者启动失败。SElinux把所有的拒绝信息输出到:/var/log/messages 位置。如果某个服务比如bind不能正常启动,请查询messages文件来确认是否是SELinux造成服务不能运行。这些信息可以很简单的使用/usr/bin/audit2allow来更改规则。运行如下命令,查看哪些程序的访问被SELinux拦截掉了:cat /var/log/messages | /usr/bin/audit2allow然后,把列出的被拒绝的访问加入到SELinux的配置文件中。通常,建议加入如下内容:/etc/selinux/targeted/src/policy/domains/program/apache.te----------------------------------------------------------------allow httpd_sys_script_t var_t:file { execute getattr };allow httpd_t self:tcp_socket connect;allow httpd_t usr_t:dir write;allow httpd_t var_log_t:file { append getattr setattr };allow httpd_sys_script_t devlog_t:sock_file write;allow httpd_sys_script_t self:unix_dgram_socket { connect create write };allow httpd_sys_script_t ld_so_cache_t:file execute;allow httpd_sys_script_t syslogd_t:unix_dgram_socket sendto;allow httpd_sys_script_t var_t:dir { add_name remove_name write };allow httpd_sys_script_t var_t:fifo_file write;allow httpd_sys_script_t var_t:file { create execute_no_trans link read unlink write };----------------------------------------------------------------/etc/selinux/targeted/src/policy/domains/program/named.te----------------------------------------------------------------allow named_t named_zone_t:chr_file read;allow ndc_t named_zone_t:file { getattr read write };allow named_t named_zone_t:dir { add_name write read remove_name };allow named_t named_zone_t:file { create unlink write };----------------------------------------------------------------/etc/selinux/targeted/src/policy/domains/program/syslogd.te----------------------------------------------------------------allow syslogd_t usr_t:file append;allow syslogd_t usr_t:file ioctl;-------------------------------------------------------------------------最后使用如下命令重新加载SELinux:make -C /etc/selinux/targeted/src/policy reload重灌 server 並啟用 SELinux 以後,發現 asp.net 應用程式無法啟動.經過研讀文件之後,大致上對 SELinux 有一定的瞭解.SELinux 本身純粹是作安全性的加強,所以不管是 user, file, directory, socket, process...等等的,都另外有了 security context,作為安全性的第二道防線.當系統要存取這些資源的時候,首先會使用原有的 unix permission 去作檢查,接著 SELinux 會再依照 security context 作第二道檢查,當檢查沒問題之後,才會允許存取.SELinux 裡面有所謂的 identity, domain, type, security context, target context 等等物件...大致上來說, identity 決定身份, domain 決定 process 能幹麼, type 決定 process 以外的物件可以幹麼, security context, target context 則是 identity + domain + type 的組合. policy 則用來定義 security context, target context 可以存取哪些物件. (這些組合,真的很讓人頭暈.)存取的指令也蠻多的:要看檔案目錄的 security context, 可以加上 -Z (ls -Z)要看process的 security context, 也可以用 -Z (ps axZ)要看自己的security context,可以用 id要改security context, 可以用 chcon要 reset security context, 可以用 restorecon...整個研讀完之後,發現應該是 policy 問題.今天下午用Google去找到這篇文章,發現有這麼個工具 - audit2allow,他是在 policycoreutils 套件裡面的指令,可以根據 warning message 產生 policy,省掉不少編寫的麻煩.為了要能重新編譯 policy, 你需要安裝 selinux-policy-targeted-sources 這個套件yum install selinux-policy-targeted-sources再使用 audit2allow 這個指令,從 dmesg 裡面分析 warning, 並將產生以後的 policy 寫入到 mono.policy 檔案中.audit2allow -d -o mono.policy接著把 mono.policy 更名為 local.te, 放到 /etc/selinux/targeted/src/policy/domains/misc/ .放完之後,切換到 /etc/selinux/targeted/src/policy強制 selinux 重新編譯 policymake load最後重新啟動我的 Apache server,就大功告成了.


阅读全文(11175) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144422311 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号