区块链技术博客
www.b2bchain.cn

Firewalld防火墙基础

这篇文章主要介绍了Firewalld防火墙基础的讲解,通过具体代码实例进行21033 讲解,并且分析了Firewalld防火墙基础的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=21033

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

目录

  • 前言
  • 一、Firewalld概述
    • 1.1 firewalld和iptables的关系
    • 1.2 firewalld和iptables的区别
  • 二、Firewalld
    • 2.1 firewalld网络区域
    • 2.2 firewalld数据处理流程
    • 2.3 Firewalld防火墙的配置方法
    • 2.4 Firewall-config图形工具
      • 2.41 应用解析
      • 2.42 Firewall区域分类
      • 2.43 "区域”选项卡:
      • 2.44 "服务”选项卡:
  • 三、Firewall-cmd命令行工具
    • 3.1 firewalld用法示例
    • 3.2 设置服务或端口放行
    • 3.2 为网卡设置区域
    • 3.3 设置默认区域
  • 四、firewalld 项目测试
    • 4.1 实验坏境
    • 4.2 需求描述
    • 4.2 测试步骤

前言

在Internet中,企业通过架构各种应用系统来为用户提供各种网络服务,如FTP服务,电子邮件系统,Wed网站等。那么,如何来保护这些服务器,过滤企业不需要的访问甚至恶意的攻击呢?通过防火墙就可以轻松实现了,其中防火墙分为Firewalld和iptables。

一、Firewalld概述

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

  • 运行时配置(临时配置)—直到重启后,会自动清空
  • 永久配置 —重启后配置才能生效

1.1 firewalld和iptables的关系

netfilter
位于linux内核中的包括过滤功能体系
称为linux防火墙的“内核态”

firewalld/iptables
centos7默认的管理防火墙规则的工具(firewalld)
称为linux防火墙的“用户态”

1.2 firewalld和iptables的区别

Firewalld防火墙基础

二、Firewalld

2.1 firewalld网络区域

区域介绍
区域如同进入主机的安全门,每个区域都具有不同限制成都的规则
可以使用一个或多个区域,但是任何一个活跃区域至少需要关联地址或接口→网络接口→网卡
默认情况下,public区域是默认区域,包含所有接口(网卡)

2.2 firewalld数据处理流程

检查数据来源的源地址
1、若源地址关联到特定区域,则执行该区域所指定的规则 #源地址关联
2、若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则 #网卡关联区域
3、若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则 #网卡关联区域
优先级 :源地址关联>网卡关联

2.3 Firewalld防火墙的配置方法

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

2.4 Firewall-config图形工具

#systemctl start firewalld 要先开启防火墙
Firewalld防火墙基础

2.41 应用解析

运行时配置/永久配置
Firewalld防火墙基础

重载防火墙,更改默认区域,更改网卡连接区域,连接状态
Firewalld防火墙基础

2.42 Firewall区域分类

firewalld将网卡对应到不同的区域(zone) , zone 默认共有9个
#区域**状态会变成加粗字体

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

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

2.43 "区域”选项卡:

Firewalld防火墙基础

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

2.44 "服务”选项卡:

#只有在永久模式下服务才可以创建、编辑以及删除
Firewalld防火墙基础

"模块”子选项卡
”目标地址”子选项卡

三、Firewall-cmd命令行工具

/etc/firewalld/中的配置文件
Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/ib/firewalld/中的配置
/etc/firewalld/ :用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
/usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置
Firewalld防火墙基础

3.1 firewalld用法示例

ls  /usr/lib/firewalld/services       #可以使用容易理解的名称表示的所有服务. firewall-cmd --get-services       #查看支持的所有服务名称 firewall-cmd --get-zones           #查看所有区域     ,一共九个 firewall-cmd --get-default-zone     #查看当前默认区域 firewall-cmd --get-zone-of-interface=ens33          #查看指定网卡所处的区域 firewall-cmd --zone=public --qluery-service=ssh   #查看指定区域中有没有相关的服务开放,本命令查看public区域ssh服务有没有开放 firewall-cmd --zone=public --query-service=http   #查看public区域ssh服务有没有开放 firewall-cmd --list-services         #查看当前区域允许的服务 firewall-cmd --list-services --zone=public    #查看指定区域允许的服务,本命令查看public区域允许的服务 firewall-cmd --list-all --zone=public    #查看指定区域允许的所有服务 firewall-cmd --list-all-zones         #查看所有区域允许的服务 flirewall-cmd  --zone=public  --add-service=http --permanent   #永久配置public区域开放http服务 flirewall-cmd  --zone=public  --remove-service=http --permanent   #永久配置public区域删除http服务 firewall-cmd --reload                 #重新加载配置文件 

3.2 设置服务或端口放行

1、设置http服务

