在Debian系统中,iptables
是一个用于配置Linux内核防火墙(netfilter)规则的工具。通过iptables
,你可以管理不同的链(chains),这些链定义了数据包在网络栈中的处理流程。以下是一些常用的iptables
命令和概念,帮助你管理链:
INPUT
:处理进入本机的数据包。OUTPUT
:处理从本机发出的数据包。FORWARD
:处理经过本机转发的数据包。PREROUTING
:用于目标地址转换(DNAT)。POSTROUTING
:用于源地址转换(SNAT)。查看所有链的规则:
sudo iptables -L -n -v
-L
:列出规则。-n
:以数字形式显示地址和端口。-v
:详细模式,显示更多信息。查看特定链的规则:
sudo iptables -L INPUT -n -v
添加规则:
INPUT
链的末尾添加一条规则,拒绝所有来自特定IP的流量:sudo iptables -A INPUT -s 192.168.1.100 -j DROP
INPUT
链的开头添加一条规则,允许SSH连接:sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
删除规则:
INPUT
链中第一条规则:sudo iptables -D INPUT 1
sudo iptables -L INPUT --line-numbers -n -v
sudo iptables -D INPUT <规则编号>
清空所有链的规则:
sudo iptables -F
-F
:清空指定链的所有规则。-t <表>
:指定表(如filter
、nat
、mangle
)。保存规则:
Debian系统通常使用iptables-persistent
来保存和恢复iptables
规则。
iptables-persistent
:sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
假设你想允许来自特定IP的SSH连接,并拒绝所有其他SSH连接,可以这样做:
允许特定IP的SSH连接:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
拒绝所有其他SSH连接:
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
通过这些命令,你可以灵活地管理Debian系统中的iptables
链和规则。记得在修改防火墙规则时要小心,以免意外阻止必要的网络流量。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>