Linux iptables命令实战教程与常用配置示例
简介 在本实验中,你将学习如何使用 `iptables` 命令。`iptables` 是 Linux 系统中常用且功能强大的防火墙管理工具,主要用于控制和管理服务器或主机上的网络流量。你将先了解 `iptables` 的基础结构与核心概念,包括常见的表(tables)和内置链(chains)。
## 简介
在本实验中,你将学习如何使用 `iptables` 命令。`iptables` 是 Linux 系统中常用且功能强大的防火墙管理工具,主要用于控制和管理服务器或主机上的网络流量。你将先了解 `iptables` 的基础结构与核心概念,包括常见的表(tables)和内置链(chains)。随后,你将学习多种常用的 `iptables` 命令,例如查看当前防火墙规则、添加新规则以及删除已有规则。最后,你还将进一步掌握更高级的 `iptables` 配置方法,以满足实际网络安全与访问控制需求。
> [Linux 命令速查表](https://linux-commands.labex.io/)
## 理解 iptables 的基础知识
在这一步中,你将学习 Linux 中 `iptables` 防火墙的基础概念。`iptables` 是 Linux 网络安全管理中非常重要的工具,可以帮助你对系统网络流量进行精细化控制与过滤。
首先,我们来了解 `iptables` 的基本结构。`iptables` 由不同的表(tables)组成,每张表都包含一组内置链(chains),用于在不同的数据包处理阶段执行规则。最常用的表包括:
- `filter`:用于过滤网络数据包,决定流量是被允许还是被拦截。
- `nat`:用于网络地址转换(Network Address Translation),常见于端口转发、地址映射或伪装(masquerading)场景。
- `mangle`:用于对数据包进行特殊修改,例如设置 IP 头中的服务类型(ToS,Type of Service)字段。
每张表中通常都包含若干内置链,例如 `INPUT`、`OUTPUT` 和 `FORWARD`。它们分别对应数据包进入本机、离开本机以及经过本机转发时的处理流程。
下面来看几条最基础、也是最常用的 `iptables` 命令:
```bash
## 列出现有的全部规则
sudo iptables -L
## 列出指定表(例如 filter)中的规则
sudo iptables -t filter -L
## 在 INPUT 链中新增一条规则,拦截端口 80 的流量
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
## 从 INPUT 链中删除一条规则
sudo iptables -D INPUT 1
## 保存当前的 iptables 配置
sudo iptables-save > ~/project/iptables-rules.txt
```
示例输出:
```text
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW,RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state NEW,RELATED,ESTABLISHED
DROP tcp -- anywhere anywhere dport 80
```
在上面的示例中,我们先查看了当前已有的 `iptables` 规则,然后在 `INPUT` 链中添加了一条新规则,用于阻止访问端口 80 的 TCP 流量,最后又删除了该规则。除此之外,我们还将当前的 `iptables` 配置保存到了文件中,便于后续备份、恢复或排查问题。
## 使用 iptables 管理防火墙规则
在这一步中,你将学习如何使用 `iptables` 管理 Linux 防火墙规则。内容包括规则的查看、添加、删除以及当前配置的保存。
首先,我们先列出当前系统中的防火墙规则:
```bash
sudo iptables -L
```
示例输出:
```text
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW,RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state NEW,RELATED,ESTABLISHED
DROP tcp -- anywhere anywhere dport 80
```
接下来,我们向 `INPUT` 链中添加一条新规则,允许 SSH 流量通过,也就是开放 22 端口:
```bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```
如果要删除之前添加的拦截 80 端口的规则,可以使用以下命令:
```bash
sudo iptables -D INPUT -p tcp --dport 80 -j DROP
```
最后,我们将当前的 `iptables` 防火墙配置保存到文件中:
```bash
sudo iptables-save > ~/project/iptables-rules.txt
```
该命令会将当前系统中的 `iptables` 规则保存到 `~/project` 目录下的 `iptables-rules.txt` 文件中,方便后续查看或恢复配置。
## 实现高级 iptables 配置
在最后一步中,你将学习一些更高级的 `iptables` 配置方法,例如端口转发和 NAT(网络地址转换),这也是 Linux 防火墙和网络管理中的常见应用场景。
首先,我们来配置端口转发,将一个端口的流量重定向到另一个端口。例如,将本地机器 8080 端口的流量转发到 80 端口:
```bash
## 启用 IP 转发
sudo sysctl -w net.ipv4.ip_forward=1
## 添加端口转发规则
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:80
```
完成后,所有到达系统 8080 端口的 TCP 流量都会被转发到本机的 80 端口。
接下来,我们再配置一个简单的 NAT 规则,用于伪装本地网络发出的出站流量:
```bash
## 为默认接口添加伪装规则
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
这条规则会将本地网络的所有出站流量通过外部网络接口进行伪装处理,这里假设默认网络接口为 `eth0`。
最后,我们将当前的高级 `iptables` 配置保存到文件中:
```bash
sudo iptables-save > ~/project/iptables-advanced-rules.txt
```
这样就可以把当前的高级防火墙规则保存到 `~/project` 目录下的 `iptables-advanced-rules.txt` 文件中,方便后续部署与维护。
## 总结
在本实验中,你系统学习了 Linux 中 `iptables` 防火墙的核心知识,包括其基本结构、常见表(tables)以及内置链(chains)的作用。你还掌握了多种常用的 `iptables` 命令,例如查看现有规则、添加防火墙规则、删除指定规则以及保存当前配置。
此外,你还进一步了解了如何通过 `filter` 表实现数据包过滤、通过 `nat` 表完成网络地址转换,以及通过 `mangle` 表对数据包进行特殊处理。梳理完这些知识点后,你已经具备了使用 `iptables` 进行 Linux 防火墙配置、网络访问控制和基础安全管理的能力。
来源:https://labex.io/zh/tutorials/linux-linux-iptables-command-with-practical-examples-422744
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。
相关推荐
补充同频道和同主题内容,方便继续浏览更多相关内容。
同类最新
继续查看同栏目最近更新的文章。
DDoS攻击的三大主要形式:原理、特征与防御重点
DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。
如何有效预防和缓解DDoS攻击:5大核心策略详解
面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。
DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。
常见DDoS攻击类型详解:原理、特征与防御策略
本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。
如何有效抵御DDOS攻击:4种核心防护方案解析
面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。
