在添加新规则之前,iptables 是不是需要刷新?
Posted
技术标签:
【中文标题】在添加新规则之前,iptables 是不是需要刷新?【英文标题】:Is a flush required for iptables before adding new rules?在添加新规则之前,iptables 是否需要刷新? 【发布时间】:2015-03-15 19:24:26 【问题描述】:我对网络很陌生,我正在尝试使用 iptables 为 LAN 访问(SSH 和 HTTP)的服务器做一些简单的配置。如果这很重要,我正在使用 CentOS7。 我一直在学习表单教程,他们似乎建议作为刷新所有现有规则的第一步。 我正在安装一个新的 CentOS,我有几个终端窗口的规则,如果我杀了它们,我绝对不知道尝试恢复它们,而且我绝对不知道它们做了什么,所以我害怕如果我杀了他们,我不明白的网络问题将开始发生,否则我将打开我的服务器面临安全风险。 在这些教程中,他们不会费心解释为什么要刷新当前规则。 只要没有与我最后添加的规则冲突的其他规则,我是否可以不刷新? 如果我做了刷新,只要我不使用 iptable 的保存,一切都会在重启时恢复吗?
【问题讨论】:
服务器配置问题属于Server Fault 【参考方案1】:不需要刷新当前规则,但有时最好从头开始。即使不想破坏当前的配置,完全从头开始重建它可能会更有益。也就是说,不仅考虑到结果配置的简单性和效率,还考虑到在尝试提出正确规则时的心理。
如果选择保留当前配置并在此基础上进行构建,则应牢记规则的顺序很重要。 -I
参数可用于将新规则插入到指定链中的特定位置,如iptables
手册页所述:
-I, --insert chain [rulenum] 规则规范
在选定的链中插入一个或多个规则作为给定的规则编号。因此,如果规则编号为 1,则将一条或多条规则插入到链的头部。如果没有指定规则编号,这也是默认值。
在修改任何内容之前,建议将当前配置保存到文件中:
iptables-save > <filename>
这个文件以后可以用来恢复原来的配置:
iptables-resotre < <filename>
使用iptables
命令创建的规则存储在内存中。如果在明确声明之前重新启动系统,则当前规则集将丢失。在CentOS7
,这是由:
service iptables save
这个命令行的详细信息可以找到here:
这将执行
iptables
init 脚本,该脚本运行/sbin/iptables-save
程序并写入当前的iptables
配置为/etc/sysconfig/iptables
。现有的/etc/sysconfig/iptables
文件另存为/etc/sysconfig/iptables.save
.下次系统启动时,
iptables
init 脚本会重新应用 通过使用保存在/etc/sysconfig/iptables
中的规则/sbin/iptables-restore
命令。
请注意,在CentOS7
上,引入了firewalld
来管理iptables
。 This answer 解释了如何恢复经典的 iptables
设置。
【讨论】:
以上是关于在添加新规则之前,iptables 是不是需要刷新?的主要内容,如果未能解决你的问题,请参考以下文章