题目要求
服务器AppSrv上的工作任务
4. WEB
安装 WEB 服务;
服务以用户 webuser 系统用户运行;
限制 web 服务只能使用系统 500M 物理内存;
全站点启用 TLS 访问,使用本机上的“CSK Global Root CA”颁发机构颁发,网站证书信息如下:
C = CN
ST = China
L = BeiJing
O = skills
OU = Operations Departments
CN = *.chinaskills.cn
客户端访问 https 时应无浏览器(含终端)安全警告信息;
当用户使用 http 访问时自动跳转到 https 安全连接;
搭建 www.chinaskills.cn 站点;
网页文件放在 StorgeSrv 服务器上;
在 StorageSrv 上安装MriaDB,在本机上安装 PHP,发布 WordPress网站;
MariaDB 数据库管理员信息:User: root/ Password: Chinaskill21!
创建网站 download.chinaskills.cn 站点;
仅允许 ldsgp 用户组访问;
网页文件存放在 StorageSrv 服务器上;
在该站点的根目录下创建以下文件“test.mp3, test.mp4, test.pdf”,其中 test.mp4 文件的大小为 100M,页面访问成功后能够列出目录所有文件;
安全加固,在任何页面不会出现系统和 WEB 服务器版本信息。
项目实施
安装httpd软件包:
[root@appsrv ~]# yum install httpd mod_ssl -y
编辑配置文件:
[root@appsrv ~]# vim /etc/httpd/conf/httpd.conf
66 User webuser
67 Group webuser
创建系统用户:(使用-r表示创建系统用户)
[root@appsrv ~]# useradd -r webuser
备份默认访问页:
[root@appsrv ~]# cd /etc/httpd/conf.d/
[root@appsrv conf.d]# mv welcome.conf welcome.conf.bak
编辑网页文件:
[root@appsrv conf.d]# cat vhost.conf
<Virtualhost *:80>
servername www.chinaskills.cn
Redirect 302 / https://www.chinaskills.cn
</Virtualhost>
<Virtualhost *:443>
servername www.chinaskills.cn
Documentroot /webdata/wordpress
<Directory /webdata/wordpress>
require all granted
</Directory>
sslengine on
sslcertificatefile /csk-rootca/apache.crt
sslcertificatekeyfile /csk-rootca/apache.key
</Virtualhost>
<Virtualhost *:443>
servername download.chinaskills.cn
Documentroot /webdata/download
<Directory /webdata/download>
Options Indexes
authname "download"
authtype basic
authuserfile "/var/passwd"
require valid-user
</Directory>
sslengine on
sslcertificatefile /csk-rootca/apache.crt
sslcertificatekeyfile /csk-rootca/apache.key
</Virtualhost>
[root@appsrv conf.d]#
创建download目录并创建文件设置大小:
[root@appsrv ~]# mkdir /webdata/download/
[root@appsrv ~]# cd /webdata/download
[root@appsrv download]# touch test.mp3
[root@appsrv download]# touch test.pdf
[root@appsrv download]# dd if=/dev/zero of=test.mp4 bs=100M count=1
创建用户并设置密码:
[root@appsrv ~]# useradd zsuser
[root@appsrv ~]# useradd lsusr
[root@appsrv ~]# useradd wuusr
[root@appsrv ~]# htpasswd -c /var/passwd lsusr
[root@appsrv ~]# htpasswd -c /var/passwd zsusr
[root@appsrv ~]# htpasswd -c /var/passwd wuusr
限制内存500M:
[root@appsrv ~]# vim /etc/systemd/system/multi-user.target.wants/httpd.service
# 添加
menmorylimit=500M
NFS挂载查看,如未配置点击跳转NFS配置
[root@appsrv ~]# mount -a | grep /webdata
上传压缩包到root目录下,并解压到/webdata目录下:
[root@appsrv ~]# yum install unzip -y
[root@appsrv ~]# ls
anaconda-ks.cfg roundcubemail-1.3.8-complete.tar.gz wordpress-4.9.4-zh_CN.zip
[root@appsrv ~]#
[root@appsrv ~]# unzip -q wordpress-4.9.4-zh_CN.zip
[root@appsrv ~]# tar -xf roundcubemail-1.3.8-complete.tar.gz
[root@appsrv ~]# mv wordpress /webdata/
[root@appsrv ~]# mv roundcubemail-1.3.8 roundcubemail
[root@appsrv ~]# mv roundcubemail /webdata/
将/webdata/
目录及其所有子目录和文件的所有者(owner)和所属组(group)都修改为 webuser
,并且使用递归(-R
)方式操作,以确保所有子目录和文件都被修改。
[root@appsrv ~]# chown webuser:webuser /webdata/ -R
证书传入客户端:
[root@appsrv ~]# scp /csk-rootca/csk-ca.pem root@192.168.0.190:/root
root@192.168.0.190's password:
csk-ca.pem 100% 1383 1.1MB/s 00:00
[root@appsrv ~]#
客户端导入证书:
[root@insidecli ~]# cp -a csk-ca.pem /etc/pki/ca-trust/source/anchors/
[root@insidecli ~]# cd /etc/pki/ca-trust/source/anchors/
[root@insidecli anchors]# update-ca-trust csk-ca.pem
[root@insidecli anchors]# reboot
StorageSrv 服务器上配置数据库:
安装数据库并启动:
[root@storagesrv ~]# yum install mariadb-server -y
[root@storagesrv ~]# systemctl enable mariadb.service --now
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@storagesrv ~]#
--now: 这个选项用于在启用服务的同时立即启动它,而不需要等待下一次系统启动。
通常,启用服务只会在下一次系统启动时生效,但使用 --now 选项可以立即启动服务。
创建wordpress数据库:
[root@storagesrv ~]# mysql
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on wordpress.* to root@"%" identified by "ChinaSkill23!";
Query OK, 0 rows affected (0.00 sec)
[root@storagesrv ~]#
[root@storagesrv ~]#
grant all: 这表示你正在授予用户 root 所有权限。
on wordpress.*: 这表示你正在将权限授予 wordpress 数据库中的所有表(* 表示通配符,匹配所有表)。
to root@"%": 这表示你将授予权限给用户 root,允许该用户从任何主机(% 是通配符,匹配所有主机)连接到数据库。
identified by "ChinaSkill23!": 这部分用于设置用户 root 的密码,密码为 "ChinaSkill23!"。
AppSrv 启动apache:
安装php:
[root@appsrv ~]# yum install php php-fpm php-mysql -y
启动apache:
[root@appsrv ~]# systemctl restart httpd
客户端进行访问 https://www.chinaskills.cn
客户端进行访问 https://download.chinaskills.cn
评分标准
(1) 安装 apache2(执行指令: systemctl status httpd) ; 【1 分】
评分要点: httpd 服务征程运行“active(running) |
(2) 网站根目 录(在 appsrv 上执行指令: cat /etc/fstab | grep webdata; 然后使用 vim 查看 wordpress 站点的 wp- config.php 配置内容) ; 【5 分】
评分要点: cat /etc/fstab | grep webdata 能看到挂载源为 192. 168. 100. 200: /webdata, 挂载点为 /webdata 得 2 分;wordpress 配置文件每个标记点匹配得 1 分 |
(3) 运行用户 (appsrv 上执行 id webuser && ps aux | grep webuser) ; 【2 分】
评分要点: 在 appsrv 上执行: id webuser && ps aux | grep webuser, webuser 的 uid 需要小于 1000, 大于 1000不得分。 显示 httpd 的进程由 webuser 运行。 每个点 1 分 |
(4) 限制内存(在 appsrv 上执行: cat /etc/systemd/system/multi-user.target.wants/httpd.service | grep memory) ;【2 分】
评分要点: 存在下图标记的配置即可得分 |
(5) www 网页内容(在 insidecli 上使用浏览器访问 www.chinaskills.cn 站点, 打开终端输入 hostname 后, 一起截图) ; 【4 分】
评分要点: 显示出 wordpress 主页面, 得 4 分; URL 中小锁必须为绿色, 不为绿色本题都不得分, 如果不携带 hostname或者 hostname 不是 insidecli 扣 2 分 |
(6) download 网站身份认证及网站内容【4 分】
评分要点: (1) 在 insidecli 上输入 download. chinaskills. cn 网址, 弹出输出用户名和密码框; 【1 分】 (2) 输入LDAP 上设置的三个用户中的一个 zsuser/ lsusr/ wuusr 和相应的密码, 成功登录该网站; 【1 分】 (3) download 站点页面列出目录文件, 存在 test. mp3\test. mp4\test. pdf 文件, 其它多余文件不作判断; 【1 分】 且 test. mp4 文件大小为100M。 【1 分】 注意 download 页面也要有一个绿色的锁, 没有的话本题不得分。 如果不携带 hostname 或者 hostname 不是insidecli 扣 2 分 |
(7) 证书信息; 【4 分】
评分要点: 在 insidecli 上使用浏览器访问 www. chinaskills. cn 站点后, 打开证书, 查看证书使用者信息。 , 证书使用者信息需要严格匹配。 两个证书的信息和下图中标记严格匹配即可。 每个证书匹配得 2 分, 共 4 分 |
(8) 无证书警告(在 insidecli 上执行: curl -I https://www.chinaskills.cn) ; 【2 分】
评分要点: curl 指令不允许使用-k 参数, 访问 https 站点不提示任何的证书提示信息 |
(9)http 跳转 https(在 insidecli 上执行:curl -I http://www.chinaskills.cn);【2 分】
评分要点: 能看到 Location:https://www.chinaskills.cn |
(10) 不显示非安全系统信息;【1 分】
评分要点: download 站点的任何页面不存在任何的系统版本以及 web 服务器的版本信息 |