一、分级加固指南
基础等级
序号 | 加固项 | 脚本位置 | 加固目标 & 必要性 | 检测是否达标 |
---|---|---|---|---|
1 | 删除个人配置文件 | FILES_TO_REMOVE 循环 |
清除 $HOME/.rhosts 、.netrc 、.hosts.equiv ,防止无密码信任登录和明文凭证泄露 |
bash<br>for f in ~/.rhosts ~/.netrc ~/.hosts.equiv; do [[ -f $f ]] && echo "未清理: $f"; done |
2 | 禁用系统账号交互式登录 | for user in daemon bin adm… |
将无用系统账号 shell 改为 /sbin/nologin ,关闭默认账号登录通道,减少攻击面 |
```bashfor u in daemon bin adm nobody; do getent passwd $u |
3 | 修正 root 拥有 777 文件权限 | find … -perm 0777 … chmod 744 |
将 root 拥有且权限为 0777 的文件重置为 0744,防止任意用户修改或执行 | bash<br>find / -path /proc -prune -o -type f -user root -perm 0777 |
4 | 配置 umask & 会话超时 | /etc/profile 中 umask /TMOUT |
umask 0022 :新建文件不对组/其他开放写;TMOUT=600 :600s 无操作自动登出,防止无人参与会话滥用 |
bash<br>grep -E '^umask 0022' /etc/profile && grep -E '^export TMOUT=600' /etc/profile |
5 | Sudo 安全 | /etc/sudoers + /etc/sudoers.d/admin_env |
强制 use_pty 、日志记录;创建 admin_env 并赋予免密 sudo,分离特权账号管理 |
bash<br>grep -E '^Defaults use_pty' /etc/sudoers && sudo -l -U admin_env |
6 | 密码复杂度 | /etc/security/pwquality.conf 、PAM |
最少 12 字、4 类字符、旧新差异 ≥5,通过 pam_pwquality.so 强制执行复杂度,防止弱口令与重复使用 |
bash<br>grep -E '^minlen' /etc/security/pwquality.conf && grep pam_pwquality.so /etc/pam.d/password-auth |
7 | 时间同步(Chrony) | 时区 + /etc/chrony.conf |
设置时区 Asia/Shanghai ;替换 NTPD 为 Chrony,使用内网 NTP 服务器精准同步,保证审计与证书有效性 |
```bashtimedatectl status |
8 | Crontab 权限 | chown/chmod /etc/cron.* |
将系统计划任务文件及目录归属 root:root,删除 /etc/cron.deny 、/etc/at.deny ,清空 /etc/at.allow ,防止未授权任务 |
bash<br>ls -ld /etc/crontab /etc/cron.daily /etc/cron.allow; [[ -f /etc/cron.deny ]] |
9 | 关键文件权限 | chown/chmod /etc/shadow /etc/passwd /etc/ssh/sshd_config |
/etc/shadow 权限设为 0000;/etc/passwd 644;SSH 配置 600,防止非授权访问或篡改 |
bash<br>ls -l /etc/shadow /etc/passwd /etc/ssh/sshd_config |
10 | 关闭不必要服务 | SERVICES=( … ) for service in … |
停用并禁用明文协议或无用服务(telnet、ftp、nfs、postfix 等),减少系统攻击面 | bash<br>for s in telnet ftp rpcbind; do systemctl is-enabled $s && echo "$s 未禁用"; done |
11 | SSH 安全基础 | SSH 配置块 + Ciphers/MACs/KexAlgorithms | 强制 LogLevel INFO 、禁 X11、禁空密码、启严格模式;指定高强度加密算法集合,防止弱协议与密码 |
```bashgrep -E '^(LogLevel |
12 | 内核与模块硬化 | /etc/modprobe.d/*.conf 、/etc/sysctl.conf |
禁用 SCTP、DCCP 模块;关闭 IP 转发、ICMP 重定向/源路由;启用 SYN Cookies、martians 日志;一系列系统安全内核参数 | bash<br>ls /etc/modprobe.d/sctp.conf; sysctl net.ipv4.ip_forward net.ipv4.conf.all.accept_redirects net.ipv4.tcp_syncookies |
13 | 登录警示语 (MOTD) | /etc/motd |
在登录前展示标准法律/安全警告,具有威慑作用,提示未授权访问者禁止进入 | bash<br>grep -q 'warning banner' /etc/motd |
中等等级
-
SSH 用户/组白名单(AllowUsers/AllowGroups)
-
必要性:即使凭证泄露,未列入白名单用户无法登录。
-
检测:
grep -E '
-