防火墙服务器搭建与应用(1.0)

由于linux系统在安装的时候就已经自动安装防火墙了,下面小编就是主要介绍有关防火墙的概念和相关命令。

防火墙概述

防火墙简介

防火墙技术是建立在现代信息网络的基础上的应用性安全技术,通常应用于专用网络与公用网络的互联环境之中,特别是接入Internet的网络。

防火墙是指隔离在本地网络与外界网络之间的一道防御系统。它是唯一进出不同网络或网络安全域之间信息的通道,能根据安全策略控制信息流出入网络,如允许、拒绝、监测等。它是一种在Internet上非常有效的安全模型,通过它能隔离风险区域的连接,同时又不会妨碍用户对风险区域的访问,从而有效地监控了内部网和Internet之间的活动,保证了内部网络的安全。它主要具有以下特征:

(1)双向流通信息必须经过它

(2)只有符合安全策略授权的信息才能被允许通过

(3)系统本身具有很高的抗攻击性能

总之,防火墙是在内部网与外部网之间实施安全防范的系统。它的主要功能是保护可信网络受到非可信网络的威胁,同时,必须允许双方合理的通信。现在大部分防火墙都是用于Internet内部网之间。当然,其他任何网络之间均可使用防火墙。

防火墙可以实现的功能如下:

(1)提供网络安全的屏障。防火墙可以作为阻塞点、控制点,极大地提高内部网络的安全性,过滤不安全的信息,从而降低风险。

(2)强化网络安全策略。使用以防火墙为中心的安全方案配置,能将所有安全认证配置在防火墙上,如口令、加密、身份认证、审计等。

(3)监测审计网络的存取和访问。防火墙能记录所有经过它的访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生有非法访问时,防火墙能进行适当的报警,并且提供网络是否受到监测和攻击的相关信息。

(4)防止内部信息外泄:防火墙可以实现对内部网络的划分,将内部网与重点网段隔离,使得全局网络免受局部重点或敏感网络安全问题的影响。除此之外,隐私也是内部网络的重要问题,一个内部网络中不引人注意的细节可能暴露了内部网络的某些安全漏洞。

防火墙除了具体安全的作用外,它还支持VPN技术。通过VPN技术可以将分布在全世界各地的局域网或专用子网,有机地联合成一个虚拟专用网。这样不仅可以省去专用通信的线路,而且也为信息共享提供了技术保障。

防火墙的分类

根据防范方式和侧重点的不同,防火墙技术分为多种类型,有些以软件形式运行在普通计算机上,有些以固件形式设计在路由器中。总的来说,防火墙可以分为以下三种。

1.包过滤防火墙

包过滤防火墙在tcp/ip四层架构下的ip层中运作。它检查通过的ip数据封包,并进一步处理。主要的处理方式有:放行(accept)、丢弃(drop)或拒绝(reject),以达到保护自身网络的目的。

包过滤技术在网络层中对数据包进行有选择的处理。它根据系统内预先设定的过滤规则,对数据流中每个数据包进行检查后,根据数据包的源地址、目的地址、tcp/udp源端口号、tcp/udp目的端口号以及数据包头中的各种标志位等信息来确定是否允许数据包通过。

包过滤防火墙的应用主要有三类:一是路由设备在进行路由选择和数据转发的同时进行包过滤;二是在工作站上使用专门的软件进行包过滤;三是在一种称为屏蔽路由器的路由设备上启动包过滤功能。

包过滤防火墙的优点是它对用户而言是透明的,即用户不需要用户名和密码就可以登录。其缺点是没有记录用户的使用记录,这样用户就不能从访问记录中发现攻击记录。

2.应用网关防火墙

网关防火墙是指只有网关主机才能到达所有的外部网络,而内部网络的使用者要连接到外部网络,必须先登录这台网关主机。

