firewalld防火墙
📒博客主页: 微笑的段嘉许博客主页
🎉欢迎关注🔎点赞👍收藏⭐留言📝
📌本文由微笑的段嘉许原创!
📆51CTO首发时间:🌴2022年10月日28🌴
✉️坚持和努力一定能换来诗与远方!
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
⭐本文介绍⭐
在Internet中,企业通过架设各种应用系统来为用户提供各种网站服务,如Wevb网站、电子邮件系统、FTP服务器、数据库系统等。那么,如何来保护这服务器,过滤企业非授权的访问,甚至是恶意的入侵呢?本文将介绍Linux系统中的防火墙——net filter和firewalld,包括防火墙的结构与匹配流程,以及如何编写防火墙规则。
📝理论讲解:
Liunx防火墙基础
防火墙是指设置在不同网络与网络安全域之间的一系列部件的组合,也是不同安全域之间信息的唯一出口。通过监测、限制并更改跨越防火墙的数据流,尽可能地对外屏蔽网络内部地信息、结构和运行状态,且有选择地接受外部网络访问。再内外网之间架起一道屏障,以避免发生不可预知或潜在地入侵。从传统意义上来说防火墙技术分为三类:包过滤(Packet Filtering)、应用代理(APPlication Proxy)、状态检测(Stateful inspection)。无论一个防火墙地实现过程有多复杂,归根结底都是再者三种技术地基础上进行扩展的。
Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实现过滤和限制,属于典型 的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率,也因此获得广泛的应用。再CentOS7体系中的几种防火墙共存:firewalld、IP tables、ebtables,默认使用firewalld来管理netfilter子系统。
- netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"又称为内核空间的防火墙功能体系。
- firewalld:指用于管理Linux防火墙的命令程序,属于"用户态"又称为用户空间的防火墙管理体系。
firewalld概论
- firewalld简介
firewalld的作用是为包过滤机制提供匹配规则(或称为策略),通过各种不同的规则,告诉netfilter对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式。为了更加方便地组织和管理防火墙,firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网,并且拥有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则接口。 - firewalld网络区域
firewalld将所有的网络数据流量划分为多个区域,从而简化防护墙管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查就是其源地址。
- 若源地址关联到特定的区域,则执行该区域所制定的规则。
- 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则。
- 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则。
默认区域不是单独的区域,而是指向系统上定义的某个其他区域。默认情况下,默认区域是public,但是系统管理员可以更改默认区域。以上匹配规则,按照先后顺序,第一个匹配的规则胜出。
在每个区域中都可以配置其打开或者关闭的一系列服务器端口,firewalld的每个预定义的区域都设置了默认打开的服务。
区域 | 说明 |
trusted(信任区域) | 可接收所有的网络连接 |
public(公共区域) | 除非与传出流量相关,或与ssh或dhcpv6-client预定义服务匹配,否则拒绝流量传入,在公共区域内,不能相信网络内的其他计算机不会对计算机造成危害,只能接收经过选择的连接。并且,该区域是新添加网络接口的默认区域 |
work(工作区域) | 除非与传出流量相关,或与shh、ipp-client、dhcpv6-client预定于服务匹配,否则拒绝流量传入,用于工作区。相信网络内的其他计算机不会危害计算机,仅接收经过选择的连接。 |
home(家庭区域) | 除非与传出流量相关,或与ssh、ipp-client、mdns、samba-client、dhcpv6-client预定义服务匹配,否则拒绝流量传入,用于家庭网络。信任网络内的其他计算机不会危害计算机,仅接收经过选择的连接。 |
internal(内部区域) | 除非与传出流量相关,或与ssh、ipp-client、mdns、samba-client、dhcpv6-client预定义服务匹配,否则拒绝流量传入,用于内部网络。信任网络内的其他计算机不会危害计算机,仅接收经过选择的连接。 |
external(外部区域) | 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝流量传入。通过此区域转发的IPv4传出流量将进行地址伪装,可用于路由器启用了伪装功能的外部网络。 |
dmz(隔离区域也称为非军事区域) | 除非与传出的流量相关,或与ssh预定义服务匹配,否则拒绝流量传入 |
block(限制区域) | 除非与传出流量相关,否则拒绝所有传入流量 |
drop(丢弃区域) | 除非与传出流量相关,否则丢弃所有传入流量,并且不产生包含ICMP(Internet Control Message Protocol,互联网控制报文协议O)的错误响应 |
📖实验配置与实现:
拓扑图:
推荐步骤:
- 服务器客户配置 IP 地址设置网络,安装 apache 服务启动服务设置主页
- 启动防火墙服务接口添加指定区域,Web 服务器启动防火墙服务接口添加指定区域
- 配置客户端允许访问 DMZ 的网站服务器使用 http 协议,配置允许客户端使用 https 协议访问 external 区域网站,配置防火墙规则阻止客户端 ping 通 external 区域的网站服务器,配置防火墙规则允许客户都安远程 ssh 登录 DMZ 区域的 Web 服务器并修改端口 2222
实验步骤:
一、 服务器客户配置 IP 地址设置网络,安装 apache 服务启动服务设置主页
1、配置 firewalld 防火墙服务器
1) 添加三块网卡分别连接三个区域
2)配置 ens2 网卡 IP 地址
3) 生成 DMZ 网卡和外网网卡
4)配置 DMZ 区域网卡 IP 地址
5)配置 external 区域网卡 IP 地址
2、配置 DMZ 区域的 web 服务器
1)修改网卡模式
2)修改 IP 地址
3)查看 IP 地址
4)删除系统源挂载系统到/mnt
5)安装 apache 服务器
6)设置网站主页
7)启动服务设置开机自动启动
3、配置 external 区域的 web 服务器
1)设置网卡模式
2)配置 IP 地址
3)查看 IP 地址
4)删除系统源挂载系统到/mnt
5)安装 apache 服务器和 https 模块
6)设置网站主页
7)启动服务设置开机自动启动
4、配置 Win10 客户端
1)修改 Win10 网卡模式
2)配置 IP 地址
2) 查看 IP 地址
二、启动防火墙服务接口添加指定区域,Web 服务器启动防火墙服务接口添加指定区域
1、配置防火墙服务器
1)启动防火墙服务器设置开机自动启动
2)查看防火墙服务运行状态
3)将接口加入指定的区域
4)设置默认区域
5)查看激活区域
6)开启路由功能
2、配置 DMZ 区域的 web 服务器防火墙
1)启动防火墙服务设置开机自动启动
2)查看防火墙服务运行状态
3)将接口加入指定的区域
4)设置默认区域
5)查看激活的区域
3、配置 external 区域的 web 服务器防火墙
1)启动防火墙服务器设置开机自动启动
2)查看防火墙服务运行状态
3)接口加入到防火墙区域
4)设置防火墙默认区域
5)查看激活的防火墙区域
三、配置客户端允许访问 DMZ 的网站服务器使用 http 协议,配置允许客户端使用 https 协议访问 external 区域的网站,配 置防火墙规则阻止客户端 ping 通 external 区域的网站服务器,配置防火墙规则允许客户都安远程 ssh 登录 DMZ 区域的 Web 服务器并修改端口 2222
1、配置客户端允许访问 DMZ 的网站服务器使用 http 协议
1)添加防火墙规则允许 http 协议通信
2) 查看防火墙规则
3)客户端访问 web 服务器验证
2、配置客户端允许访问 external 区域的网站服务器https 协议
1)添加防火墙规则允许客户端访问 external 区域的网站服务器使用 https 协议
2)查看防火墙区域规则
3) 客户端访问验证
3、配置防火墙规则阻止客户端 ping 通 external 区域的网站服务器
1)配置防火墙规则阻止客户端 ping 通 external 区域的网站服务器
2)查看配置防火墙规则
3)客户端 ping 目录网站服务器验证
4、配置允许客户都安使用 ssh 远程访问 DMZ 区域中的 web服务器,ssh 端口号为 2222
1)配置修改 ssh 服务器端口号
2)重启 ssh 服务查看服务运行状态
3)配置客户端允许 ssh 修改端口号
4)查看防火墙规则
5)客户端验证
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!