Aliyun Linux2等保2.0三级版镜像本地体验

简介: Aliyun Linux2等保2.0三级版镜像本地体验

640.jpg

阿里云根据国家信息安全部发布的《GB/T22239-2019信息安全技术网络安全等级保护基本要求》中对操作系统提出的一些等级保护要求,推出自研云原生操作系统Alibaba Cloud Linux等保2.0三级版镜像。


使用本镜像无需额外配置即可满足以下等保合规要求:


  • 身份鉴别
  • 访问控制
  • 安全审计
  • 入侵防范
  • 恶意代码防范


Alibaba Cloud Linux等保2.0三级版镜像使用说明


https://help.aliyun.com/document_detail/186245.html?spm=a2c4g.11186623.2.21.2c5a6126DEG0CK



由于目前无直接可以本地使用的qcow2文件 https://mirrors.aliyun.com/alinux/image/?spm=a2c4g.11186623.2.12.7b06b4020W8uqi

下面图片中版本为标准镜像

640.png

可以通过创建ECS实例,选择Alibaba Cloud Linux等保2.0三级版公有镜像,然后创建自定义镜像,导出镜像文件的方式,实现本地创建KVM虚拟机本地镜像,具体步骤如下


1、创建ECS实例,导出镜像文件


640.jpg


640.jpg


640.jpg


640.jpg

640.jpg

然后去OSS存储中下载导出的镜像文件(会产生一定的流量费用)


2、本地搭建kvm虚拟化环境


yum -y install qemu-kvm  qemu-img kvm qemu-kvm-tools libvirt  bridge-utils virt-*
systemctl enable libvirtd
systemctl start libvirtd


640.png


3、创建kvm虚拟机


virt-install --virt-type kvm --name AliyunLinux2 --ram 4096 --vcpus=4  --import   --disk path=/data/aliyunlinux2_m-uf6e1tm7u3dijskjf9os_system.raw,format=raw,bus=virtio --network network=default,model=virtio  --graphics vnc,listen=0.0.0.0,port=7799  --os-type=linux

640.jpg

640.jpg

640.jpg

640.jpg

4、ssh方式登录kvm虚拟机后台

640.jpg

登录会提示


ssh root@192.168.122.19
root@192.168.122.19's password: 
Last login: Mon Nov 23 09:41:33 2020 from 192.168.122.1
欢迎使用 Alibaba Cloud Linux 2 等保合规镜像
1.概述
   Alibaba Cloud Linux 2 等保合规镜像是基于 Alibaba Cloud Linux 2 官方镜像,根据《GB/T22239-2019信息安全技术网络安全等级保护基本要求》进行等保加固的镜像,用户使用本镜像无需额外配置即可满足大部分等保合规要求:
    (1)身份鉴别
    (2)访问控制
    (3)安全审计
    (4)入侵防范
    (5)恶意代码防范
2.使用指南
    按照《GB/T22239-2019信息安全技术网络安全等级保护基本要求》,部分配置需要用户手动执行命令进行配置。用户可以通过 root 账户登录系统后,执行/root/cybersecurity.sh 脚本来实现这类加固。


/root/cybersecurity.sh 脚本内容如下


# 1.1 In addition to the system management users, we should assign ordinary users, auditors and security personnel accounts.
users=("普通" "审计员" "安全员")
userList="root"
checkPasswd() {
        strLen=`echo $1 | grep -E --color '^(.{10,}).*$'`
        strSmallLetter=`echo $1 | grep -E --color '^(.*[a-z]+).*$'`
        strCapitalLetter=`echo $1 | grep -E --color '^(.*[A-Z]).*$'`
        strSpecialCharacter=`echo $1 | grep -E --color '^(.*\W).*$'`
        strUnderline=`echo $1 | grep -E --color '^(.*[_]).*$'`
        strNumber=`echo $1 | grep -E --color '^(.*[0-9]).*$'`
        classNum=0
        if [ -n "${strLen}" ]; then
                if [ -n "${strSmallLetter}" ]; then
                        let "classNum += 1"
                fi
                if [ -n "${strCapitalLetter}" ]; then
                        let "classNum += 1"
                fi
                if [ -n "${strSpecialCharacter}" ] || [ -n "${strUnderline}" ]; then
                        let "classNum += 1"
                fi
                if [ -n "${strNumber}" ]; then
                        let "classNum += 1"
                fi
                if [ "${classNum}" -ge 3 ]; then
                        echo 1
                else
                        echo 0
                fi
        else
                echo 0
        fi
}
echo "根据《信息安全技术网络安全等级保护基本要求(GB/T 22239-2019)》加固建议: 用户需要至少创建普通用户、审计员和安全员账户三个用户"
for((i = 0; i < 3; i++))
do
        read -p "请输入要创建的${users[i]}用户:" name
        useradd ${name}
        until [[ $? -eq 0 ]]
        do
                echo "无效的${users[i]}用户名, 无法执行useradd命令"
                read -p "请重新输入要创建的${users[i]}用户: " name
                useradd ${name}
        done
        status=0
        echo -e "请输入${users[i]}用户的密码:\n    根据《信息安全技术网络安全等级保护基本要求(GB/T 22239-2019)》加固建议:\n\t1.密码长度不小于10位,\n\t2.至少包含三类字符(大写、小写字母、特殊符号、数字至少包含三种)"
        until [ ${status} -eq 1 ]
        do
                read -s passwd
                status=`checkPasswd ${passwd}`
                if [ ${status} -eq 0 ]; then
                        echo "您的密码复杂度太低,请重新输入:"
                else
                        echo "请再次确认您的密码:"
                        read -s re_passwd
                        if [ "${passwd}" != "${re_passwd}" ]; then
                                echo "您两次输入的密码不一致,请您重新输入:"
                                status=0
                        fi
                fi
        done
        echo "${name}:${passwd}" | chpasswd
        userList=${userList},${name}
