Windows2000环境下防火墙及NAT的实现
网友 龙仕锦 2001-02-19 11:30:47
由于众所周知的原因,用Microsoft
Proxy server作为访问Internet的代理服务器,常常受到外部各种黑客搜索软件的探测和攻击。由于拥有专线的用户,也常常使用Microsoft
Proxy server为内部访问Internet提供方便,因此对疏于安全防范的用户来说,将遭受的损失不仅仅是金钱上的,而且可能给黑客留下攻击的后门,那情况就很糟了。但是不一定非要放弃使用Proxy
server,而改用昂贵的硬件或软件防火墙。在下面的案例中提供了一种,通过结合Windows 2000 server的网络地址转换功能和Microsoft
Proxy server的动态包过滤功能,达到内部端口信息的隐藏和保护。
实现方法:
通过网络地址转换把内部地址转换统一的外部地址,避免了使用代理服务所引起的账号安全问题和代理服务端口被利用的危险。同时为避免各种代理服务端口探测,常用的,如:Web代理端口80、8080和其他各种常用服务端口的探测,如21(ftp)、80(www)、25(smtp)、110(pop3)、53(dns),可以启用Microsoft
Proxy server的动态包过滤功能和IP分段过滤,达到端口隐形的效果。为了访问Internet和向外提供服务,还需要在Proxy
server的过滤列表中加入许可。
案例环境:
已知内部网络10.1.0.0,子网掩码:255.255.255.0 。ISP供应商提供的IP地址段为:192.168.0.9---192.168.0.14(假定),子网掩码:255.255.255.248.有一台Web服务器(www),地址为10.1.0.20。其完整域名为www.Target.com(假定),对应解析的IP地址为192.168.0.10,由ISP负责其域名解析。另有一台运行Windows
2000 server及MS Proxy server的服务器(Firewall),在其上装有两块网卡,命名为本地连接和本地连接2,它们的IP地址分别为:10.1.0.1和192.168.0.9。注意:在这两块网卡的地址分配上,内部接口的IP地址应配置为内部网段的第一个IP地址,即10.1.0.1,同理,外部接口的IP地址也应为有效地址段的第一个,即192.168.0.9。路由器(192.168.0.14)专线接入Internet。
<一>.MS windows 2000 NAT 网络地址转换的实现
<1>路由和远程访问服务
集成在Windows 2000 server的路由和远程访问服务(RRAS)提供了各种访问和连接Internet的能力,如:连接远程访问用户、连接远程网络和接入Internet。为了使局域网更安全的访问Internet,RRAS还提供了网络地址转换的功能,即把内部地址转换成ISP分配的有效IP地址,很好的隐藏了内部网络信息和利于访问Internet。对于需要向外提供服务的内部主机,也能通过地址的转换,接入Internet。为向外提供服务的主机提供地址转换,既能保证服务的正常运行,又能结合代理服务器的防火墙特性过滤非正常的访问。
在运行Windows 2000 server及MS Proxy server的服务器上,启动RRAS服务,过程如下:
(为了保证完全的通过地址转换访问Internet,应通过Internet服务管理器,停止Web proxy , Winsock
proxy,Socks proxy的运行。请注意,此时Proxy server的IP 过滤功能仍然运行,因为相关的后台服务并未停止)
点击开始, 指向 程序, 指向管理工具, 然后点击 路由和远程访问。
右键点击服务器, 在此例中为 Firewall(local), 然后从菜单中选择 配置并启用路由和访问服务.。出现RRAS配置向导。点击下一步,选择Internet
连接服务器 ,然后点击下一步,选择 设置有网络地址转换(NAT)路由协议的路由器 。
点击下一步,选择 使用选择的Internet连接,点击 连接入Internet的本地连接2 ,点击 下一步 。然后点击下一步,完成服务的启动
<2>网络地址转换的实现
A. 静态路由
启动RRAS之后,进入路由和远程访问管理界面,在IP路由选择---〉静态路由中建立如下路由信息:
0.0.0.0 0.0.0.0 192.168.0.14(路由器地址) interface 本地连接2 1
B. 网 络 地 址 转 换
为了让内部网络访问Internet,接下来要完成的任务是使用RRAS提供DHCP服务,自动为内部主机分配IP地址。如果已经安装了DHCP服务可以不用此项设置。内部主机的缺省网关均设为服务器Firewall的内部接口地址,此例中为本地连接
10.1.0.1,DNS服务器地址设为ISP的DNS服务器地址即可。同时还需要设置DHCP分配的排除地址,这些地址是为向外提供服务的主机保留,因为这些主机需要静态的IP地址。
设置过程如下:
启动RRAS之后,进入路由和远程访问管理界面,在IP路由选择---〉网络地址转换 中点击右键,选择属性,点击地址分配一栏,设置地址范围----10.1.0.0
子网掩码为255.255.255.0,排除地址为10.1.0.20,10.1.0.1。
C. 地 址 池 和 特 殊 端 口
最后要使外部网络能够访问内部提供服务的主机和使内部访问Internet,还须配置下列信息:
配置IP地址池的范围,建立保留IP地址条目,配置服务端口的重定向。
配置IP地址池的范围
|
192.168.0.9
|
255.255.255.252
|
192.168.0.10
|
建立保留IP地址条目
|
192.168.0.10
|
10.1.0.20
|
允许传入会话
|
配置服务端口的重定向
|
192.168.0.10
|
公用端口号80
|
10.1.0.20
|
在这里地址转换只使用了有效IP地址段中的192.168.0.9---192.168.0.10两个地址。
设置过程如下:
启动RRAS之后,进入路由和远程访问管理界面,在IP路由选择---〉网络地址转换的右边栏目中,选中本地连接2,点击右键,选择属性,分别在地址池和特殊端口进行配置。
D. IP 地 址 欺 骗 过 滤
为防止外部和内部网络的IP地址欺骗,需要对此进行接口上过滤,同样是在RRAS中完成配置。
内部地址欺骗过滤:
建立外部接口,对谎称为内部地址的IP包的过滤
进入IP路由选择---〉常规一栏,在右边栏目中选取本地连接2,点击右键,选择属性,进入输入过滤器,配置接口过滤掉来自外部的内部地址访问:
源地址
|
源掩码
|
目标地址
|
目标掩码
|
协议
|
源端口
|
目标端口
|
10.1.0.0
|
255.255.0.0
|
任何
|
任何
|
任何
|
任何
|
任何
|
外部地址欺骗过滤:
建立内部接口,对谎称为外部有效地址的IP包过滤
同上,只不过选择的是内部接口------本地连接
源地址
|
源掩码
|
目标地址
|
目标掩码
|
协议
|
源端口
|
目标端口
|
192.168.0.0
|
255.255.255.248
|
任何
|
任何
|
任何
|
任何
|
任何
|
<二> MS Proxy server 动态包过滤和反向代理
上图是启动Proxy Server功能的配置界面,下面对由包滤产生的记录文件和此例所使用的过滤规则作列表说明
1.MS Proxy server 动态过滤记录文件的详细说明
分析MS Proxy server 动态过滤产生的记录文件有助于发现新的问题和即使补漏,此类文件缺省在Winntsystem32msplogs目录下,文件名一般为Pfyymmdd形式。下面是对文件中一条记录条目的说明:
2001-2-7, 14:55:45, 202.112.139.116, 202.96.215.61, Tcp, 1819,
8080, SYN , 0, 202.96.215.51, -, -,
日期
|
时间
|
源地址
|
目标地址
|
协议
|
远端口
|
目标端口
|
Tcp标志
|
2001-2-7
|
14:55:45
|
202.112.139.116
|
202.96.215.61
|
Tcp
|
1819
|
8080
|
SYN
|
过滤
|
接口
|
保留字段(Tcpflags)
|
|
|
|
|
0
|
202.96.215.51
|
- , -
|
|
|
|
|
共分为以下几个部分:
<1>通用信息记录部分
包括纪录的时间和日期,即是IP包被接受的日期和时间.
<2>远程地址信息纪录
包括源地址、源端口、访问协议
<3>局部地址信息纪录
包括目标地址、目标端口
<4>过滤信息纪录
包括过滤规则(0或1,分别表示拦截和通过)和地址接口
<5>包信息区域
Tcpflags 连接标志
2.MS Proxy server 动态包过滤的实现
在MS Proxy server的过滤列表中建立此例中的过滤规则如下(许可通行的访问和连接):
Number
|
Direction
|
Protocol
|
Local port
|
Remote port
|
Local address
|
Remote address
|
1
|
In
|
ICMP
|
PING
|
RESPONSE
|
Default
|
Any
|
2
|
In
|
ICMP
|
TIMEOUT
|
Any
|
Default
|
Any
|
3
|
In
|
ICMP
|
UNREACHABLE
|
Any
|
Default
|
Any
|
4
|
Out
|
ICMP
|
Any
|
Any
|
Default
|
Any
|
5
|
Both
|
TCP
|
HTTP SERVER
|
Any
|
192.168.0.10
|
Any
|
6
|
In
|
TCP
|
Dynamic
|
HTTP SERVER
|
192.168.0.10
|
Any
|
7
|
In
|
TCP
|
Dynamic
|
HTTP SERVER
|
Default
|
Any
|
8
|
Out
|
TCP
|
Dynamic
|
HTTP SERVER
|
192.168.0.10
|
Any
|
9
|
Out
|
TCP
|
Dynamic
|
HTTP SERVER
|
Default
|
Any
|
10
|
Both
|
UDP
|
Any
|
DNS
|
Default
|
Any
|
在此例中,因为地址转换只是用了有效IP地址段中的192.168.0.9—192.168.0.10,其中192.168.0.10用于Web的访问,所以所有访问Internet的内部地址都转换成了192.168.0.9(本地接口2),从而在过滤表中就建立了允许通过Default外部接口访问Internet
web服务的规则,表中7,9行。对外的访问还允许了DNS域名查询,第10行。其他的外部服务的许可访问可参考后面列出的端口列表进行配置。
第5行允许外部访问内部Web主机,这里首先访问到的是地址192.168.0.10,然后通过地址转换把访问指向10.1.0.20。
第6和8行须配置,否则可能地址转换无法成功。
第1、2、3、4行允许了内部对外部地址的探测,同时又禁止了向内的ICMP响应探测。
未在列表中的所有访问均被拦截,这样由SMB共享产生的139端口连接探测、代理端口8080或80的探测均被阻截。
|