任务2 配置防火墙firewalld

发布于:2024-12-21 ⋅ 阅读:(7) ⋅ 点赞:(0)

基本概念

概述

支持动态更新防火墙规则

不重启即可创建、修改和删除规则

使用区域和服务来简化防火墙配置

区域

一组预定义的规则,防火墙策略集合(或策略模板)

把网络分配到不同的区域中,并为网络及其关联的网络接口或流量源指定信任级别

在区域上定义规则并应用于进入该区域的网络流量

服务

服务是端口和协议的组合

表示为允许外部流量访问某种服务需要配置的所有规则的集合

放行服务即相当于打开与该服务相关的端口和协议、启用数据包转发等功能

将多步操作集成到一条规则中,减少配置工作量 

安装与启停

查看是否已经安装下面两个软件,默认都安装了

rpm -qa | grep firewall

 安装firewalld

yum  install  firewalld  -y

安装firewall-config,用于以图形化配置防火墙

yum  install  firewall-config  -y

启停

systemctl  start | stop | restart | status | enable  firewalld

基本配置

三种配置方式

firewall-config 图形化界面

firewall-cmd 命令

firewall-cmd  --state					// 查看运行状态
firewall-cmd  --list-all				// 查看默认区域配置
firewall-cmd  --list-all  --zone=work   			// 指定区域名
firewall-cmd  --list-services   				// 只查看服务信息
firewall-cmd  --list-services  --zone=public  	// 组合使用

firewall-offline-cmd 命令

两种配置模式

运行时配置:firewalld 处于运行状态时生效的配置

永久配置:firewalld 重载或重启时加载的配置

使用 --permanent 选项使更改在下次启动时仍然生效

使用 --reload 选项重载永久配置并覆盖运行时配置 

firewall-cmd  --add-service=http   				// 只修改运行时配置
firewall-cmd  --permanent  --add-service=http 	// 修改永久配置
firewall-cmd  --reload   // 重载永久配置
firewall-cmd  --add-service=http       				// 只修改运行时配置
firewall-cmd  --runtime-to-permanent  			// 提交到永久配置中

查看信息

[root@centos7 ~]# firewall-cmd  --state					// 查看运行状态
running
[root@centos7 ~] # firewall-cmd  --list-all				// 查看默认区域配置
public (active)
   interfaces: ens33
   services: ssh dhcpv6-client samba dns http ftp amanda-k5-client
[root@centos7 ~]# firewall-cmd  --list-all  --zone=work   			// 指定区域名
work
  target: default
  services: ssh dhcpv6-client
[root@centos7 ~]# firewall-cmd  --list-services   				// 只查看服务信息
ssh dhcpv6-client
[root@centos7 ~]# firewall-cmd  --list-services  --zone=public  	// 组合使用
ssh dhcpv6-client http

基于服务的流量管理

添加或移除预定义服务

添加或移除服务端口

firewall-cmd  --list-services  // 查看当前允许服务列表
firewall-cmd  --permanent  --add-service=http    	// 添加预定义服务
firewall-cmd  --reload      	// 重载防火墙的永久配置
firewall-cmd  --list-services  // 查看当前允许服务列表
firewall-cmd  --add-port=80/tcp
firewall-cmd  --list-ports
firewall-cmd  --remove-port=80/tcp		// 移除 tcp 80 端口

基于区域的流量管理

查看当前可用区域 , 查看指定区域的详细信息

[root@centos7 ~]# firewall-cmd  --get-zones
block dmz drop external home internal public trusted work
[root@centos7 ~]# firewall-cmd  --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
[root@centos7 ~]# firewall-cmd  --list-all  --zone=home
home
  target: default
  icmp-block-inversion: no

 修改默认区域 , 关联区域和网络接口

[root@centos7 ~]# firewall-cmd  --get-default-zone       		// 查看当前默认区域
public
[root@centos7 ~]# firewall-cmd  --set-default-zone  work  	// 修改默认区域
[root@centos7 ~]# firewall-cmd  --get-default-zone      		// 再次查看当前默认区域   
work
[root@centos7 ~]# firewall-cmd  --get-active-zones   		// 查看活动区域的网络接口
public
  interfaces: ens33
[root@centos7 ~]# firewall-cmd  --zone=work  --change-interface=ens33
[root@centos7 ~]# vim  /etc/sysconfig/network-scripts/ifcfg-ens33
ZONE=work

 当数据包与区域的所有规则都不匹配时,可以使用区域的默认规则处理数据包 , 包括接受(ACCEPT)、拒绝(REJECT)和丢弃(DROP)

[root@centos7 zones]# firewall-cmd  --permanent  --zone=work  --set-target=ACCEPT
[root@centos7 zones]# firewall-cmd  --reload
[root@centos7 zones]# firewall-cmd  --zone=work  --list-all
work
  target: ACCEPT
  icmp-block-inversion: no

 添加和删除流量源 , 添加和删除源端口和协议

[root@centos7 ~]# firewall-cmd  --zone=work  --add-source=192.168.100.0/24
[root@centos7 ~]# firewall-cmd  --runtime-to-permanent
[root@centos7 ~]# firewall-cmd  --zone=work  --remove-source=192.168.100.0/24
[root@centos7 ~]# firewall-cmd  --zone=work  --add-source-port=3721/tcp
[root@centos7 ~]# firewall-cmd  --zone=work  --remove-source-port=3721/tcp
[root@centos7 ~]# firewall-cmd  --zone=internal  --add-protocol=icmp
[root@centos7 ~]# firewall-cmd  --zone=internal  --remove-protocol=icmp