利用Linux内置防火墙提高网络的访问控制

Linux操作系统的安全性是众所周知的,
所以,现在很多企业的服务器,如文件服务器、WEB服务器等等,都采用的是Linux的操作系统。笔者所在的企业,有包括Oracle数据库服务器、文件备份服务器、邮件服务器、WEB服务器也都是采用Linux的服务器系统。今天,我就谈谈Linux是通过哪些技术来保障服务器的安全,来加强对网络的访问控制。Linux内置防火墙主要是通过包过滤的手段来提高对网络的管理控制功能,从而提高网络与服务器的安全。一、 Linux防火墙的工作原理我们设想一下,一台Linux主机一般会作哪些数据包相关的工作。其实,我们可以把一台Linux形象的比喻成一个地铁车站。一个地铁车站一般有三个口子,一个是进口,乘客需要去做地铁的话,必须通过这个地铁的进口,而且必须凭合法的票子才能进去。第二个是出口,若乘客需要离开地铁站的话,则也必须凭着票子出站。三是一个中转的接口,也就是说,在地铁的中转站中,你可以直接通过过道到另外一条线上去。而一台Linux主机也有三个口子。一个是进口(INPUT),到这台主机的任何数据包都需要通过这个接口才能够进入Linux系统的应用程序空间。第二个是出口(OUTPUT),从应用程序发送出去的任何数据包都必须通过这个出口,才能够进入到Linux系统的内核,让它把数据发送出去。第三个是转发接口(FORWARD),主要用来进行数据包的转发。在Linux主机上要实现包过滤,其实也就是在这三个口子上添加包过滤条件。这就好像在每个口子上设置“验票员”。当“乘客”手里的票是合法的,则“验票员”就允许其通过;若这票是不允许的,则“验票员”就会拒绝其通过这个口子。通过这种方式,我们网络管理员就可以很好的管理网络中传递的数据包,并且对于一些服务器的防问权限进行合理且有效的控制。如有时候我们为了防止DDOS攻击,我们就可以设置让所有主机都拒绝ICMP协议。如此的话,任何一台主机企图ping局域网内的任何一台Linux电脑的话,局域网内的任何主机都不会有响应。而若有黑客把局域网内的主机当作肉鸡,企图通过他们来实现DOS攻击的时候,由于我们在出站接口(OUTPUT接口)过滤了ICMP协议,所以,这个PING命令也根本不会传递到局域网中去。如此的话,就可以从根源上保护网络的安全。二、 Linux防火墙的配置方法Linux防火墙基本上是通过一条iptables命令来实现具体的配置。如我们现在为了防止局域网内的机器使用ping命令。这是一种很好的防止DDOS攻击的方法。应为要实现DDOS攻击的话,则首先需要在局域网内部寻找肉鸡,让多台肉鸡同时采用PING命令PING服务器,直到服务器因为资源耗竭而当机。现在若把所有Linux主机的PING命令都禁用掉的话,则就可以最大程度的防治DDOS攻击的危害。Iptables –A OUTPUT –P icmp –j DROP通过这条命令,就可以实现禁用本机的PING命令。命令iptables就是防火墙包过滤策略的配置命令。防火墙的过滤规则,就是通过这个简单的命令来实现的。后面的参数-A则表示添加一个过滤条件;-P表示一种协议类型;-J表示我们的目标。上面的这条命令的意思就是在Linux主机的出口上,加上一条过滤语句,当数据包的协议类型是ICMP的话,则全部丢弃。不过ICMP有一个特性。我们一般PING一台主机的话,则对于这台主机来说,首先其需要通过进站接口,把数据包传递到上层;
然后,又要利用出站接口,把回应信息发送出去。如果任何一个接口不通,如只收到信息而没有回应的话,则对与主ping方来说,就显示的是目的地不可大的信息。以上这个条命令我们是在出口上加了限制语句,上面我们说过,一共可以在Linux主机上的三个接口,包括进站进口、出站接口与转发接口,在内的任何一个接口上配置包过滤条件,以实现对防火墙的管理控制。在下面例子中,笔者将给大家举一个WEB服务器的例子,看看如何通过Linux主机的防火墙来管理WEB服务器,提高其安全性。三、 Linux防火墙的配置实例我们该如何利用Linux操作系统自带的防火墙来提高网络的管理控制功能呢?具体的来说,我们可以分
三步走。一是先在Linux服务器上开一个后门,这个后门是专门给我们网络管理员管理服务器用的。二是把所
有的进站、出站、转发站接口都关闭,此时,只有通过我们上面开的后门,管理员才能够远程连接到服务器上,企图任何渠道都不能连接到这台主机上。三是根据我们服务器的用途,把一些需要用到的接口开放出去。下面笔者就以一个WEB服务器为例,谈
谈如何设置防火墙,才能够提高这台服务器的安全性,并且,在提高安全性的同时,也不影响我们网络管理员对其的访问控制。第一步:开后门网络管理员一般是通过SSH方式来管理Linux操作系统。所以,我们首先需要开一个后门,允许网络管理员通过SSH方式远程登录到服务器,对这台服务器进行必要的维护与管理。Iptables –A INPUT –P tcp –d 192.168.0.2 –dport 22 –j ACCEPTIptables –A OUTPUT –P tcp –S 192.168.0.2 –dport 22 –j ACCEPT为了达到这个目的,我们可以利用两条语句来实现。我们这里假设我们WEB服务器的IP地址为192.168.0.2。第一条语句的意思是,在进站接口上,允许网络管理员通过TCP协议与22号端口,访问主机。一般SSH方式采用的就是22号端口与TCP协议。这条语句的作用就是让网络管理员可以连接到WEB服务器上去。
但是,这还不够,我们若想要远程管理WEB服务器的话,则就需要实现相互交互的功能。也就是说,我们还需要WEB服务器能够给我们回应一些消息。此时,我们就还需要配置第二条语句。上面第二条语句的意识就是允许WEB服务器通过22号端口与TCP协议,发送一些数据出去。如此的话,我们网络管理员就可以受到WEB服务器的一些回应信息。第二步:关闭所有接口Iptables –P INPUT –j DROPIptables –P OUTPUT –j DROPIptables –P FORWARD –j DROP以上三条命令的作用就是把WEB服务器上的三个接口全部关闭。但是,此时因为我们在第一步开了一个后门,所以,事后网络管理员仍然可以通过SSH这个方式登录到服务器上去,对其进行远程访问。采用这些命令把各个接口关闭后,我们就无法通过HTTP、FTP等方式访问服务器。第三步:分析服务器的用途并添加允许条件把各个接口关不后,我们还需要为其添加一些必要的条件,允许某些特定类型的数据包通过。否则的话,其
他人不是不能通过网络访问WEB服务器,那不是白搭了吗?所以,接下去的任务,我们就是需要分析服务器的类型。我们现在配置的是一台WEB服务器,而WEB服务器一般是通过HTTP方式与80端口进行访问的。默认情况下,其用到的就是TCP协议与80端口。所以,我们只需要在进口与出口上,允许协议是TCP、端口号是80的数据包通过,就可以实现我们的目标了。Iptables –A INPUT –P tcp –d 192.168.0.2 –dport 80 –j ACCEPTIptables –A OUTPUT –P tcp –S 192.168.0.2 –dport 80 –j ACCEPT通过如上的配置,就可以实现我们的需求四、 Linux防火墙的配置需要注意的地方在使用Linux防火墙来管理企业网络的时候,笔者给大家提一些建议。一是根据最小权限的安全与控制设计原则,我们在防火墙设计的时候,需要先把所有的接口先全部禁用掉。然后,再根据服务器的类型,添加一些允许数据包通过的语句。如此的目的,是为了保障服务器上只允许一些特定的协议与数据包通过。如此做的话,就可以最大限度的保障服务器与企业网络的安全。如通过上面如此配置的服务器,无法使用FTP协议访问服务器,也就杜绝了非法访问者企图利用FTP漏洞来攻击WEB服务器。同时,也禁止了ICMP协议,如此的话,就可以有效的防止DDOS攻击等等。二是有时候会碰到应用程序与防火墙无法协作的问题。如在Linux服务器上部署一个ERP服务器,若同时打开了防火墙的话,则可能就无法连接上服务器。其实,
这不是防火墙或者ERP服务器产生了什么冲突,
而是我们没有配置好防火墙而已。一般情况下,笔者建议先把防火墙禁用掉,把ERP服务器先配置成功、其他用户可以连接上服务器后,再启用防火墙。在启用防火墙的时候,我们需要清楚,这个ERP服务器到底采用了哪些协议与端口来进行数据包的传递,然后再配置防火墙。大部分的时候,都
是因为我们不熟悉某个服务器到底在采用哪些协议与端口,才造成客户端连接的错误。