应用网关技术是基于在网络应用层上的协议过滤,主要是针对特别的网络应用服务协议即数据过滤协议,它能够对数据包进行分析并形成报告。它严格控制所有输出输入的通信环境,以防有用数据被窃取。它还可以记录用户的登录信息,以便跟踪攻击记录。

有些应用网关还保存Internet上的那些经常被访问的页面。如果用户请求的页面已经存在于应用网关服务器缓存中,网关服务器就要先检查所缓存的页面是否是最新的版本;如果是,则直接提交给用户,否则,就到真正的服务器上请求最新的页面,然后再转发给用户。

3.代理服务器防火墙

代理服务器防火墙是针对每一种应用服务程序进行代理服务的工作。一方面代替原来的客户建立连接,另一方面代替原来的客户程序,与服务器建立连接。它可确保数据的完整性,只有特定的服务才会被交换;还可进行高阶的存取控制,并可对其内容进行过滤。

代理服务器技术作用在应用层,对应用层服务进行控制,可起到内部网络向外部网络交流服务时中间转接的作用。内部网络只接受代理提出的服务请求,拒绝外部网络其他节点的直接请求。

通常情况下,代理服务器可应用于特定的Internet服务,如HTTP、ftp等服务。代理服务器一般都有高速缓存,缓存中保存了用户经常访问的页面。当下一个用户要访问同样的页面时,服务器就可以直接将该页面发给用户,从而节约了时间和网络资源。

iptables介绍

netfilter/iptables组件

netfilter/iptables可以实现防火墙、nat(网络地址转换)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。netfilter/iptables是从ipchains和ipwadfm发展而来的。

netfilter/iptables IP信息包过滤系统可进行添加、编辑和除去规则,这些规则可以对信息包进行过滤。这些规则存储在专用的信息包过滤表中,而这些表内置在linux内核中。netfilter/iptables IP信息包过滤系统主要由netfilter和iptables两个组件组成。

1.netfilter

netfilter组件也称为内核空间。它集成在内核中,主要由一些信息包过滤表组成。这些表包含控制信息包过滤处理的规则集,这些规则被分组放在链中,使得内核对源地址、目的地址或具有某些协议类型的信息包进行处置,完成信息包的处理、控制和过滤等操作。

2.iptables

iptables组件是一种高效、简洁的工具,也被称为用户空间。用户可以使用它来插入、修改和删除信息包过滤表中的规则,这些规则也就是netfilter组件处理信息包的依据。通过使用iptables,用户可以定制各种安全策略实现对防火墙和信息包过滤的控制。

iptables组成结构

netfilter是linux内核中的一个通用架构。它包含许多表(table),每个表由若干链(chain)组成,而每条链由若干条规则(rule)组成。换句话说,netfilter是表的容器,表是链的容器,而链又是规则的容器。

1.表

iptables内置了三种表:filter、nat和mangle,分别用于实现包过滤、网路地址转换和包重构的功能。

(1)filter

filter表用来过滤数据包。它根据定义的一组规则过滤符合条件的数据包,并根据数据包的内容对包进行drop或accept等操作。filter表是iptables默认的表。如果没有指定表,则默认使用filter表来执行所有的命令。它包含以下内置链。

·input:应用于发往本机的数据包

·dorward:应用于路由经过本地的数据包。

·output:本地产生的数据包。

(2)nat

nat表的主要作用是进行网络地址转换。它可以实现一对一、一对多、多对多的操作。iptables的共享上网功能就是使用该表来实现的。

nat表中包含prerouting链、output链和postrouting链。

prerouting:修改刚刚到达防火墙时数据包的目标地址

output:修改本地产生的数据包的目标地址

postrouting:修改要离开防火墙的数据包的源地址

nat表的操作可以分为以下几类:

dnat:访问重定向,把数据包重定向到其他主机上,即改变目的地址,以使数据包访问改变后的目的地址。

snat:改变数据包的源地址,这样可以隐藏本地网络或者dmz等。

asquerade:与snat差不多,但也有区别。对每个匹配的包,asquerade都要查找可用的IP地址,而snat使用的IP地址是配置好的。

