您的位置:首页 > 理论基础 > 计算机网络

运维之红帽工程师篇-----3. HTTP服务基础 、 网页内容访问 、 安全Web服务 、 部署动态网站

2017-10-10 16:41 906 查看
THREE DAY

难道制造假象的只有智子?难道假象只存在于加速器末端?难道宇宙的其他部分都像处女一样纯真,等着我们去探索?       ---丁仪

笔记分为:

总结笔记:简要写知识点及必须牢记内容。

正式笔记:详细记录学习的步骤命令。

随笔录:为课堂大神随口扩展的知识,此较为零散,但对学习体系的搭建十分有用。

因此,学习的同志可以从正式笔记一步一步来,一点一点搭建自己的知识网络;多想多敲多练多总结;切忌走马观花,心浮气躁;要像练武功秘籍般心平气和,专心致志。当然由于笔记记录仓促整理,不免有些错误与疏忽的地方,谢谢同志的提醒。

总结笔记:

1.安装软件包httpd-----elinks-----.mod_ssl---------防火墙public (前提基础)

2.新建目录

# mkdir /var/www/xiaokeai

# mkdir /var/www/xiaodangfu

#Mkdir /xiaoyaojing,作为此站点新的网页目录

# mkdir /webroot/private #目录根据爱好需求

3.书写网页

echo '<h1>你是我的小可爱' > /var/www/xiaokeai/index.html  #改变默认网页根目录

 #echo '<h1>你是我的小荡妇' > /var/www/xiaodangfu/index.html#改变默认网页根目录

#echo '<h1>你是我的小妖精' > /xiaoyaojing/index.html  #selinux影响

#echo '私人会所裸体性派对' > /xiaoyaojing/private/index.html  #私人访问

 

# cat /var/www/xiaokeai/index.html

---/var/www/xiaodangfu/index.html

---/var/www/xiaoyaojing/index.html

---/xiaoyaojing/private/index.html

4.修改配置文件

