Iptables 是一个功能强大的防火墙实用程序,用于保护 Linux 系统免受未经授权的网络流量的侵害。它是一个命令行工具,提供灵活且可定制的方式来配置和管理防火墙规则。在本文中,我们将介绍 Iptables 的基础知识,包括一些最常见的防火墙规则和命令。
在我们深入了解 Iptables 的细节之前,有必要了解其工作原理的基础知识。 iptables 基于数据包过滤的概念,包括检查每个传入或传出的数据包,并根据预定义的规则决定是允许还是阻止它。这些规则被组织成链,这些链是适用于数据包在系统旅程的不同阶段的规则集。
Basics
Iptables 命令语法遵循以下基本结构:
|
iptables [-t table] <command> [chain] <rule>
|
-t 选项指定该命令适用的表。默认表是过滤表,用于数据包过滤。其他表包括用于网络地址转换的 nat 和用于数据包修改的 mangle。
以下是一些最常用的 Iptables 命令:
-
-A(追加):将新规则添加到链的末尾。
-
-D(删除):从链中删除一条规则。
-
-I(插入):在链中的特定位置插入新规则。
-
-L(列表):以链的形式列出规则。
-
-F(齐平):删除链中的所有规则。
常见 iptables 规则与命令
现在,让我们看看一些最常用的 Iptables 防火墙规则:
- 阻止特定端口上的传入流量:
|
iptables -A INPUT -p tcp --dport <port number> -j DROP
|
此规则通过将指定端口号添加到端口号的末尾来阻止指定端口号上的所有传入流量。INPUT链并使用DROP行动。
- 允许特定端口上的传入流量:
|
iptables -A INPUT -p tcp --dport <port number> -j ACCEPT
|
此规则通过将指定端口号添加到端口号的末尾来允许传入流量INPUT链并使用ACCEPT行动。
- 阻止到特定 IP 地址的传出流量:
|
iptables -A OUTPUT -d <IP address> -j DROP
|
此规则通过将指定 IP 地址添加到末尾来阻止所有传出流量输出链并使用DROP action.
- 允许传出流量到特定 IP 地址:
|
iptables -A OUTPUT -d <IP address> -j ACCEPT
|
此规则通过将指定 IP 地址添加到末尾来允许传出流量输出链并使用ACCEPT action.
- 阻止来自特定 IP 地址的流量:
|
iptables -A INPUT -s <IP address> -j DROP
|
此规则通过将指定 IP 地址添加到末尾来阻止来自指定 IP 地址的所有传入流量。输入链并使用DROP action.
- 允许来自特定 IP 地址的流量:
|
iptables -A INPUT -s <IP address> -j ACCEPT
|
此规则允许来自指定 IP 地址的传入流量,方法是将其添加到输入链并使用ACCEPT action.
- 阻止除已建立的连接之外的所有传入流量:
|
iptables -A INPUT -m 连线 --ctstate 已确立的,RELATED -j ACCEPT
iptables -A INPUT -j DROP
|
此规则允许已建立连接的传入流量,方法是将其添加到输入链并使用ACCEPT使用 conntrack 模块进行操作。第二条规则将丢弃所有与第一条规则不匹配的传入流量。
- 允许传入 SSH 流量:
|
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
|
该规则允许传入SSH流量,将其添加到末尾输入链并使用ACCEPT使用 tcp 协议和 ssh 端口号进行操作。
- 阻止传入 ICMP 流量:
|
iptables -A INPUT -p icmp -j DROP
|
该规则阻止所有传入ICMP流量,将其添加到末尾输入链并使用DROP使用 icmp 协议进行操作。
- 阻止来自特定国家/地区的所有传入流量:
|
iptables -A INPUT -m geoip --src-cc <country code> -j DROP
|
此规则通过将指定国家/地区添加到末尾来阻止所有传入流量输入链并使用DROP使用 geoip 模块进行操作。
这些只是许多可能的 Iptables 防火墙规则的几个示例。可能性几乎是无限的,必须充分了解网络的需求和潜在威胁才能创建有效的防火墙规则。
总之,Iptables 是一个功能强大的工具,它提供了一种可定制的方式来配置和管理 Linux 系统上的防火墙规则。通过正确的规则和命令,您可以保护您的网络免受未经授权的流量和潜在威胁的影响。