firewalld防火墙基础配置
admin
2023-03-12 03:20:55
0

Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙。

Linux防火墙是如何检查数据流量的?

对于进入系统的数据包,首先检查的就是其源地址:

若源地址关联到特定的区域,则执行该区域所制定的规则;
若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则。
若网络接口未关联到特定的区域,那么就使用默认区域并执行该区域所制定的规则。
默认区域并不是单独的区域,而是指向系统上定义的某个其他区域。默认情况下,默认区域是public,但是也可以更改默认区域。以上匹配规则,按照先后顺序,第一个匹配的规则胜出,和网络设备的ACL匹配规则差不多,俗称匹配即停。
firewalld的相关预定义区域:
firewalld防火墙基础配置
firewalld防火墙有两种配置模式:

1 、运行时模式:表示当前内存中运行的防火墙配置,在系统或firewalld服务重启、停止时将失效;

2、永久模式:表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置文件中的。

firewall-cmd命令工具与配置模式相关的选项有三个:

--reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置;
--permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动或重新加载防火墙规则时才会生效;若不带此项,表示用于设置运行时规则。
--runtime-to-permanent:将当前运行时的配置写入规则配置文件中,使当前内存中的规则称为永久性配置。
1、防火墙相关命令使用:

[root@localhost ~]# systemctl start firewalld                #启动防火墙
[root@localhost ~]# systemctl enable firewalld            #设置开机自启动
[root@localhost /]# firewall-cmd --reload                     #重载防火墙
[root@localhost ~]# systemctl status firewalld             #查看防火墙状态
[root@localhost ~]# systemctl stop firewalld                #停止防火墙
[root@localhost ~]# systemctl disable firewalld            #设置防火墙开机不自启动
[root@localhost ~]# firewall-cmd --get-zones                #显示预定义的区域
block dmz drop external home internal public trusted work
[root@localhost ~]# firewall-cmd --get-service                     #显示预定义的服务
[root@localhost /]# firewall-cmd --list-all --zone=dmz                #查看指定区域的配置
dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost ~]# firewall-cmd --get-icmptypes                #显示预定义的ICMP类型
address-unreachable bad-header communication-prohibited destination-unreachable 
echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited
host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement
neighbour-solicitation network-prohibited network-redirect network-unknown 
network-unreachable no-route packet-too-big parameter-problem port-unreachable
precedence-cutoff protocol-unreachable redirect required-option-missing
router-advertisement router-solicitation source-quench source-route-failed time-exceeded
timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable 
tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly 
ttl-zero-during-transit unknown-header-type unknown-option

firewall-cmd --get-icmptypes命令执行结果中部分阻塞类型的含义如下:

destination-unreachable:目的地址不可达;
echo-reply:应答回应;
parameter-problem:参数问题;
redirect:重新定向;
router-advertisement:路由器通告;
router-solicitation:路由器征寻;
source-quench:源端抑制;
time-exceeded:超时;
timestamp-reply:时间戳应答回应;
timestamp-request:时间戳请求;

2、firewalld防火墙区域管理命令及示例:

firewalld防火墙基础配置

[root@localhost /]# firewall-cmd --set-default-zone=dmz           #设置默认区域为DMZ区域
[root@localhost ~]# firewall-cmd --get-default-zone                #显示当前系统中的默认区域
[root@localhost ~]# firewall-cmd --list-all                                 #显示默认区域的所有规则
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33       #显示网络接口ens33对应区域
[root@localhost ~]# firewall-cmd --get-active-zones           #显示所有激活区域
internal
  interfaces: ens33

 #执行以下操作可将网络接口ens33对应区域更改为internal区域,并查看:
 [root@localhost ~]# firewall-cmd --zone=internal --change-interface=ens33
 The interface is under control of NetworkManager, setting zone to 'internal'.
