第十章

10.1、网站服务程序

(让用户能够通过网站访问服务器上的资源)

目前提供的网站服务有IIS,Nginx,Apache等,IIS是windows中默认的web服务程序。

Nginx是后起之秀,有多种优势,但RHEL7中默认的是Apache,市场大部门还是Apache,所以我们学习Apache。

Apache是老牌服务,具有庞大的市场,Nginx则是新兴的服务

1、挂载系统镜像    

mount  /dev/cdrom    /media/cdrom

2、配置yum仓库

[rhel]                            //识别码

name=rhel                  //名字

baseurl=file:///media/cdrom        //路径

enabled=1                                  //开启

gpgcheck=0                               //不校验

3、安装Apache,yum  install  httpd

//Apache的软件包名称为httpd

4、启用httpd服务,并加入到开机启动项中

systemctl  restart httpd

systemctl enable  httpd

然后我们打开浏览器输入本机的地址,会显示下面界面,证明网站服务成功运行:

当看到上述页面后,有两个原因:

1、网站内没有目录

        2、权限不足

10.2、配置服务文件参数

httpd的服务文件的位置:

服务目录:                  /etc/httpd

主配置文件:              /etc/httpd/conf/httpd.conf       //最重要的配置参数

网站数据目录:          /var/www/html

访问日志:                 /var/log/httpd/access_log

错误日志:                /var/log/httpd/error_log

以下是配置文件中各字段的解释:

ServerRoot                          //服务目录

ServerAdmin                       //管理员邮箱

User                                    //运行服务的用户

Group                                 //运行服务的用户组

ServerName                       //网站服务器的域名

DocumentRoot                   // 网站数据目录

Listen                                 //监听的IP地址与端口号

DirectoryIndex                    //默认的索引页页面

ErrorLog                            //错误日志文件

CustomLog                        //访问日志文件

Timeout                             //网页超时时间,默认为300秒

当上述字段更改时,我们可能会触及到安全的限制,就是selinux

10.3、SElinux安全子系统

selinux安全子系统,是保障服务都只进行自己的本质工作,而杜绝做其他的不属于自己的工作。

  selinux:对服务程序的功能进行限制(域限制),对文件资源的访问限制(安全上下文)

        域:管理服务的功能

        安全上下文:让服务只能访问该访问的文件

selinux有三种配置模式:

  enforcing:强制启用安全策略模式,拦截服务不合法请求。

  permissive:遇到服务越权访问时,只发警告不拦截。

disabled:对越权行为不警告不拦截。

以下是selinux相关的命令:

  getenforce和setenforce相当于selinux的总开关,0为关,1为开

  getenfoece       //查询selinux的状态

  setenforce       //修改selinux的状态,例如:setenforce  0

针对selinux的安全上下文:

可使用  ls  -Z  来查询文件的安全上下文

semanage    修改和查询selinux的安全上下文。semanage  【选项】【文件】

-l    //参数用于查询                                        -a   //用于添加

-m   //用于修改                                              -d   //用于删除

-t   //类型                                                       fcontext    表示修改安全上下文

例:  semanage  -a  -t  httpd_sys_content_t    /home/wwwroot

  restorecon    用于修改的上下文立即生效

-R   //递归操作,针对目录                            -i   //忽略不存在的目录

-e   //排除目录                                              -v  //显示详细过程

-F  //强制恢复

  针对selinux的域:

getsebool   查询selinux的布尔值

-a    //所有的服务

setsebool   修改布尔值

-P   参数用于永久且立即生效

10.4、个人主页功能

需要在配置文件中启用功能:vim  /etc/httpd/conf.d/userdir.conf

