Firewalld防火墙基础

2023-05-16

Firewalld概述

Firewalld
支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
支持IPv、IPv6防火墙设置以及以太网桥
支持服务或应用程序直接添加防火墙规则接口

拥有两种配置模式
运行时配置 :即时生效,直至重启或关闭防火墙
永久配置:重启生效 一直有效

Firewalld和iptables的关系
netfilter
位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”

Firewalld/iptables
CentOS 7默认的管理防火墙规则的工具(Firewalld)
称为Linux防火墙的“用户态”
在这里插入图片描述Firewalld和iptables的区别
在这里插入图片描述
Firewalld网络区域
区域介绍(重点)
区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
默认情况下,public区域(放行ssh)是默认区域,包含所有接口(网卡)
在这里插入图片描述

FireWalld数据处理流程
检查数据来源的源地址
若源地址关联到特定的区域,则执行该区域所指定的规则
若源地址未关联到特定的区域,则使用传入网络接口的区域,并执行该区域所指定的规则
若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则

firewalld 将网卡对应到不同的区域(zone),zone默认共有9个,

block dmz drep external home internal public trusted work.
drep(丢弃)
任何接收的网络数据包都会被丢弃,没有任何回复。仅能有发送出去的网络连接。
block(限制)
任何接收的网络连接都被IPv4的icmp-host-prohibited信息和icmp6-adm-prohibited信息所拒绝
public(公共)
在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收选取过的连接。
external(外部)
特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能通过选择的连接。
dmz(非军事区)
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
work(工作)
用于工作区。您可以基本相信网络内其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
home(家庭)
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过的连接。
internal(内部)
用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
tructed(信任)
可接受所有的网络连接。
指定其中一个区域为默认区域是可行的。当接口连接加入了NetworkManager,它们就被分配为默认区域。

不同的区域之间的差异是其对待数据包的默认行为不同,在CentOS 7系统中,默认区域被设置为public.

Firewalld防火墙的配置方法

运行时配置
实时生效,并持续至Firewalld重新启动或重新加载配置
不中断现有连接
不能修改服务配置
永久配置
不立即生效,除非Firewalld重新启动或重新加载配置
中断现有连接
可以修改服务配置

Firewalld-config图形工具

Freewalld-cmd命令行工具
/etc/firewalld/中的配置文件
Firewalld会优先使用/erc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewallld/中的配置
/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
/usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/中的配置

Firewalld-config图形工具
运行时配置/永久配置
在这里插入图片描述
重新加载防火墙
更改永久配置并生效
在这里插入图片描述
关联网卡到指定区域
在这里插入图片描述
修改默认区域
在这里插入图片描述
连接状态
在这里插入图片描述
开启防火墙时要先输入开启防火墙的命令
应用程序 杂项 防火墙

[root@serverl ~]# systemctl start firewalld
[root@serverl ~]# setenforce 0
[root@serverl ~]# systemctl status firewalld

“区域”选项卡
“服务”子选项卡
“端口”子选项卡
“协议”子选项卡
“源端口”子选项卡
“伪装”子选项卡
“端口转发”子选项卡
“ICMP过滤器”子选项卡

“服务”选项卡
“模块”子选项卡
“目标地址”子选项卡

Firewalld防火墙案例
实验环境

在这里插入图片描述
需求描述
禁止主机ping服务器
只允许20.0.0.12主机访问SSH服务
允许所有主机访问Apache服务

需求详解图:
在这里插入图片描述
IP:20.0.0.12 客户端(server2)
IP:20.0.0.11 服务器(server1)

[root@server1 ~]# firewall-config
修改防火墙work的来源
在这里插入图片描述

在这里插入图片描述
服务选择:开启ssh httpd 关闭dhcpv6-client

修改public公共区域的编辑
服务选择:关闭ssh、dhcpv6-client服务 开启http服务
在这里插入图片描述
那么如何阻止别人ping通我
对work配置:
ICMP过滤器(里面打钩,表示阻止)
在这里插入图片描述
对public进行配置:
在这里插入图片描述
echo-request(开启,能ping通)(work:单独设置的IP地址)(public:公共的ip地址)
安装apache服务:

[root@server1 ~]# yum -y install httpd
启动apache服务:systemctl start httpd

查看ssh服务是否打开
[root@server1 ~]# netstat -anpt | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1005/sshd

查看发现是可以访问服务端的Apache页面
在这里插入图片描述
通过ssh登录验证:

