防火墙 嵌入式【Linux嵌入式IPtables的防火墙设计与实现】

  摘要:防火墙作为网络安全技术的重要手段,已成为使用最多的网络安全解决方案。在对现有防火墙技术分析的基础上,构建了一种基于Linux嵌入式Iptables的防火墙。Iptables管理工具是一种基于包过滤防火墙工具,利用Iptables工具,通过设置规则,可以实现Linux环境下防火墙的功能。该文是在嵌入式Iptables Netfilter框架下的构建的Iptables策略,用户可以自己编制规则来构建防火墙的过滤策略,使得防火墙具有很好的稳定性与可扩展性。本防火墙包括最基本的包过滤和网络地址转换(NAT)功能,它可以满足小型局域网安全性与网络应用,该文通过玉溪市红塔区农经站防火墙实例介绍了基于Linux嵌入式Netfilter/Iptables的包过滤防火墙的配置过程。
  关键词:Linux;嵌入式Iptable;防火墙;设计与实现
  中图分类号:TP393.08文献标识码:A文章编号:1009-3044(2012) 06-1254-04
  Design and Implementation of Embedded IPtables Firewall in Linux
  YANG Ben-xiang, JIN Hua-ting, WU Qian, XIONG Bin-jie, SONG Shao-yun
  (Information Technology and Engineering Institute, Yuxi Normal University, Yuxi 653100, China)
  Abstract: As a technical mean, Network security firewall has become the most widely used network security solution. Embedding IPtables Firewall in Linux is based on the analysis of available technology of network security firewall. The Iptables management tool is a kind of Firewall based on packet filtering firewall, can set the rules by using Iptables tool to realize the function of firewall in Linux. This article is about the means of iptables under the embedded Iptables Netfilter. Users can compile the rules to construct firewall filtering strategy, so that the firewall has stability and scalability. This kind of firewall includes the most basic packet filtering firewall and network address translation( NAT ) function, which can fulfill the needs of the security and network application of small local area network (LAN). This method men? tioned in the article had been used in the configuration process of the embedded Netfilter / Iptables packet filtering firewall by the Agricul? tural Economics station of Hongta District, Yuxi city.
  Key words: Linux; embedded Iptable; firewall; design and implementation
   1概述
  随着计算机网络应用的日益普及和网络技术的不断发展,网络安全已成为一个不可避免的话题。网络信息系统在金融、政治、商业、交通、电信、文教等方面发挥越来越大的作用。随着网络规模的不断扩大与应用技术的不断进步,网络极易受到攻击,若不采取一定的安全措施,会造成经济损失。为了保护内部网络安全,通常会在互联网与企业网络或校园网间使用防火墙,基于Linux嵌入式Iptables的防火墙是目前研究的热点,专业的防火墙产品价格比较昂贵,中小心企业与中小学校无力购买。Linux嵌入式Ipta? bles的防火墙给了我们一个新的选择。它提供了一套完全免费的解决方案,其内置防火墙功能非常强大,甚至超过了许多昂贵的商用软件。
   2 Linux防火墙发展现状和Iptables的优势
  近年来Linux得到了迅速的发展,这既得益于它的自由软件属性和稳定、高效、健壮的内核,也与Linux是一个高性能的网络操作系统密不可分。Linux2.4内核中Netfilter/Iptables的出现,为构建Linux下防火墙提供了很好的平台。Iptables是基于Linux操作系统2.4之上内核版本的集成网络安全工具包。该工具通过配置可以实现多种网络技术安全功能,如:状态保持、数据包过滤、NAT(网络地址翻译)以及抵抗攻击等等。利用该工具可以在任意配置下的服务器、PC机上实现功能强大、安全稳定的防火墙,因此它被众多企业和高校广泛采用,是一种比较成熟的网络安全技术。
  由于Netfilter/Iptables新型内核防火墙功能的增强,所以对其应用的深入研究也已引起重视。Linux下的Iptables工具也成为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
  Iptables还具有以下五点优势:
  1)完全摒弃了ipchains的设计,以新的构架(Netfilier)实现,模块化设计更加清晰,扩展性更强;
  2)实现完整的动态NAT.Ipchains中实际是多对的“地址伪装”;
  3)实现基于MAC及用户过滤;
  4)实现真正的基于状态的过滤,不再是简单的查看TCP包的标志位;
  5)实现包速率限制等。
  有了上述的优势所以在Linux环境下用Iptables做防火墙就使得用户操作更加简单、防护要求更加规范、防护措施更到位、效率更高。
   3嵌入式IPtables的原理
  iptables就是Linux操作系统下支持的netfilter机制的配置工具,它也就相当于一个应用程序,用户可以根据自己需要合理的对netfilter进行配置(包过滤规则,NAT等等)。所以要实现netfilter(iptables)就要从两个方面来考虑:首先用户层的iptables配置命令。其次是内核支持netfilter;3.1编译内核,支持netfilter表
  在宿主主机上进入Linux内核的目录,配置所需的内核模块:cd /usr/src/linux make menuconfig
  选中如下内核选项:
  General setup --->
  [*] Network packet filtering (replaces ipchains)
  [*] Sysctl support(在ROMFS文件系统中/proc/sys/net/ipv4/出现ip_forward)Networking options --->
  IP: Netfilter Configuration --->(全部选择即可)
  这样在Linux内核中就选择支持了netfilter表。接下来只需编译并生成内核映像文件并到嵌入式系统即可。如果编译后重起成功进入Linux,则说明新的支持netfiter的内核已经正常运行。(注意,这里的内核选项只是一些支持netfilter/iptables的选项。这里假设原有内核已支持嵌入式系统的相关硬件,并能在嵌入式平台上运行)。
  3.2编译生成iptables命令
  iptables工具包比较便宜,可以免费从网上下载即可。下载iptables工具包后,进入下载目录,进行编译生成可执行文件,编译方法具体可以参考iptables目录下的INSTALL文件:
  cd /root/iptables
  make KERNEL_DIR = /usr/src/linux(指定内核目录)
  make NO.SHARED_LIBS = 1(静态链接编译生成可执行文件)
   4基于玉溪市红塔区农经站的嵌入式IPtables的防火墙设计与实现的网络结构
  
  图1红塔区农经站的结构框图
   4.1红塔区农经站防火墙功能要求
  1)内部网络可以访问外部网络
  内部网络的用户显然需要自由地访问外网。在这一策略中,防火墙需要进行源地址转换。
  2)内部网络可以自由访问DMZ
  此策略是为了方便内部网络用户使用和管理DMZ中的服务器。
  3)外部网络不能访问内部网络
  很显然,内部网络中存放的是内部数据,这些数据不允许外部网络的用户进行访问。
  4)外部网络可以自由访问DMZ
  DMZ中的服务器本身就是要给外界提供服务的,所以外部网络必须可以访问DMZ。同时,外部网络访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。
  5)DMZ不能访问内部网络
  很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步攻击到内部网络的重要数据。
  6)DMZ不能访问外部网络
  DMZ中的服务器专门用于给外界提供服务的,所以外部网络必须可以访问DMZ,而DMZ中的服务器则不允许主动访问外网。
  1)内部网络可以访问外部网络,而外部网络的UDP数据、PING等不能进入内部网络。
  2)内网可以访问DMZ的服务器和电子邮件服务器;内网计算机的IP地址、DNS和网关由DMZ服务器进行自动分配。
  (在服务器上安装DHCPD服务)
  1)外网可以访问DMZ服务器,但服务器不能访问外网。
  2)限制外网来的数据包(允许TCP包通过,限制UDP包的通过,对常见的IP包类型加于限制)。
  3)DMZ不能访问内网,但可以控制交换机端口。
  4)DMZ服务器提供域名解析,若解析不了,由电信DNS服务器负责解析。
   5具体实现
  5.1在目录/etc/rc.d下创建脚本文件myfirewall1.sh,操作步骤
  1)touch /etc/rc.d/myfirewall1.sh 2)chmod 711 myfirewall 3)vi /etc/rc.d/myfirewall.sh
  5.2建立脚本
  echo 1 > /proc/sys/net/ipv4/ip_forward //启用IP转发功能/modprobe ip_tables
  /modprobe iptable_filter/modprobe iptable_nat/modprobe ip_conntrack/iptables -F INPUT
  /iptables -F FORWARD
  /iptables -F POSTROUTING -t nat
  /iptables -P FORWARD DROP
  iptables -t nat -A PREROUTING -p tcp -d 60.160.156.129 --dport 80 -i eth0 -j DNAT --to-destination 192.168.10.10
  iptables -A FORWARD -p tcp -d 60.160.156.129 --dport 80 -i eth1 -o eth0 ! --syn -j ACCEPT
  iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
  iptables�t nat POSTROUTING�s 192.168.10.0/12�o eth0�j SNAT�to-source 60.160.156.129
  5.3内部网络与DMZ区之间的配置
  1)iptables -A FORWARD -p tcp -d 60.160.150.1 --dport 80 -i eth1 -j ACCEPT
  2)iptables -A FORWARD -p tcp -s 192.168.10.10 -d 60.160.150.0/24 --sport 80 -o eth1 -m state ESTABLISHED -j ACCEPT
  允许内部网络访问DMZ区的Web服务器,并且允许DMZ区的无连接性TCP包返回给内部网络用户。
  5.4内部网络与外部网络之间的配置
  1)iptables -t nat -A POSTROUTING -s 192.168.10.0/12 -o eth0 -j SNAT --to-source 60.160.150.1 2)iptables -A FORWARD -p tcp -s 0/0 --sport ftp -data�d 192.168.10.0/12 -i eth0 -j ACCEPT 3)iptables -A FORWARD -p tcp -d 192.168.10.0/12 ! -syn�i eth0 -j ACCEPT
  允许内部网络用户采用不积极模式访问Internet(互联网)的FTP服务器;还允许内部网络访问外部网络,外网非连接性TCP包通过,并进行源地址转换。
  5.5外部网络与DMZ区之间的配置
  1)iptables -t nat -A PREROUTING -p tcp -d 60.160.150.1--dport 80 -i eth0 -j DNAT --to-destination 192.168.31.81
  2)iptables -A FORWARD -p tcp -d 60.160.150.1 --dport 80 -i eth1 -o eth0 ! --syn -j ACCEPT
  允许DMZ区非连接性TCP包返回给外网用户,其次还允许外部网络访问DMZ区的Web服务器,并进行目的网络地址转换。再次对icmp包进行限制,允许每秒通过一个包,防止采用icmp进行攻击。
  iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
  以上步骤的配置实现了一个具有包过滤网络地址转换功能的防火墙,并DMZ区对可以外部网络提供服务。
  5.6允许域名解析
  1)iptables - t nat - A PREROUTING - p udp - d 60.160.150.1 --dport 53 - i eth0 - j DNAT - - to 192.168.31.81 2)iptables -A FORWARD -p udp -d 192.168.31.81--dprot 53 - i eth1 - o eth0 - j ACCEPT 3)iptables -A FORWARD -p udp -s 192.168.31.81 --sprot 53 - i eth0 - o eth1 - j ACCEPT
  5.7一个网卡绑定多个IP地址
  编辑/etc/sysconfig/network-scripts下的文件:例如:绑定网卡为eth0
  [root@dell network-scripts]# cat ifcfg-eth0:0 DEVICE=eth0:0 ONBOOT=yes
  BOOTPROTO=static
  IPADDR=192.168.2.16
  NETMASK=255.255.255.0 GATEWAY=192.168.2.2此为主网卡IP地址
  [root@dell network-scripts]# cat ifcfg-eth0:1 DEVICE=eth0:1 ONBOOT=yes
  BOOTPROTO=static IPADDR=192.168.20.16 NETMASK=255.255.255.0 GATEWAY=192.168.20.2
   6结论
  本文所设计的防火墙是相对简单、实用、高效的防火墙。能有效预防网络攻击,保护内网安全。通过基于嵌入式iptables的linux防火墙的设计与实现这一项目的完成,netfilter扩展网络服务结构化底层矿建的利用,使Linux内核级的安全越来越完善,越来越合理、越来越易于扩展和开发,包过滤效率同时也得以大大提高。现今玉溪市红塔区农经站已经投入使用,正是由于嵌入iptables的linux防火墙的高效、经济等特点,也必将会获得越来越多的中小企业与机关单位的亲睐!
  参考文献:
  [1]张小斌.计算机网络安全工具[M].北京:清华大学出版社,1999.
  [2] Terry William Ogletree.防火墙原理与实施[M].北京:电子工业出版社,2001.
  [3]杨东卫.网络系统集成与工程设计[M].北京:科技出版社,2005.
  [4]白滔.基于Internet的网络管理及信息监控系统的研究与实现[D].贵州大学,2006.[5]何海宾.基于Linux包过滤的防火墙技术及应用[J].电子科技大学学报,2004(1).
  [6]张锦祥.基于U盘的嵌入式防火墙的设计与实现[J].武汉大学学报:理学版,2005(3).[7]刘正海.基于嵌入式Linux防火墙的研究与实现[D].重庆大学,2007.
  [8]吴功宜.计算机网络[M].2版.北京:清华大学出版社,2007.
  [8]蔡立军.计算机网络安全[M].2版.北京:中国水利水电出版社,2007.
  [9]季刚.linux下基于Netfilter/Iptables防火墙的构建[J].电脑知识与技术,2011(19).

推荐访问:嵌入式 防火墙 设计 linux