linux笔记6-firewalld防火墙


RHEL7已经使用firewalld服务替代了iptables服务,但但是RHEL7中仍然可以使用iptables命令来管理内核的netfilter。其实iptalbes 和firewalld都不是真正的防火墙,他们只是用来定义防火墙规则的工具。定义好规则后交给netfilter来读取,从而实现防火墙功能。
Firewal是RHEL7中默认的防火墙管理工具,特点事拥有运行时配置与永久配置选型,能够支持动态啊更新及区域功能概念。提供了新的防火墙管理命令 firewall-cmd 和图形化工具firewall-config。

区域概念与作用

防火墙的网络区域定义了网络拦截的可信等级。我们可以根据不同的场景来调用不同的firewalld区域,简单来讲就是为用户预先准备了几套规则组合,我们可以根据场景选择不同的规则组合。默认区域是public
区域规则清单如下:
在这里插入图片描述
在这里插入图片描述

字符管理工具

firewall-cmd 命令可以高效的配置防火墙
firewalld 服务有两份规则策略配置记录,RunTime 当前生效的 Permanent 永久生效的,当修改的是永久生效的记录时必须执行 firewall-cmd -reload 命令来生效。命令参数如下:
在这里插入图片描述
在这里插入图片描述
操作示例:

[root@bogon ~]# firewall-cmd --get-default-zone  --查看当前默认区域
public
[root@bogon ~]# firewall-cmd --get-zone-of-interface=eno16777728
no zone
[root@bogon ~]# firewall-cmd --get-zone-of-interface=ens33 --查看 网卡ens33区域
dmz
[root@bogon ~]# firewall-cmd --zone=public --query-service=ssh //查看public区域是否支持ssh协议
yes
[root@bogon ~]# firewall-cmd --zone=public --query-service=http//查看public区域是否支持http协议
no
[root@bogon ~]# firewall-cmd --set-default-zone=dmz //设置默认规则为 dmz
success
[root@bogon ~]# firewall-cmd --reload //让规则修改永远生效
success
[root@bogon ~]# firewall-cmd --panic-on
success
[root@bogon ~]# 
[root@bogon ~]# firewall-cmd --panic-on  启动应急情况模式,会阻断所有网络连接
success
[root@bogon ~]# firewall-cmd --panic-off  --关闭应急情况模式
success

方法1同时设置运行时和永久性允许https
Last login: Fri Nov 20 00:23:50 2020
[root@bogon ~]# firewall-cmd  --zone=public --add-service=https
success
[root@bogon ~]# firewall-cmd --permanent  --zone=public --add-service=https
success
方法2 同时设置运行时和永久性允许https 先设置永久性 然后 relaod即可
[root@bogon ~]# firewall-cmd --permanent  --zone=public --add-service=https
Warning: ALREADY_ENABLED: https
success
[root@bogon ~]# firewall-cmd --reload
success
--不允许http服务通过public区域
[root@bogon ~]# firewall-cmd --permanent  --zone=public --remove-service=http
Warning: NOT_ENABLED: http
success
[root@bogon ~]# firewall-cmd --reload
success
--允许8080 8081端口流量经过public区域
[root@bogon ~]# firewall-cmd --permanent  --zone=public --add-port=8080-8081/tcp
success
--查看是否生效
[root@bogon ~]# firewall-cmd --zone=public --list-ports
58625/tcp 10020/tcp 59173/tcp 80/tcp 48533/tcp 10020/udp 10030/udp
[root@bogon ~]# firewall-cmd --reload
success
--reload后再次查看是否生效
[root@bogon ~]# firewall-cmd --zone=public --list-ports
58625/tcp 10020/tcp 59173/tcp 80/tcp 48533/tcp 10020/udp 10030/udp 8080-8081/tcp
--将ens33区域修改为external
[root@bogon ~]# firewall-cmd --zone=external --change-interface=ens33
success
[root@bogon ~]# firewall-cmd --get-zone-of-interface=ens33
external
--设置富规则,拒绝192.168.10.0-24网段的ssh服务
--firewalld服务富规则用来设置对服务、端口、协议进行详细的配置,优先级最高  
--(该设置目前报错 日后排查)
[root@bogon ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule  family="ipv4" sourceaddress="192.168.10.0/24" service name ="ssh"  reject "
Error: INVALID_RULE: internal error in _lexer(): =ssh 

图形配置工具

执行firewall-config命令即可看到firewalld防火墙图形化工具

服务的访问控制列表

TCP_wrappers是一款基于IP层的ACL访问控制列表流量监控程序,它根据来访主机地址与本机目标服务程序制定规则,如果匹配到允许的规则则放行流量,如果匹配到拒绝的流量则拒绝。如果都没有匹配到默认也放行。
允许名单:/etc/hosts.allow
拒绝名单:/etc/hosts.deny
指定客户端规则如下:在这里插入图片描述
在这里插入图片描述
限制只有192.168.10. 网段的主机可以访问本机的httpd服务:

[root@bogon ~]# vi /etc/hosts.allow
httpd:192.168.10.
[root@bogon ~]# vi /etc/hosts.deny
httpd:*
~

猜你喜欢

转载自blog.csdn.net/zhangxm_qz/article/details/109843366
今日推荐