制作Linux空壳镜像
镜像准备
Linux镜像可在现网公共镜像基础上进行修改。
选择Linux公共镜像,将镜像直接下发为虚拟机即可,注意密码设置符合要求的密码。(由于软件python脚本使用python3版本编写,镜像需包含python3版本,若不包含,需手动安装)。
脚本准备
请参考制作代理镜像脚本获取代理镜像脚本。
修改镜像
- 安装必要的组件。
安装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
- 修改/etc/rc.local文件。
ln -s /etc/rc.d/rc.local /etc/rc.local #公共镜像里面,这两个文件可能并不是链接关系,导致启动的时候没有执行 chmod 766 /etc/rc.d/rc.local
- 安装系统基本组件。
yum install expect yum install lvm2 yum install dosfstools #支持mkfs.vfat rpm -ivh grub-0.97-99.el6.x86_64.rpm #下载地址: 需要去下载(注意:只有grub1迁移才需要该版本)
- 修改/etc/mke2fs.conf。
删除ext4配置项中的“64bit”,否则安装grub1到ext4文件系统时会失败。
- 修改分区的UUID。
- 将虚拟机磁盘卸载,并挂载到另一个虚拟机上。
- 利用tune2fs –U 修改分区的UUID #uuidgen可以随机生成UUID。
- 拷贝smsMetadataAgent至镜像虚拟机,参考制作代理镜像脚本,设置开机自启动脚本。
- 修改sshd配置文件,将密码登录禁用。
- 残留清理。确认 /data目录不存在, 确认/root下没有sms日志文件, 确认/etc/ssh下没有证书残余。
安全加固(可选)
- 修改sshd_config文件。
MaxAuthTries 6 LoginGraceTime 60 PasswordAuthentication no
- 禁用history。
- 打开终端,输入以下命令
sudo nano ~/.bashrc
- 在文件末尾添加以下内容
unset HISTFILE
- 保存并退出后输入以下命令生效
source ~/.bashrc
- 打开终端,输入以下命令
- 防止暴力破解。
可以在/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。
- 设置密码复杂度。
在/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
- 修改umask。umask是一个用于设置文件和目录默认权限的命令,umask中的值需要修改成027。
- 打开终端并输入以下命令打开.bashrc文件
nano ~/.bashrc
- 在文件的末尾添加
umask 027
- 保存并关闭文件,然后输入以下命令使更改生效。
source ~/.bashrc
- 打开终端并输入以下命令打开.bashrc文件
- 删除系统残留工具,系统残留工具会增加系统的攻击面,并误导安全软件。
在操作系统中查看是否存在如下应用(包括但不限于):
- tcpdump,sniffer,wireshark,Netcat,基于winPcap开发的其他嗅探工具等。
- gdb,strace,readelf,cpp,gcc,dexdump,mirror,JDK等开发和调试工具及其他仅在调试阶段使用的自研工具或脚本。
生成镜像ID
- 在控制台,查找IMS服务,进入IMS服务。
- 选择创建镜像。
- 选择需要代理镜像的ECS,创建系统盘镜像。
- 获取镜像id。