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 安全措施操作列表
- 身份验证选择 :根据需求选择合适的身份验证方法,如 Kerberos 适用于需要单一登录票据的场景,生物识别适用于对物理特征认证有需求的场景。
-
用户限制
:
- 若要限制特定用户登录,设置 nologin 为默认 shell。
- 若要阻止用户调度作业,添加到 /etc/cron.deny 文件。
-
数据与应用安全
:
- 分离用户数据和系统数据,将 /home 目录单独分区。
- 限制应用访问范围,使用 chroot 程序。
- 对磁盘数据加密,使用 LUKS 功能。
-
网络安全
:
- 阻止攻击者,将其 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
超级会员免费看
2279

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



