运用Linux系统打造NAT防火墙的技术研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运用Linux 系统打造NAT 防火墙的技术研究与实现
祝虹,吉承平
(扬州职业大学江苏扬州225009)
摘要:针对因特网地址匮乏及网络安全性等问题,详细介绍了NAT 技术的工作原理及其在防火墙中的应用。

阐述了在Linux 系统下打造NAT 防火墙的设计方案和策略,并且给出了基于NAT 的防火墙的具体设置步骤和所实现的检测结果。

在对NAT 技术的安全性进行了具体分析的基础之上,结合设计中出现的问题,进一步探讨了需要改进的措施和方法。

由此得出打造系统安全防火墙所需要的技术实现的方法和思路。

关键词:Linux ;NAT ;SNAT ;DNAT ;防火墙;IP 地址;包过滤中图分类号:TP302
文献标识码:A
文章编号:1674-6236(2013)03-0017-03
Application of Linux system to build the NAT firewall technology
research and realization
ZHU Hong ,JI Cheng -ping
(Yangzhou Polytechnic College ,Yangzhou 225009,China )
Abstract:This article mainly aims at the Internet address scarcity and network security issues ,describes in detail the work principle of NAT technology and its application in firewall.Elaborated under the Linux system to build the NAT firewall design and strategy ,and gives the firewall based on NAT set specific steps and realizes the detection results.On the security of NAT technology of concrete on the basis of the analysis ,combined with the problems in the design ,further explores the need for improvement measures and methods.The resulting build system security firewall techniques needed for realizing method and train of thought.
Key words:Linux ;NAT ;SNAT ;DNAT ;firewall ;IP address ;package filtering
收稿日期:2012-10-11
稿件编号:201210075
基金项目:江苏省现代教育技术研究重点课题(2012-R-22269)
作者简介:祝虹(1958—),男,江苏扬州人,实验师。

研究方向:计算机网络。

随着因特网的快速发展,IP 地址的匮乏及网络安全等问题日益突出。

NAT 技术提供了一种解决网络内多台计算机共享一个公共IP 地址,就能与Internet 互联的问题,缓解了IP 地址资源匮乏,节省了公网IP 地址;同时,NAT 还具有防火墙的功能,通过NAT 设置,可以对外部网络隐藏内部的网络结构,限制从外网到内网的非授权访问,维持了局域网的私密性,增加网络的安全性,减少非法用户通过Internet 入侵内部网络的机会[1-5]。

文中在Linux 系统下,详细阐述了如何设置基于NAT 的防火墙,从准备工作开始,逐步定义规则,到提供有状态服务,编辑及运行Shell 脚本,最后进行检验NAT 防火墙的作用和效果。

1NAT 技术的原理
所谓NAT 技术就是网络地址转换[6],这种转换通常发生
在内部网络的自定义IP 地址(不需要经过申请)即假的IP 地址的电脑和外部通讯时,通过网络中的NAT 网关,把内部IP 地址翻译成外部合法地址后传送到外部网络。

同样,由外部网络进入内部网络时,也经过相同的过程。

NAT 技术的基本原理就是通过一个外部地址或几个外
部地址转换成局域网的内部地址来实现内部的所有主机访问Internet [7-8]。

NAT 技术是把TCP 和UDP 以及ICMP 等的一部分信息通过透明中继,而TCP/IP 在NAT 网关上运行的软件与其他的普通网关软件不一样,一般来讲,普通的路由器是根据IP 包中的目的地址和路由表将IP 数据包从一个网络发送到另一个网络,而NAT 技术的IP 数据包传送并非凭借目的
IP 地址,它的NAT 网关是内网与外网Internet 之间一种帧中
继IP 数据包转换,并且它的中继是面向连接的,如图1所示。

从NAT 改变封包的地址类型来看,NAT 可以分为两种:
Source NAT (SNAT )与Destination NAT (DNAT )。

NAT 规则
的表格含有3个列表叫做‘chains ’:每一条规则都按顺序检查﹐直到找到一个相符的比对。

具体流程如图2所示。

2Linux 系统下打造NAT 防火墙的方案分析
NAT 作为防火墙具有以下优势:
1)NAT 可以作为过滤器,限制内网与外网的连接。

当端
口地址在NAT 内动态分配时,NAT 域中特定主机被外网攻击比较困难。

电子设计工程
Electronic Design Engineering
第21卷
Vol.21
第3期No.32013年2月Feb.2013
-17-
《电子设计工程》2013年第3期
图1
NAT 在内部网络LAN 和外部网络WAN 之间中继IP 数据报
的连接
Fig.1
NAT between the internal network LAN and external networks
WAN connection of the relay IP datagrams
图2
NAT 通信过程
Fig.2NAT communciationn process
2)将NAT 设备和应用网关结合起来,NAT 可以具有透
明路由的功能。

