78、Linux 系统日志、防火墙、安全实践及系统分析全解析

Linux 系统日志、防火墙、安全实践及系统分析全解析

一、日志服务相关知识

1.1 日志协议与应用

  • syslog 协议 :由 Sendmail 项目创建的 syslog 协议已成为 Linux 系统日志记录的事实标准。而 SMTP 是邮件协议,FTP 是文件传输协议,NTP 是网络时间协议,它们都不是用于记录系统事件消息的协议。journalctl 是用于读取 systemd - journald 日志文件的工具,并非日志记录协议。
  • 日志应用对比
    | 应用名称 | 特点 |
    | ---- | ---- |
    | rsyslogd | 是 syslogd 的更快版本 |
    | syslogd | 原始的 syslog 应用,速度较慢 |
    | syslog - ng | 比 syslogd 更通用,但速度不快 |
    | systemd - journald | 读取日志条目查询速度快,但处理事件消息速度未专门优化 |
    | klogd | 属于原始 sysklogd 应用的一部分,速度不快 |

1.2 日志关键字与级别

  • 日志设施关键字 :cron 应用用于在 Linux 系统上调度作业,所以 cron 设施关键字代表从作业调度器接收的事件消息。而 user 代表用户事件,kern 代表内核事件,console 代表系统控制台事件,local0 通常在系统内自定义,一般不接收作业调度器的事件。
  • 日志严重级别
    | 严重级别 | 优先级 | 含义 |
    | ---- | ---- | ---- |
    | emerg | 0 | 最高级别,系统紧急情况 |
    | crit | 2 | 关键事件 |
    | alert | 1 | 需要立即处理的事件 |
    | notice | 5 | 重要但正常的系统事件 |
    | err | 3 | 错误事件 |

1.3 日志应用配置与操作

  • rsyslogd 配置 :rsyslogd 应用默认使用 rsyslog.conf 配置文件,rsyslog.d 通常是存储额外配置文件的文件夹。
  • 日志优先级设置 :rsyslogd 会优先记录定义的严重级别或更高级别的日志事件消息。例如,要记录所有内核事件消息在 warn、alert 或 emerg 严重级别,可进行相应设置。
  • systemd - journald 存储设置 :Storage 设置控制 systemd - journald 如何管理日志文件。设置为 persistent 可确保日志文件保留在 /var/log/journal 目录;设置为 auto 仅在该目录存在时日志文件才持久化;设置为 volatile 则文件不持久化。
  • journalctl 选项操作
    | 选项 | 功能 |
    | ---- | ---- |
    | -r | 以逆序显示日志条目,最新条目先显示 |
    | -a | 按正常顺序显示所有数据字段 |
    | -l | 按正常顺序显示所有可打印数据字段 |
    | -e | 跳转到日志文件末尾,按正常顺序显示剩余条目 |
    | -n | 按正常顺序显示指定数量的条目 |
  • journalctl 过滤事件消息 :journalctl 应用可使用 OBJECT_PID 匹配按应用进程 ID(PID)过滤与特定应用相关的事件消息。

二、Linux 防火墙相关知识

2.1 防火墙基本特性

Linux 防火墙应用使用访问控制列表(ACLs)识别允许进出系统的网络数据包,通过检查数据包的控制信息和其他网络数据来识别数据包,并使用配置文件保持配置的持久性,以确保防火墙配置在系统重启或应用启动/重新加载后仍有效。但这些防火墙不能检测恶意行为,仅遵循预定义规则,且使用嵌入 Linux 内核的 netfilter,而非 iptables(它是一个防火墙服务)。

2.2 防火墙类型与操作

  • 状态防火墙与无状态防火墙
    • 状态防火墙 :使用内存表跟踪已建立连接的数据包,对这些连接处理速度更快,能检测数据包是否分段,保护系统免受跨多个数据包传播的攻击,但易受 DDoS 攻击。
    • 无状态防火墙 :整体操作速度更快,对 DDoS 攻击的脆弱性较低。
  • firewalld 相关操作
    • 区域概念 :firewalld 将网络流量分组到区域,区域是预定义的规则集,也称为信任级别。
    • 保存配置 :firewalld 的运行时环境是活动防火墙,若未保存为永久环境则不持久。成功测试后,可使用 firewall - cmd –runtime - to - permanent 命令将运行时环境保存到永久环境。
  • iptables 操作 :若要阻止 ping 协议的数据包且不发送拒绝消息,需修改 iptables INPUT 链,目标设置为 DROP。
  • UFW 防火墙操作
    • 显示规则编号 :使用 sudo ufw status numbered 命令可显示 UFW 防火墙的 ACL 规则及其关联编号。
    • 阻止 OpenSSH 连接 :使用特定的 ufw 命令可阻止所有传入和传出的 OpenSSH 连接且不发送阻止消息。
  • DenyHosts 与 Fail2Ban :DenyHosts 仅适用于 OpenSSH 流量,只能与 TCP Wrappers 配合使用;Fail2Ban 可处理多种类型的流量,能与 iptables、TCP Wrappers、firewalld 等配合使用,其配置文件为 /etc/fail2ban/jail.conf。
  • IPset 操作 :使用特定命令可将新 IP 地址添加到 BlockThem IPset。

