免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3297 | 回复: 1
打印 上一主题 下一主题

SELinux保护Apache [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-30 09:06 |只看该作者 |倒序浏览
你的Web服务器确实有可能遭受攻击,但是SELinux可以用来确保你的网站不用承受真正的伤害。
   
    你可以运用SELinux类型来创建一个确切定义:一个服务可以做什么和它在哪里完成要做的事情。默认情况下,httpd_sys_content类型被设为/var/www,它规定httpd进程可以在该目录中工作。如果攻击者破坏了Apache Web服务器并尝试在别处写入,就像红帽和Fedora以及CentOS等相似Linux版本的默认/tmp,你需要知道你正在处理什么。如果你配置Apache来为/data目录中的内容服务,SELinux也会默认地防止这种情况。
   
    由于这些默认设置可能造成复杂的情况,很多Linux管理员关闭SELinux。虽然关闭SELinux的确让你的服务器提供服务时更容易,但是它还是增加了安全风险。
   
    为Apache管理SELinux设置
   
    为Apache等服务管理SELinux设置并不难。问题是并没有简单的图形工具可以让你快速安装。但只要用三条命令,你就可以配置它。
   
    为了在你想让服务访问到的目录上设置文件类型,你首先必须决定要使用的文件系统类型。要这么做,只需在服务使用的默认目录上输入ls –ldZ。
   
    对于Apache,你会使用ls –ldZ /var/www。你会注意到在这种情况下,–Z选项给出了额外的文件属性,而–t选项才是最关键的一个。这个进程规定现有的文件系统类型,这个系统类型是Apache设置的(httpd_sys_content_t)。这也是你需要按照新文件根设置的文件类型。
   
    你可以用两条命令设置你的内容形式:用chcon你可以做一次暂时的变更,它在重启后消失;用followed by紧跟着的semanage,你可以做永久的变更。
   
    semanage命令似乎有些复杂,但它实际上非常简单,因为你只需要改变你想要用的类型和目标目录。在下面的例子中,你只需要改变两个参数。
   
    semanage fcontext -a -t httpd_sys_content_t /web(/.*)/?在运用semanage设置默认文件类型之后,运用restorecon命令来确保它得到应用了。在上面的例子中,针对目录/web的文件类型被变更来允许到那个目录上服务器文件的Apache,运行以下命令来应用该变更:
   
    restorecon -R -v /web在这一点上,Apache将能服务于新的非默认文件根目录上的文件。
   
    为SELinux管理布尔值
   
    你需要管理的SELinux的另一个方面是SELinux布尔值。这些都是开启或关闭某些功能的二进制值。布尔值可以在多种服务中获得。运用getsebool –a命令来概观整个现有的布尔值。该命令通常会将你能应用的设置列成一个长长的列表。
   
    要为你想配置的服务找到所有布尔值,通过grep传输所有getsebool –a的输出。举例来说,运用getsebool –a | grep http来找到所有与行http匹配的布尔值。即使你并不是对所有布尔值都有明确认识,你通常还是可以通过观察它们的名字和它们可能做的事情查明白。使用getsebool -a来找出哪个SELinux可以用来修改服务行为:
   
    [root@bia Desktop]# getsebool -a | grep http
   
    allow_httpd_anon_write --> off
   
    allow_httpd_mod_auth_ntlm_winbind --> off
   
    allow_httpd_mod_auth_pam --> off
   
    allow_httpd_sys_script_anon_write --> off
   
    httpd_builtin_scripting --> on
   
    httpd_can_check_spam --> off
   
    httpd_can_network_connect --> off
   
    httpd_can_network_connect_cobbler --> off
   
    httpd_can_network_connect_db --> off
   
    httpd_can_network_relay --> off
   
    httpd_can_sendmail --> off
   
    httpd_dbus_avahi --> on
   
    httpd_enable_cgi --> on
   
    httpd_enable_ftp_server --> off
   
    httpd_enable_homedirs --> off
   
    httpd_execmem --> off
   
    httpd_read_user_content --> off
   
    httpd_setrlimit --> off
   
    httpd_ssi_exec --> off
   
    httpd_tmp_exec --> off
   
    httpd_tty_comm --> on
   
    httpd_unified --> on
   
    httpd_use_cifs --> off
   
    httpd_use_gpg --> off
   
    httpd_use_nfs --> off学会了你想用哪个布尔值后,运用setsebool -P来应用它们。如果你想允许Apache运用nfs,在上面运用setsebool -P http_use_nfs。想要得到所有可用布尔值的完整列表,咨询一下httpd_selinux页面,这个页面解释了Apache特有的文件标签和布尔值。

论坛徽章:
0
2 [报告]
发表于 2011-10-06 15:20 |只看该作者
恩学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP