2003服务器安全设置教程(全)


一、硬盘分区与操作系统的安装

硬盘分区
总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西, 如果实在不知道。那就只一个硬盘只分一个区,分区要一次性完成,不要先分成FAT32再转成NTFS。一次性分成 NTFS格式,以我个人习惯,系统盘一般给12G。建议使用光盘启动完成分区过程,不要加载硬盘软件。

系统安装
以下内容均以2003为例
安装过程也没什么多讲的,安装系统是一个以个人性格为参数的活动,我建议在安装路径上保持默认路径,好多文章上写什么安装路径要改成什么呀什么的,这是没必要的。路径保存在注册表里,怎么改都没用。在安装过程中就要选定你需要的服务,如一些DNS、DHCP没特别需要也就不要装了。在安装过程中网卡属性中可以只保留TCP/IP 这一项,同时禁用NETBOIS。安装完成后如果带宽条件允许可用系统自带在线升级。

二、系统权限与安全配置

前面讲的都是屁话,润润笔而已。(俺也文人一次)
话锋一转就到了系统权限设置与安全配置的实际操作阶段
系统设置网上有一句话是"最小的权限+最少的服务=最大的安全"。此句基本上是个人都看过,但我好像没有看到过一篇讲的比较详细稍具全面的文章,下面就以我个人经验作一次教学尝试!

2.1 最小的权限如何实现?

NTFS系统权限设置
在使用之前将每个硬盘根加上 Administrators 用户为全部权限(可选加入SYSTEM用户)
删除其它用户,进入系统盘:权限如下

C:\WINDOWS Administrators SYSTEM用户全部权限 Users 用户默认权限不作修改
其它目录删除Everyone用户,切记C:\Documents and Settings下All Users\Default User目录及其子目录
如C:\Documents and Settings\All Users\Application Data 目录默认配置保留了Everyone用户权限
C:\WINDOWS 目录下面的权限也得注意,如 C:\WINDOWS\PCHealth、C:\windows\Installer也是保留了Everyone权限.
删除C:\WINDOWS\Web\printers目录,此目录的存在会造成IIS里加入一个.printers的扩展名,可溢出攻击
默认IIS错误页面已基本上没多少人使用了。建议删除C:\WINDOWS\Help\iisHelp目录
删除C:\WINDOWS\system32\inetsrv\iisadmpwd,此目录为管理IIS密码之用,如一些因密码不同步造成500 错误的时候使用 OWA 或 Iisadmpwd 修改同步密码,但在这里可以删掉,下面讲到的设置将会杜绝因系统设置造成的密码不同步问题。
打开C:\Windows 搜索

net.exe;cmd.exe;tftp.exe;netstat.exe;regedit.exe;at.exe;attrib.exe;cacls.exe;format.com;
regsvr32.exe;xcopy.exe;wscript.exe;cscript.exe;ftp.exe;telnet.exe;arp.exe;edlin.exe;
ping.exe;route.exe;finger.exe;posix.exe;rsh.exe;atsvc.exe;qbasic.exe;runonce.exe;syskey.exe

修改权限,删除所有的用户只保存Administrators 和SYSTEM为所有权限

关闭445端口

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\netBT\Parameters
新建 "DWORD值"值名为 "SMBDeviceEnabled" 数据为默认值"0"

禁止建立空连接

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
新建 "DWORD值"值名为 "RestrictAnonymous" 数据值为"1" [2003默认为1]

禁止系统自动启动服务器共享

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareServer" 数据值为"0"

禁止系统自动启动管理共享

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareWks" 数据值为"0"

通过修改注册表防止小规模DDOS攻击

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建 "DWORD值"值名为 "SynAttackProtect" 数据值为"1"

禁止dump file的产生
dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。然而,它也能够给黑客提供一些敏感信息比如一些应用程序的密码等。控制面板>系统属性>高级>启动和故障恢复把 写入调试信息 改成无。

关闭华医生Dr.Watson
在开始-运行中输入"drwtsn32",或者开始-程序-附件-系统工具-系统信息-工具-Dr Watson,调出系统里的华医生Dr.Watson ,只保留"转储全部线程上下文"选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。如果以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间。

本地安全策略配置
开始 > 程序 > 管理工具 > 本地安全策略

