linux两堵墙之一:firewalld
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相关推荐
- WiFi穿透能力甩对手两堵墙 荣耀9X新特性令人侧目
据此前官方公布的消息,荣耀全新X系列旗舰荣耀9X系列机型将于7月23日也就是下周二在古城西安亮相,截至目前,关于该机的不少外观和配置细节都得到了官方的确认.现在有最新消息,荣耀官方近日又放出了该机的一 ...
- 七周三次课(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语法 ====== ...
- 打破云和端的那堵墙,Midway Serverless 带你感受云端一体应用研发
这是 Midway Serverless 体系在 8月底位于阿里云云原生微服务大会对外分享的内容文字版,介绍了 Midway Serverless 全新的类 React Hooks 风格的 Serve ...
- linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝
linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...
- linux两台服务器传输,Linux两台服务器之间高速数据传输命令:scp应用详解
Linux两台服务器之间高速数据传输命令:scp应用详解 Linux scp命令用于Linux之间复制文件和目录到另外一台,这个命令在多台服务器之间传输还是非常有用的,速度也是非常快的.比window ...
- 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网络 ...
- linux同步某台服务器,linux 两台服务器之间开机自动同步指定目录下的文件
linux 两台服务器之间开机自动同步指定目录下的文件 服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件 1.创建服务器B到服务 ...
- 两个服务器组虚拟机,linux 两台虚拟机
linux 两台虚拟机 内容精选 换一换 在虚拟机完成安装配置后,可执行如下操作获取Linux镜像文件.打开VirtualBox,选中新创建的虚拟机,选择"设置 > 存储", ...
- Linux两台主机之间建立信任关系
Linux两台主机之间建立信任关系 一般用ssh命令访问另一台机器,或者用scp命令从别的机器拷贝数据和文件,都要输入对应账户的密码.而在两台机器之间建立信任关系,则可以省略输入密码的过程. 一 : ...
最新文章
- 使用asp.net 2.0中的SqlBulkCopy类批量复制数据
- 云炬60s看世界20211119
- java操作mongodb_Java操作MongoDB
- 51芯片4*4列阵按键c语言程序,单片机城中社稷.doc
- php post nginx 400,Nginx静态文件响应POST请求 提示405错误的解决方法
- 神奇,教你用随机数打印hello world
- 电力、市政、交通三大领域推动工业交换机行业发展
- php类和对象-作用,php 类和对象
- 【Linux】Linux测试磁盘 IO 性能
- deepin安装zsh以及简单配置
- android5.1蓝牙opp协议去掉Notification和Dialog操作提示
- 算法导论2.3练习答案
- netlogo元胞自动机室内疏散
- android手机控制电视,类Siri语音控制技术 Android手机也能控制电视
- 百度站长平台“你无权访问该页面,点击确定按钮返回首页”
- Hyperledger Fabric 2.x 环境搭建
- Fairy Tail - Main Theme Slow Version guitar (solo)
- 1097: C语言程序设计教程(第三版)课后习题10.4
- python处理PPOCRLabel标注的数据用于LPRNet与Yolo的训练
- 「数据管理」顶级数据库管理系统供应商