day8 RHCE
12 、实现一个 web 服务器
在server0上配置一个站点http://server0.example.com,然后执行以下步骤:
从http://classroom.example.com/materials/station.html下载文件,并且
将文件重命名为index.html,绝对不能修改此文件的内容。
将index.html拷贝到你的web服务器的DocumentRoot目录下。
来自example.com域的客户端可以访问此web站点。
来自my133t.org域的客户端拒绝访问此web站点。
备注: 网站的DocumentRoot如果题目没有指定,那么随意。
[root@server0 ~]# yum install httpd -y
[root@server0 ~]# rpm -ql httpd
/etc/httpd/conf/httpd.conf 主配置文件
/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf 子配置文件
/usr/share/doc/httpd-2.4.6/httpd-manual.conf [root@server0 ~]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/ 重命名下
[root@server0 ~]# cp /usr/share/doc/httpd-2.4.6/httpd-manual.conf /etc/httpd/conf.d/ [root@server0 conf.d]# vim vhost.conf
<Directory "/var/www/html">
<RequireAll>
Require all granted
Require not host .my133t.com
</RequireAll>
</Directory> <VirtualHost 172.25.0.11:80> #直接写ip:port
DocumentRoot "/var/www/html"
ServerName server0.example.com
</VirtualHost> [root@server0 ~]# cd /var/www/html/
[root@server0 html]# wget http://classroom.example.com/materials/station.html
[root@server0 html]# mv station.html index.html #只能cat 该文件, 检测:md5值匹配 [root@server0 conf.d]# firewall-cmd --permanent --add-service=http
[root@server0 conf.d]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=http accept'
[root@server0 conf.d]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.17.10.0/24 service name=http reject'
[root@server0 conf.d]# firewall-cmd --reload [root@server0 ~]# systemctl enable httpd
[root@server0 ~]# systemctl restart httpd [root@server0 ~]# firefox server0.example.com
13 、配置安全 web 服务
站点http://server0.example.com配置TLS加密。
一个已经签名证书从http://classroom.example.com/pub/tls/certs/server0.crt获取
此证书的密钥从http://classroom.example.com/pub/tls/private/server0.key获取
此证书的授权信息从http://classroom.example.com/pub/example-ca.crt获取
[root@server0 ~]# yum install mod_ssl -y
[root@server0 ~]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf [root@server0 ~]# cat /etc/httpd/conf.d/ssl.conf 参考
100 SSLCertificateFile /etc/pki/tls/certs/localhost.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
122 #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt [root@server0 ~]# vim /etc/httpd/conf.d/vhost.conf
<Directory "/var/www/html">
<RequireAll>
Require all granted
Require not host .my133t.com
</RequireAll>
</Directory> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/html"
ServerName server0.example.com
SSLCertificateFile /etc/pki/tls/certs/server0.crt 3行直接添加到
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost> [root@server0 ~]# wget -O /etc/pki/tls/certs/server0.crt http://classroom.example.com/pub/tls/certs/server0.crt
[root@server0 ~]# wget -O /etc/pki/tls/private/server0.key http://classroom.example.com/pub/tls/private/server0.key
[root@server0 ~]# wget -O /etc/pki/tls/certs/example-ca.crt http://classroom.example.com/pub/example-ca.crt [root@server0 ~]# firewall-cmd --permanent --add-service=https 加密服务https
[root@server0 ~]# firewall-cmd --reload [root@server0 ~]# systemctl restart httpd.service
[root@server0 ~]# systemctl enable httpd.service [root@server0 ~]# firefox https://server0.example.com