success
[root@localhost ~]# firewall-cmd --zone=internal --list-interfaces    #查看internal区域的接口列表
ens33
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33    #查看接口ens33对应的区域
internal

3、防火墙服务管理相关命令及示例:
firewalld防火墙基础配置
部分服务管理的示例:

为默认区域设置允许访问的服务

 [root@localhost services]# firewall-cmd --list-services          #显示默认区域内允许访问的所有服务
ssh dhcpv6-client
[root@localhost services]# firewall-cmd --add-service=http     #设置默认区域允许访问http服务
success
[root@localhost services]# firewall-cmd --add-service=https     #设置默认区域允许访问https服务
success
[root@localhost services]# firewall-cmd --list-services               #显示默认区域内允许访问的所有服务

ssh dhcpv6-client http https

为internal区域设置允许访问的服务:

[root@localhost services]# firewall-cmd --zone=internal --add-service=mysql 
#设置internal区域允许访问mysql服务
success
[root@localhost services]# firewall-cmd --zone=internal --remove-service=samba-client 
#设置internal区域不允许访问Samba-client服务
success
[root@localhost services]# firewall-cmd --zone=internal --list-services 
#显示internal区域内允许访问的所有服务
ssh mdns dhcpv6-client mysql

端口管理:
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口。示例如下:

 [root@localhost services]# firewall-cmd --zone=internal --add-port=443/tcp
 #在internal区域打开443/tcp端口
success
 [root@localhost services]# firewall-cmd --zone=internal --remove-port=443/tcp
 #在internal区域禁止443/tcp端口访问
success

以上配置都为临时配置,若想将当前配置保存为永久配置,可以使用下面命令:

 [root@localhost services]# firewall-cmd --runtime-to-permanent
success

直接配置为永久性规则,须带--permanent选项,如下:

[root@localhost /]# firewall-cmd --add-icmp-block=echo-request --permanent   #禁止ping

success
[root@localhost /]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent           
#配置external区域禁止ping
success

相关内容

热门资讯

苏巧慧阵营影射李四川家族涉黑,... 海峡导报综合报道 新北市长选战硝烟渐起,身处苏巧慧阵营的新北市议员翁震州发文质疑李四川家族在小琉球做...
红场阅兵后,普京同军官握手致意 据凤凰卫视报道,5月9日,俄罗斯胜利日阅兵接近尾声,普京与军官一一握手致意。
车间里走出“准工程师”——黄河... 3500元项目津贴,三个真实项目研发经历,一份实习期月薪8000多元的录用通知——这是工学部2022...
狱中一年瘦脱相,被释放的巴勒斯... 曾为巴勒斯坦媒体工作的记者阿里·萨穆迪在以色列监狱被关押一年后,于4月30日获释。获释当天,萨穆迪的...
俄罗斯红场阅兵战士齐呼乌拉 当地时间5月9日10时(北京时间15时),俄罗斯纪念卫国战争胜利81周年阅兵在莫斯科红场举行。俄罗斯...
福建一地发现华南虎?当地辟谣:... 近日,福建龙岩漳平市,有网民称,“三重岭发现华南虎”,还配了一张老虎夜间出没山林的图片。这位网民表示...
俄红场阅兵现场播放无人机作战视... 据凤凰卫视报道,当地时间5月9日,俄罗斯胜利日阅兵式在莫斯科举行。阅兵现场,同步播放了无人机作战相关...
5月10日起,北京部分地铁线试... 为服务骑行爱好者携车出行,在借鉴国内先进城市成熟经验、深入开展实地调研的基础上,结合本市轨道交通运营...
解放军主战舰艇编队进入澎湖西南... 5月9日下午,国防部新闻局副局长、国防部新闻发言人蒋斌大校就近期涉军问题发布消息。媒体提到,据报道,...
普京会见三国总统 强化后苏联空... 普京会见三国总统  【普京会见三国总统】莫斯科5月8日电​ 当地时间5月8日,俄罗斯总统普京在莫斯科...