账户策略 > 密码策略 > 密码最短使用期限 改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步]
账户策略 > 账户锁定策略 >账户锁定阈值 5 次 账户锁定时间 10分钟 [个人推荐配置]
本地策略 > 审核策略 >
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
本地策略 > 安全选项 > 清除虚拟内存页面文件 更改为"已启用"

> 不显示上次的用户名 更改为"已启用"
> 不需要按CTRL+ALT+DEL 更改为"已启用"
> 不允许 SAM 账户的匿名枚举 更改为"已启用"
> 不允许 SAM 账户和共享的匿名枚举 更改为"已启用"
> 重命名来宾账户 更改成一个复杂的账户名
> 重命名系统管理员账号 更改一个自己用的账号 [同时可建立一个无用户组的Administrat账户]
组策略编辑器
运行 gpedit.msc 计算机配置 > 管理模板 > 系统 显示"关闭事件跟踪程序" 更改为已禁用

删除不安全组件
WScript.Shell 、Shell.application 这两个组件一般一些ASP木马或一些恶意程序都会使用到。

方案一:


regsvr32 /u wshom.ocx 卸载WScript.Shell 组件
regsvr32 /u shell32.dll 卸载Shell.application 组件

如果按照上面讲到的设置,可不必删除这两个文件

方案二:


删除注册表 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8} 对应 WScript.Shell
删除注册表 HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000} 对应 Shell.application

用户管理
建立另一个备用管理员账号,防止特殊情况发生。
安装有终端服务与SQL服务的服务器停用TsInternetUser, SQLDebugger这两个账号

用户组说明
在将来要使用到的IIS中,IIS用户一般使用Guests组,也可以再重新建立一个独立的专供IIS使用的组,但要将这个组赋予C:\Windows 目录为读取权限[单一读取] 个人不建议使用单独目录,太小家子气。

二、系统权限与安全配置

2.2最少的服务如果实现

黑色为自动 绿色为手动 红色为禁用

Alerter
Application Experience Lookup Service
Application Layer Gateway Service
Application Management
Automatic Updates [Windows自动更新,可选项]
Background Intelligent Transfer Service
ClipBook
COM+ Event System
COM+ System Application
Computer Browser
Cryptographic Services
DCOM Server Process Launcher
DHCP Client
Distributed File System
Distributed Link Tracking Client
Distributed Link Tracking Server
Distributed Transaction Coordinator
DNS Client
Error Reporting Service
Event Log
File Replication
Help and Support
HTTP SSL
Human Interface Device Access
IIS Admin Service
IMAPI CD-Burning COM Service
Indexing Service
Intersite Messaging
IPSEC Services [如果使用了IP安全策略则自动,如无则禁用,可选操作]
Kerberos Key Distribution Center
License Logging
Logical Disk Manager [可选,多硬盘建议自动]
Logical Disk Manager Administrative Service
Messenger   /li>
Microsoft Search
Microsoft Software Shadow Copy Provider
MSSQLSERVER
MSSQLServerADHelper
Net Logon
NetMeeting Remote Desktop Sharing
Network Connections
Network DDE
Network DDE DSDM
Network Location Awareness (NLA)
Network Provisioning Service
NT LM Security Support Provider
Performance Logs and Alerts
Plug and Play
Portable Media Serial Number Service [微软反盗版工具,目前只针对多媒体类]
Print Spooler
Protected Storage
Remote Access Auto Connection Manager
Remote Access Connection Manager
Remote Desktop Help Session Manager
Remote Procedure Call (RPC)
Remote Procedure Call (RPC) Locator
Remote Registry
Removable Storage
Resultant Set of Policy Provider
Routing and Remote Access
Secondary Logon
Security Accounts Manager
Server
Shell Hardware Detection
Smart Card
Special Administration Console Helper
SQLSERVERAGENT
System Event Notification
Task Scheduler
TCP/IP NetBIOS Helper
Telephony
Telnet
Terminal Services
Terminal Services Session Directory
Themes
Uninterruptible Power Supply
Upload Manager
Virtual Disk Service
Volume Shadow Copy
WebClient
Windows Audio [服务器没必要使用声音]
Windows Firewall/Internet Connection Sharing (ICS)
Windows Image Acquisition (WIA)
Windows Installer
Windows Management Instrumentation
Windows Management Instrumentation Driver Extensions
Windows Time
Windows User Mode Driver Framework
WinHTTP Web Proxy Auto-Discovery Service
Wireless Configuration
WMI Performance Adapter
Workstation
World Wide Web Publishing Service
以上操作完成以后是否就"最小的权限+最少的服务=最大的安全"呢?其实不然,任何事物都是相对的
依我个人而见,以上设置也只是最基本的一些东西而已,如有遗漏,稍后补上!

    
三、IIS、终端服务、FTP、SQL的配置

