
Audit
- 72 installs
- 50 repo stars
- Updated March 3, 2026
- chaterm/terminal-skills
Perform Linux security auditing with auditd rules, vulnerability scanning, and compliance checks from the command line.
About
Provides Linux security auditing patterns covering the auditd audit system, vulnerability scanning, and compliance checks. A developer uses it to audit system security and check compliance from the terminal.
- auditd rules and audit system management
- Vulnerability scanning and compliance checks
Audit by the numbers
- 72 all-time installs (skills.sh)
- Ranked #1,165 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/chaterm/terminal-skills --skill auditAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 72 |
|---|---|
| repo stars | ★ 50 |
| Last updated | March 3, 2026 |
| Repository | chaterm/terminal-skills ↗ |
What it does
Perform Linux security auditing with auditd rules, vulnerability scanning, and compliance checks from the command line.
Files
安全审计
概述
安全审计、漏洞扫描、合规检查技能。
auditd 审计系统
安装与管理
# 安装
apt install auditd audispd-plugins # Debian/Ubuntu
yum install audit # CentOS/RHEL
# 服务管理
systemctl start auditd
systemctl enable auditd
systemctl status auditd审计规则
# 查看规则
auditctl -l
# 添加规则 - 监控文件
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
# 监控目录
auditctl -w /etc/ssh/ -p wa -k ssh_config
# 监控系统调用
auditctl -a always,exit -F arch=b64 -S execve -k command_exec
# 监控用户操作
auditctl -a always,exit -F arch=b64 -S open -F auid>=1000 -k user_file_access永久规则
# /etc/audit/rules.d/audit.rules
-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /var/log/lastlog -p wa -k logins
-a always,exit -F arch=b64 -S execve -k commands
# 重载规则
augenrules --load查看日志
# 搜索审计日志
ausearch -k passwd_changes
ausearch -k commands -ts today
ausearch -ua root -ts recent
# 生成报告
aureport
aureport --summary
aureport --login
aureport --file
aureport --executable日志审计
系统日志
# 查看认证日志
tail -f /var/log/auth.log # Debian/Ubuntu
tail -f /var/log/secure # CentOS/RHEL
# 查看登录记录
last
lastb # 失败登录
lastlog
# journalctl
journalctl -u sshd
journalctl --since "1 hour ago"
journalctl -p err日志分析
# 统计 SSH 登录失败
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn
# 统计 sudo 使用
grep "sudo:" /var/log/auth.log | tail -20
# 查找异常登录
grep "Accepted" /var/log/auth.log | grep -v "192.168"漏洞扫描
Lynis
# 安装
apt install lynis
# 系统审计
lynis audit system
# 查看报告
cat /var/log/lynis-report.datOpenSCAP
# 安装
yum install openscap-scanner scap-security-guide
# 扫描
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \
--results results.xml \
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
# 生成报告
oscap xccdf generate report results.xml > report.htmlNmap 扫描
# 端口扫描
nmap -sV -sC target.com
# 漏洞扫描
nmap --script vuln target.com
# 全面扫描
nmap -A -T4 target.com文件完整性
AIDE
# 安装
apt install aide
# 初始化数据库
aide --init
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 检查变更
aide --check
# 更新数据库
aide --updateTripwire
# 初始化
tripwire --init
# 检查
tripwire --check
# 更新策略
tripwire --update-policy常见场景
场景 1:监控特权操作
# /etc/audit/rules.d/privileged.rules
# 监控 sudo
-w /usr/bin/sudo -p x -k privileged_sudo
-w /etc/sudoers -p wa -k sudoers_edit
# 监控用户管理
-w /usr/sbin/useradd -p x -k user_add
-w /usr/sbin/userdel -p x -k user_del
-w /usr/sbin/usermod -p x -k user_mod
# 监控网络配置
-w /etc/hosts -p wa -k hosts_edit
-w /etc/network/ -p wa -k network_config场景 2:合规检查脚本
#!/bin/bash
echo "=== 安全合规检查 ==="
# 检查空密码账户
echo "空密码账户:"
awk -F: '($2 == "") {print $1}' /etc/shadow
# 检查 UID 为 0 的账户
echo "UID=0 账户:"
awk -F: '($3 == 0) {print $1}' /etc/passwd
# 检查 SSH 配置
echo "SSH 配置:"
grep -E "^(PermitRootLogin|PasswordAuthentication)" /etc/ssh/sshd_config
# 检查开放端口
echo "监听端口:"
ss -tlnp场景 3:登录告警
#!/bin/bash
# /etc/profile.d/login-alert.sh
if [ -n "$SSH_CLIENT" ]; then
IP=$(echo $SSH_CLIENT | awk '{print $1}')
echo "SSH 登录告警: 用户 $USER 从 $IP 登录 $(hostname)" | \
mail -s "SSH Login Alert" admin@example.com
fi故障排查
| 问题 | 排查方法 |
|---|---|
| 审计日志过大 | 配置日志轮转、过滤规则 |
| 性能影响 | 减少审计规则、优化过滤 |
| 规则不生效 | 检查语法、重载规则 |
# 检查 auditd 状态
auditctl -s
# 查看丢失事件
aureport --summary | grep lost
# 日志轮转配置
# /etc/audit/auditd.conf
max_log_file = 50
num_logs = 5
max_log_file_action = ROTATE