您的位置 首页 > 问题分享

win2003应用程序服务器_win2003系统服务程序编程

1.win2003 server系统,出现msgServiceTCP.exe 应用程序错误,请问怎么解决

2.Win2003操作系统的核心服务

3.怎样配置和管理Win2003系统服务

4.win2003服务器系统修复

win2003应用程序服务器_win2003系统服务程序编程

这篇文章将会说明如何以远程工作站上的用户身份激活com+对象,并以此用户身份访问Interface。

1、 Delphi默认com+对象的远程激活

Delph中远程com+对象激活一般通过TdispatchConnection及其子类来实现,实际代码中多用TDCOMConnection或TsocketConnectoion这两个组件,TDCOMConnection组件最终调用CoCreateInstanceEx创建com+对象。CoCreateInstanceEx (const clsid: TCLSID; unkOuter: IUnknown; dwClsCtx: Longint; ServerInfo:PCoServerInfo;dwCount: Longint; rgmqResults: PMultiQIArray): HResult。

TDCOMConnection在调用CoCreateInstanceEx时为pCoServerInfo参数中的pAuthInfo传递了Null值,因此TdcomConnection在创建Com对象时使用的是本地计算机登录者的用户令牌。若A计算机上的登录用户Auser使用TDCOMConnection类连接远程计算机B上的com+对象,则B计算机会使用Auser的用户名/密码在B计算机上建立登录会话并最终创建com+对象。但是一台windows工作站上的本地用户只能在本地登录而无法在别的计算机上登录,因此A计算机上的Auser就无法在B工作站上建立登录会话,当然也就无法创建com+对象,此时远程工作站B会尝试用Guest帐户建立会话并使用该账户激活com+对象。在这种情况下,如果B工作站上的Guest账户没有启用或Guest没有激活com+对象的权限,你就会看见令人头晕的提示“拒绝访问”。看到这里你是不对现在网上最“流行”的dcom配置方法有所悟了呢。那个方法就是允许everyone访问、激活com对象、并且将“默认身份验证级别”设置成无。这种方法能够使你的com应用可以“用了”,但是,它可以上“任何人”访问。而且这种设置你将无法利用com+基于角色的安全访问控制功能。

2、怎样不用GUEST账户激活

这个问题的实际上应该是:怎样用远程工作站上的用户激活远程com对象。解决这个问题其实很简单:只要你在调用CoCreateInstanceEx时为它指定远程工作站上的用户名和密码,只要用户名/密码通过远程计算机的验证,并且该用户被授予了“远程激活”com+对象的权限,那么远程工作站会用该用户身份激活com+对象。看一下代码:

var

mts:IMTSXjpimsDB;

ov:Variant;

i:integer;

cai:_CoAuthInfo;

cid:_CoAuthIdentity;

csi:COSERVERINFO;

mqi:MULTI_QI;

iid_unk:TGUID;

idsp:IDispatch;

wUser,wDomain,wPsw:WideString;

begin

wUser:=eduser.text;//用户名

wDomain:=edSvr.Text;//远程计算机名

wPsw:=edPsw.Text;//密码

cid.user:=pUnshort(@wUser[1]);

cid.UserLength:=length(wUser);

cid.Domain:=pUnshort(@wDomain[1]);

cid.DomainLength:=length(wDomain);

cid.password:=pUnshort(@wPsw[1]);

cid.PasswordLength:=length(wPsw);

cid.Flags:=2;

//以上填充_CoAuthIdentity结构

cai.dwAuthnSvc:=10;//winNt默认的鉴证服务

cai.dwAuthzSvc:=0;

cai.pwszServerPrincName:=wDomain;

cai.dwAuthnLevel:=0;

cai.dwImpersonationLevel:=3;//必须设置成模拟

cai.pAuthIdentityData:=@cid;

cai.dwCapabilities:=$0800;

//以上填充_CoAuthInfo结构

FillChar(csi, sizeof(csi), 0);

csi.dwReserved1:=0;

csi.pwszName:=pwidechar(wdomain);

