在Debian系统中,iptables
是一个用于配置Linux内核防火墙(netfilter)规则的工具。它允许系统管理员定义规则来过滤流量和NAT(网络地址转换)。iptables
规则被组织成不同的表(tables),每个表包含一组特定的链(chains)。以下是如何管理和操作这些链和表的基本指南:
iptables
有五个内置表:
filter
:默认表,用于控制流量是否被允许通过。nat
:用于网络地址转换(NAT),如源地址转换(SNAT)和目的地址转换(DNAT)。mangle
:用于特殊的数据包修改,比如更改TTL值。raw
:用于配置免除连接跟踪的规则。security
:用于强制访问控制(MAC)规则。每个表包含预定义的链,以及用户自定义的链:
INPUT
:处理进入本机的数据包。FORWARD
:处理通过本机转发的数据包。OUTPUT
:处理从本机发出的数据包。PREROUTING
:用于目标地址转换(DNAT)的规则,在路由决策之前处理数据包。POSTROUTING
:用于源地址转换(SNAT)的规则,在路由决策之后处理数据包。查看所有规则:
sudo iptables -L -n -v
清空所有规则:
sudo iptables -F
删除特定规则:
sudo iptables -D INPUT 1
这将删除INPUT
链中的第一条规则。
添加新规则:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这将添加一条规则,允许进入的SSH连接。
允许已建立的连接:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
保存规则:
sudo iptables-save > /etc/iptables/rules.v4
这将保存IPv4的规则。对于IPv6,使用iptables-save > /etc/iptables/rules.v6
。
恢复规则:
sudo iptables-restore < /etc/iptables/rules.v4
在Debian系统中,iptables
规则默认不会在重启后保留。要使规则持久化,可以使用iptables-persistent
包。
安装iptables-persistent
:
sudo apt-get update
sudo apt-get install iptables-persistent
在安装过程中,系统会提示你是否保存当前的iptables
规则。选择“是”以保存规则。
如果你已经安装了iptables-persistent
,但忘记了保存规则,可以手动保存:
sudo netfilter-persistent save
或者,如果你使用的是IPv6:
sudo netfilter-persistent save --ipv6
请注意,管理防火墙规则可能会影响系统的网络连接和安全性。在进行更改之前,请确保你了解每个命令的作用,并在生产环境中谨慎操作。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>