Linux下双网卡Firewalld的配置流程

本文涉及的产品
云防火墙,500元 1000GB
简介: 实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上。笔者最终选择通过firewalld放行端口的方式来实现需求,由于firewall与传统Linux使用的iptable工具有不小的区别,接下来通过博客来记录一下firewalld的配置流程。

实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上。笔者最终选择通过firewalld放行端口的方式来实现需求,由于firewall与传统Linux使用的iptable工具有不小的区别,接下来通过博客来记录一下firewalld的配置流程。

1.Firewall服务的简介:

firewalld提供了一个 动态管理的防火墙,用以支持不同网络区域的规则,分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IPv4 和 IPv6 防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。

上述内容是来自RetHat官方文档的说明,看起来不知所云。所以笔者在这里简单介绍一下firewalld的定位与传统的iptable存在什么样的不同:

  • 动态防火墙
    firewalld 提供的是动态的防火墙服务。配置的改变可以随时随地立刻执行,不再需要保存或者执行这些改变。而iptable的部分,每一个单独更改意味着要清除所有旧有的规则和从 里读取所有新的规则,相对来说firewalld的方式会更加灵活。

  • 区域隔离
    firewalld 提供了区域隔离的服务,也就是说类似于window之中的公共网络与内部网络的区别,可以通过不同的区域的配置对应的规则来实现不同的网络规则服务。通过区域规则的方式,可以让防火墙的工作更加的灵活。

如图所示,firewalld的防火墙本质上是建立在原生的iptable防火墙之上的抽象层,通过定制规则的方式来利用iptable的功能,所以两个防火墙是上下级并行工作的关系,最终都需要落地到内核之中的netfilter来实现网络包的过滤,来简化防火墙的工作流程。(传统iptable的“四表五链”实在是有够复杂~~囧rz

iptable与firewalld的逻辑层次

2.系统环境:

如下图所示,这里需要在LVS的服务器需要部署firewall的防火墙,这里笔者仅简要梳理一下一台LVS服务器的工作:


系统结构的示意图

系统平台:Centos 7

LVS服务器: 双网卡

  • 外网地址:219.223.199.154
  • 内网地址:192.168.1.17

对外服务器:

  • 服务器A:192.168.1.11
  • 服务器B:192.168.1.14

在这里,外网地址之上需要开放的端口为10086端口,通过该端口进行转发。而内网地址之上并不设置限制,我们认为是安全的网络环境。

3.配置流程:

Firewalld的配置可通过三种方式:

  • firewall-config
    一个图形化的用户接口的配置工具

  • firewall-cmd
    一个命令行的用户接口的配置工具

  • 静态xml文件配置
    firewalld 的配置设定存储在/etc/firewalld/ 目录下的 xml 文件里。可以通过查看和编辑这些 xml 文件,来实现firewall的配置。

之后笔者的配置流程主要是基于firewall-cmd命令展开,首先启动firewall服务:

  systemctl start firewalld.service  //启动firewalld服务

接下来,开放外网网卡的对应的TCP端口,这里笔者选择public区域,也就是双网卡同时开放端口。

  firewall-cmd --zone=public --add-port=10086/tcp --permanent

该命令的配置了public区域添加10086的端口,后续的参数--permannet则代表永久添加。也就是一次写入,后续重启之后依然生效。在firewall之中支持如下不同的区域区隔与过滤规则,之后不同的配置可以参考下面的内容:

区域
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
过滤规则
source: 根据源地址过滤
interface: 根据网卡过滤
service: 根据服务名过滤
port: 根据端口过滤
icmp-block: icmp 报文过滤,按照 icmp 类型配置
masquerade: ip 地址伪装
forward-port: 端口转发
rule: 自定义规则

之后通过LVS配置好下图是通过ipvsadm配置好的转发机制:


LVS转发机制

通过外网尝试连接外网的ip地址,219.223.199.154:10086,发现并无法联通后端服务器的服务,也就是运行在192.168.1.11与192.168.1.14的服务器。

调用ipvsadm -lcn命令之后,发现内网的转发出现了问题:

内网转发的问题

通过抓包发现LVS服务器在内网网卡192.168.1.17上的通信包被拦截,于是继续通过firewalld-cmd命令开发内网网卡的端口,将内网网卡加入trusted区域:

 firewall-cmd --zone=trusted --add-interface=enp3s0

接下来可以看到开放了对应内网网卡到trusted,trusted区域允许所有通信包放行,因为内网是相对安全的环境,所以并不存在很大的影响,调用:

 firewall-cmd --list-all-zones

命令展示firewall的配置结果,public与trusted区域都出于active状态,外网服务能够正常连接内网的端口服务了。

可以看到上述public的设置之中涉及到了对应的ssh服务于dhcpv6-client的服务,在Firewalld之中是可以直接通过服务来放行对应的内容,也就是上文参数service,详细的配置参数需要在目录/usr/lib/firewalld/services之中进行配置,我们尝试打开上文ssh服务的内容:

SSH服务的配置目录

由上文的配置内容可见: 所谓的服务配置防火墙,本身也是通过标注协议与端口的方式进行的,只不过是用服务的逻辑进行包装了。至于使用哪种形式,各位见仁见智了。

小结

梳理了一下在LVS下双网卡Firewalld的配置流程。至于Debian系列的发行版也是大同小异,只不过Firewalld工具需要自行使用apt-get进行安装。上述内容若有疏漏,望各位指点斧正。

目录
相关文章
|
2月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
7天前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
63 11
|
2月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
198 8
|
3月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
195 0
|
5月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
403 11
|
4月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
252 0
|
6月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
250 10
|
6月前
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
591 1
|
1月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
304 1
二、Linux文本处理与文件操作核心命令