csi.pAuthInfo:=@cai;

//以上填充COSERVERINFO结构

iid_unk:=IUnknown;

mqi.IID:=@iid_unk;mqi.Itf:=nil;mqi.hr:=0;

Screen.Cursor:=crHourGlass; olecheck(CoCreateInstanceEx(CLASS_MTSXjpimsDB,nil,CLSCTX_REMOTE_SERVER,@csi,1,@mqi));

这段代码中除了最后实际调用CoCreateInstanceEx外,前面的代码都是设置参数。这些参数的含义请大家参考msdn,除了用户名、主机名、密码外,只有一个重要要部分要说明:cai.dwImpersonationLevel必须设置成允许模拟(值为3),否则远程计算机将无法按提供的用户/密码建议网络会话。

3、不修改现有代码,可以实现用远程用户身份激活吗?

当然可以,我扩展了TDcomConnection类,为其加入了用户名和密码,并修改其默认的DoConnect方法,使其在调用CoCreateInstanceEx时用指定的用户名和密码填充参数。代码如下:

unit SecDComConnection;

interface

uses

windows,SysUtils, Classes,ActiveX, DB, DBClient, MConnect,comobj,Midas;

type

{typedef struct _SEC_WINNT_AUTH_IDENTITY

unsigned short __RPC_FAR* User;

unsigned long UserLength;

unsigned short __RPC_FAR* Domain;

unsigned long DomainLength;

unsigned short __RPC_FAR* Password;

unsigned long PasswordLength;

unsigned long Flags;

SEC_WINNT_AUTH_IDENTITY, *PSEC_WINNT_AUTH_IDENTITY;

}

{typedef struct _COAUTHIDENTITY

USHORT * User;

ULONG UserLength;

USHORT * Domain;

ULONG DomainLength;

USHORT * Password;

ULONG PasswordLength;

ULONG Flags;

COAUTHIDENTITY;}

{#define RPC_C_AUTHN_NONE 0

#define RPC_C_AUTHN_DCE_PRIVATE 1

#define RPC_C_AUTHN_DCE_PUBLIC 2

#define RPC_C_AUTHN_DEC_PUBLIC 4

#define RPC_C_AUTHN_GSS_NEGOTIATE 9

#define RPC_C_AUTHN_WINNT 10

#define RPC_C_AUTHN_GSS_SCHANNEL 14

#define RPC_C_AUTHN_GSS_KERBEROS 16

#define RPC_C_AUTHN_MSN 17

#define RPC_C_AUTHN_DPA 18

#define RPC_C_AUTHN_MQ 100

#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL

}