[root@server2 ~]# ssh root@20.0.0.11(可以登录)
The authenticity of host '20.0.0.11 (20.0.0.11)' can't be established.
ECDSA key fingerprint is SHA256:oyGJ3iDy2VmJEvrJc2fPhoMY4moIq1XM/XU3A2YIKmI.
ECDSA key fingerprint is MD5:16:9d:43:43:fb:45:a2:6e:a7:a7:8a:0f:d8:67:93:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.11' (ECDSA) to the list of known hosts.
root@20.0.0.11's password: 
Last login: Wed Dec 30 22:12:30 2020 from 20.0.0.1
[root@server1 ~]# exit
登出
Connection to 20.0.0.11 closed.
[root@server3 ~]#  ssh root@20.0.0.11(不能登录)
ssh: connect to host 20.0.0.11 port 22: No route to host

在这里插入图片描述
附加:定义配置永久时重启服务器,做的配置依旧生效(之后还要进行重载防火墙的操作)

配置Firewalld防火墙
实验拓扑图:
在这里插入图片描述

1.网关:192.168.81.10(ens33)-external,
192.168.100.1(ens37)-trusted,
192.168.216.1(ens38)-dmz
网页服务器地址:192.168.216.10
企业内网测试机(用户):192.168.100.1
互联网用户:192.168.81.20

2.网站服务器和网关服务器均通过SSH来远程管理,为了安全,将SSH的端口号改为12345。

3.网站服务器开启https,关闭http。

4.网站服务器拒绝ping,网关服务器拒绝来自互联网上的ping.

5.公司内网用户需要通过网关服务器共享上网。

6.互联网用户需要访问网站服务器。

网络服务器,Internet测试用机(安装httpd服务)

[root@localhost ~]# yum -y install httpd

网关服务器添加三张网卡:
(VM1:内部区域(信任区域))(VM2: DMZ区域)(VM3:外部区域)

在这里插入图片描述
在这里插入图片描述
对三块网卡的配置文件进行设置

ens33连接的是web服务器
ens37连接的是信任区域(内部区域)
ens38连接的是DMZ区域
cd /etc/sysconfig/network-scripts/
[root@server1 ~]# cd /etc/sysconfig/network-scripts/
[root@server1 network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.81.10
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=90b2920e-8304-4317-8df9-df5bcf7c1210
DEVICE=ens33
ONBOOT=yes

[root@server1 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens37
[root@server1 network-scripts]# vim ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.100.1
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes

[root@server1 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens38
[root@server1 network-scripts]# vim ifcfg-ens38
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.216.10
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens38
DEVICE=ens38
ONBOOT=yes

重启网卡,并查看网卡信息
[root@server1 network-scripts]# systemctl restart network
[root@server1 network-scripts]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.81.10

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.1 

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.216.1 


开启路由转发功能:[root@server1 network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1(最后一行添加)
[root@server1 network-scripts]# sysctl -p(开启路由转发功能,使其生效)(这样就可以作为路由器去使用)
net.ipv4.ip_forward = 1

企业内网服务器:
修改网卡信息
在这里插入图片描述

[root@server2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.100.10
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=852c7a86-986a-4cce-9e41-a2009022cb9c
DEVICE=ens33
ONBOOT=yes

[root@server1 ~]# systemctl restart network
[root@server1 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.10

测试是否能ping通网关
[root@server1 ~]# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=128 time=0.573 ms

DMZ网络服务器:
修改网卡信息
在这里插入图片描述

[root@server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.216.10
NETMASK=255.255.255.0
GATEWAY=192.168.216.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=29301975-17cd-45af-93cf-e9226cfde05e
DEVICE=ens33
ONBOOT=yes
[root@server3 ~]# systemctl restart network
[root@server3 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.216.10 
[root@server3 ~]# ping 192.168.216.1
PING 192.168.216.1 (192.168.216.1) 56(84) bytes of data.
64 bytes from 192.168.216.1: icmp_seq=1 ttl=128 time=0.558 ms

附加:

什么是DMZ区域,DMZ区域的作用与原理
一. 概念:
DMZ是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业内部网络和外部网络之间的小网络区域内。在这个小网络区域内可以放置一些必须公开的服务器(如企业Web服务器、FTP服务器和论坛等);另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络。因为这种网络部署,比起一般的防火墙方案,对来自外网的攻击者来说又多了一道关卡。
DMZ区域可以理解为一个不同于外网和内网的特殊网络区域
在一个用路由器连接的局域网中,我们可以将网络划分为三个区域:
安全级别最高的LAN Area(内网);
安全级别中等的DMZ区域;
安全级别最低的Internet区域(外网)。
三个区域因担负不同的任务而拥有不同的访问策略。

二. DMZ原理:
将部分用于提供对外服务的服务器主机划分到一个特定的子网——DMZ内,在DMZ的主机能与同处DMZ内的主机和外部网络的主机通信,而同内部网络主机的通信会被受到限制。这使DMZ的主机能被内部网络和外部网络所访问,而内部网络又能避免外部网络所得知。

三. 两个防火墙之间的空间被称为DMZ:
我们在配置一个拥有DMZ区的网络的时候,通常定义以下的访问控制策略以实现DMZ区的屏蔽功能:
1)内网可以访问外网
内网的用户显然需要自由地访问外网。在这一策略中,防火墙需要进行源地址转换。
2)内网可以访问DMZ
此策略是为了方便内网用户使用和管理DMZ中的服务器。
3)外网不能访问内网
很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。
4)外网可以访问DMZ
DMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。
5)DMZ不能访问内网
很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。
6)DMZ不能访问外网
此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网,否则将不能正常工作。在网络中,非军事区(DMZ)是指为不信任系统提供服务的孤立网段,其目的是把敏感的内部网络和其他提供访问服务的网络分开,阻止内网和外网直接通信,以保证内网安全。

四. 服务配置:
1)DMZ提供的服务是经过了网络地址转换(NAT)和受安全规则限制的,以达到隐蔽真实地址、控制访问的功能。首先要根据将要提供的服务和安全策略建立一个清晰的网络拓扑,确定DMZ区应用服务器的IP和端口号以及数据流向。通常网络通信流向为禁止外网区与内网区直接通信,DMZ区既可与外网区进行通信,也可以与内网区进行通信,受安全规则限制。
地址转换
2)DMZ区服务器与内网区、外网区的通信是经过网络地址转换(NAT)实现的。网络地址转换用于将一个地址域(如专用Internet)映射到另一个地址域(如Internet),以达到隐藏专用网络的目的。DMZ区服务器对内服务时映射成内网地址,对外服务时映射成外网地址。采用静态映射配置网络地址转换时,服务用IP和真实IP要一一映射,源地址转换和目的地址转换都必须要有。

