基于linux的iptable防火墙包过滤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux操作系统课程论文
学号:410
姓名:
提交日期:2012-11-29
成绩:
东北大学秦皇岛分校
基于Linux IPtables的防火墙设计与实现
摘要:防火墙作为网络安全技术的重要手段,已成为使用最多的网络安全解决方案。
在对现有防火墙技术分析的基础上,构建了一种基于Linux嵌入式Iptables的防火墙。
Iptables管理工具是一种基于包过滤防火墙工具,利用Iptables工具,通过设置规则,可以实现Linux环境下防火墙的功能。
该文是在嵌入式Iptables Netfilter框架下的构建的Iptables策略,用户可以自己编制规则来构建防火墙的过滤策略,使得防火墙具有很好的稳定性与可扩展性。
本防火墙包括最基本的包过滤和网络地址转换(NAT)功能,它可以满足小型局域网安全性与网络应用,该文介绍了基于Linux嵌入式Netfilter/Iptables的包过滤防火墙的配置过程。
关键词:Linux;Iptables;防火墙
1、概述
随着计算机网络应用的日益普及和网络技术的不断发展,网络安全已成为一个不可避免的话题。
网络信息系统在金融、政治、商业、交通、电信、文教等方面发挥越来越大的作用。
随着网络规模的不断扩大与应用技术的不断进步,网络极易受到攻击,若不采取一定的安全措施,会造成经济损失。
为了保护内部网络安全,通常会在互联网与企业网络或校园网间使用防火墙,基于Linux嵌入式Iptables的防火墙是目前研究的热点,专业的防火墙产品价格比较昂贵,中小心企业与中小学校无力购买。
Linux嵌入式Iptables的防火墙给了我们一个新的选择。
它提供了一套完全免费的解决方案,其内置防火墙功能非常强大,甚至超过了许多昂贵的商用软件。
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、基于Linux的IPtables的防火墙设计与实现的网络结构
服务器
多台便携电脑
多台便携电脑多台便携电脑服务器
服务器
服务器
LAN 交换机
簇
电信路由
簇
光电转换器
DMZ 服务器使用内网ip 地址Ipaddr:192.168.31.81Netmask:255.255.255.0GW:192.168.10.1
1、能直接上外网
2、要求具有防火墙功能
3、只能使用内网IP 地址
(192.168.10.11···192.168.10.254)
Eth1:
Ipadd:192.168.10.1DNS :60.160.150.1
防火墙(LINUX )具有三块网卡
1、eth0:直接接外网
2、eth1:直接接DMZ 交换机
3、eth2:直接接LAN 交换机
电信
Eth0:
Ipadd :61.166.31.82.86GW :61.166.156.123DNS :61.166.150.222
Eth2:
Ipadd:192.168.10.31DNS:61.166.150.222
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=yesBOOTPROTO=static
IPADDR=192.168.20.16
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
6、结论
本文所设计的防火墙是相对简单、实用、高效的防火墙。
能有效预防网络攻击,保护内网安全。
通过基于嵌入式iptables的linux防火墙的设计与实现这一项目的完成,netfilter扩展网络服务结构化底层矿建的利用,使Linux内核级的安全越来越完善,越来越合理、越来越易于扩展和开发,包
过滤效率同时也得以大大提高。
由于嵌入iptables的linux防火墙的高效、经济等特点,也必将会获得越来越多的人的亲睐!
参考文献:
[1]刘正海.基于嵌入式Linux防火墙的研究与实现
[2]吴功宜.计算机网络
[3]季刚.linux下基于Netfilter/Iptables防火墙的构建。