3.1 IIS配置

IIS6与IIS5有着很多不同之处,不一一列举,也不是我一个脑袋可以装下的东西。都在资料上!IIS6有一个非常不方便的东西,就是他限制了在线上传不得大于200K,如何修改,请看:

首先停用IIS服务,> 服务 > iis admin service > 停用

C:\windows\system32\inetsrv\ metabase.xml 文件 用记事本打开它

找到 ASPMaxRequestEntityAllowed 处。默认为 204800 即 204800字节(200K)

修改为想要的数字如: 2048000 [2M] 保存,重启IIS服务即可!

设置基本参数

打开IIS管理器 > 网站 > 属性 >

网站 > 启动日志记录 > 关闭

主目录 > 配置 > 应用程序扩展 > 只保留 asp,asa

主目录 > 配置 > 选项 > 启用父目录

主目录 > 配置 > 调试 > 向客户端发送文本错误消息

网站 > 自定义错误 > 全部改成默认值 [上一章已经删除IIS使用的错误信息页面]

IIS管理器 > WEB服务扩展 > 启用 Active Server Pages

注:停用IIS默认站点,切勿删除,有可能会造成IIS的不稳定。

站点的建立将在第四节中详细介绍。

IIS支持PHP的配置

http://www.php.net/downloads.php 以 PHP 5.1.1 为例

下载php-5.1.1-Win32.zip 解压到 D:\php 或任意目录 赋予该目录IIS用户组读取权限

将ext目录中的所有文件复制到 C:\Windows\System32目录下面

以记事本打开php.ini-dist文件

查找 extension_dir = "./" 更改为 extension_dir = "D:\php\ext"

查找 ; Windows Extensions 更改下面的参数

如要开通GD库支持 则将;extension=php_gd2.dll 前面的冒号删除

依此类推,更多设置参考PHP.INI中文版。完成设置好另存在C:\Windows\php.ini

尔后在IIS设置中 IIS管理器 > 网站 > 属性 > 主目录 > 配置 > 映射

添加 D:\php\php5isapi.dll 扩展名.php

其次在WEB服务扩展中 添加一个新的扩展名 PHP 执行位置 D:\php\php5isapi.dll 设为允许即可

由于WIN平台对MYSQL与PHP的组合无法体现性能优势。个人建议WIN平台PHP程序要使用数据库建议远程

或搭配文本数据库。

终端服务配置

开始 > 程序 > 管理工具 > 终端服务配置 > 连接

选择右侧列出的连接 属性 > 权限 删除所有用户组 添加单一的允许使用的管理员账户,这样即使服务器

被创建了其它的管理员.也无法使用终端服务。

另外在会话设置中可以进一步设置断1 D、注销等一些参数。

FTP的配置

目前大多数服务器使用Serv-U Server 为FTP SYSTEM。这里同时建议使用此软件

以 Serv-U FTP Server 6.1.0.5 final [最新版]为例,这里建议使用汉化版本.www.hanzify.org

安装原版至D:\Serv-U_3434999fdaf [复杂无规则的目录名可有效防止黑客的猜解]

尔后退出Serv-U,安装汉化包。

运行SERV-U管理器 IP地址可为空、安装为系统服务 设置密码防止溢出

PASV设置

Serv-U管理器 > <<本地服务器>> > 设置 > 高级

PASV端口范围 这里SERV-U只允许 50个端口范围 端口的设置范围 如 1025 - 1075 [1024以前的端口为系统使用]

更多个人化设置参考以下文档