2.3 防火墙操作流程 mermaid 流程图

graph LR
    A[开始] --> B{选择防火墙类型}
    B --> |状态防火墙| C[设置内存表跟踪连接]
    B --> |无状态防火墙| D[按规则处理数据包]
    C --> E[检测数据包分段]
    D --> F[正常处理数据包]
    E --> G{是否受攻击}
    G --> |是| H[进行防护处理]
    G --> |否| I[继续正常处理]
    F --> I
    I --> J{是否需要保存配置}
    J --> |是| K[使用相应命令保存]
    J --> |否| L[结束]
    K --> L

三、Linux 安全实践相关知识

3.1 身份验证方法

  • Kerberos 认证 :使用票据授予系统,用户成功认证后分配票据,网络上使用 Kerberos 的服务器可使用该票据认证用户账户。
  • 生物识别认证 :利用用户的物理特征在 Linux 系统上进行认证。
  • LDAP 认证 :允许管理员创建分布式数据库,不仅可认证用户账户,还能跟踪用户对网络资源的授权。
  • 其他认证方法 :RADIUS、TACACS + 认证方法不使用票据进行用户认证;令牌和 PKI 是双因素认证方法,使用数字令牌而非物理特征认证。

3.2 安全措施操作

  • 限制用户登录 :将 nologin 实用程序指定为用户账户的默认 shell,用户成功登录后会收到不允许访问系统的消息。
  • 数据分区分离 :将 /home 目录放在单独的磁盘分区上,可将用户数据与系统数据分离。
  • 应用限制 :使用 chroot 程序可将应用限制在虚拟文件系统结构的特定区域内。
  • 磁盘加密 :Linux 统一密钥设置(LUKS)功能提供磁盘级加密,分区中存储的所有文件写入时自动加密,读取时自动解密。
  • 阻止用户调度作业 :将用户添加到 /etc/cron.deny 文件可阻止其调度作业。
  • 阻止攻击者访问 :将攻击者的 IP 地址放入 /etc/hosts.deny 文件可快速阻止其访问系统。
  • 禁用 FTP 服务 :禁用 FTP 应用的网络端口可防止用户使用 FTP 服务。

3.3 安全措施操作列表

  1. 身份验证选择 :根据需求选择合适的身份验证方法,如 Kerberos 适用于需要单一登录票据的场景,生物识别适用于对物理特征认证有需求的场景。
  2. 用户限制
    • 若要限制特定用户登录,设置 nologin 为默认 shell。
    • 若要阻止用户调度作业,添加到 /etc/cron.deny 文件。
  3. 数据与应用安全
    • 分离用户数据和系统数据,将 /home 目录单独分区。
    • 限制应用访问范围,使用 chroot 程序。
    • 对磁盘数据加密,使用 LUKS 功能。
  4. 网络安全
    • 阻止攻击者,将其 IP 地址添加到 /etc/hosts.deny 文件。
    • 禁用不必要的网络服务,如 FTP 服务。

四、Linux 系统分析与修复相关知识

4.1 网络相关分析工具

  • 网络套接字 :网络套接字是网络连接两个端点中的一个,位于本地系统,绑定到特定端口,使用 IP 地址和端口号的组合。
  • 网络延迟测试工具 :iperf、ping 和 traceroute 实用程序可帮助测试网络高延迟问题以确定原因。
  • 路由器数据包查看工具 :mtr、tracepath 和 traceroute 实用程序可查看路由器数据包在特定网络段的传输情况,隔离可能丢弃数据包的路由器。
  • 名称服务器测试工具 :nslookup 实用程序可与 time 命令一起使用,测试新名称服务器是否更高效(更快)。

