firewalld简介

firewalld 是一款动态防火墙管理器。

firewalld 通过“网络/防火墙”空间的方式,为不同的 网络连接 或 接口 定义其自身的信任等级,通过这种方式达到了动态管理的效果。同时,它支持 IPv4、IPv6 防火墙的设置 、以太网网桥 以及 配置选项可为运行时或永久。另外,它还提供了接口,方便应用添加规则。

默认装载

firewalld 在以下Linux发行版中默认装载:
CentOS 7 或以上
Debian 10 或以上
Fedora 18 或以上
OpenSUSE Leap 15 或以上
Red Hat Enterprise Linux 7 或以上
SUSE Linux Enterprise 15 或以上
上述的发行版,默认启动 firewalld 。而其他一些发行版,(如:Debian 、 Ubuntu)也将 firewalld 纳入仓库,作为选择之一。

以下软件也支持 firewalld 作为防火墙管理工具:
NetworkManager
libvirt
podman
docker ( iptables backend only)
fail2ban

与iptables相比

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念

firewalld跟iptables比起来至少有两大好处:
firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/ip协议也不理解也可以实现大部分功能。

firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。

区域及策略

简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

区域:策略
注:区域是为网卡设置,为哪个区域,就执行其区域所在的策略

trusted:允许所有的数据包
home:拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal:等同于home区域
work:拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public:拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external:拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz:拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block:拒绝流入的流量,除非与流出的流量相关
drop:拒绝流入的流量,除非与流出的流量相关

这么多,密密麻麻的不明白?没关系,通过案例使用你就明白了。

安装与使用

查看firewalld是否安装,我使用的是CentOS7,默认已经安装了,其他发行版本请看以上的默认装载

[root@test2 Packages]# rpm -qf $(which firewalld)
firewalld-0.4.4.4-6.el7.noarch

可以挂载默认装载firewalld系统光盘安装,使用rpm或者yum安装

[root@test2 Packages]# ls | grep firewalld  #包已经放在软件目录下
firewalld-0.4.4.4-6.el7.noarch.rpm
firewalld-filesystem-0.4.4.4-6.el7.noarch.rpm
[root@test2 Packages]# rpm -ivh firewalld-*    #rpm傻瓜式安装
[root@test2 Packages]# yum install -y firewalld-*  #yum傻瓜式安装

通过查看状态,看其是否安装

[root@test2 Packages]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)

启动firewalld

[root@test2 ~]# systemctl start firewalld

firewalld使用

语法:firewalld-cmd 参数

参数及作用
–get-default-zone:查询默认的区域名称
–set-default-zone=<区域名称>:设置默认的区域,使其永久生效
–get-zones:显示可用的区域
–get-services:显示预先定义的服务
–get-active-zones:显示当前正在使用的区域与网卡名称
–add-source=:将源自此IP或子网的流量导向指定的区域
–remove-source=:不再将源自此IP或子网的流量导向某个指定区域
–add-interface=<网卡名称>:将源自该网卡的所有流量都导向某个指定区域
–change-interface=<网卡名称>:将某个网卡与区域进行关联
–list-all:显示当前区域的网卡配置参数、资源、端口以及服务等信息
–list-all-zones:显示所有区域的网卡配置参数、资源、端口以及服务等信息
–add-service=<服务名>:设置默认区域允许该服务的流量
–add-port=<端口号/协议>:设置默认区域允许该端口的流量
–remove-service=<服务名>:设置默认区域不再允许该服务的流量
–remove-port=<端口号/协议> :设置默认区域不再允许该端口的流量
–reload:让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
–panic-on:开启应急状况模式
–panic-off:关闭应急状况模式

状态选项
–state:显示firewalld的状态;
–reload:不中断服务的重新加载;
–complete-reload:中断所有连接的重新加载;
–runtime-to-permanent:将当前防火墙的规则永久保存;
–check-config:检查配置正确性

案例

查看firewalld服务当前所使用的区域

[root@test2 ~]# firewall-cmd --get-default-zone
public  #默认区域

查询网卡在firewalld服务中的区域

[root@test2 ~]# firewall-cmd --get-zone-of-interface=ens33 #等于号后面的是网卡名称,虚拟机为ens33
public

设置默认区域为trusted

[root@test2 ~]# firewall-cmd --set-default-zone=trusted        #等于号后为区域
success

显示可用区域