(1.调用配置文件/etc/httpd/conf.d/zhandian_01.conf

<VirtualHost *:80>

    ServerAdmin webmaster@ server0.example.com

    DocumentRoot /var/www/xiaokeai

    ServerName server0.example.com

    ServerAlias www.server0.example.com

    ErrorLog "/var/log/httpd/server0example.com-error_log"

CustomLog "/var/log/httpd/server0.example.com-access_log" common

</VirtualHost>



<VirtualHost *:80>

    DocumentRoot /var/www/xiaodangfu

ServerName www0.example.com

</VirtualHost>

 

<VirtualHost *:8909>

    DocumentRoot /xiaoyaojing

ServerName webapp0.example.com

WsgiScriptsalias / /var/www/test

</VirtualHost>

 

(2.设置httpd服务访问控制/etc/httpd/conf.d/fangwen02.conf

<Directory "/var/www/xiaokeai">

    Require all granted        #允许所有人访问

</Directory>

<Directory "/var/www/xiaodangfu">

    Require all granted        #允许所有人访问

</Directory>

<Directory "/xiaoyaojing">

    Require all granted        #允许所有人访问

</Directory>

<Directory "/xiaoyaojing/private">

    Require ip 172.25.0.11 127.0.0.1       #允许私人访问

</Directory>

(3.修改ssl配置文件/etc/httpd/conf.d/ssl03.conf

   .部署网站(营业执照)

  # cd /etc/pki/tls/certs

  # wget  http://172.25.0.254/pub/tls/certs/server0.crt

   .部署根证书(公安局信息)

  # cd /etc/pki/tls/certs

  # wget  http://172.25.0.254/pub/example-ca.crt

  .部署私钥

  # cd /etc/pki/tls/private

  # wget http://172.25.0.254/pub/tls/private/server0.key

   #vim  /etc/httpd/conf.d/ssl03.conf

   59行  DocumentRoot "/xiaoyaojing"

   60行  ServerName server0.example.com:443

   100行 SSLCertificateFile /etc/pki/tls/certs/server0.crt

   107行 SSLCertificateKeyFile /etc/pki/tls/private/server0.key

   122行 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt

 

5.设置SELinux安全上下文(标签)与非标准端口的开放

[root@server0 /]# chcon -R --reference=/var/www  /xiaoyaojing

[root@server0 /]# ls -Zd /xiaoyaojing

[root@server0 ~]# semanage port -l  | grep http     

[root@server0 ~]# semanage port -a -t http_port_t -p tcp 8909  #消耗内存,可创建交换空间缓解

[root@server0 ~]# semanage port -l  | grep http

 

6.重起服务   # systemctl restart httpd          #重起服务

7.测试:
虚拟机desktop0# elinks -dump server0.example.com

虚拟机desktop0#elinks -dump www0.example.com
虚拟机desktop0#elinks -dump webapp0.example.com/private
虚拟机server0#elinks -dump webapp0.example.com/private
虚拟机desktop0 #firefox https://webapp0.example.com
虚拟机desktop0 #firefox https://webapp0.example.com:8909
牢笼政策---alias--跳转访问目录

 
 正式笔记:

环境准备:

1.还原所有虚拟机

2.设置虚拟机的防火墙

[root@server0 ~]# firewall-cmd --set-default-zone=trusted 

[root@desktop0 ~]# firewall-cmd --set-default-zone=trusted

#######################################################

HTTP服务基础

Web通信基本概念

• 基于 B/S (Browser/Server)架构的网页服务

– 服务端提供网页

– 浏览器下载并显示网页

 Hyper Text Markup Language,超文本标记语言((HTML)

• Hyper Text Transfer Protocol,超文本传输协议(HTTP

RHEL7中的Web服务

• 软件包:httpd

• 系统服务:httpd

• 提供的默认配置

 Listen:监听地址:端口(80)

– ServerName:本站点注册的DNS名称(空缺)

– DocumentRoot:网页根目录(/var/www/html)

– DirectoryIndex:起始页/首页文件名(index.html)

 配置文件路径

 Vim  /etc/httpd/conf/httpd.conf    #全局配置文件

Nslookup www0/serve0/webapp0.example.com   #解析域名

     classroom   DNS     server0.example.com

                 www0.example.com

                         webapp0.example.com

                                            172.25.0.11

#####################################################

1.搭建基本的Web服务

服务端虚拟机server0

1.安装软件包httpd elinks 防火墙public

2.书写网页

echo '<h1>My First Web' > /var/www/html/index.html  #网页根目录

# cat /var/www/html/index.html

3.修改配置文件/etc/httpd/conf/httpd.conf(有对用户/组的权限)

 95行  ServerName server0.example.com:80   #把注释去掉

4.重起服务

# systemctl restart httpd

# systemctl enable httpd           #设置为开机自起

 

5.客户端虚拟机desktop0测试:   

# elinks -dump server0.example.com

######################################################

2.修改网页文件默认根路径

服务端虚拟机server0

1.创建新的网页文件根路径

# mkdir /var/www/nsd1707

2.书写网页

# echo '<h1>NSD1707 Web' > /var/www/nsd1707/index.html

# cat /var/www/nsd1707/index.html

3.修改配置文件/etc/httpd/conf/httpd.conf

119行  DocumentRoot "/var/www/nsd1707"   #指定网页文件的路径

4.重起服务

# systemctl restart httpd          #重起服务

# systemctl enable httpd           #设置为开机自起

客户端虚拟机desktop0测试:   

# elinks -dump server0.example.com

#######################################################

3.访问Web站点

• 为浏览器程序提供 URL 网址

– Uniform Resouce Locator,统一资源定位器(格式)

– 客户端访问服务端资源,在浏览器中输入格式

   协议名://用户名:密码@服务器地址[:端口号]/目录/文件名

 http://172.25.0.11----------》/var/www/nsd1707

 http://172.25.0.11/test----------》/var/www/nsd1707/test/

#####################################################

虚拟Web主机

– 由同一台服务器提供多个不同的Web站点                                                  

区分方式

– 基于域名的虚拟主机

– 基于端口的虚拟主机

– 基于IP地址的虚拟主机

####################################################

4.调用配置文件路径

– /etc/httpd/conf.d/*.conf

基于域名的虚拟Web主机

• 为每个虚拟站点添加配置

<VirtualHost *:80>

ServerName 此站点的DNS名称

DocumentRoot 此站点的网页根目录

</VirtualHost>

###################################################

Apache帮助信息的文档

# /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf

          www0.example.com  -----》/var/www/nsd

一旦启用虚拟Web主机功能,所有的网站都必须用虚拟Web主机来实现

5.服务端虚拟机server0之网页根路径

1.创建新的网页文件根路径

# mkdir /var/www/nsd

2.书写网页

# echo 'wo shi nsd' > /var/www/nsd/index.html

# cat /var/www/nsd/index.html

3.创建配置文件/etc/httpd/conf.d/nsd01.conf

   帮助信息# /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf

<VirtualHost *:80>

    DocumentRoot /var/www/nsd

    ServerName www0.example.com

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot /var/www/nsd1707

    ServerName server0.example.com

</VirtualHost>

4.重起服务   # systemctl restart httpd          #重起服务

客户端虚拟机desktop0测试:   

# elinks -dump server0.example.com

# elinks -dump www0.example.com

################################################

客户端访问服务端服务:

1. 服务的访问控制

2. 本地权限的设置    

3. 防火墙

4.SELinux策略           

#################################################

SELinux 对与httpd服务影响

1.安全上下文(标识、标签)

方式1:参照标准目录,重设新目录的属性

 chcon [-R] --reference=模板目录 新目录

[root@server0 /]# chcon -R --reference=/var/www  /webroot/

[root@server0 /]# ls -Zd /webroot/

#######################################################

6.服务端虚拟机server0之selinux

1.新建目录 /webroot,作为此站点新的网页目录

# mkdir /webroot

echo 'wo shi webroot' > /webroot/index.html

2.修改配置文件/etc/httpd/conf.d/nsd01.conf

<VirtualHost *:80>

    DocumentRoot /webroot

    ServerName server0.example.com

</VirtualHost>

3.设置httpd服务访问控制,新建配置文件/etc/httpd/conf.d/nsd02.conf

<Directory "/webroot">

    Require all granted        #允许所有人访问

</Directory>

4.设置SELinux安全上下文(标签)

[root@server0 /]# chcon -R --reference=/var/www  /webroot/

[root@server0 /]# ls -Zd /webroot/

5.重起服务   # systemctl restart httpd          #重起服务

######################################################

7.仅允许部分客户机访问

案例3:配置网页内容访问

在 Web 网站 http://server0.example.com 的

DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:

1)从 server0 上,任何人都可以浏览 private,但是从其他系统不能访问这个目录的内容

服务端虚拟机server0

1.新建目录

# mkdir /webroot/private

# echo 'wo shi private' > /webroot/private/index.html

2.测试

虚拟机server0# elinks -dump server0.example.com/private  #成功

虚拟机desktop0# elinks -dump server0.example.com/private #成功

3.设置访问控制修改配置文件/etc/httpd/conf.d/nsd02.conf

<Directory "/webroot/private">

    Require ip 127.0.0.1 172.25.0.11         #仅允许本机访问

</Directory>

4.重起服务   # systemctl restart httpd          #重起服务

5.测试

虚拟机server0# elinks -dump server0.example.com/private  #成功

虚拟机desktop0# elinks -dump server0.example.com/private #失败

##########################################################

安全的Web,实现https访问

PKI公钥基础设施

• Public Key Infrastructure,公钥基础设施

– 公钥:主要用来加密数据

– 私钥:主要用来解密数据(与相应的公钥匹配)

– 数字证书:证明拥有者的合法性/权威性(单位名称、

有效期、公钥、颁发机构及签名、......)

– Certificate Authority,数字证书授权中心(CA):负责证书

的申请/审核/颁发/鉴定/撤销等管理工作

实现HTTPS加密的条件

• HTTPS 加密Web通信(TCP 443端口)

– Secure Sockets Layer ,安全套接字层(SSL)

– Transport Layer Security,安全传输层协议(TLS)

####################################################

7.搭建安全的Web服务

虚拟机server0:

  1.安装支持加密通信的软件包mod_ssl

  2.部署网站证书(营业执照)

  # cd /etc/pki/tls/certs

  # wget  http://172.25.0.254/pub/tls/certs/server0.crt

  3 .部署根证书(公安局信息)

  # cd /etc/pki/tls/certs

  # wget  http://172.25.0.254/pub/example-ca.crt

  4.部署私钥

  # cd /etc/pki/tls/private

  # wget http://172.25.0.254/pub/tls/private/server0.key

  5.修改配置文件/etc/httpd/conf.d/ssl.conf

   59行  DocumentRoot "/webroot"

   60行  ServerName server0.example.com:443

   100行 SSLCertificateFile /etc/pki/tls/certs/server0.crt

   107行 SSLCertificateKeyFile /etc/pki/tls/private/server0.key

   122行 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt

  6.重起服务   # systemctl restart httpd        

  7.测试:虚拟机desktop0 #firefox https://server0.example.com

SELinux:尽量用cp

        1.mv移动会影响安全上下文 

        2.cp不会影响安全上下文 

###############################################

8.动态Web实现

静态网站的运行

• 服务端的原始网页 = 浏览器访问到的网页

动态网站的运行

• 服务端的原始网页 ≠ 浏览器访问到的网页

搭建虚拟Web主机

1.安装httpd软件包

帮助信息:/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf

2.创建新的配置文件

[root@server0 /]# cat /etc/httpd/conf.d/nsd01.conf 

<VirtualHost *:80>

    DocumentRoot /var/www/test

    ServerName webapp0.example.com

</VirtualHost>

3.创建目录结构

# mkdir /var/www/test

# cd /var/www/test

# wget http://172.25.0.254/pub/materials/webinfo.wsgi

4.重起httpd服务

客户端访问# elinks -dump http://webapp0.example.com/webinfo.wsgi

   客户端  webapp0.example.com --------》 服务端 /var/www/test

   客户端  webapp0.example.com --------》 服务端  /

虚拟机server0:实现别名的定义(跳转页面),方便客户端的访问

1.修改配置文件,/etc/httpd/conf.d/nsd01.conf

<VirtualHost *:80>

    DocumentRoot /var/www/test

    ServerName webapp0.example.com

    Alias / /var/www/test/webinfo.wsgi

</VirtualHost>

2.重起httpd服务

虚拟机desktop0: elinks -dump webapp0.example.com

动态Web的实现

1.安装支持python的程序,mod_wsgi(软件包)

2.修改配置文件/etc/httpd/conf.d/nsd01.conf

<VirtualHost *:80>

    DocumentRoot /var/www/test

    ServerName webapp0.example.com

    WsgiScriptAlias / /var/www/test/webinfo.wsgi

</VirtualHost>

2.重起httpd服务

虚拟机desktop0: elinks -dump webapp0.example.com

修改动态Web的端口

– 站点名称为 webapp0.example.com

– 监听端口为 8909

 

[root@server0 ~]# vim /etc/httpd/conf.d/nsd01.conf 

Listen 8909

<VirtualHost *:8909>

    DocumentRoot /var/www/test

    ServerName webapp0.example.com

    WsgiScriptAlias / /var/www/test/webinfo.wsgi

</VirtualHost>

[root@server0 ~]# systemctl restart httpd

[root@server0 ~]# semanage port -l  | grep http

[root@server0 ~]# semanage port -a -t http_port_t -p tcp 8909  #消耗内存,可创建交换空间缓解

[root@server0 ~]# semanage port -l  | grep http

[root@server0 ~]# systemctl restart httpd

测试访问:

[root@desktop0 /]# elinks -dump webapp0.example.com:8909

Nslookup www0/serve0/webapp0.example.com   #解析域名

SELinux知识点:

  1.安全上下文

#chcon -R --reference=/var/www  /webroot/         #ls -Zd /webroot

  2.布尔值(功能开关)

  3.非标准的端口的开放

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web http apache 配置文件
相关文章推荐