网页内容访问 、 部署动态网站 、 安全Web服务案例

news/2024/5/14 5:06:55/文章来源:https://blog.csdn.net/weixin_45214930/article/details/124124935

网页内容访问 、 部署动态网站 、 安全Web服务案例

  • 1 案例1:配置网页内容访问
    • 1.1 问题
    • 1.2 方案
    • 1.3 步骤
  • 2 案例2:使用自定Web根目录
    • 2.1 问题
    • 2.2 方案
    • 2.3 步骤
  • 3 案例3:部署并测试WSGI站点
    • 3.1 问题
    • 3.2 方案
    • 3.3 步骤
  • 4 案例4:配置安全Web服务
    • 4.1 问题
    • 4.2 方案
    • 4.3 步骤

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

1.1 问题

本例要求在 Web 网站 http://server0.example.com 的 DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:

从 http://classroom/pub/materials/private.html 下载一个文件副本到这个目录,重命名为 index.html
不要对文件 index.html 的内容作任何修改
从 server0 上,任何人都可以浏览 private 的内容,但是从其他系统不能访问这个目录的内容

1.2 方案

配置Web内容的访问控制需要添加Directory区段,主要形式可参考

<Directory “父目录路径”>
Require all denied //上层目录拒绝任何访问

<Directory “子目录1路径”>
Require all granted //子目录1允许任何访问

<Directory “子目录2路径”>
Require ip IP或网段地址 … … //子目录2允许少数客户机

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:部署网页子目录及文档

1)建立子目录

[root@server0 ~]# mkdir /var/www/html/private
2)部署网页

[root@server0 ~]# cd /var/www/html/private
[root@server0 private]# wget http://classroom/pub/materials/private.html -O index.html
… …
2016-11-26 20:30:28 (1.90 MB/s) - ‘index.html’ saved [14/14]

[root@server0 private]# cat index.html //检查网页文件
Private Site.
步骤二:为指定的网页子目录限制访问

在httpd服务的标准配置中,根目录 / 默认拒绝任何访问,但网页目录/var/www/默认允许任何访问。因此,只需要为个别子目录增加访问控制即可。

1)调整虚拟站点server0.example.com的配置文件

[root@server0 ~]# vim /etc/httpd/conf.d/00-default.conf
… …
<Directory “/var/www/html/private”>
Require ip 127.0.0.1 ::1 172.25.0.11

2)重启系统服务httpd

[root@server0 ~]# systemctl restart httpd
步骤三:测试目录访问限制

1)从desktop0上访问http://server0.example.com/private/被拒绝

[root@desktop0 ~]# elinks -dump http://server0.example.com/private/
Forbidden

You don’t have permission to access /private/ on this server.
2)从desktop0上访问http://server0.example.com/仍然是正常的

[root@desktop0 ~]# elinks -dump http://server0.example.com/
Default Site.
3)从server0本机上访问http://server0.example.com/private/也不受限制

[root@server0 ~]# elinks -dump http://server0.example.com/private/
Private Site.

2 案例2:使用自定Web根目录

2.1 问题

本例要求调整 Web 站点 http://server0.example.com 的网页目录,要求如下:

新建目录 /webroot,作为此站点新的网页目录
从 http://classroom/pub/materials/station.html 下载一个文件副本到这个目录,重命名为 index.html
不要对文件 index.html 的内容作任何修改
确保站点 http://server0.example.com 仍然可访问

2.2 方案

在SELinux强制启用模式下,增加新的合规网页目录的方法:

1)参照标准目录,重设新目录的属性

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

2)将新目录增加到预设的标准Web目录范围

semanage fcontext -a -t httpd_sys_content_t ‘新目录(/.*)?’

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:部署网页目录及文档

1)建立网页目录

[root@server0 ~]# mkdir /webroot
2)部署网页文件

[root@server0 ~]# cd /webroot/
[root@server0 webroot]# wget http://classroom/pub/materials/station.html -O index.html
… …
2016-11-26 20:01:14 (826 KB/s) - ‘index.html’ saved [14/14]
[root@server0 webroot]# cat index.html //检查网页文件
Default Site.
步骤二:调整虚拟站点http://server0.example.com/的配置