外部区域服务器:
修改网卡信息:
在这里插入图片描述

[root@server4 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.81.20
NETMASK=255.255.255.0
GATEWAY=192.168.81.10
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
[root@server4 ~]# systemctl restart network
[root@server4 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.81.20 
[root@server4 ~]# ping 192.168.81.10
PING 192.168.81.10 (192.168.81.10) 56(84) bytes of data.
64 bytes from 192.168.81.10: icmp_seq=1 ttl=64 time=0.455 ms

修改DMZ网络服务器主机名:

[root@server3 ~]# hostnamectl set-hostname dmz 
[root@server3 ~]# su

修改外部区域服务器主机名:

[root@server4 ~]# hostnamectl set-hostname external
[root@server4 ~]# su

修改内部局域网测试机主机名:

[root@server2 ~]# hostnamectl set-hostname inside
[root@server2 ~]# su

修改网关服务器主机名:

[root@server1 network-scripts]# hostnamectl set-hostname fw
[root@server1 network-scripts]# su

dmz服务器上开启服务:

[root@dmz ~]# systemctl start httpd.service 

修改站点目录:
[root@dmz ~]# cd /var/www/html/
[root@dmz html]# vim index.html
<h1>wangtong</h1>

开启防火墙,并检查
[root@dmz html]# sudo systemctl start firewalld.service 
[root@dmz html]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) 
[root@dmz html]# firewall-cmd --set-default-zone=dmz(zone变为dmz)
success
[root@dmz html]# firewall-cmd --add-service=http --zone=dmz --permanent (允许访问的服雾添加到dmz区域,永久性的设置)
success

(不允许对方ssh的访问)
[root@dmz html]# firewall-cmd --remove-service=ssh --zone=dmz --permanent
success

(禁用ICMP协议)
[root@dmz html]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
success

(重载防火墙)
[root@dmz html]# firewall-cmd --reload 
success

本地查看网页
在这里插入图片描述
外部服务器:

开启服务,关闭防火墙,核心防护
[root@external ~]# systemctl start httpd.service 
[root@external ~]# systemctl stop firewalld.service 
[root@external ~]# setenforce 0

修改网站:
[root@external ~]# vim /var/www/html/index.html
<h1>xuwenyu</h1>

本地查看网页:
在这里插入图片描述
用内部服务器测试,验证
此时发现两个网页都无法访问(说明防火墙上面没有做设置)

需要在网关服务器上面做设置:

默认区域设置为外部区域(非限制区域)
[root@fw network-scripts]# firewall-cmd --set-default-zone=external 
success
将ens37 ens38改为信任区域和dmz区域(ens37信任区域)(ens38dmz区域)
[root@fw network-scripts]# firewall-cmd --change-interface=ens37 --zone=trusted --permanent
The interface is under control of NetworkManager, setting zone to 'trusted'.
success
[root@fw network-scripts]# firewall-cmd --change-interface=ens38 --zone=dmz --permanent 
The interface is under control of NetworkManager, setting zone to 'dmz'.
success

dmz区域进行设置:(删除ssh)
[root@fw network-scripts]# firewall-cmd --zone=dmz --remove-service=ssh --permanent 
success

添加http服务:
[root@fw network-scripts]# firewall-cmd --zone=dmz --add-service=http --permanent 
success

添加icmp服务:
[root@fw network-scripts]# firewall-cmd --zone=dmz --add-icmp-block=echo-request --permanent 
success



外部区域进行设置:(添加http服务)
[root@fw network-scripts]# firewall-cmd --zone=external --add-service=http --permanent 
success


重载防火墙:
[root@fw network-scripts]# firewall-cmd --reload 
succed

此时外部服务器访问不到dmz服务器,此时需要做端口转发
需要在防火墙(网关服务器)添加端口映射(端口转发)的命令

[root@fw network-scripts]# firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.81.20 --permanent 
success
[root@fw network-scripts]# firewall-cmd --reload (重载)

附加:
了解firewall两种工具
一:图形化界面工具(已经介绍过)

[root@server1 ~]# firewall-config 
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

在这里插入图片描述
如果想查看各个服务的端口号可以在上图服务中查看

二:字符界面(命令)

firewall-cmd命令
1)启动、停止、查看firewalld服务
在安装CentOS7系统时,会自动安装firewalld和图形化工具firewall.config。执行以下命令可以启动firewalld并设置为开机自启动状态。
Lroot@localhost~]# systemctl start firewalld //启动firewalld
[root@localhost~]#systemctl enable firewalld//设置firewalld为开机白启动
Created symlink from /et/systemd/system/dbus.org. fedoraproject.FirewallD1.
scrvice to /usr/lib/systcmd/systcm/firewalld.service.
Created symlink from /etc/systend/ system/basic.target.wants/firewalld.service
to /usx/lib/systemd/system/firewalld.service.
如果firewalld正在运行,通过systemctl status firewalld或firewall--cmd命令
可以查看其运行状态。
[root@localhost]# systcmctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (usx/lib/ systemd/system/ firewalld. service; enabled; vendor
preset: enabled)
Active: active (running) since 三 2017-09-20 08:08:14 CST: 46s ago
Docs: man:firewalld(1)
Main PID:3556 (firewalld)
CGx9up:/system.slice/firswalld.service
—3556 /usr/bin/python -Es /usr/sbin/tirewalld--nofork --nopid
9月20 08:08:11 localhost. localdomainsystemd[1]: Starting firewalld - dynamic
firewall daemon.. .
9月20 08:08:14 localhost.localdomainaxstmd[1]: Started fircwalld- dynamic
firewall daemon.
或
[root@localhost~]# firewall-cmd --state
running
如果想要禁用firewalld,执行以下命令即可实现。
Lroot@localhost~]#systemctl stop firewalld //停止firewalld
lroot@localhost,~]#systemctl disable firewalld //设置firewalld开机不自启动
Removed symlink /etc/systemd/system/ basic.target.wants/firewalld.service.
Rcmoved syslink /etc/sygtemd/ system/ dbus.9rg.iedgrapx9iect.FirewallDl.service.