时间: 2024-12-27 04:35:10

利用Linux内置防火墙提高网络的访问控制的相关文章

win2008内置防火墙配置教程

教程|防火墙|win2008 微软的Windows Server 2003中防火墙的功能如此之简陋,让很多系统管理员将其视为鸡肋,它一直是一个简单的.仅支持入站防护.基于主机的状态防火墙.而随着Windows Server 2008的日渐向我们走近,其内置的防火墙功能得到了巨大的改进.下面让我们一起来看一下这个新的高级防火墙将如何帮助我们防护系统,以及如何使用管理控制台单元来配置它. 为什么你应该使用这个Windows的基于主机的防火墙? 今天许多公司正在使用外置安全硬件的方式来加固它们的网络.

简析Windows Vista内置防火墙图文教程_应用技巧

早在Windows 2000系统的扩展工具包中就出现了ICF(Internet Connection Firewall)工具,通过它可以配置网络数据包的传入规则,但是在Windows 2000中这个ICF工具没有内置到系统中.因此说起Windows系统自带的防火墙要追溯到XP系统,在XP和XP SP1系统中内置了一个名为Internet Connection Firewall的组件,它提供了基本的包过滤功能,这就是系统防火墙的前身. 到了XP SP2发布后这个ICF就名正言顺地成为了Window