1)修改配置文件

[root@server0 ~]# vim /etc/httpd/conf.d/00-default.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /webroot

… …
2)重启系统服务httpd

[root@server0 ~]# systemctl restart httpd
步骤三:确保虚拟站点http://server0.example.com/仍然可以访问

1)未调整网页目录SELinux上下文件的情况

为虚拟站点http://server0.example.com/更换了新的网页目录以后,从浏览器访问将会失败,只能看到红帽测试页。

[root@desktop0 ~]# elinks -dump http://server0.example.com/
Red Hat Enterprise Linux Test Page

This page is used to test the proper operation of the Apache HTTP server
after it has been installed. If you can read this page, it means that the
Apache HTTP server installed at this site is working properly.
… …
针对此问题,可以参考目录/var/www的属性为网页目录/webroot设置SELinux安全上下文。

[root@server0 ~]# chcon -R --reference=/var/www /webroot/
[root@server0 ~]# ls -Z /webroot/index.html //确认结果
-rw-r–r–. root root system_u:object_r:httpd_sys_content_t:s0 /webroot/index.html
2)未配置目录内容访问的情况

尽管已经调整过/webroot的SELinux安全上下文,但是从浏览器访问此虚拟站点时仍然会被拒绝,还是只能看到红帽测试页。

还需要修改对应的配置文件,添加内容访问控制:

[root@server0 ~]# vim /etc/httpd/conf.d/00-default.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /webroot

<Directory “/webroot”>
Require all granted

<Directory “/webroot/private”>
Require ip 127.0.0.1 ::1 172.25.0.11

[root@server0 ~]# systemctl restart httpd //重启httpd服务
若要保持原有private子目录,建议也拷贝过来:

[root@server0 ~]# cp -rf /var/www/html/private/ /webroot/
3)最终访问测试

从浏览器能成功访问调整后的虚拟站点http://server0.example.com/。

[root@desktop0 ~]# elinks -dump http://server0.example.com/
Default Site.

3 案例3:部署并测试WSGI站点

3.1 问题

本例要求为站点 webapp0.example.com 配置提供动态Web内容,要求如下:

此虚拟主机侦听在端口8909
测试网页从以下地址下载,不要作任何更改http://classroom/pub/materials/webinfo.wsgi
从浏览器访问 http://webapp0.example.com:8909 可接收到动态生成的 Web 页面
此站点必须能被 example.com 域内的所有系统访问

3.2 方案

为httpd增加对Python网页程序的支持,可以安装mod_wsgi模块。关于此模块的配置说明,建议参考软件包提供的readme文档。

在SELinux处于Enforcing模式时,若要开放非80、81等常规Web端口,需要调整SELinux保护策略。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:部署动态网页文档

1)创建网页目录

[root@server0 ~]# mkdir /var/www/webapp0
2)部署webinfo.wsgi网页程序

[root@server0 ~]# cd /var/www/webapp0
[root@server0 webapp0]# wget http://classroom/pub/materials/webinfo.wsgi
… …
2016-11-27 01:52:26 (16.0 MB/s) - ‘webinfo.wsgi’ saved [397/397]

[root@server0 webapp0]# cat webinfo.wsgi //检查下载文件
#!/usr/bin/env python
import time
… …
步骤二:配置新的虚拟主机http://webapp0.example.com:8909/

1)安装mod_wsgi模块软件包

[root@server0 ~]# yum -y install mod_wsgi
… …
2)为新虚拟主机建立配置

[root@server0 ~]# vim /etc/httpd/conf.d/02-webapp0.conf
Listen 8909
<VirtualHost *:8909>
DocumentRoot /var/www/webapp0
ServerName webapp0.example.com
WSGIScriptAlias / /var/www/webapp0/webinfo.wsgi

3)调整SELinux策略,允许Web服务使用8909端口

列出当前许可的Web端口:

[root@server0 ~]# semanage port -l | grep ^http_port
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
添加新的Web端口:

[root@server0 ~]# semanage port -a -t http_port_t -p tcp 8909
[root@server0 ~]#
确认配置结果:

[root@server0 ~]# semanage port -l | grep ^http_port
http_port_t tcp 8909, 80, 81, 443, 488, 8008, 8009, 8443, 9000
4)重启系统服务httpd

[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# netstat -antpu | grep httpd //确认已监听8909端口
tcp6 0 0 :::443 ::😗 LISTEN 2477/httpd
tcp6 0 0 :::8909 ::😗 LISTEN 2477/httpd
tcp6 0 0 :::80 ::😗 LISTEN 2477/httpd
步骤三:测试动态网页效果

使用elinks或firefox访问此动态站点http://webapp0.example.com:8909/。

多刷新访问几次,每次看到的是动态网页内容,内容并不固定。

[root@desktop0 ~]# elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now: 1480184916.52 //第1次访问
[root@desktop0 ~]# elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now: 1480184919.21 //第2次访问
[root@desktop0 ~]# elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now: 1480184951.99 //第3次访问

4 案例4:配置安全Web服务

4.1 问题

本例要求为站点 http://server0.example.com 配置TLS加密

一个已签名证书从以下地址获取 http://classroom/pub/tls/certs/server0.crt
此证书的密钥从以下地址获取 http://classroom/pub/tls/private/server0.key
此证书的签名授权信息从以下地址获取http://classroom/pub/example-ca.crt

4.2 方案

安全Web传输协议及端口:TCP 443

访问HTTP站点(未加密):http://server0.example.com/

访问HTTPS站点(加密):https://server0.example.com/

为httpd服务端实现TLS加密的条件:1)启用一个 mod_ssl 模块;2)提供加密的素材:网站服务器的数字证书、网站服务器的私钥、根证书(证书颁发机构的数字证书)