2)获取预定义信息
firewallzcmd预定义信息主要包括三种:可用的区域、可用的服务以及可用的ICMP阻
塞类型,具体的查看命令如下所示。
[root@1ocalhost~]# firewall-cmd --get-zones//显示预定义的区域
work drop internal external trusted homc dmz public block
Lroot@localhost~]# firewall-cmd--get-service //显示预定义的服务
RII-Satellite-6 amanda-client amanda-k5-client baculabacula-client cephceph
mondhcp. dhcpv6 dhcpv6-client dnsdockex美egistry.dropbox-lansyncfreeipa.ldap
frecipa-ldapsfrecioa-reolication fto high-availabilitv htto httos imapimaps

[root@server1 ~]# firewall-cmd --get-services 
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

[root@localhost~]# cirewall-cmd --get icmptypes //显示预定义的ICMP类型
destination-unreachable echo-reply echo-request parameter-problem redirect router
-advertisement router-solicitation source-quench time-exceeded timestampzreplx
timesta想preAuest
firewall.cnd --get-icmptypes命令的执行结果中各种阻塞类型的含义分别如下所示。
destination-unreachable:目的地址不可达。
echo-reply:应答回应(pong).
parameter-problem:参数问题。
redirect:重新定向。
router-advertisement:路由器通告。
router-solicitation:路由器征寻。
source-quench:源端抑制。
time-exceeded:超时。
timestamp-reply:时间戳应答回应。
timestamp-request:时间戳请求。
相当于图形化界面的ICMP过滤器


