这篇文章是基于解决本人所在单位网络安全问题的过程所写。方案基本思路是:经济、简单的改善网络安全状况。希望对有类似情况的同行有所帮助。
首先介绍一下我单位的网络情况,网络拓扑如图1所示。
图1 网络拓扑图
网络状况如下所述:
1. 本单位办公楼共有三栋,离网络中心远的使用光纤连接起来;
2. Cisco路由器一台,以前改造后闲置未用;
3. Intel4600交换机两台(可网管);
4. 服务器两台;
原网络状况描述
本地ISP采用DHCP动态给所有用户分配合法的公网地址,所以,造成我们的计算机获取的都是合法公网地址,直接暴露在公网之上;而且每次启动IP地址都会变,即使紧挨着的两台计算机,共享打印机和数据也很困难;A作为WWW服务器,B存储各种数据;用户的应用水平、计算机安全意识和自我防护能力严重不足。杀毒软件不会升级,甚至有的用户还嫌个人防火墙碍事,自行关掉甚至卸载,结果造成计算机不断的被病毒感染,不断被黑客攻击,给网管人员带来了巨大的工作负担。事故、故障的频出,很大的影响了办公,网络得不到充分的利用。
网管人员每天都在忙着杀毒,打补丁,抓木马,重装系统,就像一个消防队员。还得负责单位网站开发、维护,工作量可想而知。网络改造势在必行了。经过一番调查,学习,反复验证,制定了以下方案。新规划的网络拓扑图如图2所示:
图2 改造后的网络拓扑图
这次的重点是启用了一台Cisco2620路由器,并做如下设置(命令清单见后):
a) NAT转换,隐藏局域网内部计算机的IP地址,这样解决了客户机直接暴露在公网上的问题;同时也把所有的客户机放到了一个网段内,便于网络管理,便于打印机和数据共享;
b) ACL(访问控制列表)过滤。对流经的数据包进行过滤,把已知不安全的地址段、端口屏蔽;
c) 地址绑定。防止用户盗用IP地址,造成地址冲突,避免被入侵者利用;
d) 还有控制对路由器的Telnet访问一些辅助安全设置,详见命令清单。
服务器方面
a) 每台服务器仍然有接口直接接入公网,这样可以保证访问速度;
b) 由于天网防火墙似乎对服务器双至强处理器兼容性不好,频繁出错,于是决定服务器使用Windows2003自带的防火墙进行保护,只打开需要的端口,其余关闭;
c) A服务器仍提供WWW服务,B服务器安装ftp服务用于满足大量的数据交换;
IP地址每个办公室分配5个,保留20个给网络中心,保留50个机动使用。
路由器命令清单
NAT设置命令
! 定义地址池和访问列表、设定NAT转换
Router(config)# ip nat pool jyj 192.168.1.1 192.168.1.255 255.255.255.0
Router(config)# access-list 99 pemit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 99 pool jyj overload
!定义静态映射,特定的服务器需要
Router(config)# ip nat inside source static 192.168.1.192 111.222.111.222
! 进入内部端口配置模式,指定NAT内部端口
Router(config)# int f0/0
Router(config-line)# ip nat inside
!进入外部端口配置模式,指定NAT外部端口
Router(config)# int e1/0
Router(config-line)# ip nat outside
(说明: 本部分命令为网上参考.需注意采用正确的工作模式,一般为以下三种模式的一种:
* 特权模式
* 全局配置模式
* 局部配置模式)
NAT设置命令说明
本案例采用复用动态地址转换:
复用动态地址转换首先是一种动态地址转换,它可以允许多个内部地址共用一个内部合法地址。只申请到少量IP地址但却经常同时有多于合法地址个数的用户上外部网络的情况,这种转换极为有用。
注意:当多个用户同时使用一个IP地址,外部网络通过路由器内部利用上层协议TCP或UDP端口号等唯一标识某台计算机。
配置步骤:
1. 在全局设置模式下,定义内部合法地址池
ip nat pool 地址池名字 起始IP地址 终止IP地址 子网掩码
注:其中地址池名字可以任意设定。
2. 在全局设置模式下,定义一个标准access-list规则以允许哪些内部地址可以进行动态地址转换。
access-list 标号 permit 源地址 通配符
注:其中标号为1-99之间的整数。
3. 在全局设置模式下,设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。
ip nat inside source list 访问列表标号 pool 内部合法地址池名字 overload
4. 在端口设置状态下,指定与内部网络相连的内部端口
ip nat inside
5. 在端口设置状态下,指定与外部网络相连的外部端口
ip nat outside
Telnet 设置
!指定telnet登录口令
Router(config)# line vty 0 4
Router(config-line)# login
Router(config-line)# password jyj
!指定line vty 0 4 端口 ip过滤表,只允许内网telnet登录
Router(config-line)# ip access-class 99 in
!指定Enable口令,必需设置,否则telnet无法使用enable模式
Router(config)#enable password jyj
IP地址绑定
Router(config)# arp 192.168.1.* xxxx.xxxx.xxxx arpa
Router(config)# no arp 192.168.1.* xxxx.xxxx.xxxx
Router(config) #arp 192.168.1.* 0000.0000.0000 arpa
1将不用的地址绑定为不存在的MAC地址,防止被盗用
(注: 命令行中的“*”为具体地址。)
ACL设置命令列表
! 用于控制ICMP扫描
Router(config) # access-list 101 deny icmp any any echo
! 控制外网使用保留地址访问,防止地址欺骗攻击,共有以下地址段需要控制
!192.168.0.0,掩码255.255.0.0
Router(config) # access-list 101 deny ip 192.168.0.0 0.0.255.255 any
!以下地址段仿照192.168.0.0地址段进行设置,注意把掩码求反才能用在命令中:
!172.16.0.0(255.255.0.0),10.0.0.0(255.0.0.0),127.0.0.0(255.0.0.0),169.254.0.0(255.255.0.0),
!192.0.2.0(0.0.0.255),224.0.0.0(15.255.255.255)20.20.20.0(255.255.255.0),204.152.64.0(0.0.2.255),
!0.0.0.0(0.255.255.255)
! 用于关闭的端口列表(为了保险起见,TCP和UDP都关闭相应端口) :
Router(config) # access-list 101 deny tcp any any eq 69
!134 135 136 137 138 445 139 443 593 4444 1434
!允许其它的通讯
Router(config) # access-list 101 permit ip any any
!将访问列表加载到外部端口e0/0
Router(config)#int e0/0
Router(config-if)#ip access-group 101 in
改造总结
网络改造完成后,至今没有发生大面积病毒传染造成网络运行不畅,也没有发现黑客入侵现象。网络一下子清静了许多。
可见在没有配置专业防火墙的前提下,只要充分的利用手头的资源,也可以一定程度的保证网络安全运行。这对经济能力有限的单位特别有参考意义,除此之外,其实还有很多地方可以完善:
1. 架设ISA防火墙。作为网络接入的冗余措施,更能对数据流进行精细的检查、控制,比如:
a) 对外,更有效的防止各种各样的攻击,入侵检测;
b) 对内,可以进行BT控制,QQ控制,网络游戏的控制。
c) 恶意插件,恶意网站。
2. 网络版杀毒软件、个人防火墙的安装,例如:Symantec Client Security。这样可以避免用户自行关闭杀毒软件或者防火墙软件,在网络安全上产生漏洞。
其实路由器的功能还很强大,比如SSL的验证,VPN的实施,大家可以充分挖掘Cisco设备的潜力。
关于网络规模与资金投入的思考
网络安全问题是要解决的,但是应该怎样看待这个问题呢?置之不理是断然不行的,但是为此大量的投入也是需要慎重考虑的,笔者就曾经见过一些中小学建网,买设备非Cisco,华为,Symantec等名牌不用,非专业防火墙不用,但是作为一个规模一般的校园网在设备上投入如此之大,确实有些浪费,不如把这些资金用到网络管理人员、教师的培训上,做到以人为本,充分激发工作人员的劳动积极性,才能让网络在有限的条件下,保证最大的安全性。