rhce-06 第12-16题

rhce-06 第12-16题

题目列表

12.实现一个 web 服务器

13.配置安全 web 服务

14.配置虚拟主机

15.配置 web 内容的访问

16.实现动态 web 内容

12.实现一个 web 服务器

在system1上配置一个站点http://server0.example.com,然后执行以下步骤:

1)从http://classroom.example.com/materials/station.html下载文件,并且将文件重命名为index.html,绝对不能修改此文件的内容。

2)将index.html拷贝到你的web服务器的DocumentRoot目录下。

3)来自example.com(172.25.0.0/24)域的客户端可以访问此web服务。

4)来自my133t.org(172.17.10.0/24)域的客户端拒绝访问此web服务。

system1:

1
2
3
4
5
6
7
8
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# wget http://classroom.example.com/materials/station.html -O /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# firewall-cmd --permanent --add-service=http
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=172.17.10.0/24 service name=http reject'
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]#

system2验证:

1
[root@localhost ~]# curl http://server0.example.com

13.配置安全 web 服务

为站点http://server0.example.com配置TLS加密。

1)一个已经签名证书从http://classroom.example.com/pub/tls/certs/server0.crt获取。

2)此证书的密钥从http://classroom.example.com/pub/tls/private/server0.key获取。

3)此证书的授权信息从http://classroom.example.com/pub/example-ca.crt获取。

system1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~]# yum install mod_ssl -y
[root@localhost ~]# cd /etc/httpd
[root@localhost httpd]# wget http://classroom.example.com/pub/tls/certs/server0.crt
[root@localhost httpd]# wget http://classroom.example.com/pub/tls/private/server0.key
[root@localhost httpd]# wget http://classroom.example.com/pub/example-ca.crt
[root@localhost httpd]# cd
[root@localhost ~]#

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf
100 SSLCertificateFile /etc/httpd/server0.crt
107 SSLCertificateKeyFile /etc/httpd/server0.key
122 SSLCACertificateFile /etc/httpd/example-ca.crt

[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# firewall-cmd --permanent --add-service=https
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]#

system2验证:

1
2
下面接一个参数k是因为跳过浏览器提示此网站证书不安全的提示,如下图,若不加k参数则会报错。
[root@localhost ~]# curl -k https://server0.example.com

如果不想用命令行验证,也可以打开虚拟机桌面的火狐浏览器输入网址进行验证。

14.配置虚拟主机

  在system1上扩展你的web服务器,为站点http://www0.example.com创建一个虚拟主机,然后执行以下步骤:

1)设置DocumentRoot为/var/www/virtual。

2)从http://classroom.example.com/materials/www.html下载文件并重命名为index.html,不要对文件index.html内容做任何修改。

3)将index.htm文件放到虚拟主机的DocumentRoot目录下。

4)确保floyd用户能够在/var/www/virtual目录下创建文件。

  注意:原始站点http://system1.example.com必须仍然能够访问。站点的所用的域名网络中已有DNS服务器解析服务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~]# mkdir /var/www/virtual
[root@localhost ~]# wget http://classroom.example.com/materials/www.html -O /var/www/index.html
[root@localhost ~]# useradd floyd
[root@localhost ~]# setfacl -m u:floyd:rwx /var/www/virtual/
[root@localhost ~]#

[root@localhost ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
ServerName server0.example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/virtual
ServerName www0.example.com
</VirtualHost>

[root@localhost ~]# systemctl restart httpd

system2验证:

1
2
3
[root@localhost ~]# curl http://server0.example.com
[root@localhost ~]# curl -k https://server0.example.com
[root@localhost ~]# curl http://www0.example.com

15.配置 web 内容的访问

在你的system1上的web服务器的DocumentRoot目录下创建一个名为private的目录,要求如下:

1)从http://classroom.example.com/materials/private.html下载一个文件副本到这个目录,并且重命名为index.html,不要对这个文件的内容作任何修改。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost ~]# mkdir /var/www/html/private
[root@localhost ~]# cd /var/www/html/private/
[root@localhost private]# wget http://classroom.example.com/materials/private.html -O index.html
[root@localhost private]# ls
index.html
[root@localhost private]# cd
[root@localhost ~]#

[root@localhost ~]# vim /etc/httpd/conf.d/vhost.conf
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# cat /etc/httpd/conf.d/vhost.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
ServerName server0.example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/virtual
ServerName www0.example.com
</VirtualHost>
<Directory "/var/www/html/private">
Require local
</Directory>
[root@localhost ~]#

system1验证:

1
[root@localhost ~]# curl http://server0.example.com/private

system2验证:

1
[root@localhost ~]# curl http://server0.example.com/private

可以看到,system1上可以访问,而system2上则是包403拒绝访问。

16.实现动态 web 内容

在system1上配置提供动态web内容,要求如下:

1)动态内容由名为webapp0.example.com的虚拟主机提供。

2)虚拟主机监听在端口8908。

3)从http://classroom.example.com/materials/webinfo.wsgi下载一个脚本,然后放在适当的位置,无论如何不要修改此文件的内容。

4)客户端访问http://webapp0.example.com:8908时应该接收到动态生成的web页面。

5)此站点http://webapp0.example.com:8908必须能够被example.com域内的所有系统访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@localhost ~]# yum install mod_wsgi -y
[root@localhost ~]# cd /var/www/cgi-bin/
[root@localhost cgi-bin]# wget http://classroom.example.com/materials/webinfo.wsgi
[root@localhost cgi-bin]# ls
webinfo.wsgi
[root@localhost cgi-bin]# cd
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8908
[root@localhost ~]# vim /etc/httpd/conf.d/vhost.conf
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# cat /etc/httpd/conf.d/vhost.conf
Listen 8908
<VirtualHost _default_:80>
DocumentRoot /var/www/html
ServerName server0.example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/virtual
ServerName www0.example.com
</VirtualHost>
<Directory "/var/www/html/private">
Require local
</Directory>
<VirtualHost *:8908>
ServerName webapp0.example.com
WSGIScriptAlias / /var/www/cgi-bin/webinfo.wsgi
</VirtualHost>
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --permanent --add-port=8908/tcp
[root@localhost ~]# firewall-cmd --reload

system2验证:

1
[root@localhost ~]# curl http://webapp0.example.com:8908
欢迎打赏,谢谢
------ 本文结束------
0%