3)区域管理
使用firewall-cmd命令可以实现获取和管理区域,为指定区域绑定网络接口等功能。
表1-2中列出了 firewall.cmd命令的区域管理选项说明。
表1-2 firewall-cmd命令的区域管理选项说明
选项说明
--get-default-zone 显示网络连接或按口的默识区域
--set-default-zone=<zone> 设置网络连接或接口的默认区域
-gct-active-zoncs 显示已微活的所有区域
--get-zone-of-interface=<interface>  显示指定接口绑定的区域
—-zone=<zone>--add-interface=<interface> 为指定接口绑定区域
--zone=<zone>
--change-interface-<interface>
为指定的区或更改绑定的网络接口
—-zone=<zone>
—-remove-interface=<interface>
为指定的区域除绑定的网络接口
--list-all-zones 显示所有区域及其规则
[--zonc=<zone>] --list-all显示所有指定区域的所有规则,省略--zonc=<zone>时表示仪
对默认区域操作:默认区域为public <interface:表示端口名称:网卡名称>
具体提作如下所示。
具体操作如下所示。
(1)显示当前系统中的默认区域。
Lroot@locslboat~]# firewall--cmd --get-default zone
public
(2)显示默认区域的所有规则:
[root@server1 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
(3)显示网络接口 ens33对应区域。
[root@localhost]# firewall-cmd --get-zone-of-interface=cns33
public
(4)将网络接口 ens33对应区域更改为internal区域。
[root@localbost]# tirewall-cmd--zone-internal --change-interface=ens33
The interface is under control of Mew9实kMansg9r, setting zone to 'internal'.
success
Lroot@localhost~]# firewall-cmd --zone=internal --list-interfaces
ens33
LrootBlocalboat~]# firewall-cmd --got zone=of-intcrface=cns33
intcrnal
C5)显示所有激活区域。
[rootClocalbost~]# firewall-cmd --get-actiwe-zones
internal
intcrfaces : ens33

