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

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

maynowei10个月前 (08-23)技术知识94

背景

最近需要开发一个 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 还原。

相关文章

大势所趋:Swift受欢迎度即将赶超Objective C

Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS X和iOS应用程序。不到两年时间,在iOS开发者中Swift语言便凭借着简洁的语法和优秀的特性打动了开发者,之前用于iOS和...

msf系列篇章之七模块详解,黑客必学

1、 mestasploit有很多模块,一共分为七类那如果是kali中自带的msf,它默认的安装路径是在这里。,然后可以看见它这些模块有些相对应的目录。1)、exploits漏洞利用模块,这个模块通常...

惊现!iOS 16.5 kfd 漏洞利用,成功隐藏 Dock 栏

最近!kfd漏洞比较活跃,进展也是很顺利,今天就有大神成功使用 kfd 漏洞实现隐藏 Dock 栏,到底怎么回事?请继续往下看。-- kfd 漏洞说明 --kfd漏洞适合在 iOS 16.2 - 16...

微软宣布SQL Server 2016,2005版将结束支持

IT之家讯 在芝加哥Ignite大会上,微软宣布了SQL Server 2016,并将于今年夏季发布公开预览版。SQL Server是由微软开发的关系型数据库管理系统,用于软件应用请求数据的存储和管理...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...