[root@test2 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接,任何网络连接都将会切断,相当于拔了网卡,远程连接时慎用。

[root@test2 ~]# firewall-cmd --panic-on
success
[root@test2 ~]# firewall-cmd --panic-off
success

查询pubic区域是否允许请求SSH协议的浏览

[root@test2 ~]# firewall-cmd --zone=public --query-service=ssh
yes
--zone=查询区域            --query-service=查询协议

在public区域把FTP协议的请求流量设置为允许,并立即生效

[root@test2 ~]# firewall-cmd --zone=public --query-service=ftp    #FTP流量默认为不允许
no
[root@test2 ~]# firewall-cmd --zone=public --add-service=ftp
success
--zone=操作区域    -add-service=添加服务
[root@test2 ~]# firewall-cmd --zone=public --query-service=ftp   #变为允许
yes

不管设置完什么配置,立即生效需要刷新配置,要不然重启服务或者系统或者会恢复为默认策略

[root@test2 ~]# firewall-cmd --reload
success

在public区域把HTTP协议请求的流量设为永久拒绝,并立即生效

[root@test2 ~]# firewall-cmd --permanent --zone=public --remove-service=http
Warning: NOT_ENABLED: http      #显示没有启动http,我没有搭建,不用管这个,命令执行成功了
success
--permanent:永久修改必加   --zone=区域  --remove-service=拒绝服务

在public区域把访问8080和8081端口的流量策略设置为允许

[root@test2 ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
--add-port=:添加端口       8080-8081/tcp:8080和8081端口,属于tcp协议
[root@test2 ~]# firewall-cmd --zone=public --list-ports   #查看端口列表
8080-8081/tcp

图形化管理工具

需要安装吗,当然不用,在安装firewalld的时候,管理工具也会一并安装。直接进入图形化的linux中,输入firewall-config,就会打开firewalld的图形化管理工具。

打开是这样的

选中区域,然后将其右侧对应的协议勾选上即可添加允许策略,例如public区域中的ssh允许策略

我们所做的配置,都能在图形化管理工具中实现,例如:我们在public区域中添加的8080,8081端口,在图形化中可以查看到

其中有众多选项,操作很简单,只需要点点点就可以了。


就如上图箭头所指的地方,可以更改运行时生效和永久生效,在哪里添加策略,其策略就会应用于哪里,点击文件就会退出,选项中的重载就相当于重载配置,令其立即生效。

两种方法,根据实际情况使用,若是需要设置很多条策略,建议使用图形化,效率更高,而只是简单的几条命令的事情,直接敲速度更快,而且通过命令是直接修改配置文件,速度要比使用管理工具快些。

linux两堵墙之一:firewalld相关推荐

  1. WiFi穿透能力甩对手两堵墙 荣耀9X新特性令人侧目

    据此前官方公布的消息,荣耀全新X系列旗舰荣耀9X系列机型将于7月23日也就是下周二在古城西安亮相,截至目前,关于该机的不少外观和配置细节都得到了官方的确认.现在有最新消息,荣耀官方近日又放出了该机的一 ...

  2. 七周三次课(1月24日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法...

    七周三次课(1月24日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 ====== ...

  3. 打破云和端的那堵墙,​Midway Serverless 带你感受云端一体应用研发

    这是 Midway Serverless 体系在 8月底位于阿里云云原生微服务大会对外分享的内容文字版,介绍了 Midway Serverless 全新的类 React Hooks 风格的 Serve ...

  4. linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝

    linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...

  5. linux两台服务器传输,Linux两台服务器之间高速数据传输命令:scp应用详解

    Linux两台服务器之间高速数据传输命令:scp应用详解 Linux scp命令用于Linux之间复制文件和目录到另外一台,这个命令在多台服务器之间传输还是非常有用的,速度也是非常快的.比window ...

  6. 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 ne

    七周三次课 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 10.11 Linux网络 ...

  7. linux同步某台服务器,linux 两台服务器之间开机自动同步指定目录下的文件

    linux 两台服务器之间开机自动同步指定目录下的文件 服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件 1.创建服务器B到服务 ...

  8. 两个服务器组虚拟机,linux 两台虚拟机

    linux 两台虚拟机 内容精选 换一换 在虚拟机完成安装配置后,可执行如下操作获取Linux镜像文件.打开VirtualBox,选中新创建的虚拟机,选择"设置 > 存储", ...

  9. Linux两台主机之间建立信任关系

    Linux两台主机之间建立信任关系 一般用ssh命令访问另一台机器,或者用scp命令从别的机器拷贝数据和文件,都要输入对应账户的密码.而在两台机器之间建立信任关系,则可以省略输入密码的过程. 一  : ...

最新文章

  1. 使用asp.net 2.0中的SqlBulkCopy类批量复制数据
  2. 云炬60s看世界20211119
  3. java操作mongodb_Java操作MongoDB
  4. 51芯片4*4列阵按键c语言程序,单片机城中社稷.doc
  5. php post nginx 400,Nginx静态文件响应POST请求 提示405错误的解决方法
  6. 神奇,教你用随机数打印hello world
  7. 电力、市政、交通三大领域推动工业交换机行业发展
  8. php类和对象-作用,php 类和对象
  9. 【Linux】Linux测试磁盘 IO 性能
  10. deepin安装zsh以及简单配置
  11. android5.1蓝牙opp协议去掉Notification和Dialog操作提示
  12. 算法导论2.3练习答案
  13. netlogo元胞自动机室内疏散
  14. android手机控制电视,类Siri语音控制技术 Android手机也能控制电视
  15. 百度站长平台“你无权访问该页面,点击确定按钮返回首页”
  16. Hyperledger Fabric 2.x 环境搭建
  17. Fairy Tail - Main Theme Slow Version guitar (solo)
  18. 1097: C语言程序设计教程(第三版)课后习题10.4
  19. python处理PPOCRLabel标注的数据用于LPRNet与Yolo的训练
  20. 「数据管理」顶级数据库管理系统供应商

热门文章

  1. 论倚天屠龙记中继承人问题
  2. Hive的伴奏_AudioJungle超大音乐素材资源包配乐音效库AE模板音乐合集影视片头背景音乐...
  3. 去除idea中mapper文件中的黄色背景两种方法
  4. CentOS下搭建Gitea-自己的git服务器
  5. OSChina 周三乱弹 ——所有树都绿了,却不知道谁干的!
  6. 学大数据培训纯粹是为了炫技?
  7. 怎么制定有限责任公司章程
  8. HUAWEI 机试题:出勤奖的判断
  9. 软考集成教程考点精讲之实施定量风险分析
  10. Jboss AS 7 部署web应用程序时无法初始化spring的bean的解决办法