Linux防火墙介绍(一)

时间:2017-08-13 我要投稿


 Linux防火墙介绍
摘  要:  本文介绍了LINUX下常用的防火墙规则配置软件Iptables;从实现原理、配置方法以及功能特点的角度描述了LINUX防火墙的功能
关键字:  LINUX防火墙  Iptables  Ipchains  包过滤 
一  前言:
 Linux 为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。一个正确配置的防火墙可以极大地增加你的系统安全性。防火墙作为网络安全措施中的一个重要组成部分,一直受到人们的普遍关注。LINUX是这几年一款异军突起的操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。而用户所要做的,就是使用特定的配置软件(如iptables)去定制适合自己的“数据包处理策略”。
二  防火墙 包过滤:对数据包进行过滤可以说是任何防火墙所具备的最基本的功能,而LINUX防火墙本身从某个角度也可以说是一种“包过滤防火墙”。在LINUX防火墙中,操作系统内核对到来的每一个数据包进行检查,从它们的包头中提取出所需要的信息,如源IP地址、目的IP地址、源端口号、目的端口号等,再与已建立的防火规则逐条进行比较,并执行所匹配规则的策略,或执行默认策略。 值得注意的是,在制定防火墙过滤规则时通常有两个基本的策略方法可供选择:一个是默认允许一切,即在接受所有数据包的基础上明确地禁止那些特殊的、不希望收到的数据包;还有一个策略就是默认禁止一切,即首先禁止所有的数据包通过,然后再根据所希望提供的服务去一项项允许需要的数据包通过。一般说来,前者使启动和运行防火墙变得更加容易,但却更容易为自己留下安全隐患。通过在防火墙外部接口处对进来的数据包进行过滤,可以有效地阻止绝大多数有意或无意地网络攻击,同时,对发出的数据包进行限制,可以明确地指定内部网中哪些主机可以访问互联网,哪些主机只能享用哪些服务或登陆哪些站点,从而实现对内部主机的管理。可以说,在对一些小型内部局域网进行安全保护和网络管理时,包过滤确实是一种简单而有效的手段。
代理:LINUX防火墙的代理功能是通过安装相应的代理软件实现的。它使那些不具备公共IP的内部主机也能访问互联网,并且很好地屏蔽了内部网,从而有效保障了内部主机的安全。
IP伪装:IP伪装(IP Masquerade)是LINUX操作系统自带的又一个重要功能。通过在系统内核增添相应的伪装模块,内核可以自动地对经过的数据包进行“伪装”,即修改包头中的源目的IP信息,以使外部主机误认为该包是由防火墙主机发出来的。这样做,可以有效解决使用内部保留IP的主机不能访问互联网的问题,同时屏蔽了内部局域网。
Linux下的包过滤防火墙管理工具:
在2.0的内核中,采用ipfwadm来操作内核包过滤规则。
在2.2的内核中,采用ipchains来控制内核包过滤规则。
在2.4的内核中,采用一个全新的内核包过滤管理工具——iptables。
包过滤防火墙的工作原理:
使用过滤器。数据包过滤用在内部主机和外部主机之间,过滤系统是一台路由器或是一台主机。过滤系统根据过滤规则原则来决定是否让数据包通过。
过滤的实现。数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同。


包过滤防火墙的工作层次:
应用层  应用层 
传输层  传输层 
网络层 数据 路由器 数据 网络层 
数据链路层  数据链路层  数据链路层 
物理层  物理层  物理层 
包过滤器操作的基本过程:

包过滤技术的优缺点
优点:
对于一个小型的、不太复杂的站点,包过滤比较容易实现。
因为过滤路由器工作在IP层和TCP层,所以处理包的速度比代理服务器快。
过滤路由器为用户提供了一种透明的服务,用户不需要改变客户端的任何应用程序,也不需要用户学习任何新的东西。
过滤路由器在价格上一般比代理服务器便宜。
缺点:
一些包过滤网关不支持有效的用户认证。
规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能性也会增加。
这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。
在一般情况下,如果外部用户被允许访问内部主机,则他就可以访问内部网上的任何主机。
包过滤防火墙只能阻止一种类型的IP欺骗,即外部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能被阻止,而且它不能防止DNS欺骗。
在Linux系统上,支持包过滤的核心中有三个规则列表,这些列表称为防火墙链。三个链分别称为输入链、输出链和转发链。当一个包通过以太网卡进来后,核心使用输入链决定该包的取舍。如果该包没有被丢弃,则核心要决定下面将向哪里发送包,称为包的路由。如果要发给另一个机器,核心通过转发链来决定。最后,在包要被发出之前,核心通过输出链来做决定。一个链是一些规则的列表。每个规则规定:如果包的包头与规则相匹配,那么对包进行相应的处理。如果该规则与包不匹配,则引入链中的下一个规则。最后,如果没有要引入的规则,核心根据内置链策略决定如何做。在一个有安全意识的系统中,该规则通常告诉核心将包拒绝或丢弃。
在这先介绍Ipchains,之后再介绍Iptables。
Ipchains:
Ipchains 经常使用的命令行格式如下:Ipchains –A chain [–i interface] [–p protocol] [[!] -y][–s source-ip [port]] [-d destination-ip [port]] –j policy [-l]对各选项的说明如下表:-A <chain>      添加一规则到链尾。chain可为input、output、forward。-i <interface>  指定本规则适用的网络接口。通常有eth0、eth1、lo等。-p <protocol>   指定本规则适用的IP协议,如tcp、udp、icmp等。[!] –y         -y表明tcp握手中的连接请求标志位SYN; ! –y 表示对该请求的响应。-s src-ip [port]   指明数据包的源IP地址,port表示本规则适用的端口号。-d dst-ip [port]   指明数据包的目的IP地址及端口号。-j policy     

Linux防火墙介绍(一)相关推荐
最新推荐
热门推荐