此脚本暂未作操作系统判断,请根据系统实际情况进行修改、
执行过程中会配置禁止root远程登录 请确保有普通账户, 如果没有普通账户存在脚本会自动创建apprun账号 密码存储于:/tmp/apprun_password.txt文件中 请及时保存 该新建账户有su权限
#版本:1.0
#日期:2024-10-15
#描述:
#此脚本主要针对openEuler-22.03-LTS-SP3版本编写,其他版本请根据实际情况进行改写
#用于增强系统安全性,主要执行以下操作
#1、检查用户缺省UMASK
#2、检查是否按照用户分配账号到责任人
#3、检查系统口令长度及构成字符要求
#4、检查是否开启命令及登录失败记录
#5、检查是否限制root远程登录
#6、检查口令锁定策略
#7、检查是否可以对日志大小进行配置
#8、检查是否设置登录超时
#9、检查口令重复次数限制
#10、检查口令生存周期要求
##脚本暂无回退机制,生产环境请审慎使用,建议在测试环境或镜像重生环境测试无误后再用
#注意: 请在管理员权限的用户下运行此脚本。
#!/bin/bash
clear
export LANG="en_US.UTF-8"
date_time=$(date +%Y%m%d-%H%M%S)
OLD_IFS=$IFS
IFS=$' '
#输出信息颜色
color_0="\033[0m"
color_R="\033[31m"
color_G="\033[32m"
color_Y="\033[33m"
color_C="\033[36m"
#判断是否root用户
if [ $(id -u) != "0" ] ; then
echo -e "\n"
echo -e `date +%Y-%m-%d_%H:%M:%S` $color_R"ERROR"$color_0 "当前用户为普通用户,必须使用root用户运行,脚本退出. . ."
sleep 0.25
echo -e "\n"
exit
fi
echo -e `date +%Y-%m-%d_%H:%M:%S` $color_Y"INFO"$color_0 $color_C"即将进行服务器初始化基线升级操作"$color_0
echo -e `date +%Y-%m-%d_%H:%M:%S` $color_Y"INFO"$color_0 $color_C"请复制一个连接窗口以备不时之需,或自行配置Telnet服务预留另一个远程连接通道。"$color_0
echo -en `date +%Y-%m-%d_%H:%M:%S` $color_Y"INFO"$color_0 $color_C"脚本即将开始,如暂不进行基线合规加固请在倒计时结束前按Ctrl+C终止脚本,倒计时: "$color_0
count=6
tput sc
while true
do
if [ $count -ge 1 ] ; then
let count--
sleep 1
tput rc
tput ed
echo -en $color_R"$count "$color_0
else
break
fi
done
echo -e ""
echo -e `date +%Y-%m-%d_%H:%M:%S` $color_Y"INFO"$color_0 "正在检查用户缺省UMASK. . ."
# 修改 /etc/profile
if ! grep -q 'umask 027' /etc/profile; then
echo 'umask 027' >> /etc/profile
echo "已添加 'umask 027' 到 /etc/profile"
sleep 0.25
else
echo "已存在 'umask 027' 在 /etc/profile"
sleep 0.25
fi
# 修改 /etc/bashrc
if grep -q 'umask' /etc/bashrc; then
# 使用 sed 修改所有 umask 的行
sed -i 's/umask\s\+[0-9]\{3\}/umask 027/' /etc/bashrc
echo "已修改所有 umask 为 027 在 /etc/bashrc"
sleep 0.25
else
echo "未找到 umask 设置,在 /etc/bashrc 中添加 umask 027"
echo 'umask 027' >> /etc/bashrc
sleep 0.25
fi
# 修改 /etc/login.defs
if ! grep -q 'UMASK\s\+027' /etc/login.defs; then
sed -i 's/UMASK\s\+077/UMASK\t027/' /etc/login.defs
echo "已修改 UMASK 为 027 在 /etc/login.defs"
sleep 0.25
else
echo "已存在 UMASK 为 027 在 /etc/login.defs"
sleep 0.25
fi
echo -e `date +%Y-%m-%d_%H:%M:%S` $color_G"检查用户缺省UMASK已完成"$color_0