热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos7firewalld防火墙基本使用

Centos7firewalld防火墙基本使用firewalld主要是在centos7以后才作为默认的防火墙管理工具的firewalld有一个zone(域)的概念,每一个zone可

Centos7 firewalld防火墙基本使用

firewalld主要是在centos7以后才作为默认的防火墙管理工具的

firewalld有一个zone(域)的概念,每一个zone可以有自己规则,使用不同的zone就可以过滤不同的网络请求。


1、获取所有的域zones

firewall-cmd --get-zones

image-20220615190918228

输出是 block dmz drop external home internal public trusted work




  • 每个zone说明:


阻塞区域(block):任何传入的网络数据包都将被阻止。

工作区域(work):相信网络上的其他计算机,不会损害你的计算机。

家庭区域(home):相信网络上的其他计算机,不会损害你的计算机。

公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接。

隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。

信任区域(trusted):所有的网络连接都可以接受。

丢弃区域(drop):任何传入的网络连接都被拒绝。

内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。

外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。




  • 域文件就是XML文件


域文件保存在/usr/lib/firewalld/zones/目录下,以XML的形式保存

image-20220616094251107


2、查看默认域zone

firewall-cmd --get-default-zone

如果不进行改变,默认就是public,设置了别的,就是别的

image-20220615191714514


3、查看所有活动的域zones

firewall-cmd --get-active-zones

image-20220615192049966


4、更改默认的域zone

firewall-cmd --set-default-zOne=trusted

image-20220615192208831


5、创建新的域zone

firewall-cmd --permanent --new-zOne=test_zone

创建完后需要加载防火墙才生效firewall-cmd --reload

image-20220615192504486


6、开启端口让外部可以访问

firewall-cmd --permanent --add-port=8080/tcp


  • --permanent 表示永久开启,如果不加,则重启服务器后失效



  • --add-port=8080/tcp 表示外面可以使用8080,且协议是tcp才可以访问进来



  • 开启完后需要加载防火墙才生效firewall-cmd --reload



  • 开启的是默认域zone



可以指定给某个域开启某个端口

firewall-cmd --permanent --zOne=public --add-port=8080/tcp

7、删除端口让外部无法访问

firewall-cmd --permanent --remove-port=8080/tcp

可以指定给某个域删除某个端口

firewall-cmd --permanent --zOne=public --add-port=8080/tcp

删除完后需要加载防火墙才生效firewall-cmd --reload


8、添加一段端口

指定域

firewall-cmd --permanent --add-port=9001-9100/tcp --zOne=public

不指定域默认当前域

firewall-cmd --permanent --add-port=9001-9100/tcp

开启完后需要加载防火墙才生效firewall-cmd --reload


9、开放ip以及ip段

新建永久规则,开放192.168.1.1单个源IP的访问

firewall-cmd --permanent --add-source=192.168.1.1

新建永久规则,开放192.168.1.0/24整个源IP段的访问

firewall-cmd --permanent --add-source=192.168.1.0/24

移除上述规则

firewall-cmd --permanent --remove-source=192.168.1.1

firewall-cmd --permanent --remove-source=192.168.1.0/24

需要加载防火墙才生效firewall-cmd --reload

当然也可以指定域,不过一般都是设置默认域


10、查询端口是否开放

指定域

firewall-cmd --query-port=22/tcp --zOne=public

不指定域默认当前域

firewall-cmd --query-port=22/tcp

image-20220616110445315

输出yes就是开放,no就是不开放


11、显示添加的IP和IP段

指定域

firewall-cmd --list-sources --zOne=public

不指定域默认当前域

firewall-cmd --list-sources

image-20220616111317254


12.显示添加的端口

指定域

firewall-cmd --zOne=public --list-port

不指定域默认当前域

firewall-cmd --list-port

image-20220616105808771


13、添加和删除服务

指定域

firewall-cmd --permanent --zOne=home --add-service=ssh

firewall-cmd --permanent --zOne=home --remove-service=ssh

不指定域默认当前域

firewall-cmd --permanent --add-service=ssh

firewall-cmd --permanent --remove-service=ssh

14、显示添加的服务

指定域

firewall-cmd --zOne=public --list-services

不指定域默认当前域

firewall-cmd --list-services

15、添加多个服务

指定域

firewall-cmd --permanent --zOne=home --add-service={http,https}

不指定域默认当前域

firewall-cmd --permanent --add-service={http,https}

16、查看服务的规则

firewall-cmd --info-service=ssh

image-20220616112059886


17、显示所有配置规则

指定域

firewall-cmd --zOne=public --list-all

不指定域默认当前域

firewall-cmd --list-all

image-20220616105920789


18、配置网卡属于哪个域

firewall-cmd --zOne=home --change-interface=eth0

19、查看某个网卡属于哪个域

查看eth0属于那个域

firewall-cmd --get-zone-of-interface=eth0

image-20220616094819673


20、重新加载防火墙



  • 重新加载防火墙不会中断用户连接

例如:如果用户连接了某个服务,比如ssh,则该用户还可以连接,直到他自己断开,或者无动作超时断开,新的规则把ssh禁用了,则下次断开就连接不了了,该次并不会断开

firewall-cmd --reload

21、添加富规则

例如:要允许来自地址 172.16.70.81/24 的连接访问 ssh 服务,请运行以下命令:

firewall-cmd --zOne=public --add-rich-rule='rule family="ipv4" source address="172.16.70.81/24" service name="ssh" log prefix="ssh" level="info" accept' --permanent

添加完后需要加载防火墙才生效firewall-cmd --reload

image-20220616104945811


22、删除富规则

firewall-cmd --zOne=public --remove-rich-rule='rule family="ipv4" source address="172.16.70.81/24" service name="ssh" log prefix="ssh" level="info" accept' --permanent

删除完后需要加载防火墙才生效firewall-cmd --reload

image-20220616105144703

PS:一般都是先查看防火墙规则,然后直接复制粘贴,进行删除,这样比较方便


23、写在最后

任何修改操作,配置完成后,需要重新装载firewall。或者重新启动firewalld服务。

firewall-cmd --reload
service firewalld restart

24、学习链接:

如何在 Linux 中配置 firewalld 规则

CentOS7防火墙放行或限制指定IP和端口(firewall)



推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有