[[email protected] ~]# systemctl start firewalld          #保证防火墙开启 [[email protected] ~]# firewall-cmd --list-all --zone=public   #查看public区域允许的所有服务 [[email protected] ~]# flirewall-cmd  --zone=public  --add-service=http --permanent   #永久配置,public区域开放http服务 success    #成功  [[email protected] ~]# firewall-cmd  --reload     #重新加载配置文件,因为是永久配置 success    #成功  [[email protected] ~]# firewall-cmd --list-all --zone=public   #查看public区域允许的所有服务 

2、开放80号端口

firewall-cmd  --zone=public --add-port=80/ tcp  --permanent  #永久配置,public区域开放80端口 success    #成功  firewall-cmd --reload     #重新加载配置文件,因为是永久配置 success    #成功  [[email protected] ~]# firewall-cmd --list-all --zone=public   #查看public区域允许的所有服务 

3、 删除服务和端口

firewall-cmd --zone=home --remove-service=http   #临时删除一个服务,没加--permanent,重启之后还有 firewall-cmd --zone=public --remove-port=80/tcp    #临时删除一个服务,没加--permanent,重启之后还有 

3.2 为网卡设置区域

[[email protected] ~]# ifconfig      #查看新网卡信息 [[email protected] ~]# cd /etc/sysconfig/network-scripts/     #进目录拷贝ens33的网卡配置给新网卡 [[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens37 [[email protected] network-scripts]# vi ifcfg-ens37 [[email protected] network-scripts]# systemctl restart network    #重启网卡 [[email protected] network-scripts]# ifconfig      #查看网卡信息 [[email protected] ~]# firewall-cmd --get-zone-of-interface=ens37     #查看ens33网卡所处区域 [[email protected] ~]# firewall-cmd --list-all --zone=internal firewall-cmd --zone=external --change-interface=ens37 --permanent    #永久配置,网卡ens37改为external区域 firewall-cmd --reload   #重新加载配置文件,因为是永久配置 firewall-cmd --get-zone-of-interface=ens37    #查看ens37网卡所处区域 

3.3 设置默认区域

firewall-cmd  --set-default-zone=work 

查看活动区域及端口

firewall-cmd  --get-active-zones firewall-cmd  --zone=work   --add-interface=ens37 //将接口加入到相关区域 firewall-cmd  --zone=public  --remove-interface=ens37 //将接口移出相关的区域回到默认区域 

四、firewalld 项目测试

4.1 实验坏境

一台客户机:192.168.100.110
一台服务器:192.168.100.100
一台客户机:192.168.74.30

4.2 需求描述

禁止主机ping服务器
只允许192.168.100.110主机访问SSH服务
允许所有主机访问服务器Apache服务

4.2 测试步骤

1、先测试两台客户机和服务器之间互通
2、 禁止主机ping服务器

[[email protected] ~]# systemctl start firewalld   //开启防火墙 [[email protected] ~]# setenforce 0 setenforce: SELinux is disabled [[email protected] ~]# 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:  [[email protected] ~]# firewall-cmd --zone=public --add-icmp-block=echo-request --permanent success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# 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: echo-request   rich rules: 

测试验证
两台主机均被禁止ping服务器#互ping不通

3、只允许192.168.100.110主机访问SSH服务

[[email protected] ~]# firewall-cmd --zone=public --add-source=192.168.100.110/32 --permanent  success [[email protected] ~]# firewall-cmd --set-default-zone=dmz success [[email protected] ~]# firewall-cmd --change-interface=ens33 --zone=dmz --permanent The interface is under control of NetworkManager, setting zone to 'dmz'. success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# firewall-cmd --list-all dmz (active)   target: default   icmp-block-inversion: no   interfaces: ens33   sources:    services: ssh   ports:    protocols:    masquerade: no   forward-ports:    source-ports:    icmp-blocks:    rich rules:  
[[email protected] ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent success [[email protected] ~]# firewall-cmd --reload success 

测试验证
192.168.100.110主机可访问SSH服务,192.168.74.30则无法访问SSH服务

4、允许所有主机访问服务器Apache服务

[[email protected] ~]# echo "This is Apache" > /var/www/html/index.html [[email protected] ~]# systemctl start httpd [[email protected] ~]# firewall-cmd --zone=public --add-service=http --permanent  success [[email protected] ~]# firewall-cmd --zone=dmz --add-port=80/tcp --permanent  success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# firewall-cmd --list-all dmz (active)   target: default   icmp-block-inversion: no   interfaces: ens33   sources:    services:    ports: 80/tcp   protocols:    masquerade: no   forward-ports:    source-ports:    icmp-blocks:    rich rules:  
[[email protected] ~]# firewall-cmd --list-all --zone=public public (active)   target: default   icmp-block-inversion: no   interfaces:    sources: 192.168.100.110/32   services: ssh dhcpv6-client http   ports:    protocols:    masquerade: no   forward-ports:    source-ports:    icmp-blocks: echo-request   rich rules:  

测试验证
两台主机均可访问服务器Apache服务
curl http://192.168.100.100

本文转自互联网,侵权联系删除Firewalld防火墙基础

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Firewalld防火墙基础
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们