SERV-U 技巧
现在很多的朋友都用SERV-U做个人FTP的服务器,有关如何使用SERV-U架设服务器的文章很多了,这儿我就不多说了。不过大家不知道注意到了没有,当你登陆很多FTP的时候,会显示一些欢迎信息,比如说显示你的IP,告诉你目前有多少人在使用FTP,带宽是多少等等。。。看起来就比较的专业样子。其实你自己也是可以做的,SERV-U这个软件本身就有这个功能。下面我就说明以下如何在自己的FTP里面加上这些信息。
第一、先建立一个文本文件,随便取一个名字。我们这儿就取message.txt吧。

第二、这个这个文本文件里面加上这些文字

------------------------------------
欢迎来到XXX的FTP服务器
你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。

服务器的运行情况:

所有登陆用户数量: %loggedInAll total
当前登陆用户数量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb
已经下载文件数: %ServerFilesDown
已经上传文件数: %ServerFilesUp
服务器平均带宽: %ServerAvg Kb/sec
服务器当前带宽: %ServerKBps Kb/sec
------------------------------------

其中XXX可以改成你的名字

你也可以加上一些你自己认为喜欢的文字,不过要注意的是每行最好不要超过80个字符

其中以%开头的都是一些变量,下面是SERV-U能支持的变量

时间和*期

%Time - 显示你的计算机当前时间
%Date - 显示你的计算机当前*期

服务器的统计信息

%ServerDays - 显示服务器已经运行的天数
%ServerHours - 显示服务器已经运行的小时数
%ServerMins - 显示服务器已经运行的分钟数
%ServerSecs - 显示服务器已经运行的秒数
%ServerKbUp - 显示自从服务器运行以来已经上传的字节数
%ServerKbDown - 显示自从服务器运行以来已经下载的字节数
%ServerFilesUp - 显示自从服务器运行以来已经上传的文件数
%ServerFilesDown - 显示自从服务器运行以来已经下载的文件数
%LoggedInAll - 显示自从服务器运行以来已经登陆的用户数
%ServerAvg - 显示服务器的平均带宽
%ServerKBps - 显示服务器的当前带宽

服务器的设定信息

%MaxUsers - 显示服务器能同时登陆的最大用户数量
%MaxAnonymous - 显示服务器能同时登陆的最大匿名用户数量

用户信息

%Name - 显示登陆的用户名
%IP - 显示登陆的用户IP地址
%Dir - 显示登陆的用户的当前目录
%Disk - 显示登陆的用户的当前磁盘
%DFree - 显示登陆的用户的当前磁盘空间,单位是MB
%FUp - 显示登陆的用户上传的文件数量
%FDown - 显示登陆的用户下载的文件数量
%FTot - 显示登陆的用户上传和下载的总的文件数量
%BUp - 显示登陆的用户上传的字节数,单位是KB
%Bdown - 显示登陆的用户下载的字节数,单位是KB
%BTot - 显示登陆的用户上传和下载的总字节数,单位是KB
%TconM - 显示登陆用户连接时间,单位是分钟
%TconS - 显示登陆用户连接时间,单位是秒,要和%TconM一起使用
%RatioUp - 显示登陆用户的上传流量限制
%RatioDown - 显示登陆用户的下载流量限制
%RatioCredit - 显示登陆用户还有多少credit可以上传和下载,这个是针对有些FTP是要上传多少文件,才能下载多少文件而设置的
%QuotaUsed - 显示登陆用户的已经使用了多少空间,单位是KB
%QuotaLeft - 显示登陆用户的还有多少空间可以使用,单位是KB
%QuotaMax - 显示登陆用户的的最大空间,单位是KB
后面3个是针对有磁盘限制的用户设置的

用户数量

%UNow - 显示当前有多少用户连接
%UAll - 显示从服务器运行以来一共有多少用户连接过
%U24h - 显示最近24小时有多少用户
%UAnonAll - 显示当前总的匿名用户数量
%UAnonThisIP - 显示所有匿名登陆的用户数
%UNonAnonAll - 显示所有当前非匿名登陆用户数
%UNonAnonThisIP - 显示所有非匿名登陆用户数
%UThisName - 显示所有使用这个名字登陆的用户数

自己在先建立一个.txt文件,输入你想要显示的文字,具体参数看上面的内容,然后在Serv_u内的server设置里面,加入这个.txt文件就可以了!

下面我已经做了几个!喜欢就把名字等改改OK了!呵呵

------------------------------------
欢迎来到***A 网***的FTP服务器

你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。

服务器的运行情况:

