Firewalld

RHEL7是一个集合多款防火墙管理工具并存的系统,Firewalld动态防火墙管理器服务(Dynamic Firewall Manager of Linux systems)是目前默认的防火墙管理工具,同时拥有命令行终端和图形化界面的配置工具。相比于传统的防火墙管理工具还支持了动态更新技术并加入了“zone区域”的概念,简单来说就是为用户预先准备了几套防火墙策略集合(策略模板),然后可以根据生产场景的不同而选择合适的策略集合,实现了防火墙策略之间的快速切换。

例如咱们有一台笔记本电脑每天都要在办公室、咖啡厅和家里使用,按常理推断最安全的应该是家里的内网,其次是公司办公室,最后是咖啡厅,如果需要在办公室内允许文件共享服务的请求流量、回到家中需要允许所有的服务,而在咖啡店则是除了上网外不允许任何其他请求,这样的需求应该是很常见的,在以前只能频繁的进行手动设置,而现在只需要预设好zone区域集合,然后轻轻点击一下就可以切换过去了上百条策略了,极大的提高了防火墙策略的应用效率,常见的zone区域名称及应用可见下表(默认为public):

区域 默认规则策略
trusted 允许所有的数据包。
home 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许。
internal 等同于home区域
work 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,ipp-client与dhcpv6-client服务则允许。
public 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,dhcpv6-client服务则允许。
external 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
dmz 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
block 拒绝流入的数据包,除非与输出流量数据包相关。
drop 拒绝流入的数据包,除非与输出流量数据包相关。

1、查看防火墙状态

firewall-cmd --state

2、停止firewall

systemctl stop firewalld.service

3、开启

systemctl start firewalld.service

4、禁止firewall开机启动

systemctl disable firewalld.service

5、设置开机自动启动

systemctl enable firewalld.service

终端管理工具

命令行终端是一种极富效率的工作方式,firewall-cmd命令是Firewalld动态防火墙管理器服务的命令行终端。

参数 作用
–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 让“永久生效”的配置规则立即生效,覆盖当前的。

1、查看防火墙规则

firewall-cmd --list-all

2、查询、开放、关闭端口

查询端口是否开放

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

开放80端口

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

移除端口

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

重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

查看Firewalld服务当前所使用的zone区域:

[root@linuxprobe ~]# firewall-cmd --get-default-zone
public

查询ens33网卡在Firewalld服务中的zone区域:

