防火墙-firewalld
Firewalld服务是RHEL7中默认的防火墙管理工具
特点:(1) 运行时配置 (2) 永久配置 (3) 支持动态更新 (4) zone区域概念
方法:命令行:firewall-cmd 图形化:firewall-config
区域定义了网络连接的可信等级:
区域 |
默认策略 |
|
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 |
拒绝流入数据包,除非与输出数据包相关 |
命令行管理工具(字符管理工具)
高效的管理配置防火墙
参数 |
作用 |
--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 |
立即生效覆盖当前 |
firewalld服务有两份规则策略配置记录:
runtime:当前正在运行的
permanent:永久生效的
做永久生效的实验时需要使用参数”--reload”来让他不停止服务重新加载配置文件
lab begin~:
1. 查看当前区域:
[[email protected] ~]# firewall-cmd --get-default-zone public [[email protected] ~]#
- 查看网卡的区域:
[[email protected] ~]# firewall-cmd --get-zone-of-interface=eno16777728 public [[email protected] ~]#
- 在public中分别查询sshd与httpd服务是否被允许
[[email protected] ~]# firewall-cmd --zone=public --query-service=ssh yes [[email protected] ~]# firewall-cmd --zone=public --query-service=http no [[email protected] ~]#
- 设置默认规则为dmz:
[[email protected] ~]# firewall-cmd --set-default-zone=dmz success [[email protected] ~]# firewall-cmd --get-default-zone dmz [[email protected] ~]#
- 让永久配置的文件立即生效:
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
- 启动/关闭应急模式(断开所有网络连接)
[[email protected] ~]# firewall-cmd --panic-on [[email protected] ~]# firewall-cmd --panic-off
实验1:允许https服务流量通过public区域,并且让它永久生效
[[email protected] ~]#firewall-cmd --permanent --zone=public --add-service=https success [[email protected] ~]# firewall-cmd --zone=public --list-all public interfaces: sources: services: dhcpv6-client https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
实验2:不在允许http服务流量通过public区域,立即生效切永久生效
[[email protected] ~]# firewall-cmd --permanent --zone=public --remove-service=http success [[email protected] ~]# firewall-cmd --reload success
实验3:允许8080和8081端口流量通过public区域,
[[email protected] ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp success [[email protected] ~]# firewall-cmd --zone=public --list-ports 8080-8081/tcp [[email protected] ~]#
实验4:将网卡的区域是修改为external区域,重启后生效
[[email protected] ~]# firewall-cmd --permanent --zone=external --change-interface=eno16777728 success [[email protected] ~]# firewall-cmd --get-zone-of-interface=eno16777728 dmz [[email protected] ~]#
实验5:设置富规则,让192.168.10.0/24网段的pc不能访问本机的ssh服务
富规则:用于服务、端口、协议的详细配置
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject" success [[email protected] ~]# firewall-cmd --permanent --zone=public --list-rich-rules rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject [[email protected] ~]#
时间: 2024-11-08 08:15:25