4.2 系统性能分析工具

  • I/O 等待统计 :iostat 命令可显示 I/O 等待,即处理器等待磁盘 I/O 的时间。
  • I/O 调度器选择
    | I/O 调度器 | 适用场景 |
    | ---- | ---- |
    | deadline | 适用于需要增加数据库 I/O、降低整体 I/O 延迟、使用 SSD 或实时应用的场景 |
    | cfq | 适用于需要更平衡 I/O 处理或系统有多处理器的场景 |
    | noop | 适用于使用 SSD 但需要较少 CPU 使用率的场景 |
  • CPU 负载平均查看 :uptime 命令可显示 1 分钟、5 分钟和 15 分钟的 CPU 负载平均值。
  • 处理器性能长期查看 :sar 实用程序是查看系统处理器性能随时间变化的最佳工具,它使用 sadc 程序存储在 /var/log/sa/ 目录的数据。
  • 交换空间查看 :swapon - s 命令可查看交换空间元素的类型、名称和优先级。

4.3 系统分析操作流程 mermaid 流程图

graph LR
    A[开始] --> B{选择分析类型}
    B --> |网络分析| C[使用 iperf、ping 等工具测试延迟]
    B --> |系统性能分析| D[选择性能指标]
    D --> |I/O 等待| E[使用 iostat 命令查看]
    D --> |I/O 调度器| F{根据场景选择调度器}
    D --> |CPU 负载| G[使用 uptime 命令查看]
    D --> |处理器性能长期| H[使用 sar 工具查看]
    D --> |交换空间| I[使用 swapon - s 命令查看]
    C --> J{是否发现问题}
    J --> |是| K[进行相应修复]
    J --> |否| L[结束]
    E --> M{是否正常}
    M --> |否| K
    M --> |是| L
    F --> N{是否合适}
    N --> |否| K
    N --> |是| L
    G --> O{是否正常}
    O --> |否| K
    O --> |是| L
    H --> P{是否正常}
    P --> |否| K
    P --> |是| L
    I --> Q{是否正常}
    Q --> |否| K
    Q --> |是| L
    K --> L

五、日志服务操作细节补充

5.1 rsyslogd 优先级设置示例

rsyslogd 应用通过配置来确定日志记录的优先级。例如,要记录所有内核事件消息在 warn、alert 或 emerg 严重级别,可在 rsyslog.conf 配置文件中进行如下设置:

kern.warn;kern.alert;kern.emerg /var/log/kernel_warnings.log

上述配置表示将内核的警告、警报和紧急级别的日志记录到 /var/log/kernel_warnings.log 文件中。

5.2 systemd - journald 配置操作步骤

5.2.1 设置 Storage 参数
  • 设置为 persistent
    • 打开 /etc/systemd/journald.conf 文件。
    • 找到 Storage 行,将其值改为 persistent。
    • 保存文件后,重启 systemd - journald 服务:
systemctl restart systemd - journald
  • 设置为 auto :同样在 /etc/systemd/journald.conf 文件中,将 Storage 值改为 auto,保存文件并重启服务。
  • 设置为 volatile :把 Storage 值设为 volatile,保存并重启服务。
5.2.2 journalctl 过滤示例

使用 OBJECT_PID 匹配按应用进程 ID(PID)过滤事件消息,例如要过滤 PID 为 1234 的应用相关事件消息,可使用以下命令:

journalctl _PID=1234

六、防火墙操作细节拓展

6.1 iptables 阻止 ping 命令示例

若要阻止 ping 协议的数据包且不发送拒绝消息,可使用以下 iptables 命令:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

上述命令将在 INPUT 链中添加一条规则,当接收到 ICMP 的 echo - request(即 ping 请求)数据包时,直接丢弃该数据包。

6.2 UFW 防火墙操作示例

6.2.1 显示规则编号

使用以下命令显示 UFW 防火墙的 ACL 规则及其关联编号:

sudo ufw status numbered
6.2.2 阻止 OpenSSH 连接

使用以下命令阻止所有传入和传出的 OpenSSH 连接且不发送阻止消息:

sudo ufw reject OpenSSH

6.3 IPset 操作步骤

6.3.1 创建 IPset
ipset create BlockThem hash:ip

上述命令创建了一个名为 BlockThem 的 IPset,类型为 hash:ip。

6.3.2 添加新 IP 地址
ipset add BlockThem 192.168.1.100

此命令将 IP 地址 192.168.1.100 添加到 BlockThem IPset 中。

6.3.3 保存 IPset 配置
ipset save BlockThem -f /etc/ipset.conf

该命令将 BlockThem IPset 的当前配置保存到 /etc/ipset.conf 文件中。

七、安全实践操作详细流程

7.1 设置 nologin 为默认 shell

  • 打开 /etc/passwd 文件。
  • 找到要限制的用户账户行,例如用户名为 testuser 的行:
testuser:x:1001:1001::/home/testuser:/bin/bash
  • 将 /bin/bash 改为 /sbin/nologin:
testuser:x:1001:1001::/home/testuser:/sbin/nologin
  • 保存文件,之后该用户登录时将收到无法访问系统的消息。

7.2 分离 /home 目录到单独分区

7.2.1 创建新分区

使用 fdisk 或 parted 等工具在新磁盘上创建分区。例如,使用 fdisk:

fdisk /dev/sdb

按照提示创建新分区。

7.2.2 格式化分区
mkfs.ext4 /dev/sdb1

将新分区格式化为 ext4 文件系统。

7.2.3 挂载分区
  • 创建挂载点:
mkdir /mnt/new_home
  • 挂载分区:
mount /dev/sdb1 /mnt/new_home
  • 复制 /home 目录下的所有文件到新分区:
cp -a /home/. /mnt/new_home/
  • 卸载原 /home 目录:
umount /home
  • 编辑 /etc/fstab 文件,添加新分区挂载信息:
/dev/sdb1 /home ext4 defaults 0 0
  • 挂载新的 /home 目录:
mount /home

7.3 使用 chroot 限制应用

7.3.1 创建 chroot 环境
mkdir -p /chroot/app
7.3.2 复制必要文件和库
cp /bin/bash /chroot/app/bin/
cp /lib64/ld - linux - x86 - 64.so.2 /chroot/app/lib64/

根据应用需求复制其他必要的文件和库。

7.3.3 运行应用
chroot /chroot/app /bin/bash

在 chroot 环境中运行应用。

八、系统分析操作详细指南

8.1 网络延迟测试操作步骤

8.1.1 使用 iperf 测试
  • 在服务器端启动 iperf 服务:
iperf -s
  • 在客户端测试:
iperf -c <服务器 IP 地址>
8.1.2 使用 ping 测试
ping <目标 IP 地址>

通过观察响应时间判断网络延迟情况。

8.1.3 使用 traceroute 测试
traceroute <目标 IP 地址>

查看数据包经过的路由器和每个路由器的延迟情况。

8.2 系统性能分析操作步骤

8.2.1 使用 iostat 查看 I/O 等待
iostat

命令输出中会显示 I/O 等待相关信息。

8.2.2 选择 I/O 调度器
  • 查看当前 I/O 调度器:
cat /sys/block/sda/queue/scheduler
  • 更改 I/O 调度器,例如改为 deadline:
echo deadline > /sys/block/sda/queue/scheduler
8.2.3 使用 sar 查看处理器性能
  • 安装 sysstat 包(如果未安装):
yum install sysstat
  • 查看处理器性能:
sar -u

8.3 交换空间查看操作步骤

使用 swapon - s 命令查看交换空间元素的类型、名称和优先级:

swapon -s

命令输出会显示交换空间的详细信息。

九、总结表格

类别 关键工具/方法 主要功能
日志服务 syslog、rsyslogd、systemd - journald、journalctl 记录和管理系统日志
防火墙 firewalld、iptables、UFW、DenyHosts、Fail2Ban、IPset 控制网络数据包进出,保护系统安全
安全实践 Kerberos、生物识别、LDAP、nologin、chroot、LUKS 身份认证、用户限制、数据安全保护
系统分析 iperf、ping、traceroute、mtr、tracepath、nslookup、iostat、sar、swapon - s 网络延迟测试、系统性能分析

十、操作流程 mermaid 流程图(综合)

graph LR
    A[开始] --> B{选择操作类型}
    B --> |日志服务| C[配置日志协议和应用]
    B --> |防火墙| D[选择防火墙并配置规则]
    B --> |安全实践| E[选择身份验证和安全措施]
    B --> |系统分析| F[选择分析工具和指标]
    C --> G[设置日志优先级和存储]
    D --> H[设置访问控制和状态跟踪]
    E --> I[实施用户限制和数据保护]
    F --> J[进行网络和性能测试]
    G --> K{是否配置成功}
    H --> L{是否规则生效}
    I --> M{是否达到安全目标}
    J --> N{是否发现问题}
    K --> |是| O[完成日志配置]
    K --> |否| C
    L --> |是| P[完成防火墙配置]
    L --> |否| D
    M --> |是| Q[完成安全设置]
    M --> |否| E
    N --> |是| R[进行问题修复]
    N --> |否| S[完成系统分析]
    R --> F
    O --> T[结束]
    P --> T
    Q --> T
    S --> T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值