14 、配置虚拟主机
在server0上扩展你的web服务器,为站点http://www0.example.com创建一个虚拟主机,然后执行以下步骤:
设置DocumentRoot为/var/www/virtual
从http://classroom.example.com/materials/www.html下载文件并重命名为index.html,
不要对文件index.html内容做任何修改。
将index.htm文件放到虚拟主机的DocumentRoot目录下
确保floyd用户能够在/var/www/virtual目录下创建文件
注意:原始站点http://server0.example.com必须仍然能够访问。
站点的所用的域名网络中已有DNS服务器解析。
[root@server0 ~]# mkdir -pv /var/www/virtual [root@server0 ~]# cd /var/www/virtual
[root@server0 virtual]# wget http://classroom.example.com/materials/www.html
[root@server0 virtual]# mv www.html index.html [root@server0 ~]# id floyd
[root@server0 ~]# useradd floyd
[root@server0 ~]# setfacl -m u:floyd:rwx /var/www/virtual/
[root@server0 ~]# getfacl /var/www/virtual/ [root@server0 ~]# vim /etc/httpd/conf.d/vhost.conf <Directory "/var/www/html">
<RequireAll>
Require all granted
Require not host .my133t.com
</RequireAll>
</Directory> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/html"
ServerName server0.example.com
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost> <VirtualHost 172.25.0.11:80> 添加虚拟主机www0
DocumentRoot "/var/www/virtual"
ServerName www0.example.com
</VirtualHost> [root@server0 ~]# systemctl restart httpd.service
[root@server0 ~]# systemctl enable httpd.service
[root@server0 ~]# firefox http://www0.example.com
15 、配置 web 内容的访问
在你的server0上的web服务器的DocumentRoot目录下创建一个名为private的目录,要求如下:
从http://classroom.example.com/materials/private.html下载一个文件副本到这个目录,并且重命名为index.html。
不要对这个文件的内容作任何修改。
从system1上,任何人都可以浏览private的内容,但是从其他系统就不能访问这个目录的内容。
(注意题目要求谁可以访问,灵活变化)
备注:此题目是接着上一题,所以这里的DocumentRoot指的就是上面的/var/www/virtual/。
[root@server0 ~]# mkdir -pv /var/www/virtual/private
[root@server0 ~]# cd /var/www/virtual/private [root@server0 private]# wget http://classroom.example.com/materials/private.html
[root@server0 private]# mv private.html index.html [root@server0 private]# vim /etc/httpd/conf/httpd.conf 主配置参考文件 [root@server0 private]# vim /etc/httpd/conf.d/vhost.conf
<Directory "/var/www/html">
<RequireAll>
Require all granted
Require not host .my133t.com
</RequireAll>
</Directory> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/html"
ServerName server0.example.com
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/virtual"
ServerName www0.example.com
</VirtualHost> <Directory "/var/www/virtual/private"> #### 添加
Require all denied 全部拒绝
Require local 本地访问
</Directory> [root@server0 private]# systemctl restart httpd
[root@server0 private]# systemctl enable httpd
[root@server0 private]#
[root@server0 private]# firefox http://www0.example.com/private/index.html
16 、实现动态 Web容 内容 [ [ 新版题库已经没有这题] ]
在server0上配置提供动态web内容,要求如下:
动态内容由名为webapp0.example.com的虚拟主机提供虚拟主机监听在端口8908
从http://classroom.example.com/materials/webinfo.wsgi下载一个脚本,然后放在适当的位置,
无论如何不要修改此文件的内容。客户端访问http://webapp0.example.com:8908/时应该接收到动态生成的web页面。
此站点http://webapp0.example.com:8908/。必须能够被example.com域内的所有系统访问。
[root@server0 ~]# mkdir -pv /var/www/webapp
[root@server0 ~]# cd /var/www/webapp
[root@server0 webapp]# wget http://classroom.example.com/materials/webinfo.wsgi [root@server0 ~]# semanage port -l |grep http
[root@server0 ~]# semanage port -a -t http_port_t -p tcp 8908 注册selinux端口 (可以图形界面policycoreutils-gui包,命令:system-config-selinx)
Full path required for exclude: net:[4026532647].
Full path required for exclude: net:[4026532647].
[root@server0 ~]# semanage port -l |grep http [root@server0 ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 port port=8908 protocol=tcp accept' #防火墙
success
[root@server0 ~]# firewall-cmd --reload [root@server0 ~]# yum install mod_wsgi.x86_64 -y
[root@server0 ~]# rpm -ql mod_wsgi
/usr/share/doc/mod_wsgi-3.4/README [root@server0 ~]# vim /usr/share/doc/mod_wsgi-3.4/README
WSGIScriptAlias /wsgi/ /usr/local/wsgi/scripts/ [root@server0 ~]# vim /etc/httpd/conf.d/vhost.conf
<Directory "/var/www/html">
<RequireAll>
Require all granted
Require not host .my133t.com
</RequireAll>
</Directory> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/html"
ServerName server0.example.com
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost> <VirtualHost 172.25.0.11:80>
DocumentRoot "/var/www/virtual"
ServerName www0.example.com
</VirtualHost> <Directory "/var/www/virtual/private">
Require all denied
Require local
</Directory> Listen 8908 #添加 监听8908端口
<VirtualHost 172.25.0.11:8908>
DocumentRoot "/var/www/webapp"
ServerName webapp0.example.com
WSGIScriptAlias / /var/www/webapp/webinfo.wsgi
</VirtualHost> [root@server0 ~]# systemctl restart httpd
[root@server0 ~]# systemctl enable httpd
[root@server0 ~]# firefox http://webapp0.example.com:8908/
day8 RHCE的更多相关文章
- day8
作业要求: 1.用socket写一个 ftp服务端与客户端 2.支持get put命令 作业下载地址:ftp://www.wudonghang.com/oldboy/day8.zip ...
- 红帽RHEL7版本RHCE认证学习及考试经历
RHCE是红帽公司推出的Linux系统的中级认证,考试全部采取上机形式,在考察考生的基础理论知识的同时还能考察实践动手操作能力,在Linux领域的价值是不可否认的,所以对于期望从事相关行业的同学们在上 ...
- 【转】RHCE 7系列—RHCE考试
本篇主要以RHCE练习题为线索,介绍其中涉及的知识点. 红色引用的字为题目要求(不是正式题目,难度略低于正式题目) In serverX or desktopX 1. (lab teambridge ...
- RHCE 系列(二):如何进行包过滤、网络地址转换和设置内核运行时参数
正如第一部分(“设置静态网络路由”)提到的,在这篇文章(RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7(RHEL)中包过滤和网络地址转换(NAT)的原理,然后再介绍在某些条件发生变化 ...
- RHCE 系列(一):如何设置和测试静态网络路由
RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练.支持和咨询服务. 这个 RHCE 是 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python_way,day8 面向对象【多态、成员--字段 方法 属性、成员修饰符、特殊成员、异常处理、设计模式之单例模式、模块:isinstance、issubclass】
python_way day8 一.面向对象三大特性: 多态 二.面向对象中的成员 字段.方法属性 三.成员修饰符 四.特殊成员 __init__.__doc__.__call__.__setitem ...
- Catalyst揭秘 Day8 Final 外部数据源和缓存系统
Catalyst揭秘 Day8 Final 外部数据源和缓存系统 今天是Catalyst部分的收官,主要讲一些杂项内容. 外部数据源处理 什么叫外部数据源,是SparkSql自己支持的一些文件格式,以 ...
- Kakfa揭秘 Day8 DirectKafkaStream代码解析
Kakfa揭秘 Day8 DirectKafkaStream代码解析 今天让我们进入SparkStreaming,看一下其中重要的Kafka模块DirectStream的具体实现. 构造Stream ...
随机推荐
- 关于使用 CALayer 中 mask 的一些技巧
CALayer 拥有 mask 属性,Apple 的官方解释如下: An optional layer whose alpha channel is used to mask the layer’s ...
- BZOJ2599:[IOI2011]Race(点分治)
Description 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000 Input 第一行 两个整数 n, k 第二 ...
- python open 追加
今天操作失误,导致home目录没空间了,结果跑了3天的程序断了,还好代码可以重新运行. 读写的文件使用追加方式: # a # 打开一个文件用于追加(只写),写入内容为str # 如果该文件已存在,文件 ...
- D. Frets On Fire 【二分,前缀和】 (Codeforces Global Round 2)
题目传送门:http://codeforces.com/contest/1119/problem/D D. Frets On Fire time limit per test 1.5 seconds ...
- shell脚本执行
方法一:切换到shell脚本所在的目录执行shell脚本: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应 ...
- SDOI2018 一轮培训划水祭
\(\mathcal{Day \ \ -3}\) 作为前言来讲,我对于过几天的省选培训还是很期待的--就算我的实力根本不够,名额是学校推荐的,但是能见到\(\mathcal{cwbc}\)以及一众大佬 ...
- "strace -p"非常有用,它减少了很多猜测工作,也不需要重新启动应用。lsof -p process_id +iostat + sar -n DEV 1
linux神器strace - youxin - 博客园https://www.cnblogs.com/youxin/p/8837771.html 某个进程突然占用了很多CPU? 或者某个进程看起来像 ...
- page_address()函数分析--如何通过page取得虚拟地址
由于X86平台上面,内存是划分为低端内存和高端内存的,所以在两个区域内的page查找对应的虚拟地址是不一样的. 一. x86上关于page_address()函数的定义 在include/linux/ ...
- EJB到底是什么?---通俗易懂,简单明了
EJB到底是什么? 1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业 ...
- 【mySQL】 - 主键
什么是主键? 对于表中的每一行数据,都会有一个字段或一组字段,用于标识自己的唯一性,这样的一个或一组字段,就叫主键 如果没有这个主键,那么对于表中的每一行的管理,会陷入混乱,我要更新某一特定行的数值, ...