{#define RPC_C_AUTHZ_NONE 0

#define RPC_C_AUTHZ_NAME 1

#define RPC_C_AUTHZ_DCE 2

#define RPC_C_AUTHZ_DEFAULT 0xFFFFFFFF }

{

#define RPC_C_AUTHN_LEVEL_DEFAULT 0

#define RPC_C_AUTHN_LEVEL_NONE 1

#define RPC_C_AUTHN_LEVEL_CONNECT 2

#define RPC_C_AUTHN_LEVEL_CALL 3

#define RPC_C_AUTHN_LEVEL_PKT 4

#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5

#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6 }

{SEC_WINNT_AUTH_IDENTITY_UNICODE=2 }

pUnShort=^Word;

pCoAuthIdentity=^_CoAuthIdentity;

_CoAuthIdentity=record

user:pUnShort;

UserLength:ULONG;

Domain:pUnShort;

DomainLength:Ulong;

password:pUnShort;

PasswordLength:ulong;

Flags:ulong;

end;

_CoAuthInfo=record

dwAuthnSvc:DWORD;

dwAuthzSvc:DWORD;

pwszServerPrincName:WideString;

dwAuthnLevel:Dword;

dwImpersonationLevel:dword;

pAuthIdentityData:pCoAuthIdentity;

dwCapabilities:DWORD;

end;

TSecDComConnection = class(TDCOMConnection)

private

FCai:_CoAuthInfo;

FCid:_CoAuthIdentity;

FSvInfo:COSERVERINFO;

FUser:WideString;

FPassWord:WideString;

procedure SetPassword(const Value: wideString);

procedure SetUser(const Value: wideString);

procedure SetSvInfo(const Value: COSERVERINFO);

protected

procedure DoConnect; override;

public

property SvInfo:COSERVERINFO read FSvInfo write SetSvInfo;

constructor Create(AOwner: TComponent); override;

procedure MySetBlanket(itf:IUnknown;const vCai:_CoAuthInfo);

function GetServer: IAppServer; override;

published

property User:wideString read FUser write SetUser;

Property Password:wideString read FPassword write SetPassword;

end;

procedure Register;

implementation

constructor TSecDCOMConnection.Create(AOwner: TComponent);

begin

inherited Create(AOwner);

FillMemory(@Fcai,sizeof(Fcai),0);

FillMemory(@FCid,sizeof(FCid),0);

FillMemory(@FSvInfo,sizeof(FSvInfo),0);

with FCai do begin

dwAuthnSvc:=10;//RPC_C_AUTHN_WINNT

dwAuthzSvc:=0;// RPC_C_AUTHZ_NONE

dwAuthnLevel:=0;//RPC_C_AUTHN_LEVEL_DEFAULT

dwImpersonationLevel:=3;

pAuthIdentityData:=@fcid;

dwCapabilities:=$0800;

end;

end;

procedure TSecDCOMConnection.DoConnect;

var

tmpCmpName:widestring;

IID_IUnknown:TGUID;

iiu:IDispatch;

Mqi:MULTI_QI;

qr:HRESULT;

begin

if (ObjectBroker) <> nil then

begin

repeat

if ComputerName = '' then

ComputerName := ObjectBroker.GetComputerForGUID(GetServerCLSID);

try

SetAppServer(CreateRemoteComObject(ComputerName, GetServerCLSID) as IDispatch);

ObjectBroker.SetConnectStatus(ComputerName, True);

except

ObjectBroker.SetConnectStatus(ComputerName, False);

ComputerName := '';

end;

until Connected;

end

else if (ComputerName <> '') then

begin

with fcid do begin

user:=pUnshort(@fuser[1]);

UserLength:=length(fuser);

tmpCmpName:=ComputerName;

Domain:=pUnshort(@tmpCmpName[1]);

DomainLength:=length(TmpCmpName);

password:=pUnShort(@FPassword[1]);

PasswordLength:=length(FPassword);

Flags:=2;//Unicode

end;

FSvInfo.pwszName:=pwidechar(tmpCmpName);

FSvinfo.pAuthInfo:=@Fcai;

IID_IUnknown:=IUnknown;

mqi.IID:=@IID_IUnknown;mqi.Itf:=nil;mqi.hr:=0;

olecheck(CoCreateInstanceEx(GetServerCLSID,nil,CLSCTX_REMOTE_SERVER,@FSvinfo,1,@mqi));

olecheck(mqi.hr);

MySetBlanket(mqi.Itf,Fcai);

qr:=mqi.Itf.QueryInterface(idispatch,iiu);

olecheck(qr);

MySetBlanket(IUnknown(iiu),FCai);

SetAppServer(iiu);

end

else

inherited DoConnect;

end;

function TSecDComConnection.GetServer: IAppServer;

var

QIResult: HResult;

begin

Connected := True;

QIResult := IDispatch(AppServer).QueryInterface(IAppServer, Result);

if QIResult <> S_OK then

begin

Result := TDispatchAppServer.Create(IAppServerDisp(IDispatch(AppServer)));

end;

MySetBlanket(IUnknown(Result),FCai);

end;

procedure TSecDCOMConnection.MySetBlanket(itf: IUnknown;

const vCai: _CoAuthInfo);

begin

with vCai do

CoSetProxyBlanket(Itf,dwAuthnSvc,dwAuthzSvc,pwidechar(pAuthIdentityData^.Domain),

dwAuthnLevel,dwImpersonationLevel,pAuthIdentityData,dwCapabilities);

end;

procedure TSecDCOMConnection.SetPassword(const Value: wideString);

begin

FPassword := Value;

end;

procedure TSecDCOMConnection.SetSvInfo(const Value: COSERVERINFO);

begin

FSvInfo := Value;

end;

procedure TSecDCOMConnection.SetUser(const Value: wideString);

begin

FUser := Value;

end;

procedure Register;

begin

RegisterComponents('DataSnap', [TSecDComConnection]);

end;

end.

代码中有一些C风格的注释,是因为delphi没有为我们预定义这些变量和数据结构。

如何使用呢?将这个组件安装在IDE中,并将其放到你的现有代码的远程数据模块中去,将原有指向TDOCMConnection的数据集控件设置成这个新的TSecDCOMConnection控件。然后你可以在远程计算机中设置最严格的安全选项。但是要记住应该为你要使用的用户设置合适的权限:给予远程激活权限、给予远程访问权限。

4、到现在还没有谈到访问的问题。首先激活和访问并不是一回事。一个用户可能拥有激活权限但没有访问权限,也有可能只有访问权限却无激活权限。前面谈到CoCreateInstacnceEx可以用另一身份激活对象并取得IunKnown指针的一个本地引用。如果你直接用这个指针去取得IServer接口并调用方法,那么你很可能又会见到“拒绝访问”信息。这是IUnKnown指针的本地引用存在于客户机的进程中,再没有做特殊设置前,该指针继承了客户机进程的本地令牌,也就是说当用这个指针获取远程IServer接口时,会用客户机当前登录令牌调用QueryInterface,在调用过程中远程计算机将有此令牌中缓存的用户名和密码进行再次登录验证,当然此时又会被拒绝,而后远程计算机再次尝试用GUEST帐户登录并获取com对象接口,此时若没有找开GUEST访问权限,则客户端访问失败,windows返回“拒绝访问”信息。那么怎样才能使QueryInterface调用也使用远程用户身份呢,这就要调用CoSetProxyBlanket强制设置本地接口引用使用远程用户的令牌。在上面的代码中,我用MySetBlanket包装了该API,以便使用激活时的用户身份调用QueryInterface。而后在取得的IServer接口上再次调用MySetBlanket,保证在使用该接口时也用远程用户身份。

MySetBlanket(mqi.Itf,Fcai);

qr:=mqi.Itf.QueryInterface(idispatch,iiu);

olecheck(qr);

MySetBlanket(IUnknown(iiu),FCai);

为保证直接引用DataProvider的TclientDataSet也能按上述要求工作,在扩展的TSecDCOMConnection控件中,重载了GetServer方法。这样TSecDCOMConnection已能完全替换TDCOMConnection实现便利的com+应用编程了。

由于时间仓促,写这篇时很多术语没有做解释交待,因此可能会有一些不太好理解,但是出于为delphi Fans提供一个简单的实现安全性com访问的方法,我还是将这篇贴上来,主要是可以让需要的朋友直接复制代码用在自己的应用上。使用TSecDCOMConnection后,服务器方的com+对象可以强制找开访问检查,并打开组件级的访问检查。在打开访问检查的情况下,必须将服务器中允许访问com+对象的用户名加入到角色中才能正确访问。

(上述代码在delphi7/winXP sp2中调试通过,对于windows98和windows nt4.0及以下操作系统,由于CoCreateInstanceEx不能直接生成com+对象的安全上下文,因此代码不可用)

win2003 server系统,出现msgServiceTCP.exe 应用程序错误,请问怎么解决

应该是c盘windows下的php.ini文件配置问题,也有可能是php安装的问题

我就说一下php的完整安装过程吧,这里使用的是压缩版的php-5.1.2-Win32.zip

1.php-5.1.2-Win32.zip,直接全部接压至D:\php\目录即可得PHP文件存放目录D:\php\

2.再将PHP5为D:\php\和子文件夹ext下的所有dll文件拷到c:\Windows\system32(win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件

3.将D:\PHP目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:\Windows ( Windows 2000 下为 C:\WINNT)下; 将C:\Windows\php.ini-dist改名为php.ini,然后用记事本打开,利用记事本的查找功能搜索

register_globals = Off

,将 Off 改成 On ;

extension_dir =

,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir = "D:\php\ext" ;

将以下内容前面的;去掉

;extension=php_dbase.dll

可选

;extension=php_gd2.dll

这个是用来支持GD库的,一般需要,必选

;extension=php_ldap.dll

可选

;extension=php_mbstring.dll

这不选一般用PHPMYADMIN会出红色提示,故必选

;extension=php_mssql.dll

这个是用来支持MSSQL的,可选

;extension=php_mysql.dll

这个是用来支持MYSQL的,要支持MYSQL必选

4.Internet 服务管理器---网站(右键)---属性---主目录---配置---添加---扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll 所在路径,如:D:\php\php5isapi.dll

5.Internet 服务管理器---Web 信息管理器---添加一个新的web扩展程序---输入:PHP ,再将可执行文件指向 php5isapi.dll 所在路径---允许

5.将以下代码复制到一个文本文件内,保存为.bat文件 并运行

net stop w3svc

net stop iisadmin

net start w3svc

6.新建一个网站 在网站目录下建立a.php 内容为 来测试PHP环境

<?

phpinfo();

>

Win2003操作系统的核心服务

方法一:

最管用、最彻底的方法是这个:一次运行注册所有dll

运行 输入cmd 回车在命令提示符下输入

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

这个命令输入正确的话会看到飞快地滚屏 否则……否则失败就是没这效果

回车后慢慢等,相当长一段时间,要有耐心,直到你的指示灯不闪了再做别的,都运行完再打开看。

方法二: 这是个典型问题~~~~~引起这个问题的原因很多。一般来讲就是给系统打上补丁和更换内存、给内存换个插槽这3种方法来解决。[系统补丁只要到Microsoft Update网站在线更新就可以了]

造成这种问题的原因很多,不能单纯的下结论,尽量做到以下几点可能对你有帮助:

1。确保使用的是未修改过的软件(非汉化、破解版)

2。使用改软件时尽量不要运行其他软件。(这是个临时文件,可能某些软件也在使用临时文件夹,所以产生干扰)

3。把那些什么桌面工具,内存整理工具通通关掉(你至少有2个类似的工具在运行)”

处理方法: 运行regedit进入注册表,

在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,

应该只有一个正常的键值"{AEB6717E-7E19-11d0-EE-00C04FD912},将其他的删除。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,

应该只有一个正常的键值"{AEB6717E-7E19-11d0-EE-00C04FD912},将其他的删除。

怎样配置和管理Win2003系统服务

IIS 安全设置

1.关闭并删除默认站点

默认FTP站点

默认Web站点

管理Web站点

2.建立自己的站点,与系统不在一个分区

如:D:\root3.建立 E:\Logfiles 目录,以后建立站点时的日志文件均位于此目录,确保此目录

上的访问控制权限是: Administrators(完全控制)System(完全控制)

3.删除IIS的部分目录

IISHelp C:\winnt\help\iishelp

IISAdmin C:\system32\inetsrv\iisadmin

MSADC C:\Program Files\Common Files\System\msadc\

删除 C:\\inetpub

4.删除不必要的IIS映射和扩展

IIS 被预先配置为支持常用的文件名扩展如 .asp 和 .shtm 文件。IIS 接收到这些类型 的文件

请求时,该调用由 DLL 处理。如果您不使用其中的某些扩展或功能,则应删除该映射,步骤如下:

打开 Internet 服务管理器:

选择计算机名,点鼠标右键,选择属性:

然后选择编辑

然后选择主目录, 点击配置

选择扩展名 \".htw\", \".htr\",\".idc\",\".ida\",\".idq\"和,点击删除

如果不使用server side include,则删除\".shtm\" \".stm\" 和 \".shtml\"

5.禁用父路径 (有可能导致某些使用相对路径的子页面不能打开)

“父路径”选项允许您在对诸如 MapPath 函数调用中使用“..”。在默认情况下,该选项

处于启用状态,应该禁用它。

禁用该选项的步骤如下:

右键单击该 Web 站点的根,然后从上下文菜单中选择“属性”。

单击“主目录”选项卡。

单击“配置”。

单击“应用程序选项”选项卡。

取消选择“启用父路径”复选框。

6.在虚拟目录上设置访问控制权限

主页使用的文件按照文件类型应使用不同的访问控制列表:

CGI (.exe, .dll, .cmd, .pl)

Everyone (X)

Administrators(完全控制)

System(完全控制)

脚本文件 (.asp)

Everyone (X)

Administrators(完全控制)

System(完全控制)

include文件 (.inc, .shtm, .shtml)

Everyone (X)

Administrators(完全控制)

System(完全控制)

静态内容 (.txt, .gif, .jpg, .html)

Everyone (R)

Administrators(完全控制)

System(完全控制)

在创建Web站点时,没有必要在每个文件上设置访问控制权限,应该为每个文件类型创建一个

新目录,然后在每个目录上设置访问控制权限、允许访问控制权限传给各个文件。

例如,目录结构可为以下形式:

D:\root\myserver\static (.html)

D:\root\myserver\include (.inc)

D:\root\myserver \script (.asp)

D:\root\myserver \executable (.dll)

D:\root\myserver \images (.gif, .jpeg)

7.启用日志记录

1)日志的审核配置

确定服务器是否被攻击时,日志记录是极其重要的。

应使用 W3C 扩展日志记录格式,步骤如下:

打开 Internet 服务管理器:

右键单击站点,然后从上下文菜单中选择“属性”。

单击“Web 站点”选项卡。

选中“启用日志记录”复选框。

从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”。

单击“属性”。

单击“扩展属性”选项卡,然后设置以下属性:

* 客户 IP 地址

* 用户名

* 方法

* URI

* HTTP 状态

* Win32 状态

* 用户代理

* 服务器 IP 地址

* 服务器端口

2)日志的安全管理

1、启用操作系统组策略中的审核功能,对关键进行审核记录;

2、启用IIS、FTP服务器等服务本身的日志功能;并对所有日志存放的默认位置进行更改同时作好文件夹权限设置!

3、安装Portreport对所有网络访问操作进行监视(可选,可能增大服务器负荷);

4、安装自动备份工具,定时对上述日志进行异地备份,起码是在其他分区的隐蔽位置进行备份,并对备份目录设置好权限(仅管理员可访问)。

5、准备一款日志分析工具,以便随时可用。

6、要特别关注任何服务的重启、访问敏感的扩展存储过程等。

8.备份IIS配置

可使用IIS的备份功能,将设定好的IIS配置全部备份下来,这样就可以随时恢复

9.修改IIS标志

1)使用工具程序修改IIS标志

