当前位置:首页 > 技术知识 > 正文内容

探究 CentOS 7 下 iptables 和 firewalld 切换过程中,谁主沉浮

maynowei8个月前 (08-23)技术知识61

背景

最近需要开发一个 iptables 的可视化管理平台,研究了一下 iptables 和 firewalld 这两个防火墙。

CentOS 6 上 iptables 作为默认防火墙,这个比较好控制。对于 CentOS7 中,这两个防火墙之间切换时,到底谁起主要作用呢?又怎么控制规则呢?

本文来探讨这个问题:

  1. firewalld 底层用的是 iptables ,所以能不能统一成 iptables 一种防火墙呢?
  2. firewalld 启动后,iptables 还生效吗?不生效
  3. firewalld 启动后,再关闭,iptables 还有规则吗?没有了
  4. 切换 firewalld 后再切回到 iptables ,怎么使旧规则再生效?切换之前 iptables-save 备份规则,切回 iptables 后再 iptabels-restore 恢复规则。
  5. firewalld 服务未启用,且 iptables 服务也为 inactive ,iptables 规则还生效吗?生效

本文按上述步骤来验证 CentOS 7 下两个防火墙的切换过程。

关闭 firewalld

第一步,执行 systemctl stop firewalld 命令,关闭 firewalld 服务。
第二步,执行 iptables -F ,清空 iptables 规则。
第三步,添加一条阻断规则 iptables -t filter -I INPUT -s '192.168.xx.xx' -j REJECT

第四步,在目标源机器上 ping 当前主机


关闭 firewalld 后,iptables 生效。

启动 firewalld

启动 firewalld 后观察目标机器的 ping 的结果如下:


此时查看 iptables,有一堆 firewalld 赋予的默认的规则 :

再关闭 firewalld

再关闭 firewalld 服务,此时规则失效,目标机器的 ping 能够联通,此时查看 iptables 规则列表,里面是空白的:


由此可见,firewalld 启动后,会以自己的配置添加规则到 iptables 表中,iptables 原有的旧规则会被丢弃。

启示录

第一点,iptables 是 firewalld 背后工具,就算它的状态是未启用的,只要 firewalld 没有启用,iptables 就是默认的守护神,跟它自己的服务状态没有关系。

第二点,切换 firewalld 的过程中,要想保留 iptables 的规则,以便下次启用 iptables 时继续使用,可以先用 iptables-save > xxx 备份,再用 iptables-restore < xxx 还原。

相关文章

微软明年要停止SQL Server 2005的技术支持了

站长之家(Chinaz.com)12月28日消息据外媒消息称,微软将于明年停止为SQL Server 2005提供技术支持,即不再为其提供新的安全补丁、新功能、应用升级等服务。且表示在停止技术支持后,...

Android之自定义ListView(一)(android 自定义view绘制流程)

PS:自定义View是Android中高手进阶的路线.因此我也打算一步一步的学习.看了鸿洋和郭霖这两位大牛的博客,决定一步一步的学习,循序渐进.学习内容:1.自定义View实现ListView的Ite...

C# 中的多线程同步机制:lock、Monitor 和 Mutex 用法详解

在多线程编程中,线程同步是确保多个线程安全地访问共享资源的关键技术。C# 提供了几种常用的同步机制,其中 lock、Monitor 和 Mutex 是最常用的同步工具。本文将全面介绍这三种同步机制的用...

Oracle数据库云服务系列新增前所未有的企业级功能

新推出的关键任务型功能包括:实现容错可用性和按需可扩展性的集群;零数据丢失灾难恢复;Oracle数据库Exadata云服务。甲骨文还宣布推出一项最新免费数据库云服务,数据库管理员和开发人员通过该服务可...

Oracle工具PLSQL登录时提示初始化失败,无法锁定OCI.dll错误解决

报错信息: (没有登录)-PL/SQL Developer Initialization error 无法锁定OCI dll OracleHomeKey: OracleHomeDir:E\instan...

Java集合框架:总结(java集合框架是什么?说出一些集合框架的优点)

Java集合框架这个系列做了一个整理,主要包括:Map系:HashMap, LinkedHashMap, TreeMap, WeakHashMap, EnumMap;List系:ArrayList,...