服务器测评网
我们一直在努力

Linux安全检查怎么做?常见命令与工具有哪些?

Linux安全检查是系统管理员和运维工程师日常工作的重要组成部分,它涉及系统配置、权限管理、日志监控、网络防护等多个维度,旨在及时发现潜在风险并采取防护措施,以下从系统基础安全、服务安全、日志审计、网络防护及应急响应五个方面,详细介绍Linux安全检查的关键内容和实施方法。

20251031172349923

系统基础安全检查

系统基础安全是整体防护的第一道防线,需重点关注用户权限、文件系统和服务配置。

用户与权限管理

  • 关键账户检查:定期审查/etc/passwd/etc/shadow文件,禁用或删除闲置账户,特别是UID为0的超级用户账户(除root外),使用lastlog命令查看用户最后登录时间,识别异常登录行为。
  • 密码策略:检查/etc/login.defs中的密码复杂度要求(如最小长度、历史密码重用限制),确保所有用户设置强密码,并启用SSH密钥认证(禁用密码登录)。
  • sudo权限:审计/etc/sudoers文件,限制sudo用户范围,避免赋予过多权限,例如禁止使用sudo su -直接切换为root。

文件系统完整性

  • 重要文件权限:检查关键目录和文件权限,如/etc/passwd应为644,/etc/shadow应为600,/etc/sudoers应为440。
  • 异常文件检测:使用find命令查找无属主文件(find / -nouser -o -nogroup)、可写SUID/SGID文件(find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -ldb {} \;),这些可能被恶意利用。
  • 系统完整性校验:通过rpm -Va(RHEL/CentOS)或debsums(Debian/Ubuntu)校验系统文件完整性,发现被篡改的文件。

服务与进程管理

  • 非必要服务关闭:使用systemctl list-unit-files --state=enabled查看开机启动服务,禁用非必要服务(如telnet、rsh等)。
  • 进程监控:通过ps auxtop命令检查异常进程,重点关注隐藏进程(使用ls -l /proc/*/exe交叉验证)和可疑网络连接进程。

服务安全配置

Linux系统中运行的服务是攻击的主要入口,需针对常见服务进行安全加固。

SSH服务

  • 配置文件:编辑/etc/ssh/sshd_config,禁用root登录(PermitRootLogin no),限制登录用户(AllowUsers user1 user2),更改默认端口(22),并启用TCP Wrapper(/etc/hosts.allow/etc/hosts.deny)。
  • 协议版本:强制使用SSH协议2(Protocol 2),禁用弱加密算法(如CiphersMACs配置中移除weak算法)。

Web服务(Apache/Nginx)

  • 版本与补丁:检查httpd -vnginx -v,确保服务版本最新,及时修复漏洞。
  • 目录权限:设置网站目录权限为755,文件权限为644,禁用目录执行权限(如Options -ExecCGI)。
  • 访问控制:通过.htaccess(Apache)或Nginx的location块限制IP访问,并配置SSL/TLS加密。

数据库服务(MySQL/PostgreSQL)

  • 默认账户:删除匿名账户和测试数据库,修改root默认密码,限制远程登录(仅允许特定IP)。
  • 日志与备份:启用查询日志(general_log)和错误日志,定期备份数据库并验证备份文件完整性。

日志审计与监控

日志是安全事件的“黑匣子”,需确保日志记录完整且可追溯。

20251031172352494

日志配置

  • 系统日志:检查/etc/rsyslog.conf,确保记录认证日志(authpriv)、内核日志(kern)和计划任务日志(cron),并将日志发送到远程日志服务器(如@192.168.1.100)。
  • SSH日志:确认/var/log/secure记录所有SSH登录尝试,包括成功和失败的记录。

日志分析工具

  • 命令行工具:使用grepawksed过滤日志,例如搜索失败登录记录:grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c
  • 自动化工具:部署logwatchELK Stack(Elasticsearch、Logstash、Kibana)实现日志实时分析与告警。

审计规则

  • auditd服务:启用Linux审计系统,通过auditctl添加规则,例如监控/etc/passwd文件修改、敏感命令执行(如sudosu):
    auditctl -w /etc/passwd -p wa -k passwd_change
    auditctl -a exit,always -S execve -F key=sudo_commands

网络防护与访问控制

网络层面的防护需关注防火墙、端口管理和入侵检测。

防火墙配置

  • iptables/firewalld:检查防火墙规则,仅开放必要端口(如80、443、22),禁用不必要的入站连接,iptables规则示例:
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -j DROP
  • 端口扫描:使用nmap扫描本机开放端口,确保无异常端口监听(如nmap -sT -O 127.0.0.1)。

入侵检测系统(IDS)

  • 部署工具:安装OSSECSuricata,监控文件变更、异常登录和恶意流量。
  • 实时告警:配置IDS规则,当检测到暴力破解、Webshell上传等行为时触发告警。

应急响应与漏洞管理

安全检查的最终目的是快速响应和修复漏洞,降低风险。

漏洞扫描与修复

  • 工具使用:定期运行OpenVASNessus扫描系统漏洞,根据扫描结果及时打补丁(yum updateapt upgrade)。
  • 基线检查:依据CIS Benchmark(Center for Internet Security)进行基线加固,例如禁用USB存储设备、限制内核模块加载。

应急响应流程

  • 事件隔离:发现入侵后,立即断开网络连接,保留现场(如内存快照、磁盘镜像)。
  • 溯源分析:通过日志、进程和文件变更记录,分析攻击路径和影响范围。
  • 系统恢复:从干净备份恢复系统,重置密码,修补漏洞后重新上线。

定期维护计划

制定安全检查周期表,
| 检查项 | 频率 | 工具/方法 |
|—————–|———-|——————————|
| 用户权限审计 | 每周 | /etc/passwdlastlog |
| 日志分析 | 每日 | logwatchgrep |
| 漏洞扫描 | 每月 | NessusOpenVAS |
| 防火墙规则检查 | 每周 | iptables -Lfirewall-cmd |

20251031172354983

Linux安全检查是一个持续的过程,需要结合自动化工具与人工分析,从系统、服务、日志、网络等多个维度构建纵深防御体系,通过定期检查、及时修复和应急演练,才能有效提升系统的安全防护能力,保障业务稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » Linux安全检查怎么做?常见命令与工具有哪些?