修改IIS标志Banner的方法:

下载一个修改IIS Banner显示信息的软件——IIS/PWS Banner Edit。利用它我们可以很轻松地修改IIS的Banner。但要注意在修改之前我们首先要将IIS停止(最好是在服务中将World Wide Web Publishing停止),并要将DLLcache下的文件全部清除。否则你会发现即使修改了一点改变也没有。

IIS/PWS Banner Edit其实是个傻瓜级的软件,我们只要直接在New Banner中输入想要的Banner信息,再点击Se to file就修改成功了。用IIS/PWS Banner Edit简单地修改,对菜鸟黑客来说他可能已被的信息迷惑了,可是对一些高手来说这并没有给他们造成什么麻烦。为此我们必须亲自修改IIS的Banner信息,这样才能做到万无一失。

高版本Windows的文件路径为 C:\WINDOWS\system32\inetsrv\w3svc.dll,可以直接用Ultraedit打开W3SVC.DLL,然后以“Server:”为关键字查找。利用编辑器将原来的内容替换成我们想要的信息,比如改成Apache的显示信息,这样入侵者就无法判断我们的主机类型,也就无从选择溢出工具了。

2)修改IIS的默认出错提示信息等。

四、数据及备份管理

1.备份

1)要经常把重要数据备份到专用的备份服务器,备份完毕后,可将备份服务器与网络隔离。 可用自动的备份工具进行,要求支持FTP方式备份。