TLS证书部署位置:/etc/pki/tls/certs/*.crt

TLS私钥部署位置:/etc/pki/tls/private/*.key

4.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置HTTPS网站服务器

1)安装mod_ssl模块软件包

[root@server0 ~]# yum -y install mod_ssl
… …
2)部署密钥、证书等素材

[root@server0 ~]# cd /etc/pki/tls/certs/
[root@server0 certs]# wget http://classroom/pub/example-ca.crt
… …
2016-11-27 01:04:51 (116 MB/s) - ‘example-ca.crt’ saved [1220/1220]

[root@server0 certs]# wget http://classroom/pub/tls/certs/server0.crt
… …
2016-11-27 01:04:06 (62.1 MB/s) - ‘server0.crt’ saved [3505/3505]

[root@server0 certs]# ls *.crt //确认部署结果
ca-bundle.crt example-ca.crt server0.crt
ca-bundle.trust.crt localhost.crt

[root@server0 certs]# cd /etc/pki/tls/private/
[root@server0 private]# wget http://classroom/pub/tls/private/server0.key
… …
2016-11-27 01:07:09 (39.0 MB/s) - ‘server0.key’ saved [916/916]
3)为SSL加密网站配置虚拟主机

[root@server0 ~]# vim /etc/httpd/conf.d/ssl.conf
Listen 443 https
… …

DocumentRoot “/var/www/html” //网页目录
ServerName server0.example.com:443 //站点的域名
… …
SSLCertificateFile /etc/pki/tls/certs/server0.crt //网站证书
… …
SSLCertificateKeyFile /etc/pki/tls/private/server0.key //网站私钥
… …
SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt //根证书
4)重启系统服务httpd

[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# netstat -antpu | grep httpd //确认已监听80、443端口
tcp6 0 0 :::443 ::😗 LISTEN 7954/httpd
tcp6 0 0 :::80 ::😗 LISTEN 7954/httpd
步骤二:验证HTTPS加密访问

使用firefox浏览器访问加密站点https://server0.example.com/,可以看到页面提示未信任连接“Untrusted Connection”(如图-2所示)。

在这里插入图片描述

图-2

若要继续访问,需要在页面下方单击超链接“I Understand the Risks”,表示用户已理解相关风险。然后在展开的页面内点击“Add Exception”按钮(如图-3所示)。

在这里插入图片描述

图-3

弹出添加安全例外对话窗口(如图-4所示),单击界面左下角的“Confirm Security Exception”按钮确认安全例外。

在这里插入图片描述

图-4

确认成功后即可看到对应的网页内容(如图-5所示)。

在这里插入图片描述

图-5
————————————————
版权声明:本文为CSDN博主「我爱DC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36345864/article/details/104828333

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_904108.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网内简易网站的发布

1.首先我们先做一个简易的网页 打开我们的记事本&#xff0c;在里面输入以下内容&#xff1a; <!DOCTYPE html> <html><head> <title> 简易网页</title> </head><body> <input type"button" value"点我试试看&qu…

电脑只能上QQ,不能上网浏览网站怎么解决

这个问题通常是因为网络的DNS解析出错引起的。QQ一类的聊天软件有自动的网络解析&#xff0c;不需要DNS便可以使用&#xff0c;而一般的浏览器是需要DNS解析来访问网页的。所谓DNS&#xff0c;即域名服务器&#xff08;Domain Name Server)&#xff0c;它把域名转换为计算机能够…

WordPress 建站教程:新手搭建 WordPress个人博客图文教程(完全版)

前言 WordPress 作为动态博客的代表&#xff0c;至今已经有十几年历史&#xff0c;而且一直在更新发展中&#xff0c;功能强大&#xff0c;插件和主题丰富&#xff0c;WordPress搭建使用也很方便。作为个人站长和博主&#xff0c;很多都是从 WordPress 入门的。 本文为零基础 W…

网站浏览状态码的那点事

网站浏览状态码的那点事 开头水话进入正题从100~199开始bb从200~299开始bb从300~399开始bb从400~499开始bb从500~599开始bb 完结撒花 开头水话 Hello 大家好我又双叒叕来了今天废话不多说我现在开始进入正题 进入正题 当你们浏览网站的时候发没发现这种东西很让人头疼的那种 当…

涨知识:分享几个值得推荐的导航网站

平时我们上网时&#xff0c;如果想要快速查寻信息&#xff0c;设置一个导航网站作为主页很有必要&#xff0c;因为直接使用搜索引擎搜索前几条基本都是广告&#xff0c;还要从中筛选&#xff0c;而设置一个好用的导航网站会让你事半功倍。网络上也有很多导航网站&#xff0c;比…

这7个网站,帮你找到精美高清配图

可能大家在日常生活当中&#xff0c;能看到一些APP或公众号、网站的图片都很高大上且高清无码&#xff0c;好多人都不知道那些独特的图片哪里来的&#xff0c;今天在这统统告诉你。 1.Unsplash https://unsplash.com/ 一个免费高质量照片的网站&#xff0c;照片都是真实的摄…

教你如何建高逼格个人网站

从大学开始我就希望能有一个自己的个人网站&#xff0c;觉得那样真的很酷&#xff0c;就自学了HTML和Java编程&#xff0c;从此踏上了码农搬砖的不归路。。。。现如今&#xff0c;建一个网站的成本真的是太低了&#xff0c;特别是有了GitHub以后&#xff0c;不懂代码的孩子都可…

“网站变灰”的代码实现

网站变灰 为了表示哀悼&#xff0c;当天很多网站把主页和内容都变成了灰色&#xff0c;比如百度、B 站、爱奇艺、CSDN 等等。 CSDN&&爱奇艺&&百度等 实现: html.gray { -webkit-filter: grayscale(.95); }html { -webkit-filter: grayscale(100%); -moz-fil…

最便宜的高负载网站架构

1&#xff0c; LVS做前端四层软件均衡负载 LVS是基于IP虚拟分发的规则, 不同于apache,squid这些7层基于http协议的反向代理软件, 前者在性能上能得到更好的保证&#xff01; 另外, 后者在处理http header信息时, 会显得很被动. 开源, 高性能, 这不就是我们所需要的吗? 另外,…

网站开发-php开发手机论坛(2)-http协议以及网络原理

对于初学者来说,最大的难题就是网络到底是怎么运作的.所以了解http协议以及网络原理是很重要的,这将为后面的学习打下坚实的基础. 声明:以下内容有引用别人的博文,我会附录在最后.另外,由于水平有限,可能某些地方理解不够深入,有错误欢迎指出.我会尽量以通俗的语言说明,有些术…

网站开发-php开发手机论坛(4)-功能设计及需求分析,功能结构模型

在开发论坛之前,我们先要做一下功能设计.然后才能按照功能设计代码. 这里我要做的是一个手机论坛.首先考虑论坛的属性,论坛无非就是用户发帖讨论某个主题.所以功能结构是比较简单的.我画了个思维导图帮助理解.个人觉得图形化的结构更加好理解和记忆. 前端设计: 还要加上个发帖…

网站开发-php开发手机论坛(4)-数据库设计

数据库的设计和使用是一个程序员必备的技能.在这里我用的是免费开源的mysql. 没有接触过数据库的可以先去这里入一下门.21分钟 MySQL 入门教程 数据库的设计是很重要的,必须满足以下范式. 第一范式&#xff08;1NF&#xff09;无重复的列 第二范式&#xff08;2NF&#xff09…

网站地址做成静态链接有什么优点?

文章摘自于海象云https://www.haix.cn/news_41/66.html 网站地址有哪些分类呢&#xff1f;现在主要包括动态链接、静态链接、伪静态链接这三种&#xff0c;三种方式的展现不一样&#xff0c;地址格式也不一样&#xff0c;对蜘蛛和服务器的配置来说也不一样&#xff01; 这三种不…

网站收录会帮助排名吗?

文章摘自于海象云https://www.haix.cn/news_41/67.html 搜索引擎对网站的收录多少&#xff0c;真的会影响网站的排名吗&#xff1f;很多人都会陷入这个误区&#xff0c;认为收录量和网站排名是正向的关系&#xff01; 错误理解&#xff1a; 1、搜索引擎对网站内容收录越多&…

网站跳出率高怎么解决?

文章摘自于海象云https://www.haix.cn/news_41/72.html 跳出率是什么&#xff1f;跳出率是指用户访问了一个页面就离开了与总访问量的百分比。网站有跳出其实是很正常的&#xff0c;但是高的跳出率&#xff0c;搜索引擎会认为网站质量不是恨到&#xff0c;用户不喜欢当前页面网…

在网站优化中怎么做好关键词密度?

文章摘自于海象云https://www.haix.cn/news_41/74.html 网站优化当中关键词选择及关键词布局是重要的一环&#xff0c;其中关键词密度是关键词布局当中的重中之重&#xff0c;确定好关键词的数量&#xff0c;不能过分堆砌关键词&#xff0c;提高网站的可读性和文本关联性&…

长尾关键词真的能帮助网站排名?

文章摘自于海象云https://www.haix.cn/news_41/75.html 长尾关键词是什么&#xff1f; 首先&#xff0c;我们先要明白什么是长尾关键词。在日常的搜索当中&#xff0c;用户喜欢搜索简短的词语组合&#xff0c;往往五个字数左右&#xff0c;就会造成这部分词语就很热门&…

网站被降权的原因和如何修复?

文章摘自于海象云https://www.haix.cn/news_41/78.html 不管网站优化的新手还是专业人员&#xff0c;都会遇到网站降权&#xff0c;当网站降权的时候大家也不要惊慌&#xff0c;找出被降权的原因&#xff0c;然后改善网站的内容质量和结构页面&#xff0c;或者通过反馈投诉等恢…

十三个大数据学习网站

数据挖掘与大数据分析 微信号datakong 功能介绍以传播大数据、解读行业趋势、数据化运营为核心的新媒体平台&#xff0c;已有150多万行业人士关注&#xff0c;荣获2013年新浪微博百强自媒体、2016年中国十大大数据领域影响力平台&#xff0c;关注我就是关注数据 数据分析 越来越…

开源网站总结

代码搜索平台&#xff1a; SourceForge 一个非常优秀的有多年历史的老牌开源项目共享平台。 CodePlex 微软的一个开源项目分享平台&#xff0c;你可以在上面创建项目同全世界分享。 Google Code Search Google的代码搜索引擎&#xff0c;凭借自己的搜索技术优势&#xff…