[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens33
public

把Firewalld防火墙服务中ens33网卡的默认区域修改为external,重启后再生效:

[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=ens33
success
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens33
public
[root@linuxprobe ~]# firewall-cmd --permanent --get-zone-of-interface=ens33
external

把Firewalld防火墙服务的当前默认zone区域设置为public:

[root@linuxprobe ~]# firewall-cmd --set-default-zone=public
success
[root@linuxprobe ~]# firewall-cmd --get-default-zone
public

启动/关闭Firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用。):

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

查询在public区域中的ssh与https服务请求流量是否被允许:

[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https
no

把Firewalld防火墙服务中https服务的请求流量设置为永久允许,并当前立即生效:

[root@linuxprobe ~]# firewall-cmd --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --reload
success

把Firewalld防火墙服务中http服务的请求流量设置为永久拒绝,并当前立即生效:

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=http
success
[root@linuxprobe ~]# firewall-cmd --reload
success

把Firewalld防火墙服务中8080和8081的请求流量允许放行,但仅限当前生效:

[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@linuxprobe ~]# firewall-cmd --zone=public --list-ports
8080-8081/tcp

把原本访问本机888端口号的请求流量转发到22端口号,要求当前和长期均有效:

流量转发命令格式:firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
success
[root@linuxprobe ~]# firewall-cmd --reload
success

在客户机使用ssh命令尝试访问192.168.10.10主机的888端口:

[root@client A ~]# ssh -p 888 192.168.10.10
The authenticity of host '[192.168.10.10]:888 ([192.168.10.10]:888)' can't be established.
ECDSA key fingerprint is b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.10]:888' (ECDSA) to the list of known hosts.
root@192.168.10.10's password:此处输入远程root用户的密码
Last login: Sun Jul 19 21:43:48 2017 from 192.168.10.10

在Firewalld防火墙服务中配置一条富规则,拒绝所有来自于192.168.10.0/24网段的用户访问本机ssh服务(22端口):

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
[root@linuxprobe ~]# firewall-cmd --reload
success

在客户机使用ssh命令尝试访问192.168.10.10主机的ssh服务(22端口):

[root@client A ~]# ssh 192.168.10.10
Connecting to 192.168.10.10:22...
Could not connect to '192.168.10.10' (port 22): Connection failed.

达梦数据库社区地址:https://eco.dameng.com/

linux学习之防火墙,查看Linux防火墙状态,开启/关闭Linux防火墙,Linux防火墙开放5236端口相关推荐

  1. linux学习之路——ubuntu 16.04 开机开启数字小键盘解决方法

    linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 参考文章: (1)linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 (2)https://www. ...

  2. linux防火墙查看被动模式,Centos7搭建vsftpd及被动模式下的防火墙设置

    一.安装vsftpd:yum -y install vsftpd 二. 创建用户名 useradd zhangsan passwd 123456 useradd lisi passwd 123456 ...

  3. linux 用top命令查看系统健康状态

    我们前面说过了,用ps命令来查看系统所有进程: http://blog.csdn.net/capecape/article/details/78512214 这里,本文详细介绍用top命令系查看系统健 ...

  4. Linux学习一:(Bash 常用命令、vim操作、Linux框架目录)

    一.Bash 常用命令 1.管道(PIPING) 1.1 | 一种管道,其左方是一个命令的 STNOUT,将作为管道右方的另一个命令的 STDIN. 例如:echo 'test text' | wc ...

  5. Linux学习10_linux进程查看连载之:PS命令及ps -ef | grep java的含义

    关于ps -ef | grep java的含义: [root@Slave1 hadoop]# ps -ef|grep java root 99582 96423 0 19:31 pts/1 00:00 ...

  6. Cty的Linux学习笔记之查看bash PID

    查看bash PID 当想要查看的进程CPU与内存使用率都很低,结果老师无法在第一行显示是,可以用echo $$查看我们自己的 bash PID 来进行查看,之后再使用top -d 2 -p [PID ...

  7. python 判断是否连接wifi_python操作 linux连接wifi,查看wifi连接状态方法

    # 查询所有物理网卡def_query_net_card_info(if_name): net_card_info={"mac": "","type& ...

  8. 华为防火墙查看日志命令_(完整word版)华为USG防火墙运维命令大全,推荐文档

    使用场合 针对可以建会话的报文,可以通过查看会话是否创建以及会话详细信息来确定报文是否正常通过防火墙. 命令介绍(命令类) display firewall session table [ verbo ...

  9. linux查看执行过的命令行,在Linux命令终端中查看和编辑曾执行过的命令 – LINUX笔记 – CFEI.NET...

    今天我们来讲讲linux的知识,积累的这些知识就是我们以后的财富,各位加油. 因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正.一切为了知识的分享. history 命令 ...

最新文章

  1. 美亚排名超高的Docker入门书,不止简单易懂
  2. Hibernate Tools-代码生成
  3. python 比较列表相邻元素(找相同或去重)
  4. 修改了模板文件tpl如何立即生效_Views视图与模板
  5. 无线策略服务器,无线网络中的分布式资源管理策略研究
  6. (91)FPGA时钟分频与倍频问题,面试必问(十五)(第19天)
  7. C - The Smallest String Concatenation CodeForces - 632C(按字典序列排列 )string或者数组
  8. SequelizeAccessDeniedError的原因和解决方式
  9. 5G网络架构 — 接入网/传输网/核心网
  10. 波浪谱 matlab画,matlab窄带随机过程
  11. 关系数据库之关系代数
  12. 伸缩的菜单html,javascript伸缩菜单栏实现代码分享
  13. kbhit(), bioskey(), system(pause)
  14. cocosbuilder创建工程
  15. linux:压缩某个文件夹的实现方法
  16. 【合天网安】DoraBox靶场之Xss跨站
  17. C语言只能识别3种字符,请有空闲的人看看,为什么6个scanf 只能输入3个字符。...
  18. NLP文本信息向量化之特征提取
  19. java实现excel导入导出(jxl),Java面试题及解析
  20. Java流程控制(一)

热门文章

  1. Backtrack5常用的漏洞扫描工具
  2. 国际教育邮箱哪个好?企业邮箱oa系统的那个好?
  3. HTML画4个矩形,html5--5-4 绘制矩形
  4. C# Media播放器
  5. 【290期】关于零拷贝技术,你了解多少?常见典型案例?
  6. 百度云-深度学习tensorflow搭建
  7. APPInventor用mySQL_Android app界面设计工具AppInventor初体验
  8. 配置路由器远程登录(telnet)
  9. 《Linux进程控制---编写简易shell实现》
  10. 5 Designing Specification