时间:2022-06-13 07:47:57
【摘要】 安全问题是校园网络管理的一个重要部分,利用ISA的VPN功能可以进行有效控制,其中许多策略靠脚本完成。本文对VPN进行了介绍,提供了脚本,灵活、有效地解决了利用更改MAC地址进行盗用IP上网的问题,从而有效地维护网络的安全。
【关键字】 ISA VPN MAC
【Abstract】 The management of campus network security is an im-
portant part of using the ISA's VPN capabilities can effectively con-
trol, many of which rely on the script to complete service. This paper VPN were introduced, providing the script. Resolved to change MAC address using IP theft free of charge access of the problems in order to effectively maintain network security.
【Keywords】 ISA VPN MAC
随着信息化的不断发展,网络使用的不断扩大,校园网的安全和信息流量控制是摆在我们面前的挑战。ISA(Internet Securi-
ty Acceleration)是一款微软出品的路由级网络防火墙,提供了更快速、更安全、更直观易于管理的系统。
对于网络管理员来讲,一般在服务器端进行IP、Mac间的绑定,以防止客户端盗用IP。但简单地绑定IP和MAC地址是不能完全的解决IP盗用问题。一般MAC地址(也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。)在网卡中是固定的,由于Windows启动之前会检测注册表中是否有Mac地址,如果没有就会读入真实Mac地址(网卡Rom中的MAC地址)以备后用,否则就使用注册表中保存的Mac地址。这样的话如果客户端利用一些工具修改注册表中的MAC,再配合盗用IP地址,那么就会对服务器进行欺骗。
如图所示,如果用户更改了注册表中的MAC地址,那么这台主机就全使用005345000000这个MAC地址进行通讯。
传统的方法就是利用交换机对IP、MAC、端口三者进行绑定,但是这种方法灵活性不强,不便于网络管理,笔者认为,如果利用ISA中的VPN策略,让内网用户通过VPN拨号上网,配合VPN策略检查内网客户端设置如注册表MAC地址是否与网卡Rom中的MAC地址一致,可以比较有效、灵活地解决这一问题。
ISA虚拟专用网(VPN)可以让远程用户与局域网(LAN)之间,或者是分别位于两地的局域网之间,通过因特网来建立一个安全的通道。当VPN客户机通过VPN服务器的身份验证后,VPN服务器并不立即允许其访问内网,而是将VPN客户机放到一个被隔离的网络中。然后通过策略对客户机进行安全检查,如果VPN客户机通过了安全策略的检查,VPN服务器将允许其访问内网资源;如果不能通过安全策略检查,VPN客户机将被限定在隔离网络中,无法访问内网资源,而且在隔离网络中停留一段时间后会被逐出。
首先在ISA上安装隔离服务,创建通告协议和访问规则,在服务期上启动该服务。利用连接管理器管理工具包创建拨号配置文件,拨号配置文件中包含安全策略检查脚本,系统提供一部分,大部分需要编写。客户端安装上该文件,就可以进行访问了。
下面是部分代码
'取真实物理网卡ID与数量
Dim AdaptName() As String
Dim AdaptNum(40) As String
Dim AdaptInstance() As String
Dim K, P As Integer
Dim RegNum As String
P = 0
Dim Wsh1 As Object
Set Wsh1 = CreateObject("WScript.Shell")
For K = 0 To 40
If Len(Trim(Str(K))) = 1 Then
RegNum = "000" & Trim(Str(K))
Else
RegNum = "00" & Trim(Str(K))
End If
If CheckRegistryKey(HKEY_LOCAL_MACHINE, "SYS-
TEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & RegNum) = True Then
On Error Resume Next
AdaptNum(K) =
Wsh1.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\Current-
ControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & RegNum & "\Characteristics")
If AdaptNum(K) = "" Then GoTo NN
If AdaptNum(K) = 132 Then
P = P + 1
ReDim Preserve AdaptName(P)
On Error Resume Next
AdaptName(P) =
Wsh1.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\Current-
ControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & RegNum & "\NetCfgInstanceId")
If AdaptName(P) = "" Then GoTo NN
End If
Else
Exit For
End If
NN:
Next
Set Wsh1 = Nothing
If (P = 0 Or P > 10) Then Exit Function
On Error GoTo ErrorMac
'取永久物理地址
Set ColNetAdapterP = ObjWMIServiceP.ExecQuery("SE-
LECT * FROM MSNdis_EthernetPermanentAddress where Instan-
ceName= '" & AdaptInstance(QQ) & "'")
For Each ObjNetAdapterP In ColNetAdapterP
ReDim Preserve TrueMac(QQ)
PMacBit = UBound(ObjNetAdapterP.NdisPermanent Ad-
dress.Address)
For I = 0 To PMacBit
TempTrueMac(I) =
CStr(Hex(ObjNetAdapterP.NdisPermanentAddress.Address(I)))
If Len(TempTrueMac(I)) = 1 Then TempTrueMac(I) = "0" & TempTrueMac(I)
If (I PMacBit) Then
TrueMac(QQ) = TrueMac(QQ) & TempTrueMac(I) & "-"
Else
TrueMac(QQ) = TrueMac(QQ) & TempTrueMac(I)
End If
Next
Next
'取工作Mac地址
Set ColNetAdapterC = ObjWMIServiceC.ExecQuery("SELECT * FROM MSNdis_EthernetCurrentAddress where InstanceName= '" & AdaptInstance(QQ) & "'")
For Each ObjNetAdapterC In ColNetAdapterC
ReDim Preserve WorkMac(QQ)
CMacBit = UBound(ObjNetAdapterC.NdisCurrent Ad-
dress.Address)
For J = 0 To CMacBit
TempWorkMac(J) = CStr(Hex(ObjNetAdapterC.NdisCur-
rentAddress.Address(J)))
If Len(TempWorkMac(J)) = 1 Then TempWorkMac(J) = "0" & TempWorkMac(J)
If (J CMacBit) Then
WorkMac(QQ) = WorkMac(QQ) & TempWork-
Mac(J) & "-"
Else
WorkMac(QQ) = WorkMac(QQ) & Temp-
WorkMac(J)
End If
Next
Next
If TrueMac(QQ) WorkMac(QQ) Then Exit Function
Next
用这个方案配合ARP绑定和ISA中的VPN拨号可以彻底解决客户端修改MAC地址的难题。有效维护网络安全。
参考文献:
[1] 两个小时成为ISA Server 2004专家(PDF)
[2] How to :允许外部的VPN客户访问内部网络 风间子