2)使用系统的备份功能对安装好的系统进行阶段性备份。

3)使用WonRescue等工具对注册表进行阶段性备份。

4)使用Ghost对全面配置完毕的系统分区进行映像备份,并存放到隐藏的分区中。

2.设置文件共享权限

1)限制共享权限

设置共享文件时,要注意把共享文件的权限从“everyone”组改成“授权用户”,包括打印共享。

2)关闭默认共享

Win 2000安装好以后,系统会创建一些隐藏的共享,在cmd下可用net share命令查看它们。要禁止这

些共享。**作方法是:打开“管理工具→计算机管理→共享文件夹→共享”,在相应的共享文件夹上按右

键,点“停止共享”即可。不当过机器重新启动后,这些共享又会重新开启。

3.防止文件名欺骗

设置以下选项可防止文件名欺骗,如防止以.txt或.exe为后缀的恶意文件被显示为.txt文件,从而使

人大意打开该文件: 双击“我的电脑→工具→文件夹选项→查看”,选择“显示所有文件和文件夹”属性

设置,去掉“隐藏已知文件类型扩展名”属性设置。

4.Access数据库的安全概要

1)新生成的数据库在保证干净的前提下,主动在尾部合并一行ASP代码,内容一般可以为重定向,以免费别人通过论坛发帖等方式嵌入有害代码后被得到执行;

