修改Iptables中的一行

修改Iptables中的一行

如何修改 iptables 文件(debian)中的以下行?

ACCEPT     all  --  XXX.XXX.XX.X         anywhere            PHYSDEV match --physdev-in vif3.1 

ACCEPT     all  --  YYY.YYY.YY.Y         anywhere            PHYSDEV match --physdev-in vif3.1 

我查了一下https://wiki.debian.org/iptables 我很难弄清楚如何准确地进行此修改。是否可以使用一个命令来完成,或者有一种方法可以暂时“提取” iptables 文件并使用 nano 或 vi 修改它,然后将其放回原位?

答案1

要使用替换该特定规则,iptables您需要首先进行一些调试。

第一个选项是立即替换规则。

1)查看提到的行被放置在什么行号以及哪个CHAIN中。例如:

iptables -L -v -n --line-n

2) 找到该行并根据输出替换它。

iptables -R [CHAIN_NAME] [LINE_NUMBER] -s YYY.YYY.YYY.YYY -m physdev  --physdev-in vif3.1  -j ACCEPT

第二个选项是保存 iptables 规则并修改文件并将其导入。

1)保存规则。

iptables-save > my_ipt-$(date +%F).ipt

2)修改my_ipt-$(date +$F).ipt

3)导入my_ipt-$(date +%F).ipt

iptables-restore < my_ipt-$(date +%F).ipt

注意:$(date +%F)是您保存文件的日期,例如:2013-11-07

检查一切是否如预期

iptables -L -v -n --line-n

答案2

是的,这是可能的: iptables -L CHAIN -n -v --line-numbers给你规则中的索引 iptables -S CHAIN INDEX显示规则

使用 -R CHAIN INDEX 参数进行编辑。

示例: iptables -L Visioconf-OUT -n -v --line-numbers

Chain Visioconf-OUT (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1     719K   49M LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4 prefix "DROP4 Visioconf-OUT "
2     719K   49M DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

iptables -S Visioconf-OUT 2

-A Visioconf-OUT -j 删除

iptables -R Visioconf-OUT 2 -s 1.2.3.4 -j DROP

相关内容