所有登陆用户数量: %loggedInAll total
当前登陆用户数量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb
已经下载文件数: %ServerFilesDown
已经上传文件数: %ServerFilesUp
服务器平均带宽: %ServerAvg Kb/sec
服务器当前带宽: %ServerKBps Kb/sec
------------------------------------
你的信息

用户名: %Name
IP地址: %IP
当前目录: %Dir
当前磁盘: %Disk
磁盘空间:%DFree
连接时间: %TconM 分 和 %TconS 秒
上传流量限制: %RatioUp
下载流量限制: %RatioDown
------------------------------------

★★★★★★★★★★★★★★★★★★★★★★★★★
来自%IP的朋友您好,欢迎来到+a网+的个人FTP服务器
本地时间是%Date %Time
服务器已连续工作:%ServerDays天%ServerHours小时%ServerMins分%ServerSecs秒
本站开通以来已接通%UAll位使用者。
过去24小时总共有%U24h次连接。
匿名用户上限为%MaxAnonymous人。每个ip只能开两个进程
目前有%UNow位使用者在线。
其中匿名用户有%UAnonAll人在线。
★★★★★★★★★★★★★★★★★★★★★★★★★
自本站开通以来共上传/下载 |%ServerKbUpKB/%ServerKbDownKB
自本站开通以来共上传/下载 |%ServerFilesUp个/%ServerFilesDown个
服务器当前流量|%ServerKBps Kb/sec
服务器平均流量|%ServerAvg Kb/sec
★★★★★★★★★★★★★★★★★★★★★★★★★
你目前的空间容量为 |%QuotaMax/KB
你目前总共使用了 |%QuotaUsed/KB
你目前的空间剩余 |%QuotaLeft/KB


Jmail 组件的安装

建议使用 w3 JMail Personal V4.3 这里为免费版 http://www.skycn.net/soft/5555.html

默认安装至 D:\w3JMail4_35434fnald [同样,复杂的目录名]

安装完成后只需单一设置 jmail.dll 权限,加入IIS用户组默认权限即可!

SQL Server 2000 的安装与配置

目前SQL Server 2000 + SP4 在我看来已算比较安全,已没有SP3等版本会因为 sqlstp.log, sqlsp.log而泄露

安装信息的问题。当然也建议在安全后 检查 <systemdrive>:\Program Files\Microsoft SQL Server\MSSQL\Install

目录中是否存在有 sqlstp.log, sqlsp.log, setup.iss文件,如果有,则备份至其它位置。

数据库的建立这里就不多讲了。更多设置可以参考SQL SERVER 2000帮助文档!

四、站点的建立

站点的建立有一定的操作标准,当然这都是些屁话,能运行就行了。

上面讲到的设置已经为下面的建立站点创造了一个良好的条件,只需要严格按照控制每个站点的权限

就足够了,不要因为时间紧而不设置站点FSO或将目录权限开到最大。操作上的疏忽偶尔会带来一点小

麻烦。

建立站点前 首先在用户管理中建立一个站点所需要使用的用户名。

比如我们要建立一个名为 HostNew的站点 绑定域名hostnew.com

建立一用户Iusr_hostnew.com [对IIS用户增加统一的前缀方便将来的管理] 设置一个复杂的密码

修改该用户所属用户组为Guests 或 你准备好的IIS用户组。删除默认的Users用户组.

尔后给站点需要使用的目录加上这个用户为读取、写入权限。不要是默认权限,默认权限拥有运行权限

那么站点就可以通过FSO来执行或利用其它方式来执行一些恶意程序破坏服务器配置。

尔后打开IIS管理器 > 网站 > 新建站点 设置好后

打开新站点属性 > 目录安全性 > 身份验证和访问控制 > 编辑 > 选择刚才建立的用户[Iusr_hostnew.com]

输入该用户的密码.确认.应用.即可,此时该站点的权限已控制在该站点目录!

其实这一切都是相对比较简单的.也没有什么可值得称道的地方.

如果该站点不使用ASP\PHP\CGI等脚本 在该站点属性 > 主目录里面 > 执行权限 里面选择 无

如果要执行ASP等脚本 则 选择纯脚本.如果PHP\CGI等脚本使用的是EXE文件执行方式.则选择脚本和可执行文件

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 487
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 20 字 | UBB代码 关闭 | [img]标签 关闭