win2008内置防火墙配置方法说明_windows2008

而随着Windows Server 2008的日渐向我们走近,其内置的防火墙功能得到了巨大的改进.下面让我们一起来看一下这个新的高级防火墙将如何帮助我们防护系统,以及如何使用管理控制台单元来配置它. 为什么你应该使用这个Windows的基于主机的防火墙? 今天许多公司正在使用外置安全硬件的方式来加固它们的网络. 这意味着,它们使用防火墙和入侵保护系统在它们的网络周围建立起了一道铜墙铁壁,保护它们自然免受互联网上恶意攻击者的入侵.但是,如果一个攻击者能够攻 破外围的防线,从而获得对内部网络的访问,

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程监控 全功能内置分析器,如 JConsole 和 VisualVM 的成本有时比它们的性能费用还要高 - 尤其是在生产软件上运行的系统中.因此,在聚焦 Java 性能监控的第 2 篇文章中,我将介绍 5 个命令行分析工具,使开发人员仅关注运行的 Java 进程的一个方面. JDK 包括很多命令行实用程序,可以用于监控和管理 Java 应用程序性能.虽然大多数这类应用程序都被标注为 "实验型",在技术上不

SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

原文:SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页) SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ crea

《Unity着色器和屏幕特效开发秘笈》—— 3.2 利用Unity3D内置的高光类型

3.2 利用Unity3D内置的高光类型 Unity已经为我们提供了一个高光函数,我们可以在自己的着色器中使用.这个高光函数也就是BlinnPhong镜面反射光照模型.它是高光类型中的一种更加基础且高效的形式,你甚至可以在当今的游戏中找到很多关于它的应用.由于它已经集成到Unity着色器语言当中,首先我们可以在Unity着色器中建立高光效果--我们认为这是一个很好的开端.你也可以在Unity的参考手册中找到相关的例子,但我们将对高光进行更深层次地探究,并且解释高光数据的来源以及它的工作原理.这将

在Linux内使用IPSEC配置网络对网络和点对点的VPN连接

目前,全球的许多组织都在使用各种可用的物理连接方法来连接各个办公室.可使用的方式有专用数字线路和虚拟专用网 (Virtual http://www.aliyun.com/zixun/aggregation/33969.html">Private Networks, VPN),而后者要比物理线路便宜很多.VPN 与专线部署的方式几乎相同,但却可以将几个 LAN 组合成一个并可对流量进行加密以隐藏所传输的数据.当在 VPN 技术中部署加密时,通常会使用开放标准.这涉及到在 IP 上传输并使用数

利用Windows7内置功能管理虚拟磁盘

相信很多朋友都知道,VHD(Virtual Hard Disk,虚拟磁盘)文件格式是一种为Virtual PC. Virtual Server 2005.Hyper-V 虚拟机特别设计的镜像文件,Virtual PC 2007已经提供了对VHD镜像格 式的支持,或者我们也可以使用WinMount3将VHD文件挂载为一个虚拟磁盘. 不过,如果你已经用上Windows 7,那么可以利用其内置的磁盘管理功能直接挂载VHD文件,甚至也可 以手工创建一个虚拟磁盘,这无疑更为简单,而且操作也是非常的简单,这

利用MySQL内置函数实现全文搜索功能

MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION]) MySQL支持全文索引和搜索功能.MySQL中的全文索引类型FULLTEXT的索引. FULLTEXT 索引仅可用于 MyISAM 表:他们可以从CHAR.VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或 CREATE INDEX被添加.对于较大的数据集,将你的资料输入一个没有