Linux 防火墙脚本化管理研究
2019-04-18张国防陈雪丽
◆张国防 陈雪丽
(海南软件职业技术学院 海南 571400)
0 引言
在企业的网络中心机房里面最重要的设备就是服务器,服务器上存储有企业的全部数据信息,出于对网络安全和网络性能的考虑,为网络服务器提供既稳定又高效的保证是网络运维人员关注的问题。 Linux作为一款性能良好的服务器操作系统,不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的一大亮点。Linux的防火墙的结构、配置逻辑和如何高效地配置是网络运维人员所关注的焦点,也是必须掌握的技能。本文从Linux防火墙的高效管理配置的角度进行研究,提出使用脚本管理Linux防火墙的新方式,提高了网络管理效率,也节省了网络运维人员大量时间和精力,进而提高了工作效率。
1 链表结构
Linux防火墙是由若干张表构成,在早于2.4的内核当中主要有三张表,而在2.6的内核当中增加了一张新的表,变成了四张表,分别是raw表、mangle表、nat表、filter表,各表相互独立,专表专用。filter表功能数据包过滤,nat表功能地址转换。而 mangle表功能数据包修改。通过修改数据包的某些字段,可以获得更小的传输延迟,更大的吞吐量。而raw表示新开发的表,留作他用。这四张表里面,raw表和 mangle表还没有被开发完善,使用度并不高,重点在nat表和filter表当中。
表是由若干条链构成的,其中 filter表是由三条链构成的,分别是INPUT链、OUTPUT链、FORWARD链,不同的链用来处理不同流入流出方向的数据流。INPUT链专门用来处理输入到防火墙的数据流。而 OUTPUT链专门处理从防火墙出发往别的地方去的数据流,FORWARD链专门处理在防火墙上被转发的数据流。也就是说,数据流从防火墙的一个接口进来,然后又从防火墙的另一个接口出去了。而链是由规则构成的,规则就是允许或者拒绝数据包的来去路径,这是整个 filter表里的三条链。NAT表里面也有三条链,其中,OUTPUT链也是从防火墙输出的数据流,而POSTROUTING链是专门做源地址转换的,PREROUTING链是专门做目标地址转换的。而在 mangle表里面出现了前面两张表里面的所有的几条链,因为mangle表是专门用来做数据包字段修改,从而实现服务质量的;而raw表主要提供一些帮助使用户实现一些高级功能。比如说基于网址的过滤,可根据提交的网址进行一些过滤等等。
2 图形界面的问题
网络中的设备种类繁多,厂家品牌杂乱。有网络互联设备,比如交换机、路由器。有各种平台的服务器,比如Windows、Linux、Unix、Sun Solaris、Apple等各种操作系统的服务器。还有各种网络安全设备,如防火墙、入侵检测设备、入侵防护设备、网络监控设备、日志服务器、流量监控设备等。各设备标准不很统一,功能之间又交叉重叠。许多厂家的设备为了追求市场占有率,降低管理人员的维护难度,开发了各种设备管理的图形界面。图形界面降低了管理人员的工作难度,可操作性强,容易上手配置,给管理带来方便。但评价网络性能的一个重要指标就是网络的高吞吐量、快速响应时间和强壮性。而运行图形界面往往占用大量宝贵的系统资源,降低了网络响应时间,间接地拉低了网络的吞吐量,这与网络追求的性能指标相互矛盾。更何况使用图形界面的设备还需要使用带显示器的管理主机来管理,无形中提高了维护成本。而且在网络人员不能够到达的区域,这种方式不能及时对网络进行运维管理,因此在网络维护工程师行业领域,这种图形化管理方式逐渐被淘汰。
3 shell脚本的优势
网络服务器群的安全是网络性能中最为企业所重视的,因为服务器作为企业数据的储存池,存储着大量数据信息,这些数据对企业非常重要。数据是企业的命脉,任何由于小部分的数据丢失都可能对企业造成不可估量的作用。而维护网络高效安全运行又是网络运维人员的首要任务。这使得对网络防火墙等安全设备的高效管理显得尤为重要。Linux作为安全高效的防火墙,使用shell脚本管理配置逐渐成为业界的共识。
3.1 网络管理瞬间化
使用命令写成的 shell脚本非常简洁,使得对防火墙的配置工作简单化,管理员只需要按照网络性能要求写好脚本,提交命令就可以使防火墙的各种配置立即生效,实现了瞬间化网络管理。而逐条命令的传统配置方式使得管理员在配置防火墙的同时也是在调试,调试就有可能出错,对于一些比较重要的金融网络、银行网络,由于一条命令不慎可能会给用户带来安全隐患,会给企业造成不可估量的损失。这是企业不想看到的,也是网络工程人员不能承担的风险。与此相反,当使用脚本来管理网络时,管理员在普通的脚本上使用命令编写脚本,错了再修改,可以反复修改,还可以在实验室进行脚本测试,直到脚本正确无误再到生产环境中提交。这不仅将风险降到最低,还降低了后期维护的成本,节省了人力,提高了管理人员的效率。
3.2 网络管理远程化
企业网络为了提高效率和节约成本,对网络中心的规划要求往往很高,为了提高网络服务效率,企业网络中心的服务器往往不安装图形桌面环境,服务器只运行在命令行界面,这样做的好处是服务器的资源得到了极大利用,不用使宝贵的资源白白浪费在图形界面。并且在网络服务中心的机房内部不需要安装显示器,节省了成本。在日常的服务器维护中,运维人员是在另外的房间或者相距很远的地方远程维护服务器。对于使用Linux作为网络中心服务器的防火墙的来说,对其管理也是远程进行的,因为不提供图形运行环境,使用 shell脚本进行远程管理就显得特别重要。脚本只是命令字符的集合,往往几百条命令组成的 shell脚本才几个KB大小,使用远程命令行工具对Linux防火墙管理配置使得管理人员可以实现安全高效的远程办公,实现了网络管理的远程化。
4 shell脚本案例
在如图1所示的网络环境中,一台安装了Linux操作系统的内核的主机将网络分割成内网和外网,在Linux主机上安装了两块网卡,分别连接两个网络。在内部网络中的服务器有ftp服务器、web服务器和邮件服务器。为了保护内部网络安全,对Linux主机配置了防火墙设备,为提高网络运维效率使用 shell脚本的方法对网络Linux主机进行配置,使其充当企业服务器网络的防火墙设备,担负起保护内部服务器安全的角色。
图1 实验网络拓扑
实验证明,使用shell脚本能够远程对网络进行瞬间化管理,提高了网络维护的效率,节约了维护成本。实验所用 shell脚本如下。
5 结束语
Linux操作系统作为一种开源操作系统,一直以性能稳定著称,使用脚本对netfilter模块进行高效管理远不止这些,还可以将脚本管理方法扩展,用于Linux的各种服务配置和性能优化当中。