这样可以对应用层中含有IP 地址的信息进行翻译,确保数据报中不出现私有地址的信息。

3)NAT 设备是作为因特网主机存在的,容易受到外来攻
击,如Ping Flood 、SYN Flood 。

在Linux 系统下打造NAT 防火墙,可以对NAT 设备进行保护。

4)当NAT 设备处于不安全域中时,应用级的负载可以实
现端对端的加密,这样负载中就不会包含运输层的端口信息、IP 地址信息,提高网络安全性。

3基于Linux 的NAT 防火墙的实现与应用实例
3.1
设置准备
1)基本思路首先需要在Linux 系统中创建基于NAT 防
火墙,它必须能够在服务器或路由器上运行,其功能就是只允许某些类型的通讯数据流通过,在配置防火墙时,为增强其安全性,必须设置能删除或者拒绝对安全性有威胁的通讯数据流。

2)Linux 系统内核配置安装之后,“iptables ”命令便可
使用进入/usr/src/linux ,输入“make menuconfig ”或“make
xconfig ”;并启用一些内核的网络功能。

3)配置链策略
“iptables-P ”命令用于设置链的缺省目
标和包过滤规则策略,INPUT 是一个内置链,iptables -P I
NPUT DROP 命令将INPUT 链的缺省目标指定为DROP ,告诉
内核应删除或丢弃所有与INPUT 规则链中都不匹配的信息包。

规则是先拒绝所有信息包,然后再允许所需要的信息包。

3.2定义规则
同时,要为有两个网络接口eth0和eth1的机器设计防
火墙。

eth0连接到内部网络,使用私有地址192.168.1.0/16。


eth1连接到通过局域网与因特网进行连接。

添加以下命令:
iptables -P INPUT DROP
iptables -A INPUT -i !eth1-j ACCEPT
这行附加的"iptables -A"将一个新的包过滤规则添加到INPUT 链的末端。

添加此规则之后,INPUT 链就包含了一个规则和缺省删除策略。

现在,让我们看一下当前防火墙有什么功能。

3.3
设置有状态防火墙
与其在基于静态协议特征的防火墙上开一个洞,还不如
使用Linux 新的连接跟踪功能来使防火墙根据包的动态连接状态做出判定。

conntrack 通过将每个包与一个独立的双向通信信道或连接相关联来进行判定。

第一种连接状态叫作NEW 。

第二种连接状态是:ESTABLISHED 状态就是指建立连接,表示正在通讯。

第三种连接状态是RELATED 。

RELATED 包是指那些被动产生的响应数据包,它是与当前现有连接相关的包。

最后的状态是:INVALID 状态。

INVALID 包是指不属于
ESTABLISHED 、NEW 、RELATED 3种类别,通常将其视为恶
意的数据包而丢弃。

但它不会被自动丢弃;需要插入适当的规则,并设置链策略,以便正确处理这些数据包。

3.4改进有状态防火墙
明确关闭ECN:前面提到过应当关闭ECN (明确拥塞通
知),以便因特网通信可以正确工作。

但由于种种原因,有可能会启用了ECN 。

由于这些原因,最好使用/proc 接口来明确禁用ECN ,处理拒绝。

目前,已经删除了所有来自因特网的未经请求的通信流。

这样可以阻止讨厌的网络活动,但是它有一些缺点。

这种方法最大的问题是闯入者很容易就可以检测到我们正在使用防火墙,因为我们的机器没有应答标准TCP 复位和ICMP 端口不可到达响应,因为向一般机器发送会响应,用于表示对不存在服务的连接失败。

3.5提供有状态服务
虽然我们要接受一些进入连接,但我们可能并不想接受
所有进入连接。

最好从“缺省拒绝”策略开始(就象我们现在使用的策略),逐渐开放对那些希望人们可以连接的服务的访问,如HTTP ,SSH ,FTP 等。

3.6编辑及运行防火墙脚本
以上详细介绍了防火墙的整个配置过程,如果要停止防火
墙,使用“iptables -F INPUT ”将清除INPUT 链,然后使用“iptables -P
INPUT ACCEPT ”命令使缺省INPUT 策略切换回ACCEPT ;用
“iptables -t nat -F POSTROUTING ”命令清除NAT 规则。

如果使用这个脚本,先修改脚本的权限,输入”chmod
777firewall ”命令使之具有可执行权限,然后可以通过输入“/bin/firewall stop ”来停止防火墙,通过输入"/bin/firewall start"
再启动它。

3.7
检验防火墙及NAT
编辑完防火墙脚本后,我们将分别检验防火墙及NAT 是否生效。

启动防火墙前,通过IP 地址为202.194.68.55的主机可以“ping ”到我们的机器,同时,我们也可以“ping ”到对方。

当启动防火墙后,输入“iptables -L ”命令,可以看到我们想要的防火墙规则均已显示出来了;输入“iptables -L -t
nat ”命令,可以显示出我们的NAT 配置。

