标签:递归 协议 简单的 shadow 命令 httpd服务 .com 设置 his
使用Apache服务部署静态网站1.网站服务程序
Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。Apache也是RHEL 5、6、7系统中默认的Web服务程序。
第一步:安装Apache服务程序。使用yum命令进行安装时,跟在命令后面的Apache服务的软件包名称为httpd。如果直接执行yum install apache命令,则系统会报错。
第二步:启动httpd服务程序并将其加入到开机启动项中,使其能够跟随系统开机而运行,从而持续为用户提供Web服务。
在浏览器输入http://127.0.0.1 回车,就可以看到用于提供Web服务的httpd服务程序的默认页面了。
2.配置服务文件参数
第一步:建立网站数据的保存目录,并创建首页文件。
第二步:打开 httpd 的主配置文件,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/home/wwwroot,同时还需要将约第124行用于定义目录权限的参数Directory后面的路径也修改为/home/wwwroot。配置文件修改完毕后即可保存并退出。
第三步:重启 httpd 服务验证效果,发现看到了 httpd 服务程序的默认首页面。按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。我们在尝试访问http://127.0.0.1/index.html 页面时,竟然发现页面中显示“Forbidden,You don‘t have permission to access /index.html on this server.”。而这一切正是SELinux在捣鬼。
3.SELinux 安全子系统
把SELinux当前的运行模式修改为禁用(通过命令 setenforce [0|1],0代表禁用、1代表启用),该修改在重启系统后失效,可以通过 getenforce 命令查看 SELinux服务的运行状态。
然后就可以看到正常的网页内容了。
把SELinux服务恢复到强制启用安全策略模式,然后分别查看原始网站数据的保存目录与当前网站数据的保存目录是否拥有不同的SELinux安全上下文值:
3.1 semanage 命令
semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。常用参数及作用: -l 查询、-a 添加、-m 修改、-d 删除
向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序所访问到:
设置后,还需使用 restorecon 命令使设置立即生效,-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可以正常看到网页内容了
4.个人用户主页功能
httpd服务程序提供的个人用户主页功能可以让系统内所有的用户在自己的家目录中管理个人的网站,而且访问起来也非常容易。
第一步:在httpd服务程序中,默认没有开启个人用户主页功能。需编辑配置文件 /etc/httpd/conf.d/userdir.conf,在17行前的UserDir disabled参数前面加上井号(#),表示让httpd服务程序开启个人用户主页功能;同时再把第24行的UserDir public_html参数前面的井号(#)去掉(UserDir参数表示网站数据在用户家目录中的保存目录名称,即public_html目录)。
第二步:在用户家目录中建立用于保存网站数据的目录及首页面文件。还需把家目录的权限修改为 755,保证其他人也有权限读取里面的内容。
第三步:重启 httpd 服务程序,在浏览器的地址栏中输入网址,其格式为“网址/~用户名”,系统显示报错页面,还是SELinux的问题。
第四步:思考报错原因。httpd服务程序在提供个人用户主页功能时,该用户的网站数据目录本身就应该是存放到与这位用户对应的家目录中的,所以应该不需要修改家目录的SELinux安全上下文。Linux域确保服务程序不能执行违规的操作,只能本本分分地为用户提供服务。httpd服务中突然开启的这项个人用户主页功能到底有没有被SELinux域默认允许呢?
使用 getsebool 目录查询并过滤所有与 HTTP 协议相关的安全策略,off 为禁止状态,on为允许。
通过名字大致猜测出相关的策略用途。httpd服务的个人用户主页功能的SELinux域安全策略应该是httpd_enable_homedirs。然后通过setsebool命令来修改SELinux策略中各条规则的布尔值。-P 参数表示使修改立即生效且永久生效。
添加账号和密码
第一步:先使用htpasswd命令生成密码数据库。-c参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)。
第二步:编辑个人用户主页功能的配置文件。把从31行开始的内容修改如下。重启httpd服务。
标签:递归 协议 简单的 shadow 命令 httpd服务 .com 设置 his
原文地址:http://blog.51cto.com/12765384/2173296