1、把userdir  disable  和  userdir   public_html  给注释起来(前面加#号)

2、把网站的目录设置为755权限

 3、修改selinux的域:setsebool  -P httpd_enable_homedirs=on

        4、重启服务

个人主页的密码功能:

1、生成密码数据库:htpasswd -c /etc/httpd/passwd linuxprobe    //-c代表第一次生成

  2、编辑配置文件:vim /etc/httpd/conf.d/userdir.conf

<Directory "/home/*/public_html">

AllowOverride all

authuserfile "/etc/httpd/passwd"          //密码文件的保存路径

authname "My privately website"        //网站的提示信息

authtype basic

require user linuxprobe                      //密码登录时需要验证的账户名称

</Directory>

3、重启服务

10.5、虚拟主机功能

  基于ip地址

1、分别配置三个IP地址

2、在配置文件中写入:vim /etc/httpd/conf/httpd.conf     

<VirtualHost 192.168.10.10>                 //地址变化,其他相同的配置,再写入其他地址配置信息,这里就写入一个

DocumentRoot /home/wwwroot/10

ServerName www.linuxprobe.com

<Directory /home/wwwroot/10 >

            AllowOverride None

            Require all granted

</Directory>

            </VirtualHost>

3、设置安全上下文:例:semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

4、重启服务并打开浏览器输入不同的ip地址观察

基于主机名

1、在vim  /etc/hosts  中定义域名解析:192.168.10.10 www.linuxprobe.com bbs.linuxprobe.com tech.linuxprobe.com

        2、设置网站首页文件

        例:echo "hahaha" > /home/wwwroot/www

        3、写入配置文件  vim /etc/httpd/conf/httpd.conf

<VirtualHost 192.168.10.10>

DocumentRoot "/home/wwwroot/www"

ServerName "www.linuxprobe.com"            //就域名改变,其他的信息不变,再写入另外两个域名的信息,这里之写入了一个

<Directory "/home/wwwroot/www">

AllowOverride None

Require all granted

</directory>

</VirtualHost>

4、设置安全上下文

5、重启服务并打开浏览器,输入不同的域名测试

    基本端口号

        1、写入网站的首页目录:echo "port:6111" > /home/wwwroot/6111/index.html

        2、在  vim /etc/httpd/conf/httpd.conf 中写入  监听的端口号: 

listen  6111

listen  6222

  3、写入配置文件:vim /etc/httpd/conf/httpd.conf

<VirtualHost 192.168.10.10:6111>                             //就端口号不同,其他都相同,再写入其他端口号的配置信息,这里只写入了一个

DocumentRoot "/home/wwwroot/6111"

ServerName www.linuxprobe.com

<Directory "/home/wwwroot/6111">

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

4、设置安全上下文

  5、设置selinux,使其允许端口号:semanage port -a -t http_port_t -p tcp 6111

        6、重启服务并浏览器访问实验

10.6、Apache的访问控制

Apache通过指令Allow  允许某主机访问服务器上的网站资源

通过指令 deny 禁止某主机访问服务器上的网站资源

order指令用于定义allow和deny指令起作用的顺序,例如:order  allow  deny     :先匹配允许,若允许则成功访问,反之则拒绝。

复习:基于端口号虚拟机

12.7:第十一章,第十二章

12.8:第十三章

12.9:第十四章,第十五章

《linux就该这么学》第十二节课:第10章,Apache网站服务的更多相关文章

  1. 【笔记】Linux就该这么学-第六课第四章

    vim使用    a 在光标后一位置插入    i 在光标当前位置插入    o 在光标下面创建个空行    dd 删除(剪切)光标所在行    5dd 删除(剪切)从光标处开始的5行    yy 复 ...

  2. 《Linux就该这么学》培训笔记_ch13_使用Bind提供域名解析服务

    <Linux就该这么学>培训笔记_ch13_使用Bind提供域名解析服务 文章最后会post上书本的笔记照片. 文章主要内容: DNS域名解析服务 安装并部署Bind服务程序 部署从服务器 ...

  3. 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境

    <Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...

  4. linux学习第十九天 (Linux就该这么学) 结课了

    今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux  +nginx+mysql+php) 安装文件挺别多, ...

  5. LInux 就该这么学 笔记分享

    看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看.这里对作者表示感谢!!! 博客地址: https://www.cnblo ...

  6. Linux就该这么学--第五期 学习笔记

    第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------你的价值:你对公司做出的共享和你的不可替代性------------瑞尔系统R ...

  7. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  8. 风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施

    风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数, ...

  9. <-0基础学python.第一课->

    初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...

随机推荐

  1. Linux查看设备命令

    系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ho ...

  2. Centos下安装配置Mongodb3.6

    首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org-3.6.repo 编辑内容如下: [mon ...

  3. 动态sql与静态sql的区别

    首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程. 静态SQL,在 ...

  4. Urozero Autumn 2016. NCPC 2016

    A. Artwork 倒过来并查集维护即可. #include<cstdio> #include<algorithm> using namespace std; const i ...

  5. springboot2.0以后WebMvcConfigurationSupport代替WebMvcConfigurationAdapter

    1:WebMvcConfigurationSupport代替WebMvcConfigurationAdapter https://blog.csdn.net/wilsonsong1024/articl ...

  6. (89)Wangdao.com第二十二天_JavaScript DocumentFragment 节点

    DocumentFragment 节点 代表一个文档的片段,本身就是一个完整的 DOM 树形结构. 它没有父节点,.parentNode 返回 null 可以插入任意数量的子节点. 不属于当前文档,操 ...

  7. ERP项目实施记录11-产品工艺流程图及单据关联图

    借助百度的Echarts做了2个图表,一个展示产品的生产工艺流程,一个展示产品与订单.工程单的关系 上图为产品工艺流程图,鼠标放上去可以显示部件信息 黄色SO图标代表销售订单,单击打开销售订单 红色M ...

  8. ide phpStorm 配置PHP路径并本地执行PHP脚本

    1.打开设置(File - Settings) 2. 3. 4.到需要执行脚本的文件处,右击 - Run 5.如果本地还未安装PHP,可以下载Xampp,并将PHP目录新增至系统环境变量Path处,重 ...

  9. Exp2 后门原理与实践 20164320 王浩

    一.实践基本内容 1.实践目标 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter(或其他 ...

  10. mysql中find_in_set的使用

    首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 .现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我 ...