麒麟系统安全基线检查与自动加固脚本

麒麟系统安全基线检查与自动加固脚本

该脚本是一个用于麒麟kylin安全基线检查与自动加固的 Bash 脚本。,它共包含 67 项 检查/配置项,覆盖账户安全、文件权限、服务管理、网络参数、日志审计、密码策略、SSH 安全等多个方面。脚本会扫描系统当前状态,对不符合安全基线要求的配置自动进行修复 (如修改权限、启用/禁用服务、调整内核参数、配置 PAM 等),并将检查结果和操作记录输出到 /root/result/results_show 文件中,同时为被修改的配置文件创建 .kybak 备份。

脚本下载地址:https://pan.quark.cn/s/3fe2ba5ab6ce

主要功能模块

1. 账户与认证安全

  • 检查 sudo 命令是否安装
  • 查找 UID 为 0 的非 root 账户
  • 检查是否存在空密码账户
  • 检查系统默认未禁用账户(如 daemon, bin, sync 等)
  • 禁止 wheel 组以外用户通过 su 切换到 root
  • 分配普通用户提示

2. 文件与目录权限

  • 检查 PATH 环境变量中是否存在 777 权限的目录 → 改为 755
  • 检查 PATH 环境变量中是否存在 777 权限的文件 → 改为 644
  • 检查 /etc/rsyslog.conf 权限 → 改为 640
  • 检查 /etc/passwd/etc/group/etc/shadow 权限 → 改为 644、644、000
  • 检查 /usr/bin 下 suid/sgid 文件 → 清除特殊权限
  • 检查并列出不应具有 suid/sgid 权限的文件
  • 检查并修改 /etc/hosts.allow / /etc/hosts.deny 中 SSH 访问控制
  • 对重要文件进行锁定(chattr +i 部分已注释)

3. 服务与进程管理

  • 启用必要服务:rsyslogsshdauditdntpd
  • 禁用危险/不必要的服务:talkntalksendmailtelnetnfs,及列表中的 fingerdiscarddaytimechargen
  • 检查 SSH 服务配置:协议版本 (SSH2)、最大认证尝试次数 (≤5)、禁止 root 登录、登录前/后警告 Banner
  • 检查 vsftpd:禁止 root 登录、禁止匿名登录
  • 检查 SNMP 默认团体名 → 提示用户修改
  • 检查是否使用 NTP 同步时间

4. 网络与内核安全

  • 检查数据包转发 (ip_forward) → 关闭
  • 禁止源路由 (accept_source_route)
  • 禁止 ICMP 重定向 (accept_redirects)
  • 禁止内核发送重定向 (send_redirects)
  • 禁止 ICMP 广播包响应 (icmp_echo_ignore_broadcasts)
  • 检查 /etc/host.confmulti → 关闭 IP 欺骗与多 IP 绑定
  • 检查系统是否开启 ASLR(内核随机化)
  • 检查 PATH 环境变量中是否存在相对路径

5. 日志与审计

  • 开启 rsyslog 日志功能
  • su 命令使用配置记录到 /var/log/secure
  • 启用 cron 行为日志到 /var/log/cron
  • 设置审计日志保存时间(/etc/logrotate.d/audit) → 365 天
  • 配置 rsyslog 记录安全事件到 /var/adm/messages
  • 检查 /var/log/wtmp/var/run/utmp 登录日志是否存在

6. 密码策略与账户锁定

  • 设置密码最小长度 (minlen = 8)
  • 设置密码复杂度:minclass=3dcredit=-1ucredit=-1lcredit=-1
  • 设置密码过期时间 (PASS_MAX_DAYS ≤ 90)
  • 设置密码修改最小间隔 (PASS_MIN_DAYS ≥ 7)
  • 设置密码过期前警告天数 (PASS_WARN_AGE = 7)
  • 配置密码历史记录 (pam_pwhistory.so remember=5 enforce_for_root)
  • 配置账户认证失败锁定策略 (deny=6 unlock_time=1800)
  • 设置命令行超时自动登出 (TMOUT=480)
  • 设置历史命令记录条数 (HISTSIZE=1000HISTFILESIZE=1000)

7. 其他安全加固

  • 检查磁盘使用率并告警
  • 禁用 Ctrl+Alt+Del 重启组合键(图形界面、终端、systemd 层面)
  • 检查 /etc/aliases 中不必要的 root 别名并注释
  • 检查系统是否安装 chkrootkit
  • 检查 root 能否通过 telnet 远程登录 → 禁止
  • 检查系统引导管理器密码(提示使用 grub2-setpassword
  • 设置空闲锁屏时间(适用于 GNOME/MATE 桌面环境,idle-delay=15

脚本输出与行为

  • 所有结果追加到 /root/result/results_show
  • 彩色输出显示在终端
  • 自动备份被修改的配置文件(添加 .kybak 后缀)
  • 对于需要交互的操作(如 SNMP 团体名),会提示用户输入
  • 部分服务启用/禁用会调用 systemctl 并检查状态

注意事项

  1. 脚本需要 root 权限 运行。
  2. 部分修改(如 PAM 配置、sysctl 参数)需要重启服务或重新登录才能生效。
  3. 第 66 项(chattr +i 锁定重要文件)已被注释,避免影响用户管理。
  4. 博主运行环境Kylin-Server-V10-SP3,大家根据自己要求修改脚本,测试后酌情运行。
相关推荐
福建佰胜张工14 小时前
MAXON 机电高压油安全切断阀技术全解
安全·自动化
Rubin智造社15 小时前
Anthropic安全白皮书2|三级成熟度模型:你的AI智能体该配哪级安全?
大数据·安全·沙箱隔离·零信任成熟度模型·三级安全框架·jit权限·不可变审计
乐兮创想 小林18 小时前
企业官网的安全架构:从 HTTPS、WAF 到备份与应急响应的 7 层防御工程
安全·https·网站建设·安全架构·企业官网·北京网站建设公司
CJH(本人账号)18 小时前
【AI安全】大模型安全威胁:Prompt注入与模型防御策略
人工智能·安全·机器学习·语言模型·云计算·prompt
持敬chijing19 小时前
Web渗透之SQL注入-堆叠注入(Stacked Queries Injection)
sql·安全·web安全·网络安全·网络攻击模型·安全威胁分析
ylscode19 小时前
Comodo Internet Security 曝高危零日漏洞 ComoDoS:单个 IPv6 数据包即可触发 Windows 蓝屏死机
网络·安全·安全威胁分析
开开心心_Every1 天前
解决打印机共享难题的实用工具
linux·b树·安全·游戏·随机森林·pdf·计算机外设
ylscode1 天前
HexStrike AI v6.0 深度解析:MCP协议驱动的网络安全自动化框架与红队规避实战
网络·人工智能·安全·安全威胁分析
ylscode1 天前
ChatGPT新增锁定模式,以缓解提示注入和数据泄露攻击
人工智能·安全·ai·安全威胁分析
博客zhu虎康1 天前
小程序:UGC自定义发布内容接入微信公众平台内容安全API(imgSecCheck、msgSecCheck、mediaCheckAsync)
安全·小程序·微信公众平台