done
# 1.2 Ensure that the home directory permissions of each user are set to 750 or more strictly.
chmod 750 /home/*
# 2. Set PASS_MAX_DAYS and PASS_MIN_DAYS for the root account.
chage --maxdays 90 root
chage --mindays 7 root
# 3. Lock or delete shutdown or halt accounts.
usermod -L shutdown
usermod -L halt
# 4. Start auditd.
service auditd start
# 5. Ensure that access to the su command is restricted.
echo "根据《信息安全技术网络安全等级保护基本要求(GB/T 22239-2019)》加固建议: 该普通用户、审计员和安全员获得执行su命令的权限"
wheelStr="wheel:x:10"
wheelRowNum=($(cat /etc/group | awk -F ':' '{if($1 == "wheel")print NR}'))
if [ -n "$wheelRowNum" ]; then
   sed -i "${wheelRowNum} c ${wheelStr}:${userList}" /etc/group
fi
# 6. Prohibit direct remote login using root account.
echo "根据《信息安全技术网络安全等级保护基本要求(GB/T 22239-2019)》加固建议: 禁止root用户直接登陆,请使用已创建的普通用户、审计员或者安全员账号登陆"
permitRootLoginRowNum=($(cat /etc/ssh/sshd_config | awk '{if($1 == "PermitRootLogin")print NR}'))
targetString="PermitRootLogin no"
sed -i "${permitRootLoginRowNum} c ${targetString}" /etc/ssh/sshd_config
systemctl restart sshd
echo "镜像加固完毕,欢迎使用 Alibaba Cloud Linux 2"

在原本已经加固镜像执行加固/root/cybersecurity.sh脚本以便满足等保三级的三权分立要求


5、其实Alibaba Cloud Linux 2已经做了一定的安全加固


例如查看如下文件,对比CentOS7默认配置,可以看出做了加固


1、cat /etc/login.defs


640.jpg

2、cat /etc/ssh/sshd_config

640.jpg

3、cat /etc/pam.d/password-auth

640.jpg

4、cat /etc/sysctl.conf 

640.jpg

5、cat /etc/profile

640.jpg

6、cat /etc/security/limits.conf 

640.jpg

相关文章
|
1月前
|
Linux
linux开机挂载镜像
【10月更文挑战第1天】在 Linux 系统中,开机挂载镜像通常涉及几个关键步骤,包括创建挂载点、编辑配置文件以及重新加载配置
63 0
|
1月前
|
资源调度 JavaScript 前端开发
yarn源|yarn 国内镜像+linux删除大量文件
yarn源|yarn 国内镜像yarn源|yarn 国内镜像+linux删除大量文件
298 0
|
4月前
|
存储 数据库 监控
|
3月前
|
Linux
在Linux中,什么是initrd镜像?
在Linux中,什么是initrd镜像?
|
3月前
|
存储 安全 Linux
在Linux中,如何进行系统镜像管理?
在Linux中,如何进行系统镜像管理?
|
3月前
|
JavaScript Linux
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
|
3月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
3月前
|
Linux C# C++
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
|
3月前
|
Ubuntu Linux 测试技术
下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux🌐
Debian、Red Hat、CentOS、Ubuntu与Kali Linux均为知名Linux发行版。下载Debian须访问官网并按计算机架构选ISO文件。Red Hat下载通常需订阅账户,可从官网登录后获取。CentOS可从官网或镜像站点下载,注意CentOS 8已停更。Ubuntu下载简便,官网直接选取版本及架构即可。Kali Linux专为安全测试设计,官网提供直接下载ISO镜像服务。
621 0
|
4月前
|
Ubuntu Linux Docker
Java演进问题之Alpine Linux创建更小的Docker镜像如何解决
Java演进问题之Alpine Linux创建更小的Docker镜像如何解决