《综合企业防火墙部署和综合信息系统部署.doc》由会员分享,可在线阅读,更多相关《综合企业防火墙部署和综合信息系统部署.doc(24页珍藏版)》请在三一办公上搜索。
1、 防火墙和信息系统部署一、 项目需求分析假设某某公司需要搭建一台安全LINUX防火墙,其中内网有DNS服务器、FTP服务器、及web服务器;要求这些服务器都可以向外网提供服务,具体的要求如下:1、 外网可以通过防火墙到DNS服务器进行DNS解释2、 同时,也可以通过防火墙把一些重要的文件上传到FTP服务器里;一定要防止在未与FTP服务器建立过连接就FTP服务器就向发送数据;这就要在OUTPUT链做设置状态匹配了3、 保护FTP服务器重要的数据的安全4、 允许网络管理员通过SSH远程服务器,同时支持状态匹配,防止木马程序以及病毒的及侵5、 在防火墙INPUT、OUTPUT链上做相应端口的日志监控
2、6、 搭建好一个安全防火墙后,做好总结以及相应的记录Linux防火墙的介绍:Linux提供了一个非常优秀的防火墙工具,即Netfilter/Iptables,它全是免费的,并且可以在一台低配置的老机器上很好地运行。Netfilter/Iptables功能强大,使用灵活,并且可以对流入和流出的信息进行细化的控制。防火墙主要的作用是:过滤两个网络之间的数据包在filter表中的INPUT、OUTPUT、FORWARD的介绍:INPUT链主要是保护本地网络;OUTPUT链可以防止本地用户对外网的访问;FORWARD链提供转发功能。为了服务器的安全起见一般都把所有的chain链默认处理情况为DROP(
3、1)Filter输出包输入包FORWARD链路由选择OUTPUT链INPUT链本地处理 Filter表(2)网络地址转换(NAT)输出包输入包POSTROUTING链(SNAT)路由选择PREROUTING链 (DNAT) OUTPUT链本地处理 NAT表 其在IPTABLES里,还有Mangle表、Raw表,Mangle主要用来Mangle数据包,可以改变不同的包及包头的内容,比如TTL 、TOS或MARK。注意的是MARK并没有真正地改动数据包,它只是在内核空间设了一个标记。这个表中有五条链,具体如下:至于Raw表,这个表我具体不是很清楚。好像可以避免什么追踪!二、 项目方案设计设计网络拓
4、扑图:服务器eth0eth1外部网 交换机服务器的IP地址:10.2.46.128,网关:10.2.46.129eth1的IP地址:10.2.46.129 eth0的IP地址:10.2.45.254我这里是假设外部网是一个10.2.45.0/24网段,即是我这里虚拟了一个外部网,网络的IP地址范围为:10.2.45.0/24 网关:10.2.45.254内网服务器服务器其实在企业里并不是这样的,这里我只是为了简单点而已,通过老师的提示,我大概认为是这样的,如果对外网提供服务器一般都是放隔离区的(DMZ);数据服务器主要是向内部网络提供服务器的。Internet 交换机 交换机内部网三、项目环境
5、准备 有几台已经安装好linux的操作系统主机,其中,一台Linux是带有双网卡的,及相关连接的设备,如交换机等四、项目实施步骤 在虚拟机里添加网卡方法:把操作操系关闭 虚拟机 设置 硬件 添加 选择以太网卡就可以 启动系统eth1及eth0的IP地址情况如下:#ifconfig 打开支持路由转发功能禁用网上邻居里的VMware Network Adapter VMnet8及VMware Network Adapter VMnet1的虚拟网卡,否则上面所做的配置就不会生效了,10.2.45.0/24网段就ping不通10.2.46.129了设置windows主机的IP地址为:10.2.45.4
6、7,网关:10.2.45.254,ping 10.2.46.129之后,通过putty.exe远程登录上去具体iptables的匹配如下1、一开始防火墙没有设置时,情况如下:2、清除filter表里的所有规则#iptables F#iptables -X RH-Firewall-1-INPUT3、服务器刚刚安装好后,默认的是一切未被禁止的都被允许,还有一种是一切未被允许的都被禁止。显然策略的安全性明显高于策略,但它是以牺牲灵活性和可访问资源为代价来提高安全性的。所以为了服务器的安全起见一般都把所有的chain链默认处理情况为DROP。但有一点需要注意的是通过ssh远程登录服务器,进行配置ipt
7、ables,设置策略时,一定要这个策略前打开22号端口,否则终端就会死掉,与服务器失去连接。具体情况如下:可以通过#grep ssh /etc/services上面的规则是允许主机IP地址为:10.2.45.47通过22号端口远程登录上面是修改防火墙的默认策略,在INPUT、FORWARD及OUTPUT链上设置了,一切未被允许的都被禁止了。虽然有这些端口都打开着,但只有22号端口可以访问;为了方便于测试,所以我把ICMP回应打开 当然了,你也可进行配置相应的策略,以防止别人的DDOS、DOS攻击,配置情况如下:#iptables A INPUT p icmp -icmp-type echo-r
8、equested j DROP#iptables A OUTPUT p icmp -icmp-type echo-reply j DROP#iptables A FORWARD p icmp -icmp-type echo-requested j DROP#iptables A FORWARD p icmp icmp-type echo-reply j DROP由于服务器(IP:10.2.46.128)需要提供web服务,所以在防火墙的INPUT及OUTPUT添加相应的规则同时服务器还提供FTP及DNS服务器,所以也要在防火墙里添加相应的规则,若不知道FTP及DNS服务所使用的端口和协议,可以
9、从/etc/services中查;如#grep domain /etc/services注意:DNS服务器里即提供域名,如果自己查询不到的话,又会向其他的域名服务器进行查,所在配置防火墙策略所需要注意的地方添加DNS服务器向其他域名服务器请求解释的防火墙规则,这时DNS服务器就相当于客户机了由于大多数的域名服务器都是使用UDP协议,所以这里设置的规则也一样自已充当DNS服务器时总之,这两个过程是相反的。这时DNS服务器即充当域名服务器提供域名解释,又充当客户机了还有FTP服务器的防火墙策略设置如下:#grep ftp /etc/services 其中20号端口是控制连接的,使用TCP协议,21
10、号端口是数据传输的,使用UDP协议保存防火墙策略配置#service iptables save或者iptables-save /etc/sysconfig/iptables,那么防火墙的所有的配置都会保存在/etc/sysconfig/iptables像127.0.0.1的服务,即是本地的服务器,如果iptables不打开的话,可能会影响服务器的运行,打开也不会给服务器造成什么危害,下面的规则是打开127.0.0.1这样基本的防火墙策略就设置好了,不过到时现在为止,建立的防火墙还是不太安全,因为必须要在INPUT链建立过连接时,OUTPUT链才允许向外发送数据;否则防火墙就要阻止;防止服务器
11、产生漏洞,被人或者病毒利用,未建立过连接,就向外发送数据;所以我们之建立的防火墙OUTPUT链上规则是不安全的。这就要利用到状态匹配检查,同时linux也支持状态匹配检查防火墙的优化以、更加高级的配置及NAT一、防火墙的状态匹配检查下面是以端口80、20、22为例,在OUTPUT链上#iptables -A OUTPUT p tcp sport 22 m state -state ESTABLISHED -j ACCEPT-m:是匹配状态查检 -state:后加状态匹配的条件,state是不能变的,这样必须要在INPUT链建立过连接时,OUTPUT链才允许向外发送数据,之后再删掉第一规则,如果
12、一开就删除,那么终端就会失去连接了,同时其他端口也一样,下面的80端口也是一样的#iptables A OUTPUT p tcp -sport 80 m state state ESTABLISHED j ACCEPT在相应的链设置状态匹配后,就删除之前设置的规则同时,在客户机也会有一样的问题,客户机也要检查匹配状态。在访问别人的机器时,要经过OUTPUT链出去,本地产生的;当到服务器响应回来时,就要经过本地INPUT链了,如果返回的数有病毒的话,也会进INPUT链的,如果病毒主动发给你的包,就会被拒绝了。只能接收自请求过的包,要实现这样就要,利用到状态匹配检查#iptables A INPU
13、T p tcp -sport * -m state -state ESTABLISHED j ACCEPT防火墙的日志监控,可为特定的规则设置监控日志,具体情况如下:假如在INPUT链上为22号端口设置日志监控,其他的端口监控也是一样的首先查看日志的等级,有那几个等级#man syslog#iptables I INPUT 1 p tcp - dport 22 s 10.2.46.47 j LOG log-level 5 log-pefix “IPTABLESNEWS:”需注意:这条记录必须插入在规则iptalbes A INPUT s 10.2.46.47 dport 22 j ACCEPT
14、的前面,否则日志就记录不了。#service iptables save#vi /etc/syslog.conf注意:日志的等级必须是相对应的,可以通过#man syslog查看#service syslog restart查看日志:#tail f /var/log/firewallog除了这种方法外,还可以到网上去找相应的防火墙日志监控软件,如Firewall Analyzer,到目前为止,FORWARD链还没有配置,FORWARD链不是转发给本地主机的,而是提供外网转发的,相当于路由功能FORWARD链这样设置是不安全的,等于允许所有的协议和端口都可以通过,所以我们也要在FORWARD链上
15、加上相应的协议及端口,过滤某种请求某种数据包,也进行日志监控,FORWARD链的设置基本上与INPUT、OUTPUT链是一样的。就不做详细的配置了。10.2.46.128服务器的配置通过IE访问10.2.46.128的web服务器在10.2.46.128服务器上配置好DNS服务器好后,到客户机进行测试,测试情况如下:访问VSFTP服务器从这里我可以看到我并没有做NAT,我只是把防火墙当作路由器用,我这里只是虚拟了一个环境而已;在实际的情况下,这种方法是不允许的,因为内网的IP地址是私有地址,所以连接外网还是不行,必须还要使用地址转换功能nat,要以网关上做一个地址转换nat,那这就用到nat地
16、址表了假设外网的IP地址为10.2.45.254,内网的IP网段为:10.2.45.0/24,主要用到PREROUTING、POSTROUTING这两条链,假设允许外网访问web服务器及DNS服务器,具体情况如下:通过NAT将内网IP转换为外网IP,隐藏内部网络了上面的规则表示:将客户机访问IP地址10.2.46.128,转换访问IP地址为10.2.45.254。增加了这条规则后,服务器和防火墙知道如何响应客户机的路径了,这样客户机只能看到防火墙测试:但是在外网上,常常被分配的是一个动态的IP地址(10.2.45.254),所以就是一个动态的原地址转换了,就要使用-j MASQUERADE(地
17、址伪装),MASQUERADE支持动态地址转换,随着网关地址的变化而变化。就上面的情况而言,当10.2.46.128响应时,就会反过,把数据包发给snat服务器,snat就会自动识别,转换IP地址,即是路由器的功能;同时,也可以加上协议及端口就可以配置一个比较安全的规则了#iptables t nat A POSTROUTING s 10.2.46.0 j MASQUERADE防止网络扫描网络扫描是利用一些不正常,而又合法的封包检测服务器所提供的服务和取得一些系统信息。也有入侵者用这些包企图绕过防火墙入侵内部网络,所以必须过滤:上面这些我也是照书打了,我也不在懂#iptables L INPUT n #vi /etc/sysconfig/iptables防火墙的策略设置到这里基本上构架好了,同时网上也图形化的软件,可以快速构架linux个人防火墙,如Firestarter是一个完全的免费软件,它可以在KDE和GNOME环境下提供图形界面快速架构个人防火墙六、项目总结 总结:通过这次的网络服务器系统的综合实训,的确让想了很多,尤其是最近,知道自已所缺的是什么,还有那些不足;企业需要怎样的人,也有一定的了解。我在做上面这个实验时,有时思路很乱,尤其是在做nat时,我想应该是理论基础不扎实原因吧!无论怎样,这次实训总的来说给我的收获也不小。