如何使用iptables预先设置规则而不是APPENDs?


65

一个非常基本的问题:如何在IPTABLES上预先设置规则而不是APPEND?

DROP在规则的底部有陈述。我有一个添加新规则的软件,但是在DROP语句后添加规则不是很好。每当我想添加新规则时,都必须刷新表(效率低下)。

有没有一种可以添加规则的方法,即将规则添加到表的顶部而不是底部?

非常感谢。

Answers:


84

使用-I开关:

sudo iptables -I INPUT 1 -i lo -j ACCEPT

这将在INPUT链中的位置#1插入一条规则。


2
ang!你把我击败了18秒...我不够快:(
Yanick Girouard

1
Hehehehehehehehe :)
cjc 2012年

2
@YanickGirourad,哈哈,你打勾了!
cjc 2012年

5
还要注意,使用-I INPUT 1时,不会覆盖任何规则。而是将所有规则上移一个位置。
阿卜杜勒2014年

1
阿卜杜勒的重要说明。
Halsafar '16

19

-I将插入。您可能正在使用-A追加。

您也iptables -I chain rulenum可以将规则插入为“ chain”链中的数字“ rulenum”。 -R chain rulenum可用于替换“链”中链“ rulenum”处的特定规则。 iptables -L -n --line-numbers将在最左侧的列中显示规则编号。


我现在很着急,或者我想查找一下,但是很高兴看到一个示例“链”在这里或链接中如何工作的示例。
PJ Brunet

//,请参阅fedoraproject.org/wiki/…,以获取有关如何正确插入IPTables规则的更多信息。
弥敦道(Nathan Basanese)2016年

2

为了帮助确定添加新规则的行号,我使用iptables-save了将现有规则输出到控制台。

对于初学者,我还可以建议使用Webmin管理您的规则的作弊卡。它非常友好,您可以轻松地手动对列表中的规则进行重新排序。它还将处理基于iptables的redhat vs debian实现中的“轻微”变化。


2
iptables -L --line-numbers平台独立性更高
Sirex

1
我不确定为什么要为此使用webmin(或其他任何东西)。学习命令行方式比使用拐杖要好得多。
Falcon Momot

2

有一个名为的程序iptables-persistent,可将iptable的规则作为OS服务持久保存。此服务包括一个配置文件作为iptables-save导出。

因此,您可以对配置文件中的行进行重新排序,然后重新启动服务。

sudo service iptables-persistent restart

太简单!!!!!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.