运维之红帽工程师篇-----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.非标准的端口的开放
难道制造假象的只有智子?难道假象只存在于加速器末端?难道宇宙的其他部分都像处女一样纯真,等着我们去探索? ---丁仪
笔记分为:
总结笔记:简要写知识点及必须牢记内容。
正式笔记:详细记录学习的步骤命令。
随笔录:为课堂大神随口扩展的知识,此较为零散,但对学习体系的搭建十分有用。
因此,学习的同志可以从正式笔记一步一步来,一点一点搭建自己的知识网络;多想多敲多练多总结;切忌走马观花,心浮气躁;要像练武功秘籍般心平气和,专心致志。当然由于笔记记录仓促整理,不免有些错误与疏忽的地方,谢谢同志的提醒。
总结笔记:
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.非标准的端口的开放
相关文章推荐
- HTTP服务基础 、 网页内容访问 、 安全Web服务 、 部署动态网站
- linux学习笔记-工程师技术:HTTP服务基础(Web服务基本搭建)、网页内容访问、安全Web服务、动态网站的部署
- Linux运维之道之ENGINEER1.2(HTTP服务基础,网页内容访问,安全web)
- ENGINEER06 - HTTP服务基础 网页内容访问 部署动态网站
- 2008年3月小记(设置Windows服务的依赖关系,配置MSMQ的访问权限,WCF的安全配置,删除重建网站,HttpWebRequest,一年中的周,在WCF中使用HttpContext,String.Join)
- 2008年3月小记(设置Windows服务的依赖关系,配置MSMQ的访问权限,WCF的安全配置,删除重建网站,HttpWebRequest,一年中的周,在WCF中使用HttpContext,String.Join)
- 运维之红帽工程师篇-----2. 配置邮件服务器 、 数据库服务基础 、 管理表数据
- 记录一个关于互联网、网页设计、Web开发、服务器运维优化、项目管理、网站运营、网站安全的网站
- 小程序webview访问别人网页,微信小程序web-view调用第三方网站内容——小程序webview高级用法16
- android的httppost方法访问本地web服务(一)
- Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
- Web GIS访问ArcGIS安全认证服务代理配置解决方案-Java版本
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- 此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示。
- 使用HttpWebRequest的POST取得网页内容
- http服务配置/LAMP网站平台/PHP应用部署(Discuz!论坛系统
- tomcat启动时报Error listenerStart错误,访问web服务时报HTTP Status 404错误
- 访问Oracle em https https://localhost:1158/em 报访问网页提示此网站的安全证书有问题解决方法
- 20170804L08-03老男孩Linux实战运维培训-Lamp系列之-http服务重要基础概念讲解
- IIS6.0注册.NET Framework,设置Web服务扩展解决ASP.NET网站初次部署时的404错误