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

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

该脚本是一个用于麒麟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,大家根据自己要求修改脚本,测试后酌情运行。
相关推荐
其实防守也摸鱼1 小时前
软件安全与漏洞--实验 软件安全需求分析
网络·安全·网络安全·需求分析·法律·实验·软件安全与漏洞
littleM1 小时前
深度拆解 HermesAgent(七):CLI、安全与部署实践指南
人工智能·安全·架构
每天一把堆栈1 小时前
软件系统安全赛区域赛
安全·网络安全·pwn
深邃-1 小时前
【Web安全】-Kali,Linux配置(2):Java环境配置,Python环境配置,Conda使用,PIP配置使用,SSH远程登录
java·linux·python·安全·web安全·网络安全·php
wanhengidc1 小时前
云手机是什么黑科技?
运维·网络·科技·安全·web安全·智能手机
minji...1 小时前
Linux 线程同步与互斥(六) 线程安全与重入问题,死锁,线程done
linux·运维·开发语言·数据库·c++·算法·安全
星幻元宇VR14 小时前
VR航空航天科普设备助力航天知识普及
人工智能·科技·学习·安全·vr·虚拟现实
上海云盾-小余16 小时前
边缘节点安全赋能:CDN 联动高防抵御复合型流量攻击
人工智能·安全
郑寿昌16 小时前
边缘AI芯片实现安全核与A/R核的确定性隔离机制
安全