如何在Linux上配置网络安全审计

来源:网站主作者:老毕头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上配置网络安全审计》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置网络安全审计》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中配置网络安全审计,核心是通过系统自带的审计工具和日志服务,记录网络访问、权限变更、敏感操作等关键行为,为后续的安全分析和问题追溯提供可靠依据。常见的配置方案主要围绕auditd服务、syslog日志收集和SELinux审计规则三个部分展开。

如何在Linux上配置网络安全审计

一、安装并启动auditd审计服务

auditd是Linux系统默认的审计守护进程,负责收集系统调用、文件访问、网络连接等行为的审计记录,大多数主流Linux发行版都默认预装了该服务,若未安装可通过包管理器手动安装。

1.1 安装auditd

不同发行版的安装命令如下:

# CentOS/RHEL系统
yum install audit -y

# Ubuntu/Debian系统
apt-get install auditd -y

1.2 启动并设置开机自启

安装完成后启动auditd服务,并配置开机自动启动:

# 启动服务
systemctl start auditd

# 设置开机自启
systemctl enable auditd

# 查看服务运行状态
systemctl status auditd

二、配置auditd审计规则

auditd的审计规则分为系统内置规则和自定义规则,自定义规则可以满足网络安全审计的特定需求,比如记录所有网络连接、敏感文件访问、特权命令执行等行为。

2.1 临时添加审计规则

使用auditctl命令可以临时添加审计规则,重启auditd服务后规则会失效,适合测试场景:

# 记录所有对/etc/passwd文件的写操作
auditctl -w /etc/passwd -p wa -k passwd_change

# 记录所有ssh登录相关的网络连接
auditctl -a always,exit -F arch=b64 -S connect -F exe=/usr/bin/ssh -k ssh_connect

# 记录所有使用sudo命令的操作
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_exec

规则参数说明:-w指定监控的文件路径,-p指定权限类型(r读、w写、x执行、a属性变更),-k是自定义的规则标签,方便后续筛选日志;-a指定规则的添加位置和触发条件,-F是过滤条件,-S指定系统调用类型。

2.2 永久配置审计规则

若需要规则永久生效,需要将规则写入/etc/audit/rules.d/目录下的规则文件,系统重启后会自动加载该目录下的所有规则文件。

创建自定义规则文件:

vim /etc/audit/rules.d/security_audit.rules

在文件中添加以下内容:

# 监控敏感配置文件变更
-w /etc/passwd -p wa -k passwd_change
-w /etc/shadow -p wa -k shadow_change
-w /etc/ssh/sshd_config -p wa -k ssh_config_change

# 记录所有网络连接行为
-a always,exit -F arch=b64 -S connect -k network_connect
-a always,exit -F arch=b32 -S connect -k network_connect

# 记录特权命令执行
-w /usr/bin/sudo -p x -k sudo_exec
-w /usr/bin/su -p x -k su_exec

# 设置缓冲区大小,避免审计日志丢失
-b 8192

# 设置审计日志文件大小上限,单位MB
--max-log-size 100

# 日志满时采取的动作,1为旋转日志,0为忽略,2为崩溃
--max-log-size-action 1

保存文件后,重启auditd服务加载规则:

systemctl restart auditd

三、配置syslog收集网络相关日志

除了auditd的审计记录,系统自带的syslog服务(rsyslog或syslog-ng)可以收集网络服务、防火墙、登录行为等相关日志,补充审计维度。

3.1 配置rsyslog收集网络日志

编辑rsyslog配置文件:

vim /etc/rsyslog.conf

在文件末尾添加以下内容,将网络相关日志单独存储到指定文件:

# 收集ssh登录日志
authpriv.*                                              /var/log/secure

# 收集防火墙日志,需要提前配置iptables或firewalld输出日志到syslog
kern.warning                                            /var/log/firewall.log

# 收集网络连接相关日志
daemon.*                                               /var/log/network.log

重启rsyslog服务使配置生效:

systemctl restart rsyslog

3.2 配置防火墙输出审计日志

以firewalld为例,添加规则记录被拒绝的网络连接:

# 添加规则记录被拒绝的入站连接
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port port="80" protocol="tcp" drop log prefix="firewall_drop: " level="warning"'

# 重新加载防火墙规则
firewall-cmd --reload

四、配置SELinux审计规则(可选)

若系统开启了SELinux,可以通过配置SELinux的审计规则,记录违反SELinux安全策略的操作,进一步补充安全审计维度。

4.1 查看SELinux状态

getenforce
# 输出Enforcing表示SELinux处于强制模式,Permissive表示宽容模式,Disabled表示关闭

4.2 配置SELinux审计规则

使用semanage命令添加SELinux审计规则,比如记录所有对httpd服务的网络访问拒绝行为:

# 安装semanage工具(CentOS系统)
yum install policycoreutils-python -y

# 添加规则记录httpd的网络连接拒绝行为
semanage auditallow -a -s httpd_t -t http_port_t -c tcp_socket -p name_connect -l all

五、审计日志查看与分析

配置完成后,可以通过对应的工具查看和分析审计日志,快速定位异常行为。

5.1 查看auditd审计日志

auditd的日志默认存储在/var/log/audit/audit.log,可以使用ausearch命令按标签筛选日志:

# 查看所有sudo执行记录
ausearch -k sudo_exec

# 查看所有网络连接记录
ausearch -k network_connect

# 查看指定时间段的审计记录
ausearch -ts today -k passwd_change

也可以使用aureport命令生成审计报告:

# 生成所有审计事件的汇总报告
aureport

# 生成登录相关的审计报告
aureport -l

# 生成网络连接相关的审计报告
aureport -n

5.2 查看syslog网络日志

直接查看对应路径的日志文件即可:

# 查看ssh登录日志
tail -f /var/log/secure

# 查看防火墙日志
tail -f /var/log/firewall.log

六、审计配置的优化建议

  • 定期清理过期的审计日志,避免占用过多磁盘空间,可以通过配置logrotate实现审计日志的自动轮转。
  • 根据系统实际业务场景调整审计规则,避免记录过多无用的日志,影响系统性能和分析效率。
  • 将审计日志定期同步到远程日志服务器,避免本地日志被篡改,保证审计记录的可靠性。
  • 定期对审计日志进行分析,识别异常访问和操作行为,及时优化系统安全策略。

Linux网络安全审计auditdsyslogSELinux修改时间:2026-06-28 11:39:23

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。