一、实验目的

1. 理解国产操作系统和信创的重要性,掌握国产操作系统基线检查工具的设计。

2. 掌握在麒麟操作系统中完成基线检查工具的实现。

二、实验环境

1.操作系统:银河麒麟虚拟机。

三、实验步骤和结果

(1)安装国产麒麟操作系统,并在VMware打开:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_命令行_02

(2)此时虚拟机操作系统的用户名root用户密码为admin888。打开终端,输入useradd -m bupt2020211950新建用户,输入sudo passwd bupt2020211950更改密码为2020211950@bupt:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_03

(3)切换至新建用户名:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_04

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_复杂度_05

(4)在命令行输入awk -F: '{print $1}' /etc/shadow命令,查看系统是否存在重名用户:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_06

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_命令行_07

        可以看到系统用户名都不相同,因此不存在重名用户。

(5)在命令行输入cat /etc/shadow命令,查看是否有无需身份鉴别即可登录的空口令用户:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_安全_08

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_09

        可以看到除了root用户和自设用户以外,其他用户的口令字段均为“*”或者“!!”,表明该账号已被锁定或者该口令已经过期,因此系统不存在空口令用户。

(6)在命令行输入cat /etc/login.defs命令,查看口令修改策略是否符合要求:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_安全_10

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_安全_11

        可以看到口令最大使用期限为99999天、两次口令的最小修改时间为0、口令过期前警告时间为7天。

(7)在命令行输入cat /etc/pam.d/common-password命令,查看口令复杂度策略限制:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_麒麟桌面操作系统 执行java脚本_12

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_命令行_13

        可以看到系统允许用户重新输入口令3次,且未进行其他复杂度规定。系统口令复杂度策略不符合要求。

(8)在命令行输入sudo vim /etc/pam.d/common-password 进入vim修改复杂度规则,按i进入插入模式,在上图所示位置写入minlen=5 ucredit=-1 lcredit=-1 dcredit=-1,它表示密码最小长度为五位,且必须至少包含一个大写字母(ucredit),一个小写字母(lcredit),一个数字(dcredit),写好后保存退出:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_命令行_14

(9)新建一个用户buptlqx,设置密码测试以上规则,发现配置成功。

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_命令行_15

(10)在命令行输入systemctl status telnet命令,查看系统是否开启了telnet远程登录服务,如下图所示,telnet服务未开启,符合要求:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_复杂度_16

(11)在命令行输入systemctl status sshd命令,查看系统是否开启了ssh远程登录服务,如下图所示,ssh服务未开启:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_复杂度_17

(12)在命令行输入 systemctl start sshd开启ssh服务,再次查看发现服务已开启:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_安全_18

(13)编写shell脚本实现基线检测身份验证的批处理,以部分命令为例,编写如下shell脚本,命名为lqx777.sh:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_复杂度_19

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_麒麟桌面操作系统 执行java脚本_20

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_21

(14)在命令行输入./lqx777.sh运行test.sh脚本,输出结果为2020211950.txt文档,如下:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_22

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_麒麟桌面操作系统 执行java脚本_23

四、实验遇到的问题及解决方法

(1)在VMvare打开麒麟系统虚拟机时,报错如下:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_安全_24

        原因:由于该虚拟机是从别人那里拷贝过来的,而该虚拟机环境之前使用的VMware版本与我的VMware版本(16)不一致。

        解决方法:在虚拟机环境里找到.vmx配置文件,使用Notepad++打开,将第3行修改为如下即可:

麒麟桌面操作系统 执行java脚本 麒麟操作系统 命令_系统安全_25

(2)在命令行使用某些指令是会提醒权限不够。

        解决方法:在指令前加上“sudo”,并按照提示输入用户密码即可。