📄 文档说明
| 项目 | 内容 |
|---|---|
| 文档编号 | 55K-RPT-2025-LBC-1 |
👥 信息介绍
- 测试人员:雾里看浮光
- 运营人员:南知意、庭吖
- 公众号:
55K-学安全 - 优快云:HackShield_Pro的技术博客
- 博客园:JaseLee的个人博客
⚠️ 免责声明
重要提示
本次渗透测试报告中所有内容均在本地授权环境中进行。测试目的仅为安全研究与学习,提升安全防护能力。
请勿将文中所述技术用于任何非法用途,否则后果自负。
版权声明:本文由 55K-学安全 团队原创,转载请注明出处。
目录
引言
在数字化时代,服务器与系统的安全是业务稳定运行的基石。面对无处不在的黑客攻击、内部权限滥用以及配置疏漏,定期开展全面而深入的系统安全检查,是发现潜在漏洞、纠正不合规配置、识别异常风险的关键手段,更是构建有效纵深防御体系不可或缺的环节。本文系统梳理了从账户安全、SSH配置到网络防护的12个核心检查维度,并提供可直接执行的命令,助力运维与安全人员高效落实系统安全审计工作。
第一部分:身份与访问控制安全
概述
本部分聚焦于系统访问的源头控制,涵盖用户账户、认证通道、文件权限与特权管理,是防止未授权访问的第一道关卡。
一、账户安全检查:筑牢身份认证的第一道防线
1.检查目标
系统账户是访问控制的源头。空密码账户、非必要的UID 0特权账户、以及松散的密码策略,常常成为攻击者最初的突破口。通过以下检查,夯实身份认证基础:
2. 检查命令
# 检查空密码或未设置密码的账户(此类账户允许无密码登录,风险极高)
awk -F: '($2 == "" || $2 == "!") {print $1}' /etc/shadow
# 检查除root外其他UID为0的账户(UID 0拥有root权限,应严格唯一)
awk -F: '($3 == 0) {print $1}' /etc/passwd
# 检查系统密码策略(确认密码最长/最短使用期限、过期提醒等设置合规)
cat /etc/login.defs | grep -E "PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE"
# 检查账户登录失败锁定策略(防范暴力破解攻击)
grep -E "pam_tally|pam_faillock" /etc/pam.d/system-auth /etc/pam.d/password-auth 2>/dev/null
二、SSH安全配置检查:守护远程访问通道
1. 检查目标
作为最常用的远程管理协议,SSH配置不当会直接暴露系统。禁用不安全的协议版本、禁止root直接登录、强制使用密钥认证是基本要求。
2. 检查命令
# 检查SSH协议版本(应禁用不安全的SSHv1,仅使用SSHv2)
grep -i "Protocol" /etc/ssh/sshd_config
# 检查是否允许Root直接登录(建议设置为 `no` 或 `prohibit-password`)
grep -i "PermitRootLogin" /etc/ssh/sshd_config
# 检查是否启用密码认证(在生产环境建议禁用,仅使用密钥认证)
grep -i "PasswordAuthentication" /etc/ssh/sshd_config
# 检查公钥认证是否启用(确保密钥登录的开关已打开)
grep -i "PubkeyAuthentication" /etc/ssh/sshd_config
# 检查是否允许空密码登录(必须设置为 `no`)
grep -i "PermitEmptyPasswords" /etc/ssh/sshd_config
三、文件权限检查:防范权限滥用与篡改
1. 检查目标
关键系统文件权限不当可能导致信息泄露或提权。SUID/SGID程序、全局可写文件若被恶意利用,可能成为攻击跳板。
2. 检查命令
# 检查核心账户文件权限(应仅限root可写,防止被非法修改)
ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow
# 查找系统SUID文件(需审查这些文件是否必要,避免提权漏洞)
find / -perm -4000 -type f 2>/dev/null | head -20
# 查找系统SGID文件(同样需要评估其必要性)
find / -perm -2000 -type f 2>/dev/null | head -20
# 查找全局可写文件(`/proc`目录除外,此类文件易被任意用户篡改)
find / -perm -0002 -type f ! -path "/proc/*" 2>/dev/null | head -20
四、Sudo配置检查:精细化管控特权使用
1. 检查目标
Sudo权限分配过宽或日志缺失,会导致特权滥用且无法追溯。
2. 检查命令
# 检查sudoers主文件权限(应为440,且所有者root)
ls -l /etc/sudoers
# 检查sudo操作是否配置了日志记录
grep -i "syslog" /etc/sudoers /etc/sudoers.d/*
# 验证sudoers文件语法并查看有效规则
visudo -c && cat /etc/sudoers | grep -v "^#" | grep -v "^$"
# 查看近期的sudo使用记录
tail -20 /var/log/secure | grep -i sudo
第二部分:网络与服务访问安全
概述
本部分关注系统对外的暴露面,通过管理运行的服务、配置防火墙及细化网络参数,有效控制网络层面的访问与攻击风险。
一、服务安全检查:收缩不必要的攻击面
1. 检查目标
非必需的服务会扩大系统的暴露面。关闭无用服务、审查监听端口是减少攻击路径的有效方法。
2. 检查命令
# 查看当前运行的服务(识别并停止非业务必需的服务)
systemctl list-units --type=service --state=running
# 查看所有监听端口的进程(关联端口、协议与进程,排查异常)
ss -tulpn
# 检查是否存在明文传输的高危服务(如telnet、ftp,应禁用)
systemctl list-unit-files | grep -E "telnet|rlogin|rsh|rexec|vsftpd|tftp"
# 查看开机自启动服务(确保最小化启动,降低初始风险)
systemctl list-unit-files --state=enabled
二、防火墙配置检查:构建网络访问控制屏障
1. 检查目标
防火墙是网络边界的守护者。其状态、规则是否有效,直接决定了外部威胁的拦截能力。
2. 检查命令
# 检查iptables规则(查看过滤规则是否完备)
iptables -L -n -v
# 检查firewalld状态与规则(适用于RHEL/CentOS 7+)
firewall-cmd --state && firewall-cmd --list-all
# 检查ufw状态与规则(适用于Ubuntu/Debian)
ufw status verbose
# 导出当前防火墙规则(用于备份或详细审计)
iptables-save 2>/dev/null || nft list ruleset
三、网络安全检查:细化网络层防护策略
1. 检查目标
通过TCP Wrappers、ICMP策略等进一步细化访问控制,防御网络层特定攻击。
2. 检查命令
# 检查TCP Wrappers访问控制列表(/etc/hosts.allow, /etc/hosts.deny)
cat /etc/hosts.allow /etc/hosts.deny
# 检查是否忽略ICMP广播请求(防范Smurf攻击)
sysctl -a | grep icmp_echo_ignore_broadcasts
# 检查是否接受ICMP重定向报文(防止路由欺骗)
sysctl -a | grep -E "ipv4\.conf\..*\.accept_redirects"
# 检查ARP相关安全参数(防范ARP欺骗)
sysctl -a | grep -E "arp_ignore|arp_announce"
第三部分:系统配置与安全基线
概述
本部分涉及操作系统本身的安全配置与状态维护,包括补丁管理、内核调优、加固设置与日志审计,构成系统运行时的安全基础。
一、系统更新检查:及时修补已知漏洞
1. 检查目标
未能及时安装安全补丁是导致漏洞利用最常见的原因之一。定期更新是成本最低的安全措施。
2. 检查命令
# 检查安全更新(RHEL/CentOS系列)
yum check-update --security
# 检查可升级软件包(Debian/Ubuntu系列)
apt list --upgradable 2>/dev/null
# 检查系统最后更新时间(判断更新策略是否被执行)
stat /var/cache/apt/pkgcache.bin 2>/dev/null || stat /var/cache/yum/x86_64/ 2>/dev/null
二、内核安全参数检查:强化底层防护能力
1. 检查目标
内核参数决定了系统对各类网络攻击(如SYN Flood、IP欺骗)的抵抗力。
2. 检查命令
# 查看关键网络安全参数
sysctl -a | grep -E "net.ipv4.ip_forward|net.ipv4.conf.all.accept_source_route|net.ipv4.conf.all.accept_redirects|net.ipv4.conf.all.secure_redirects|net.ipv4.conf.all.log_martians|net.ipv4.icmp_echo_ignore_broadcasts|net.ipv4.icmp_ignore_bogus_error_responses|net.ipv4.tcp_syncookies|net.ipv4.conf.all.rp_filter"
# 检查sysctl持久化配置文件
grep -r "" /etc/sysctl.d/ /etc/sysctl.conf | grep -v "^#" | grep -v "^$"
三、系统加固检查:提升整体安全基线
1. 检查目标
通过SELinux、时间同步、核心转储限制等配置,进一步提升系统自身的安全性。
2. 检查命令
# 检查SELinux状态(推荐处于 `Enforcing` 模式)
sestatus
# 检查时间同步服务状态(确保系统时间准确)
systemctl status chronyd || systemctl status ntpd || systemctl status systemd-timesyncd
# 检查核心转储(core dump)是否受限
ulimit -c && grep -i "core" /etc/security/limits.conf
# 检查ASLR(地址空间布局随机化)是否开启
sysctl kernel.randomize_va_space
# 检查是否存在隐藏进程(重复PID可能提示Rootkit)
ps -ef | awk '{print $2}' | sort -n | uniq -d
四、审计日志检查:确保安全事件可追溯
1. 检查目标
完整的日志是事后调查与取证的唯一依据。需确保审计服务开启、日志完整且受到保护。
2. 检查命令
# 检查审计服务(auditd)状态
systemctl status auditd
# 查看当前生效的审计规则
auditctl -l
# 检查关键日志文件权限(防止篡改或删除)
ls -l /var/log/secure /var/log/messages /var/log/audit/audit.log 2>/dev/null
# 检查日志轮转配置(避免日志无限增长导致磁盘满或历史丢失)
cat /etc/logrotate.conf | grep -A5 -B5 "rotate"
第四部分:安全监控与入侵排查
概述
本部分侧重于主动的安全监控与事后响应能力,通过检查恶意软件和异常痕迹,确保能够及时发现并处置安全事件。
一、恶意软件防护检查:主动排查入侵痕迹
1. 检查目标
主动扫描是发现已潜入的恶意软件(如挖矿程序、后门)的重要手段。
2. 检查命令
# 检查防病毒软件(如ClamAV)运行状态
systemctl status clamav-daemon 2>/dev/null || systemctl status clamd 2>/dev/null
# 检查Rootkit检测工具是否安装
which rkhunter chkrootkit 2>/dev/null
# 检查进程列表中是否有可疑进程(如矿机、后门)
ps auxf | grep -E "(cryptominer|miner|backdoor|shell)"
# 检查系统计划任务(恶意软件常用以实现持久化)
crontab -l && ls -la /etc/cron.*
总结:将安全检查转化为持续的安全实践
- 系统安全绝非一劳永逸,而是一场需要持之以恒的“马拉松”。本文所涵盖的12个检查维度,共同构建了一个从身份到网络、从配置到日志的立体防御检查框架。
- 后续会将其整合为自动化脚本,便于定期执行,并可根据行业合规要求(如等保2.0、PCI DSS)进行扩展与定制。只有将定期安全检查内化为运维流程的固定环节,持续关注细节、快速响应风险,才能构筑起真正动态、有效的安全防线,最终实现系统与业务的长治久安。
Linux系统安全配置基线检查

被折叠的 条评论
为什么被折叠?