此时,对方已经
无法“ping ”到我们的主机,而我们可以“ping ”到对方,这说明防火墙已经生效。

4需要改进之处
在以上的设计中,我们是通过对Linux 操作系统下iptables
命令的操作来完成NAT 防火墙设置的。

但由于iptables 有许多表和链,在大多数报文经过这些表和链的规则时,则会明显的降低防火墙的响应速度,使得防火墙的吞吐能力打大折扣,因此,在实践中需要通过与代理服务防火墙结合使用来提高其安全性能,当然如在本系统之前使用硬件防火墙与之配合,就能有效防止DDOS 攻击和端口映射,加上Linux 的
NAT 防火墙在对报文的处理时,尽可能减少报文平均经过规
则的数量的方法来优化防火墙的性能,这样就能建立起一套相对完整的防火墙系统,以实现对系统的全方位的防护。

5结束语
Linux 操作系统下的iptables 可以编写功能强大的防火
墙,能按照系统设定的安全策略对防火墙进行过滤,具有配置方便、运行速度快、系统功能强大等优点,但也存在一些缺
点,需进一步完善其功能和优化,最好采用混合防火墙来保证内部网络安全。

参考文献:
[1]Stimerling M ,Quittek J ,Taylor T .Middlebox Communications Protocol Semantics .RFC3989[S].2005.
[2]Zhang Y .SIP -based VoIP network and its interworking with the PSTN[J].Electronics &Communication Engineering Journal ,2002,14(6):273-282.
[3]Yu G ,Saohai H .Establishing TCP connections between hosts behind NATs[C]//IET International Conference on Wireless Mobile and Multimedia Networks Proceedings ,China ,2006:103-104.
[4]Rekhter Y ,Moskowitz B ,Karrenberg D .Address Allocation for Private Internets .RFC1918[S].1996.
[5]Biggadike A ,Ferullo D ,Wilson G .Establishing TCP Connections Between Hosts Behind NATs[J].Beijing SIGCOMM ,2005,2
(10):1-10.
[6]Stipanicev D ,Marasovic J .Networked embedded greenhouse monitoring and control [J].Control Applications ,2003(2):1350-1355.
[7]Takeda Y .Symmetric NAT Traversal using STUN .RFC3235[S].2003.
[8]Yoshimi H ,Enomoto N ,Cui Z L ,et al .NAT Traversal Technology of Reducing Load on Relaying Server for p2p Connections[C]//Consumer Communications and Networking Conference ,Las Vegas Nevada ,2007:100-104.
参考文献:
[1]于宗艳,韩连涛.免疫粒子群优化算法及应用[J].计算机
仿真,2008,25(12):209-210.
YU Zong -yan ,HAN Lian -tao.The immune particle swarm optimization algorithm and its application in[J].Computer Simulation ,2008,25(12):209-210.
[2]卜虎正,姚建刚,李文杰,等.中长期电力负荷预测的改进
免疫粒子群算法[J].电力系统及其自动化学报,2011,6,23(3):139-144.
PU Hu -zheng ,YAO Jian -gang ,LI Wen -jie,et al.The medium and long term load forecasting of the modified immune particle swarm optimization algorithm[J].Automation of Electric Power Systems ,2011,6,23(3):139-144.
[3]叶洪涛,罗飞,罗功坤,等.基于免疫粒子群算法的参数
估计方法[J].自动化与仪表,2010,25(7):1-4.
YE Hong -tao ,LUO Fei ,LUO Gong -kun ,et al.Based on immune particle swarm algorithm parameter estimation method[J].Automation and Instruments ,2010,25(7):1-4.
[4]吴静敏,左洪福,陈勇.基于免疫粒子群算法的组合预测
方法[J].系统工程理论方法应用,2006,15(3):229-233.
WU Jing -min ,ZUO Hong -fu ,CHEN Yong.Based on immune particle swarm optimization combination forecast method [J].System Engineering Theory Methodology Applications ,2006,15(3):229-233.
[5]王景,刘良栋.组合预测方法的现状和发展[J].预测,
1997,16(6):37-38.
WANG Jing ,LIU Liang -dong.Current situation and development of combination forecasting method[J].The Forecasting ,1997,16(6):37-38.
[6]谢开贵,高翔,周家启,等.应用遗传算法确定组合预测权
系数[J].重庆邮电学院学报,1999,11(4):24-26.
XIE Kai -gui ,GAO Xiang ,ZHOU Jia -qi ,et al.Application of genetic algorithm to determine the weight coefficients of combination forecasting model[J].Journal of Chongqing College of Post and Telecom ,1999,11(4):24-26.
(上接第16页)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
祝虹,等
运用Linux 系统打造NAT 防火墙的技术研究与实现
-19-。

相关文档
最新文档