4)服务管理
为了方便管理,firewalld预先定义了很多服务,存放在
/usr/lib/firewalld/services/ 目录中,服务通过单个的XML配置文件来指定。这些配置
文件则按以下格式命名: scrvice-namc.xml,每个文件对应一项具体的网络服务,如ssh 服
务等。与之对应的配置文件中记录了各项服务所使用的tcp/udp端口。在最新版本的
firewalld中默认已经定义了70多种服务供我们使用,对于每个网络区域,均可以配置允
许访问的服务。当默认提供的服务不适用或者需要自定义某项服务的端口时,我们需要将
service配置文件放置在/etc/fircwalld/ services/目录中。service 配置具有以下优
点。
通过服务名字来管理规则更加人性化。
通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服
务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式.
表1-3列出了firewall cmd命令区域中服务管理的常用选项说明。
表1-3 fizewall-smd命令区域中服务管理的常用选项说明
近项说明
[--zone—<zone>] --list一services是示指定区城内允许动问的所首服务
[--zone=<zone>] --add-service=<service>为指定区域设置允许访问的某项服务
[--zone=<zone>]--remove-service=<service〉删除指定区域已改置的允许访问的某项服务
[—-zone=<zone>] --list-ports 显示指定区域内允许访问的所有端口号
[--zone=<zone>]
-add-port=<PQrtid>[-<Portid>]/<protocol>
为指定区域设置允许访问的某个/某段端口号
(包括协议名)
[—-zone=<zone>]
——renove-port=<portid>[-<portid>]/<protocol>
除指定区域己设置的允许访问的端口号〔包括
协议名)
[--zone=<zone>」--list-icmp-blocks 显示指定区域内拒绝访问的所有ICMP类型
[--zone=<zone>] --add-icmp-block-<icmptype>为指定区域设置指绝访问的某项ICMP类型
[—-zone=<zone>] --remove-icmp-block=<icmptype>删除指定区域己设置的拒绝访阿的某项ICMP类
型,省略--zone=<zone>时表示对默认区域操作
其体操作如下所示。
1)为默认区域设置允许访问的服务。
[root@1ocslbost]# firewall-cmd--list-services
//显示默认区域内允许访问的所有服务
dhcpv6-clientssh
[root@localbost~# firewal1-cmd --add-service=http
设置默认区成允许访问http服务success
Lroct@localhost~]firewall-cmd -add-service=https
//设置默认区域允许访问https服务
success
[root@localhost~l# firewall-cmd --list-services
dhcpv6-clientssh https http
2)为internal区域设置允许访问的服务。
Lroot@localbost~]# firewall-cmd --zone-internal --add-service=mysql
//设置internal区域允许访问mysql服务
success
[root@locaJhoat.~]#firewall.cmd --zone=internal -remove-service=samba-client
//设置internal区域不允许访问sarmba-client服务
success
[root@localhost~]#firewall-cmd——zone internal --list-services
显示 internal区或内允许访问的所有服务

5)端口管理
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自
动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口。例如,执行以下操作
即可实现在internal区域打开443/TCP端口。
[root@localbost~]# firewall-cmd --zome=internal --add-port=443/tcp
success
若想实现在internal区域禁止443/TCP端口访问,可执行以下命令。
[root@localhost~]#firewall-cmd --zone=internal --remove-port=443/tcp
sccess

