如何在 Fedora 18 上重新启用 iptables?

Que*_*low 3 fedora iptables firewalld

FirewallD是 Fedora 18 中的默认防火墙。我已经使用iptables 了很长时间并且有一个自定义配置,我需要它来记录 ip 流量。我不习惯新的图形界面,它似乎缺少旧图形界面中的许多功能,可以轻松加载。

我尝试使用以下命令重新启用旧的 iptables:

# systemctl stop firewalld.service
# systemctl start iptables.service
# systemctl start ip6tables.service
Run Code Online (Sandbox Code Playgroud)

消息日志显示:

systemd 1 使用 iptables 启动 IPv4 防火墙。
systemd 1 使用 ip6tables 启动 IPv6 防火墙。

但是从systemctl -t service -a,我可以看到尽管已加载,但它们仍然处于非活动状态和死亡状态。

不过,我尝试加载自定义配置

iptables-restore < iptables.conf
Run Code Online (Sandbox Code Playgroud)

但收到了一系列警告:

警告:状态匹配已过时。请改用 conntrack。
警告:状态匹配已过时。请改用 conntrack。
警告:状态匹配已过时。请改用 conntrack。
警告:状态匹配已过时。请改用 conntrack。
警告:状态匹配已过时。请改用 conntrack。

我应该怎么做才能让 iptables 恢复工作?

gol*_*cks 7

在我看来,这是因为 10 月份推出了新版本的 iptables。-m state --state已被淘汰,取而代之-m conntrack --ctstate。因此,“状态匹配已过时。改用 conntrack。”

http://forums.gentoo.org/viewtopic-t-940302-start-0.html

http://blog.yjl.im/2012/11/iptables-state-match-is-obsolete-use.html

“conntrack”在我的手册页(1.4.14,不是最新的):

conntrack 该模块与连接跟踪结合使用时,允许访问此数据包/连接的连接跟踪状态。

[!] --ctstate statelist statelist 是要匹配的连接状态的逗号分隔列表。下面列出了可能的状态。

[...]

--ctstate 的状态:

INVALID 意味着数据包与没有已知连接相关联

NEW 意味着数据包已经开始了一个新的连接,或者与一个在两个方向都没有看到数据包的连接相关联,和

ESTABLISHED 意味着数据包与一个在两个方向都看到数据包的连接相关联,

RELATED 表示数据包正在启动新连接,但与现有连接相关联,例如 FTP 数据传输或 ICMP 错误。

[...]

感谢您对此的提醒,顺便说一句。