(3)mangle

mangle表主要用来对指定的数据包进行修改,可以改变不同的包及包头的内容,如TTL、tos或Mark。在实际的应用中该表不经常使用。

mangle表有5个内建的链:prerouting,postrouting,output,input和forward

prerouting:在数据包进入防火墙之后路由判断之前,改变数据包。

postrouting:在所有路由判断之后

output:在确定数据包的目的之前更改数据包

input:数据包被路由到本地之后,在用户空间的程序看到它之前改变数据包。mangle表只改变数据包的TTL、TOS或Mark,但不是其源目的地址。

mangle表的操作可以分为以下几种:

tos的作用是设置或改变数据包的服务类型域

TTL的作用是设置数据包的生存时间域

Mark的作用是设置特殊的标记

2.规则和链

(1)规则

规则(rule)是网络管理员预先设定的条件,规则都这样定义“如果数据包头符号这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,它通常指定源地址、目的地址、传输协议(tcp、udp、icmp)、服务类型(HTTP、ftp、smtp)和对数据包的处理方法,处理方法一般有:放行(accept)、拒绝(reject)和丢弃(drop)等。

防火墙可以利用规则对来自某个源、到某个目的地或具有特定协议类型的信息包进行过滤。防火墙的配置工作主要是增加、修改和删除这些规则,规则的建立可以使用iptables命令完成。

(2)链

链(chain)是数据包的传播路径。每条链是许多规则中的一个检查清单,其中可以有若干条规则。当一个数据包到达一个链时,iptables就会从第一条规则开始检查数据包是否符合该规则定义的条件。如果满足,iptables将根据该条规则所定义的方法处理该数据包;否则,将继续检查下一条规则。如果该数据包不符合该链中的任一条规则,那么iptables就会根据该链先定义的策略来处理该数据包。

iptables工作流程

iptables拥有3个表和5个链,其整个工作流程


(1)数据包进入防火墙以后,首先进入mangle表的prerouting链,如果有特殊设定,则会更改数据包的tos等信息

(2)数据包进入nat表的prerouting链,如果有规则设置,则通常进行目的地址转换

(3)数据包经过路由,判断该包是发送给本机,还是需要向其他网络转发

(4)如果是转发,就发送给mangle表的forward链,根据需要进行相应的参数修改,然后送给filter表中的forward链进行过滤,再转发给mangle表的postrouting链。如果有设置,则进行参数调整,然后发给nat表的postrouting链。根据需求,有可能会进行网络地址转换,修改数据包的源地址,最后将数据包发送给网卡,转发给外部网络。

(5)如果目的地为本机,则数据包会进入mangle的input链。经过处理,进入filter的input链;再经过相应的过滤,进入本机的处理进程。

(6)本机产生的数据包,首先进入路由,然后分别经过mangle、nat以及filter的output链,进行相应的操作;在进入mangle、nat的postrouting链,向上发送。

网络地址转换的工作原理

网络地址转换(network address translation,nat)是一种把内部私有ip地址转换成合法网络ip地址的技术。

为什么要使用nat技术?实际上,在网络内部的主机使用的ip地址一般为私网地址,仅能够内部使用。通常使用以下地址范围:10.0.0.0~10.255.255.255/172.16.0.0~172.16.255.255/192.168.0.0~192.168.255.255,而这些内部使用的私网地址,无法在互联网上使用。内部主机与外部网络直接通信时,必须将内部网络地址替换成公网地址,从而在公网上正常使用


nat可以使多台计算机共享Internet连接,这一功能很好地解决了公共ip地址紧缺问题。通过这种方法,可以只申请一个合法的ip地址,就把整个局域网中的计算机接入Internet。这时,nat屏蔽了内部网络,所有内部网计算机对于公网来说是不可见的,而内部网的计算机用户通常不会意识到nat的存在。

猜你喜欢

转载自blog.csdn.net/mez_blog/article/details/80466934