6)两种配置模式
前面提到firewall-cmd命令工具有两种配置模式:运行时模式(Runtime mode)表示
当前内存中运行的防火墙配置,在系统或firewalld服务重启、停止时配置将失效;永久
模式(Permanent mode)表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置
文件中的。
firewallzsnd命令工具与配置模式相关的选项有三个。
--reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
--permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动
firewalld或重新加载防火墙规则时才会生效:若不带有此选项,表示用于设置运行时
规则。
--runtime-to-pernanent:将当前的运行时配置写入规则配置文件中,使之成为永久性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firewalld防火墙基础 的相关文章

  • firewalld高级配置

    1 IP地址伪装 masquerade xff1a 伪装 通过地址伪装 xff0c NAT设备将经过设备的包转发到指定接收方 xff0c 同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地 当是返回数据包是 xff0c 会将
  • firewalld

    一 firewalld 介绍 firewalld 防火墙 xff0c 其实就是一个隔离工具 xff1a 工作于主机或者网络的边缘 xff0c 对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测 xff0c 对于能够被规则所匹配的
  • docker、firewalld和iptables之间的关系

    要注意docker命令中使用 p 暴露端口时 xff0c 实现需要依赖iptables CentOS 7默认使用的是firewalld 但是是否需要关闭firewalld并启动iptables呢 xff1f 参考多篇博文 xff0c 答案应
  • firewalld和netfilter

    setenforce 0 临时关闭selinux vi etc selinux config 永久关闭selinux需要修改这个配置文件 将SELINUX 61 enforcing修改为SELINUX 61 disabled getenfo
  • 10.12 firewalld和netfilter

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Linux防火墙 netfilter selinux临时关闭 setenforce 0selinux永久关闭 vi etc selinux configcentos7之前使
  • Linux防火墙——iptables以及firewalld的使用介绍

    本文基于Linux上CentOS 7版本配合iptables iptables services firewalld等服务进行演示 一 防火墙概念以及Netfilter机制介绍 1 概念 2 防火墙两大类型 3 Netfilter功能 二
  • 防火墙firewalld

    RHEL7中有几种防火墙共存 xff1a firewalld iptables ebtables等 基于iptables的防火墙默认不启动 xff0c 但仍然可以继续使用 RHEL7默认使用firewalld作为防火墙 xff0c 管理工具
  • Firewalld防火墙基础

    目录 一 Firewalld 概述 1 1 Firewalld的简述 1 2 Firewalld 和 iptables的区别 1 3 firewalld的区域 1 3 1 firewalld的9个区域 1 3 2 firewalld的数据处
  • CentOS 7 为firewalld添加开放端口及相关资料

    目录 一 运行 停止 禁用firewalld 1 1启动 xff1a 1 2 查看状态 xff1a 1 3 停止 xff1a 1 4禁用 xff1a 二 查看firewall是否运行 下面两个命令都可以 三 查看default zone和a
  • CentOS7使用firewalld打开关闭防火墙与端口火墙与端口

    CentOS7使用firewalld打开关闭防火墙与端口火墙与端口 启动 xff1a systemctl start firewalld 关闭 xff1a systemctl stop firewalld 查看状态 xff1a system
  • ansible防火墙firewalld设置

    ansible防火墙firewalld设置 背景需求操作防火墙的开关打开验证 防火墙端口策略打开验证 防火墙服务策略打开验证 背景 防火墙 通过有机结合各类用于安全管理与筛选的软件和硬件设备 xff0c 帮助计算机网络于其内 外网之间构建一
  • CentOS 7 firewalld使用简介

    学习apache安装的时候需要打开80端口 xff0c 由于centos 7版本以后默认使用firewalld后 xff0c 网上关于iptables的设置方法已经不管用了 xff0c 想着反正iptable也不会用 xff0c 索性直接搬
  • CentOS7使用firewalld打开关闭防火墙与端口

    1 firewalld的基本使用 启动 xff1a systemctl start firewalld 关闭 xff1a systemctl stop firewalld 查看状态 xff1a systemctl status firewa
  • systemctl stop firewalld和systemctl status firewalld【防火墙关闭和状态查看】

    root 64 node1601232218 ui systemctl status firewalld firewalld service firewalld dynamic firewall daemon Loaded loaded u
  • Centos 7/8 systemctl和防火墙firewalld命令

    一 防火墙的开启 关闭 禁用命令 xff08 1 xff09 设置开机启用防火墙 xff1a systemctl enable firewalld service xff08 2 xff09 设置开机禁用防火墙 xff1a systemct
  • linux 防火墙管理-firewalld

    文章目录 什么是Firewalld防火墙firewalld防火墙的域概念firewalld cmd的参数及作用firewalld中的过滤规则firewalld防火墙的作用模式firewalld cmd操作实例 对Firewalld服务的简单
  • centos7 防火墙基础配置(firewalld)

    查看服务运行状态 span class token punctuation span root 64 VM 0 4 centos docker span class token punctuation span span class tok
  • 《Linux运维总结:firewalld防火墙使用教程》

    文章目录 一 firewalld基础知识1 1 firewalld基本介绍1 2 firewalld与iptables关系与区别1 3 firewalld默认策略1 4 firewalld配置模式1 5 firewalld配置方法1 6 f
  • 如何在 CentOS 8 上配置和管理防火墙

    防火墙是一种监视和过滤传入和传出网络流量的方法 它的工作原理是定义一组安全规则来确定是允许还是阻止特定流量 正确配置的防火墙是整个系统安全最重要的方面之一 CentOS 8 附带一个名为防火墙 它是一个带有 D Bus 接口的完整解决方案
  • 如何在 FirewallD 中打开特定端口

    防火墙是大多数现代 Linux 发行版使用的防火墙管理解决方案 在本教程中 您将学习如何在firewalld 中打开端口 本教程介绍如何在firewalld 中为公共 特定IP 或IP 范围打开端口 找到我们的上一篇文章关于Firewall

