防火墙与网络配置 — 完整版
---
一、Linux系统防火墙
1.1 什么是防火墙
防火墙是网络安全设备/软件,用于监控和控制进出网络的数据流量。
核心原理:
- 根据预设的安全规则,判断每一个数据包是否允许通行
- 规则可以基于:IP地址、端口号、协议类型、方向等
- 目的:保护内部网络免受外部攻击,同时允许合法通信
常见规则类型:
| 规则类型 | 说明 | 示例 |
|---|---|---|
| 允许IP | 放行指定IP的流量 | 允许 192.168.1.100 访问 |
| 拒绝IP | 阻止指定IP的流量 | 拒绝 10.0.0.50 所有访问 |
| 允许端口 | 放行指定端口的流量 | 允许 80(HTTP)、443(HTTPS) |
| 拒绝端口 | 阻止指定端口的流量 | 拒绝 3306(MySQL) 外部访问 |
---
1.2 CentOS防火墙 (firewalld)
1.2.0 firewalld简介
- CentOS 7及以上默认防火墙为 firewalld
- firewalld 是对 iptables 的封装,提供了更友好的管理接口
- 支持区域(zone)概念,不同区域可以有不同的规则集
- 默认开机自启动
# 查看firewalld版本
firewall-cmd --version
# 输出示例:2.2.5
# 查看防火墙运行状态
systemctl status firewalld
# 输出示例:
# ● firewalld.service - firewalld - dynamic firewall daemon
# Active: active (running) since ...命令作用:
- 使用 systemctl 对
firewalld服务执行status操作:启动、停止、重启、查看状态或设置开机自启。
执行结果:
- 成功后应以该命令实际输出、生成的文件或目标服务状态为准;失败时先阅读终端报错,再核对命令参数和运行环境。
- 成功后会显示服务是否运行、主进程、最近日志和失败原因。
关键参数:
注意事项:
基本管理命令:
| 命令 | 作用 | 说明 |
|---|
| 对比项 | restart | reload |
|---|---|---|
| 过程 | 先关闭服务,再启动服务 | 不关闭服务,重新加载配置文件 |
| 影响 | 短暂中断,现有连接会断开 | 不中断服务,现有连接保持 |
| 适用场景 | 配置出错需要重置时 | 仅修改了规则需要生效时 |
| 推荐程度 | 一般不推荐 | 推荐使用 |
案例:nginx服务访问测试
**关键参数:**
**基本语法:**富规则语法:
注意事项:
ufw基本操作:
**ufw规则配置:**
ufw规则优先级:
---
| 对比项 | firewalld (CentOS) | ufw (Ubuntu) |
|---|---|---|
| 默认系统 | CentOS 7+、RHEL 7+ | Ubuntu、Debian |
| 复杂度 | 功能强大,配置复杂 | 简单易用,适合新手 |
| 区域概念 | 支持区域(zone)管理 | 不支持区域 |
| 富规则 | 支持富规则,功能丰富 | 语法简单,功能相对有限 |
| 配置方式 | 命令行 + XML配置文件 | 命令行 + 配置文件 |
| 永久规则 | `--permanent` + `--reload` | 直接写入配置文件 |
| 图形界面 | firewall-config | gufw |
| 规则优先级 | 通过富规则控制 | `insert` 命令控制 |
| 适用场景 | 企业服务器、复杂网络 | 个人服务器、简单网络 |
---
**方式1:ifconfig命令**
注意事项:
**方式3:nmcli命令(查看详细网络信息)**
查看IP命令对比:
| 命令 | 是否默认安装 | 信息详细程度 | 推荐程度 |
|---|
---
ping命令用于测试网络连通性,通过发送ICMP数据包检测目标主机是否可达。
#
**注意事项:**
[connection] id=ens33 uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx type=ethernet autoconnect=true interface-name=ens33
[ipv4] method=manual address1=192.168.88.100/24,192.168.88.2 dns=8.8.8.8;114.114.114.114;
[ipv6] method=disabled
**注意事项:**
注意事项:
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
**top界面说明:**
**CPU各项说明:**
| 指标 | 含义 | 正常范围 |
|---|---|---|
**top交互快捷键:**
| 快捷键 | 功能 |
|---|---|
| `1` | 显示每个CPU核心的使用情况 |
**注意事项:**
注意事项:
**内存各列说明:**
| 列名 | 含义 | 说明 |
|---|---|---|
| buff/cache | 缓冲/缓存 | 内核缓冲区和页面缓存 |
**重要提示:**
注意事项:
crontab是Linux下的定时任务管理工具,可以按照设定的时间自动执行命令或脚本。
基本语法:
五个时间字段说明:
| 字段 | 范围 | 说明 |
|---|---|---|
| 分钟 | 0-59 | 第几分钟执行 |
| 小时 | 0-23 | 第几小时执行 |
| 日期 | 1-31 | 第几号执行 |
| 月份 | 1-12 | 第几月执行 |
| 星期 | 0-7 | 星期几执行(0和7都是周日) |
四个特殊符号:
| 符号 | 含义 | 示例 |
|---|---|---|
* | 任意值 | * * * * * 每分钟 |
- | 范围 | 1-5 表示1到5 |
/ | 间隔频率 | */5 每隔5个单位 |
, | 列举多个值 | 1,3,5 表示1、3、5 |
crontab管理命令:
**常见定时任务示例:**
注意事项:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
**查看定时任务执行日志:**
注意事项:
nohup命令可以让程序在用户退出登录后继续运行,常用于后台执行长时间任务。
基本语法:
**文件描述符说明:**
| 文件描述符 | 名称 | 说明 |
|---|---|---|
| 0 | stdin | 标准输入 |
| 1 | stdout | 标准输出 |
| 2 | stderr | 标准错误 |
**重定向符号:**
| 符号 | 说明 |
|---|---|
| `>` | 覆盖写入 |
| `>>` | 追加写入 |
| `2>&1` | 将标准错误重定向到标准输出 |
server.serve_forever()
注意事项:
**screen常用快捷键:**
| 快捷键 | 功能 |
|---|---|
**实战案例:**
注意事项:
要求:
完整操作步骤:
**注意事项:**
| 需求 | firewalld (CentOS) | ufw (Ubuntu) |
|---|---|---|
| 查看状态 | `firewall-cmd --list-all` | `ufw status` |
| 开启防火墙 | `systemctl start firewalld` | `ufw enable` |
| 关闭防火墙 | `systemctl stop firewalld` | `ufw disable` |
| 放行端口 | `firewall-cmd --add-port=80/tcp --permanent` | `ufw allow 80/tcp` |
| 放行服务 | `firewall-cmd --add-service=http --permanent` | `ufw allow http` |
| 移除规则 | `firewall-cmd --remove-port=80/tcp --permanent` | `ufw delete allow 80/tcp` |
| IP限制 | `firewall-cmd --add-rich-rule='...'` | `ufw allow from IP to any port 80` |
| 拒绝IP | `firewall-cmd --add-rich-rule='... drop'` | `ufw deny from IP` |
| 生效配置 | `firewall-cmd --reload` | 直接生效 |
| 需求 | 命令 |
|---|---|
| 查看IP | `ip address` 或 `nmcli device show` |
| 配置静态IP | `nmcli connection modify 名 ipv4.method manual ...` |
| 重启网络 | `nmcli connection down/up 名` |
| 测试连通性 | `ping -c 4 目标` |
| 修改主机名 | `hostnamectl set-hostname 名` |
| 需求 | 命令 |
|---|---|
| CPU/进程 | `top` 或 `htop` |
| 系统负载 | `uptime` |
| 磁盘使用 | `df -Th` |
| 内存使用 | `free -h` |
| 定时任务 | `crontab -l` / `crontab -e` |
| 后台运行 | `nohup 命令 &` |
| 终端复用 | `screen -S 名` / `screen -r 名` |