npx machina-cli add skill chaterm/terminal-skills/hardening --openclaw系统加固
概述
系统加固、基线配置、CIS 标准技能。
SSH 加固
配置优化
# /etc/ssh/sshd_config
# 禁用 root 登录
PermitRootLogin no
# 禁用密码认证
PasswordAuthentication no
PubkeyAuthentication yes
# 限制用户
AllowUsers admin deploy
AllowGroups sshusers
# 修改端口
Port 2222
# 超时设置
ClientAliveInterval 300
ClientAliveCountMax 2
# 禁用空密码
PermitEmptyPasswords no
# 协议版本
Protocol 2
# 日志级别
LogLevel VERBOSE
应用配置
# 检查配置
sshd -t
# 重启服务
systemctl restart sshd
内核参数加固
sysctl 配置
# /etc/sysctl.d/99-security.conf
# 禁用 IP 转发
net.ipv4.ip_forward = 0
# 禁用 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
# 启用 SYN Cookie
net.ipv4.tcp_syncookies = 1
# 忽略 ICMP 广播
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 禁用源路由
net.ipv4.conf.all.accept_source_route = 0
# 启用反向路径过滤
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# 记录可疑包
net.ipv4.conf.all.log_martians = 1
# 禁用 IPv6(如不需要)
net.ipv6.conf.all.disable_ipv6 = 1
应用配置
sysctl -p /etc/sysctl.d/99-security.conf
用户安全
密码策略
# /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_MIN_LEN 12
PASS_WARN_AGE 14
# /etc/security/pwquality.conf
minlen = 12
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
账户锁定
# /etc/pam.d/common-auth (Debian)
auth required pam_tally2.so deny=5 unlock_time=900
# /etc/pam.d/system-auth (RHEL)
auth required pam_faillock.so preauth deny=5 unlock_time=900
auth required pam_faillock.so authfail deny=5 unlock_time=900
清理无用账户
# 锁定账户
usermod -L username
passwd -l username
# 禁用 shell
usermod -s /sbin/nologin username
# 查找无密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow
文件权限
关键文件
# 设置权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 600 /etc/gshadow
chmod 644 /etc/group
chmod 700 /root
chmod 600 /boot/grub/grub.cfg
# 设置属性
chattr +i /etc/passwd
chattr +i /etc/shadow
查找问题文件
# 查找 SUID/SGID 文件
find / -perm /4000 -type f 2>/dev/null
find / -perm /2000 -type f 2>/dev/null
# 查找无主文件
find / -nouser -o -nogroup 2>/dev/null
# 查找全局可写文件
find / -perm -002 -type f 2>/dev/null
服务加固
禁用不必要服务
# 查看服务
systemctl list-unit-files --type=service
# 禁用服务
systemctl disable telnet
systemctl disable rsh
systemctl disable rlogin
systemctl disable vsftpd
# 停止服务
systemctl stop telnet
限制 cron
# 只允许特定用户
echo "root" > /etc/cron.allow
chmod 600 /etc/cron.allow
rm -f /etc/cron.deny
常见场景
场景 1:快速加固脚本
#!/bin/bash
echo "=== 系统加固 ==="
# SSH 加固
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 内核参数
cat >> /etc/sysctl.d/99-security.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 1
EOF
sysctl -p /etc/sysctl.d/99-security.conf
# 文件权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
echo "加固完成"
场景 2:CIS 基线检查
#!/bin/bash
echo "=== CIS 基线检查 ==="
# 检查 SSH 配置
echo "SSH PermitRootLogin:"
grep "^PermitRootLogin" /etc/ssh/sshd_config
# 检查密码策略
echo "密码最大有效期:"
grep "^PASS_MAX_DAYS" /etc/login.defs
# 检查内核参数
echo "TCP SYN Cookie:"
sysctl net.ipv4.tcp_syncookies
加固检查清单
| 项目 | 检查内容 |
|---|---|
| SSH | 禁用 root、密钥认证 |
| 密码 | 复杂度、有效期 |
| 内核 | sysctl 安全参数 |
| 服务 | 禁用不必要服务 |
| 权限 | 关键文件权限 |
| 日志 | 审计日志启用 |
故障排查
# SSH 无法登录
journalctl -u sshd -f
tail -f /var/log/auth.log
# 检查 PAM 配置
cat /etc/pam.d/sshd
# 检查 SELinux
getenforce
ausearch -m avc -ts recent
Source
git clone https://github.com/chaterm/terminal-skills/blob/main/security/hardening/SKILL.mdView on GitHub Overview
hardening 是面向 CIS 基线的系统加固技能集合。你可以通过模块化的配置模板,快速生成并应用 SSH 加固、sysctl 内核参数、账户与密码策略、文件权限以及服务安全等变更,同时得到可执行的验证脚本与回滚思路,帮助你在生产环境中实现稳定且可审计的安全基线。
How This Skill Works
该技能通过对现有系统状态的诊断与 CIS/基线要求的对照,生成可执行的配置变更与检查脚本。你可以按模块逐步应用,如 SSH 加固、内核参数、用户安全、文件权限及服务 Hardened 设置,并在应用后执行对照验证与回滚准备。技能输出的内容通常包括可直接放入配置文件的变更片段、验证命令,以及故障排查建议。
When to Use It
- 需要将服务器快速提升到 CIS/基线安全状态时
- 在新镜像或云主机上线前进行基线化配置
- 合规审计前的快速自查与报告生成
- 定期安全巡检,确保关键配置始终处于加固状态
- 需要生成可复用的加固脚本与检查清单以简化运维流程
Quick Start
- 1) 运行初始诊断,获取当前 SSH、sysctl、用户与权限、以及服务清单。
- 2) 让技能输出 SSH 加固配置并应用(如禁用 root、禁用密码认证、启用公钥认证、修改端口、会话超时等)。
- 3) 应用内核参数加固(/etc/sysctl.d/99-security.conf),并执行 sysctl -p 来生效。
- 4) 通过生成的检查清单与脚本,验证改动是否符合基线要求并记录变更。
Best Practices
- 在生产环境前先在 staging/测试环境验证改动效果和连接可用性
- 对原有配置进行备份并使用版本控制管理变更(如 git)
- 仅在需要时逐步应用改动,确保可回滚路径与备用访问方式
- 将日志与审计功能开启并定期轮换日志
- 结合云环境或容器化部署时,确保云平台/容器安全组与镜像基线配合加固
Example Use Cases
- 快速将单台服务器达到 CIS 基线:通过 SSH 配置、sysctl 参数、密码策略与服务禁用,生成并应用变更,随后进行验证与审计输出。
- 云环境镜像基线化:在镜像构建阶段嵌入 hardening 的配置模板,确保新实例上线即具备最小化可用攻击面。
- 合规审计前的自动化检查:输出对照清单和可执行校验脚本,帮助你在提交审核前完成自查并产出报告。
- 定期安全基线巡检:定期运行诊断+变更回顾,确保 SSH、账户、权限与内核参数始终符合基线标准。
Frequently Asked Questions
Related Skills
ssl-tls
chaterm/terminal-skills
SSL/TLS 证书
audit
chaterm/terminal-skills
--- name: audit description: 安全审计 version: 1.0.0 author: terminal-skills tags: [security, audit, auditd, logging, compliance, vulnerability] --- # 安全审计 ## 概述 安全审计、漏洞扫描、合规检查技能。 ## auditd 审计系统 ### 安装与管理 ```bash # 安装 apt install auditd audispd-plugins # Debian/Ubuntu yum install audit
tuning
chaterm/terminal-skills
--- name: tuning description: 系统调优 version: 1.0.0 author: terminal-skills tags: [performance, tuning, sysctl, kernel, optimization] --- # 系统调优 ## 概述 内核参数、文件系统、网络优化技能。 ## 内核参数调优 ### 内存管理 ```bash # /etc/sysctl.d/99-memory.conf # 减少交换倾向 vm.swappiness = 10 # 脏页刷新 vm.dirty_ratio = 20 vm.dirty_backg
erpnext-permissions
OpenAEC-Foundation/ERPNext_Anthropic_Claude_Development_Skill_Package
Complete guide for Frappe/ERPNext permission system - roles, user permissions, perm levels, data masking, and permission hooks
Auto-Update Systems Expert
martinholovsky/claude-skills-generator
Expert in Tauri auto-update implementation with focus on signature verification, rollback mechanisms, staged rollouts, and secure update distribution
CI/CD Pipeline Security Expert
martinholovsky/claude-skills-generator
Expert in CI/CD pipeline design with focus on secret management, code signing, artifact security, and supply chain protection for desktop application builds