最新Linux个人防火墙的设计与实现.doc
《最新Linux个人防火墙的设计与实现.doc》由会员分享,可在线阅读,更多相关《最新Linux个人防火墙的设计与实现.doc(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateLinux个人防火墙的设计与实现基于Iptables的包过滤防火墙的实现Linux个人防火墙的设计与实现学生姓名:xxx 指导老师:xxx摘 要 防火墙在配置上能够防止来自“外部”世界未经授权的交互式登录。这大大有助于防止破坏者登录到你网络中的计算机上。本课程设计介绍基于Netfilter/Iptables的包过滤防火墙的实现原理。对Linux系统、TCP/IP的相关
2、知识及Iptables语法做了介绍。详细介绍了Iptables命令的使用举例,通过实例介绍了基于Netfilter/Iptables的包过滤防火墙的配置过程。关键词 网络操作系统;包过滤;Iptables;Netfilter;防火墙Design and Implement The Personal Firewall of LinuxStudent name: YU Ming-yin Advisor:Hou Li-juanAbstract In the configuration on the firewall to prevent from the external world of inte
3、ractive unauthorized login. This will significantly help prevent spoilers to log in to your computer network. Based on the curriculum design, introduced Netfilter / Iptables firewall packet filtering of the realization of the principle. On Linux systems, TCP / IP knowledge and Iptables syntax is int
4、roduced. Iptables command described in detail the use of, for example, through an example based on the Netfilter / Iptables firewalls packet filtering configuration process.Key words Network OS; Packet Filter; Iptbles;Netfilter;Firewall1 引 言1.1 课程设计的意义对于因特网上的系统,不管是什么情况,首先我们要明确一点:网络是不安全的。虽然创建一个防火墙并不能
5、保证系统100%安全7,但却是绝对有必要的。防火墙的目的就是将破坏网络安全的人挡在你的网络之外,使你可以顺利完成自己的工作。LINUX是近几年突出的一种操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。随着Linux系统被越来越多地使用,安全问题成了关键。Linux防火墙技术也在不断的发展,经历了Ipfw、Ipchains等过程。Iptables作为Linux防火墙的新一代继承人,当然也针对骇客不断推陈出新的探测技术拟出一些
6、因应之道,那就是对封包的联机状态,作出更详细的分析,透过这样的分析能对一些可能被骇客利用的弱点加以阻隔,另外也开发出真正的封包改写能力,不需要透过其它程序的协助来仿真网址转译,除此之外,Iptables也获得系统核心的直接支持,不需要像Ipchains那样需要自行重新编译核心。Iptables优越的性能使它取代了Ipchains,成为网络防火墙的主流,而Ipchains并未被淘汰,目前Ipchains已经转型成单机防火墙,在安装新版Linux时,会自动被安装启用,以保护单机上未被使用的通讯端口1。总之,目前大部分国内金融、商业等企业都采用Linux系统,因此在Linux上配置防火墙有极其重要的
7、意义,同时可以学习这一先进的技术与熟悉一个优秀的操作平台。1.2 课程设计的目的本课程设计设主要目的是在Linux操作系统下完成基于Netfilter/Iptables的包过滤防火墙的设计与实现。Internet等网络服务给人们的生活带来极大便利的同时也存在很多隐患,学会基于Netfilter/Iptables的包过滤防火墙的配置就能在一定程度上有效地抵御来自网络上的攻击。通过完成课程设计的过程,学习包过滤防火墙的相关知识,同时也深化对这学期Linux课程的学习。1.3 Linux防火墙的背景知识Linux是一个类UNIX的操作系统5,它是由芬兰赫尔辛基大学的学生Linus Torvalds于
8、1991年创建并在因特网上发布,任何人只要遵守GPL版权,都可以免费使用和修改Linux。实际上,GPL要求的是完全的软件共享,你可从中获利,但你不能占为己有。经过因特网上的千千万万的志愿者对其的不断修改,八年后的今天,Linux已经变得强大无比!特别是去年下半年以来,IBM、Intel、Oracle、Sysbase、Borland,HP,SUN,Corel等商业软件6厂商纷纷表示对Linux进行商业开发和技术支持,更使得Linux的商业价值越来越高。同时Linux将在两个方向发展,即微型设备的嵌入式操作系统和桌面操作系统。IDC预测Linux将成为Windows NT后的第二大操作系统3。L
9、inux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的UNIX特性,具有多任务、多用户的功能。Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows一样,允许我们使用窗口、图标和菜单对系统进行操作。包过滤防火墙用软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能丢弃(DROP)这个包,可能接受(ACCEPT)这个包
10、,也可能执行其它更复杂的动作。Linux因其健壮性、可靠性、灵活性以及好象无限范围的可定制性而在IT界倍受欢迎。Linux具有许多内置的功能,使开发人员可以根据自己的需要定制其工具、行为和外观而无需昂贵的第三方工具。Netfilter/Iptables IP 信息包过滤系统是最新的解决方案,而且也是第一个集成到 Linux内核的解决方案。对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙,在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/Iptables系统十分理想。Iptables是与最新的2.4.x版本Linux内核
11、集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。Iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易2。Iptables是复杂的,它集成到Linux内核中。用户通过Iptables可以对进出你的计算机的数据包进行过滤。通过Iptables命令设置来把守你的计算机网络-哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录。2 Netfilter/Iptables介绍2.1 配置防火墙的filter表(1
12、)查看本机关于IPTABLES的设置情况rootlocalhost root# iptables -L n(2)清除原有规则 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter8的所有规则。rootlocalhost root# iptables -F清除预设表filter中的所有规则链的规则。rootlocalhost root# iptables -X清除预设表filter中使用者自定链中的规则。(3)设定预设规则rootlocalhost root# iptables -p INPUT DROProotlocalhost root# ipta
13、bles -p OUTPUT ACCEPTrootlocalhost root# iptables -p FORWARD DROP(4)添加规则首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链。为了能采用远程SSH登陆,我们要开启22端口rootlocalhost root# iptables -A INPUT -p tcp -dport 22 -j ACCEPTrootlocalhost root# iptables -A OUTPUT -p tcp -sport 22 -j ACCEPT如果开启了web服务器,OUTPUT设置成DROP的话,
14、同样也要添加一条链:rootlocalhost root# iptables -A OUTPUT -p tcp -sport 80 -j ACCEPT如果做了WEB服务器,开启80端口rootlocalhost root# iptables -A INPUT -p tcp -dport 80 -j ACCEPT如果做了邮件服务器,开启25110端口rootlocalhost root# iptables -A INPUT -p tcp -dport 110 -j ACCEPTrootlocalhost root# iptables -A INPUT -p tcp -dport 25 -j AC
15、CEPT如果做了FTP服务器,开启21端口rootlocalhost root# iptables -A INPUT -p tcp -dport 21 -j ACCEPTrootlocalhost root# iptables -A INPUT -p tcp -dport 20 -j ACCEPT如果做了DNS服务器,开启53端口rootlocalhost root# iptables -A INPUT -p tcp -dport 53 -j ACCEPT2.2 配置防火墙的NAT表(1)查看本机关于NAT的设置情况rootlocalhost root# iptables -t nat L(2
16、) 添加规则添加基本的NAT8地址转换,我们只添加DROP链.因为默认链全是ACCEPT。防止外网用内网IP欺骗roottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROProottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROProottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROPDROP非法
17、连接rootlocalhost root# iptables -A INPUT-m state -state INVALID -j DROProotlocalhost root# iptables -A OUTPUT-m state -state INVALID -j DROProotlocalhost root# iptables-A FORWARD -m state -state INVALID -j DROP允许所有已经建立的和相关的连接rootlocalhost root#iptables-A INPUT -m state -state ESTABLISHED,RELATED -j A
18、CCEPTrootlocalhost root#iptables-A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPTrootlocalhost root# iptables-A OUTPUT -m state -state ESTABLISHED,RELATED -j ACCEPTrootlocalhost root# /etc/rc.d/init.d/iptables save这样就可以写到/etc/sysconfig/iptables文件里,写入后把防火墙重起一下,才能起作用。rootlocalhost root# service i
19、ptables restart2.3 Iptables的结构Iptables一般由指定表(table)、指定链(chains)、指定操作命令(command)、指定规则匹配器(matcher)、指定目标动作(target)等构成,如图2.1所示。图2.1 Iptables结构图Iptables的指令结构如图2.2所示。图2.2 Iptables的指令结构图2.4 Iptables的规则要素一条Iptables规则基本上应该包含5个要素:1、指定表(table)2、指定操作命令(command)3、指定链(chains)4、指定规则匹配器(matcher)5、指定目标动作(target)2.5
20、Iptables工具的调用语法Iptables的语法通常可以简化为下面的形式:Iptables-t tableCMDchainrule-matcher-j target其中:tables为表名,CMD为操作命令,chain为链名,rule-matcher为规则匹配器,target为目标动作。Iptables软件包提供了两个命令分别用于保存和恢复规则集。可以使用下在的命令转储在内存中的内核规则集。其中/etc/sysconfig/Iptables是Iptables守护进程调用的默认规则集文件:#/sbin/Iptables-save ; /etc/sysconfig/Iptables 要恢复原来
21、的规则库,需使用命令:#/sbin/Iptables-restore /etc/sysconfig/Iptables为了使得用Iptables命令配置的规则在下次启动机器时还能被使用,有两种方法:1、使用Iptables的启动脚本实现。Iptables的启动脚/etc/rc.d/init.d/Iptables每次启动时都使用/etc/sysconfig/Iptables所提供的规则进行规则恢复,并可以使用如下的命令保存规则:#service Iptables save2、在自定义脚本中用Iptables命令直接创建规则集。可以直接用Iptables命令编写一个规则脚本,并在启动时执行这个脚本。
22、例如:若规则脚本的文件名为/etc/fw/rules,则可以在启动脚本/etc/rd.d/init.d/rc.local中加入下面的代码:if-x/etc/fw/rules;then/etc/fw/rules;fi;这样,机器每次启动时即可执行该规则脚本。如果使用此种方式,建议使用ntsysv命令关闭系统的Iptables守护进程。2.6 Iptables的优点1、Iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。2、Iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。3
23、、系统日志比ipchains更容易配置,扩展性也更好。4、对于网络地址转换(Network Address Translation)和透明代理的支持,Netfilter更为强大和易于使用。5、Iptables能够阻止某些DOS攻击,例如SYS洪泛攻击。3 防火墙的配置及操作命令3.1 链的基本操作1、清除所有的规则。通常在开始配置包过滤防火墙之初清除所有的规则,重新开配置,以免原有的规则影响新的设定。使用如下命令9进行:清除预设表filter中所有规则链中的规则:Iptables F清除预设表filter中使用者自定义链中的规则:Iptables X将指定链所有规则的包字节记数器清零:Ipta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 Linux 个人防火墙 设计 实现
限制150内