2)对MDB文件创建一个无效的映射,以便在IE中下载时出错;

3)修改出错页面,建议将出错页面设计为正常被曝库后的内容,但给一个数据库的虚地址(最好存在相应的虚数据库文件,比如一个改名后的等);

4)在防火墙中对MDB类型的扩展名进行过滤;

5)删除或禁用网站的后台数据库备份功能,而用本地安装的专门自动备份程序进行自动增量备份。

6)ASP 通用防止注入的程序:

功能简单说明:

1.自动获取页面所有参数,无需手工定义参数名.

2.提供三种错误处理方式供选择.

(1).提示信息.

(2).转向页面.

(3).提示信息,再转向页面.

3.自定义转向页面.

使用方法很简单,只需要在ASP页面头部插入代码

<!--#Include File="Fy_SqlX.Asp"-->

包含 Fy_SqlX.Asp 就可以了~~简单实用

<%

Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx

'---定义部份 头------

Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向

Fy_Zx = "Error.Asp" '出错时转向的页面

On Error Resume Next

Fy_Url=Request.ServerVariables("QUERY_STRING")

Fy_a=split(Fy_Url,"&")

redim Fy_Cs(ubound(Fy_a))

On Error Resume Next

for Fy_x=0 to ubound(Fy_a)

Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)

Next

