一、Apache概述
web服务器简介
Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器会通过HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户。
Apache简介
Apache HTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
部署Apache程序
yum install httpd 安装Apache程序(Apache服务的软件包名为httpd)
systemctl restart httpd 启用httpd服务
systemctl enable httpd 加入开机启动项
浏览器访问:127.0.0.1(本机)可以看到httpd服务程序的默认页面,当看到这个页面时,说明服务程序正常启动,但可能还会有另外两种情况
1.权限不足
2.网站内没有数据
二、配置服务文件
常用参数 作用
ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
DocumentRoot 网站数据目录
Listen 监听的IP地址与端口号
mkdir /home/wwwroot 新的网站数据保存目录
echo “tony” > index.html 并在该目录下创建文件
vim /etc/httpd/conf/httpd.conf 修改httpd服务程序主配置文件,把网站数据保存路径修改为/home/wwwroot
119行 DocumentRoot “路径”
124行 <Directory “/路径”>
systemctl restart httpd 重启服务并加载启动项
systemctl enable httpd
此时会发现因为权限不足导致出现的是httpd默认首页(SElinux的安全上下文).
setenforce 0 (0禁用1启用)
禁用SElinux,就可以正常访问内容了
SELinux安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。 “SELinux域”和“SELinux安全上下文”称为是Linux系统中的双保险,系统内的服务程序只能规规矩矩地拿到自己所应该获取的资源,这样即便黑客入侵了系统,也无法利用系统内的服务程序进行越权操作。但是,非常可惜的是,SELinux服务比较复杂,配置难度也很大,加之很多运维人员对这项技术理解不深,从而导致很多服务器在部署好Linux系统后直接将SELinux禁用了;这绝对不是明智的选择。
SELINUX的三种运行模式
(1)enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
(2)permissive:遇到服务越权访问时,只发出警告而不强制拦截。
(3)disabled:对于越权的行为不警告也不拦截
#可以使用getenforce命令获得当前SELinux服务的运行模式
上面被SELinux拦截的原因:
httpd服务程序的功能是允许用户访问网站内容,因此SELinux会默认放行用户对网站的请求操作。但是,/home目录是用来存放普通用户的家目录数据的,而将网站数据的默认保存目录修改为了/home/wwwroot,导致httpd提供的网站服务要去获取普通用户家目录中的数据,这显然违反SELinux的监管原则
semanage命令(用于管理SELinux的策略)
不仅能设置文件、目录的策略,还可以管理网络端口、消息接口。
参数 | 作用 |
---|---|
fcontext | 主要用在安全上下文方面 |
-l | 查询 |
-a | 添加 |
原文链接:https://blog.csdn.net/QuietCuriosity/article/details/110353875