随机推荐

  • 【CVPR2019】弱监督图像分类建模

    编者按 xff1a 获取大规模数据集的高置信标注是一个难点问题 xff0c 而解决此问题的弱监督学习更贴近人类对世界的认知机制 已有的弱监督图像分类研究 xff0c 通常局限于单标签或者多标签噪声场景 本文中 xff0c 将为大家介绍中科院
  • 重磅|中科视拓开源SeetaFace2人脸识别算法

    今天 xff0c 来自中科院计算所的人工智能国家队中科视拓宣布 xff0c 开源商用级SeetaFace2人脸识别算法 SeetaFace2采用商业友好的BSD协议 xff0c 这是在2016年9月开源SeetaFace1 0人脸识别引擎之
  • 学习笔记

    八种基本排序及其时间复杂度 https blog csdn net yang03 26 article details 80773280 参照上述文章中快速排序算法的源代码进行验证 在在线编程网站http www bccn net run
  • 杂记

    在线键盘敲击练习 xff1a https www dazima cn flash 127 html 有道云笔记网页网址 xff1a http note youdao com Android使用RenderScript实现图片的高斯模糊效果
  • ubuntu开机后桌面显示空白的问题

    原文 xff1a ubuntu开机只显示空白桌面解决方案 摘自 xff1a http www 2cto com os 201305 214687 html ubuntu开机只显示空白桌面解决方案 重新安装如下 xff1a sudo apt
  • 在ubuntu中安装编译工具mingw

    原文 xff1a Mingw xff1a 在Linux系统下编译Windows的程序 链接 xff1a http www sudu cn info html edu 20071227 87635 html Ubuntu下可以直接安装 xff
  • Spring Boot常用注解(绝对经典)

    x1f3c6 作者简介 xff1a 哪吒 xff0c CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 x1f4aa xff0c 专注Java硬核干货分享 xff0c 立志做到Java赛道全网T
  • linux下deb包如何安装

    原文 xff1a 怎么安装deb软件 链接 xff1a http zhidao baidu com link url 61 w 6LOuxz 97ZrSjEDIZemmLBsQTsseXJCRe1qE5PkmFKhF3o8tRmAkBloU
  • ubuntu下用apt-get时一直报[正在等待报头]

    原文 xff1a ubuntu下用apt get是总是出现0 正在等待报头 链接 xff1a http blog csdn net nevasun article details 6268332 分类 xff1a Linux系统管理 201
  • Android软键盘弹出时把布局顶上去的解决方法

    原文 xff1a 解决Andriod软键盘出现把原来的布局给顶上去的方法 xff08 转 xff09 链接 xff1a http blog sina com cn s blog 9564cb6e0101g2eb html 决方法 xff0c
  • 一个android列表的适配器数据异步加载的问题

    一个android列表的适配器数据异步加载的问题 问题现象 xff1a 当点击一个ListView的子项 xff0c 等更新ListView完成时 xff0c 再点击一下ListView的子项 xff0c 程序运行良好 xff1b 当点击一
  • MHA高可用配置及故障切换

    MHA概述 传统的MySQL主从架构存在问题 单点故障 MHA概述 一套优秀的MySQL高可用环境下故障切换和主从复制的软件 MySQL故障过程中 xff0c MHA能做到0 30秒内自动完成故障切换 MHA的组成 MHA Manager
  • setenforce: SELinux is disabled解决方案

    解决方案 第一步 修改配置文件 root 64 www vi etc selinux config SELINUX 61 disabled 该为SELINUX 61 1 第二步 重启nginx服务 systemctl restart ngi
  • OpenStack

    文章目录 OpenStack概述OpenStack简介什么是云计算IaaSPaaSSaaSDaaS OpenStack发展历程OpenStack发展趋势OpenStack工作流程OpenStack管理流程QEMULibvirt OpenSt
  • 利用wget命令获取FTP资源

    wegt命令作用 xff1a 可以从对方的ftp服务器上直接下载现存的软件包 命令格式 xff1a wget ftp IP 软件包名称 若是防止网站上面现在相关软件包可以使用该命令 xff1a wget http IP 软件包名称 验证 x
  • 部署OpenStack架构

    文章目录 OpenStack环境部署部署思路基础环境配置配置OpenStack系统环境配置 Keystone 组件的搭建小结 Glance组件的搭建 OpenStack环境部署 虚拟机设备信息及需求 控制节点 xff08 ct xff09
  • FTP服务与DNS域名解析服务

    文章目录 FTP原理FTP匿名账户的部署过程 xff1a FTP本地用户的部署过程 xff1a 指定用户的宿主目录路径DNS 域名解析服务 DNS正向解析DNS反向解析DNS主从复制 FTP原理 ftp使用场合 xff1a 用于文件的传输
  • 【Redis 1】Redis基础知识概述

    一 Redis简介 1 Redis xff08 Remote Dictionary Server 远程字段服务 xff09 是一个开源的使用ANSI C语言编写 支持网络 科技与内存亦可持久化的日志型 key value数据库 xff0c
  • PXE高效批量网络装机

    文章目录 PXE概述PXE部署kickstart无人值守部署 PXE概述 PXE批量部署的优点 规模化 xff1a 同时装配多台服务器 自动化 xff1a 安装系统 配置各种服务 远程实现 xff1a 不需要光盘 U盘等安装介质 PXE x
  • Firewalld防火墙基础

    Firewalld概述 Firewalld 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPv IPv6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 xff1a 即