For Fy_x=0 to ubound(Fy_Cs)

If Fy_Cs(Fy_x)<>"" Then

If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then

Select Case Fy_Cl

Case "1"

Response.Write "<Script Language=JaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');window.close();</Script>"

Case "2"

Response.Write "<Script Language=JaScript>location.href='"&Fy_Zx&"'</Script>"

Case "3"

Response.Write "<Script Language=JaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');location.href='"&Fy_Zx&"';</Script>"

End Select

Response.End

End If

End If

Next

%>

----

组件的定制

不要按Win 2000的默认安装组件,根据安全原则“最少的服务+最小的权限=最大的安全”,只选择确实需要的服务安装即可。

典型Web服务器需要的最小组件是:

公用文件、Internet 服务管理器、WWW服务器。

3.接入网络时间

在安装完成Win 2000**作系统时,不要立即把服务器接入网络,因为这时的服务器还没有打上各种补丁,存在各种漏洞,非常容易感染和被入侵。

补丁的安装应该在所有应用程序安装完之后,因为补丁程序往往要替换或修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果。IIS的HotFix要求每次更改IIS的配置时都需要重新安装。

4.账户安全管理

1)账户要尽可能少,并且要经常用一些扫描工具检查系统账户、账户权限及密码。删除已经不再使用的账户。

