iptables防火墙配置
iptables
是 Linux 系统中的一个强大且灵活的命令行工具,用于配置和管理网络防火墙。通过 iptables
,用户可以定义复杂的规则来控制进出系统的数据包流量。以下是 iptables
的基本配置和使用指南。
一、iptables 基本概念
-
表(Tables)
- 描述:
iptables
使用多个表来分类不同类型的规则,每个表包含多个链(Chains)。 - 主要表:
filter
:默认表,用于过滤数据包。nat
:用于网络地址转换(NAT)。mangle
:用于修改数据包。raw
:用于配置数据包的状态跟踪。
- 描述:
-
链(Chains)
- 描述:链是规则的集合,每个链包含一系列的规则。
- 主要链:
INPUT
:处理所有进入本地系统的数据包。OUTPUT
:处理所有本地系统发出的数据包。FORWARD
:处理所有转发的数据包。PREROUTING
:在数据包路由前处理。POSTROUTING
:在数据包路由后处理。
-
规则(Rules)
- 描述:每条规则定义了条件和相应的动作,当数据包匹配条件时,执行相应的动作。
- 主要动作:
ACCEPT
:接受数据包。DROP
:丢弃数据包。REJECT
:拒绝数据包并发送响应信息。LOG
:记录数据包日志。
二、基本命令
-
查看当前规则
sudo iptables -L sudo iptables -L -t nat
-
添加规则
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
删除规则
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
-
插入规则
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
-
保存规则
sudo iptables-save > /etc/iptables/rules.v4
-
加载规则
sudo iptables-restore < /etc/iptables/rules.v4
三、基本配置示例
-
允许特定端口(如SSH)的入站流量
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
允许本地回环接口的流量
sudo iptables -A INPU