45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

用户界面方式配置RHEL5和Web服务器指南(2)

电脑软硬件应用网 45IT.COM 时间:2011-02-17 12:10 作者:Khurram Shiraz

使用SELinux的安全上下文保护Web服务器

假设我们想要在Linux服务器上运行Apache Web服务器程序,由于这台服务器会运行一些关键应用,并暴露在互联网上,所以我们想确保这台Web服务器受到尽可能多的保护。

如果你启动Web服务并尝试配置你的Web服务器允许执行某些CGI脚本,如hello.pl,那么如果不改变SELinux的配置,Linux系统日志和SELinux审计日志都会记录到错误。要在SELinux审计日志中查看这些错误,执行sealert –b。这会打开SELinux审计日志,如下所示:

SELinux,教程,配置,RHEL5,Web服务器

现在的问题是,为什么会出现这种情况?答案很简单,因为hello.pl是一个CGI可执行程序,它应该被归为httpd_sys_script_exec_tdomain上下文,而不是httpd_sys_content_t。

我们可以使用chcon命令解决这个问题:
root@test3 cgi-bin]# ls -lZ *.pl
-rwxr-xr-x apache apache root:object_r:httpd_sys_content_t hello.pl
[root@test3 cgi-bin]# chcon -v --type=httpd_sys_script_exec_t hello.pl
context of hello.pl changed to
root:object_r:httpd_sys_script_exec_t[root@test3 cgi-root@test3 cgi-bin]
# ls -lZ *.pl
-rwxr-xr-x apache apache root:object_r:httpd_sys_script_exec_t hello.pl

现在我们应该能够看到,我们的Web服务器执行了hello.pl,而且在SELinux日志中也没有产生任何警告或者错误。

SELinux,教程,配置,RHEL5,Web服务器

以这种方式配置SELinux,入侵者很难通过使用未授权的CGI或perl脚本来获得系统的控制。同样地,任何想要更改文件根目录到系统其他用户的子目录的行为都会失败,除非该子目录及子目录下的索引文件已被添加到httpd域。

那么,让我们来假设,我们的Linux服务器上的用户John创建了名为html的子目录。完成该目录和index.html文件的创建后,你会发现,该目录和文件被默认归入user_home_t上下文,如下所示:

SELinux,教程,配置,RHEL5,Web服务器

直到且除非该上下文被修改为正确的httpd上下文域,否则任何试图通过Web服务器访问这个index.html的操作都会被SELinux拒绝,并在审计日志当中留下错误记录。你可以使用chcon命令(如下图)或者semanage命令来改变上下文。

SELinux,教程,配置,RHEL5,Web服务器
作者:Khurram Shiraz 译者:Dan

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识