2)停用Guest账号,并给Guest 加一个复杂的密码。

3)把系统Administrator账号改名,尽量把它伪装成普通用户,名称不要带有Admin字样。

4)不让系统显示上次登录的用户名,具体**作如下:

修改注册表“HKLM\Software\Microsoft\ WindowsNT\ Current Version\Winlogon\Dont Display Last User Name”的键值,把REG_SZ 的键值改成1。

5.安全审核

在“管理工具→远程控制服务配置→连接”处,右键点击“RPD-TCP”连接,选择“属性”,在其窗口选中“权限”,点击右下角的“高级”,选择“审核”,增加一个“everyone”组,审核它的“连接”、“断开”、“注销”和“登录”的成功和失败。在“管理工具→日记查看→安全日记”可看到该审核记录。

6.卸载无用的组件模块

将\Winnt\inf 下的sysoc.inf 文件中的所有hide用替换法删除;然后在控制面板的添加删除程序中就可以卸载所有不需要的组件。

二、基本系统设置

1.安装补丁

安装Service Pack 和最新的hotfix;安装SQL和IIS系列补丁。

2.分区内容规划

1)操作系统、Web主目录、日志分别安装在不同的分区。

2)关闭任何分区的自动运行特性:

可以使用 TweakUI 等工具进行修改。以防万一有人放入Autorun程序实现恶意代码自动加载。

3.协议管理

卸载不需要的协议,比如IPX/SPX, NetBIOS;

在连接属性对话框的TCP)/IP属性的高级选项卡中,选择“WINS”,选定“禁用TCP/IP上的NETBIOS”。

4.关闭所有以下不需要的服务

以下仅供参考,具体还要看服务器上运行的应用来确定!要特别注意各服务之间的储存关系,个性为当可能导致某些功能的异常,甚至服务器不能工作!建议每次只个性两三个项目,重启测试无误后再设置其他项目!

* Alerter (disable)

* ClipBook Server (disable)

* Computer Browser (disable)

* DHCP Client (disable)

* Directory Replicator (disable)

* FTP publishing service (disable)

* License Logging Service (disable)

* Messenger (disable)

* Netlogon (disable)

* Network DDE (disable)

* Network DDE DSDM (disable)

* Network Monitor (disable)

**** Plug and Play (disable after all hardware configuration)****

* Remote Access Server (disable)

* Remote Procedure Call (RPC) locater (disable)

* Schedule (disable)

* Server (disable)

* Simple Services (disable)

* Spooler (disable)

* TCP/IP Netbios Helper (disable)

* ***Telephone Service (disable)****

在必要时禁止如下服务:

* SNMP service (optional)

* SNMP trap (optional)

* UPS (optional

设置如下服务为自动启动:

* Eventlog ( required )

* NT LM Security Provider (required)

* RPC service (required)

* WWW (required)

* Workstation (lee service on: will be disabled later in the document.

* MSDTC (required)

* Protected Storage (required)

win2003服务器系统修复

Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

://jingyan.baidu/article/fdffd1f8e01800f3e98ca119.html

详细可以参考这个,有图解教程,希望可以帮到你

1、请确定 后台防火墙服务 是启用的,如图。

2、在 本地连接上启用 防火墙,打开控制面板--网络连接--右键 ?选择属性 如图。

3、如图进入开启防火墙设置。

4、在常规选项卡中选择 开启防火墙 。在高级选项卡 选择 ICMP 的设置选项。

5、将 允许传入回显请求 上面的勾 去掉,然后逐级 点击确定,本地连接多一个小锁,不用重启,立马见效。

热门文章