更新时间:2024-02-05 GMT+08:00

制作Linux空壳镜像

镜像准备

Linux镜像可在现网公共镜像基础上进行修改。

选择Linux公共镜像,将镜像直接下发为虚拟机即可,注意密码设置符合要求的密码。(由于软件python脚本使用python3版本编写,镜像需包含python3版本,若不包含,需手动安装)。

脚本准备

请参考制作代理镜像脚本获取代理镜像脚本。

修改镜像

  1. 安装必要的组件。

    安装python依赖包 (如下只是示例,请安装最新推荐的python版本)。
    yum install python36
    ln -s /usr/bin/python36 /usr/bin/python3
    yum install python36-setuptools
    wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
    tar xvf pip-10.0.1.tar.gz
    cd pip-10.0.1
    python3 setup.py install
    pip3 install requests

  2. 修改/etc/rc.local文件。

    ln -s /etc/rc.d/rc.local /etc/rc.local     #公共镜像里面,这两个文件可能并不是链接关系,导致启动的时候没有执行
    chmod 766 /etc/rc.d/rc.local

  3. 安装系统基本组件。

    yum install expect
    yum install lvm2
    yum install dosfstools      #支持mkfs.vfat
    rpm -ivh grub-0.97-99.el6.x86_64.rpm     #下载地址: 需要去下载(注意:只有grub1迁移才需要该版本)

  4. 修改/etc/mke2fs.conf。

    删除ext4配置项中的“64bit”,否则安装grub1到ext4文件系统时会失败。

  5. 修改分区的UUID。

    1. 将虚拟机磁盘卸载,并挂载到另一个虚拟机上。
    2. 利用tune2fs –U 修改分区的UUID #uuidgen可以随机生成UUID。
      1. 在虚拟机内部执行blkid查询各个分区的uuid。

      2. 执行命令uuidgen重新生成一个uuid。

      3. 输入命令 tune2fs -U <new_UUID> <device>或 xfs_admin -U <new_UUID> <device> 。

      4. 修改数据盘(代理镜像的磁盘)中/etc/fstab 和 /boot/grub2/grub.cfg中的UUID

        由于磁盘uuid发生改变,/etc/fstab和/boot/grub2/grub.cfg中相对应的uuid也要进行修改。否则代理镜像磁盘无法启动。

      5. 将代理镜像的磁盘,挂回到原虚拟机,测试系统是否正常。

  6. 拷贝smsMetadataAgent至镜像虚拟机,参考制作代理镜像脚本,设置开机自启动脚本。
  7. 修改sshd配置文件,将密码登录禁用。
  8. 残留清理。确认 /data目录不存在, 确认/root下没有sms日志文件, 确认/etc/ssh下没有证书残余。

安全加固(可选)

  1. 修改sshd_config文件。

    MaxAuthTries 6
    LoginGraceTime 60
    PasswordAuthentication no

  2. 禁用history。

    1. 打开终端,输入以下命令
      sudo nano ~/.bashrc
    2. 在文件末尾添加以下内容
      unset HISTFILE
    3. 保存并退出后输入以下命令生效
      source ~/.bashrc

  3. 防止暴力破解。

    可以在/etc/pam.d/password-auth中设置,HCE系统中默认设置为

    auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=60

    表示使用pam_faillocl模块,如果登录失败3次,即使是root用户,锁定30s。

  4. 设置密码复杂度。

    在/etc/pam.d/system-auth中找到password requisite pam_pwquality.so try_first_pass~~~~,在后面添加enforce_for_root minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1,如下:

    password requisite pam_pwquality.so try_first_pass local_users_only enforce_for_root minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

  5. 修改umask。umask是一个用于设置文件和目录默认权限的命令,umask中的值需要修改成027。

    1. 打开终端并输入以下命令打开.bashrc文件
      nano ~/.bashrc
    2. 在文件的末尾添加
      umask 027
    3. 保存并关闭文件,然后输入以下命令使更改生效。
      source ~/.bashrc

  6. 删除系统残留工具,系统残留工具会增加系统的攻击面,并误导安全软件。

    在操作系统中查看是否存在如下应用(包括但不限于):

    • tcpdump,sniffer,wireshark,Netcat,基于winPcap开发的其他嗅探工具等。
    • gdb,strace,readelf,cpp,gcc,dexdump,mirror,JDK等开发和调试工具及其他仅在调试阶段使用的自研工具或脚本。

生成镜像ID

  1. 在控制台,查找IMS服务,进入IMS服务。
  2. 选择创建镜像。

  3. 选择需要代理镜像的ECS,创建系统盘镜像。

  4. 获取镜像id。