Linux系统iptables防火墙教程

Linux系统教程

Linux系统iptables防火墙教程

2023-05-08 17:23


                                            




iptables 是Linux操作系统中内置的防火墙工具,可以通过规则配置来控制网络流量。它可以过滤来自不同源地址、目标地址、端口的数据包,并允许或者拒绝进出网络。

本教程将介绍如何使用 iptables 配置一个基本的防火墙,包括开放必要的端口、阻止特定 IP 地址或地址段等。由于 iptables 有很多功能,本教程将只涵盖最常用的配置。

## 安装 iptables

iptables 是 Linux 的内置组件,因此在绝大多数情况下默认已经安装。可以通过以下命令检查 iptables 是否已经安装:

iptables --version

如果输出了版本信息,则说明已安装。如果没有安装,可以通过以下命令安装:

sudo apt-get install iptables

## 配置 iptables 规则

iptables的规则表是一个具有不同链的树状结构。链是规则表中的一个规则序列。每个表都包含至少一个默认链,可用于应用规则。每个链都有一个默认策略,用于标识当前没有任何规则匹配时的处理方式。

以下是用于配置基本 iptables 规则的命令:

### 清除规则

在配置新规则之前,需要先清除已有规则。可以使用以下命令:

sudo iptables -F

sudo iptables -X

其中,`-F` 选项是清除默认链中的所有规则,`-X` 选项是删除在 iptables 内置表中定义的所有非默认链。

### 添加规则

以下是添加基本规则的命令:

sudo iptables -A INPUT -i lo -j ACCEPT

sudo iptables -A OUTPUT -o lo -j ACCEPT

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

上述命令将允许来自本地回环地址的流量,并允许与已建立的连接相关的流量通过。当然,这只是 iptables 规则的基础。如果需要更具体的规则,可以使用以下命令:

sudo iptables -A INPUT -p tcp --dport <port> -j ACCEPT

sudo iptables -A INPUT -s <ip-address> -j DROP

 

第一行的 `<port>` 是要打开的端口号,这将允许来自任何 IP 地址的流量连接到本地计算机。第二行将拒绝来自特定 IP 地址的流量。

## 检查 iptables 规则

可以使用以下命令检查 iptables 规则是否已应用并处于活动状态:

sudo iptables -L

此命令将列出应用的所有 iptables 规则。如果认为有某些规则不正确或要删除某些规则,可以使用以下命令删除已创建的规则:

sudo iptables -D INPUT <rule-number>

sudo iptables -D OUTPUT <rule-number>

`<rule-number>` 是要删除的规则编号。

保存 iptables 规则

默认情况下,iptables 规则在重启后将会被清除。因此,为了确保规则能够在重启后继续工作,需要将其保存。以下是保存 iptables 规则的命令:

sudo iptables-save > /etc/iptables/rules.v4

此命令将 iptables 规则存储到 `/etc/iptables/rules.v4` 文件中。在启动时,iptables 将自动加载这些规则。

结论

iptables 是一种基于 Linux 系统的防火墙工具,适用于各种 Linux 发行版。通过配置 iptables 规则,可以筛选网络流量,并保护 Linux 系统免受恶意攻击。本教程介绍了如何安装、配置和保存 iptables 规则。但是,iptables 有很多复杂的特性和使用场景还需要更深入的学习和了解。