快捷搜索:   nginx

2003服务器终极安全及问题解决方案

作者:Shaoey


一、硬盘分区与操作系统的安装
硬盘分区
总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西, 如果实在不知

道。那就只一个硬盘只分一个区,分区要一次性完成,不要先分成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吧。
第二、这个这个文本文件里面加上这些文字
------------------------------------
欢迎来到Shaoey的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了!呵呵
------------------------------------
欢迎来到Shaoey个人FTP服务器
你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。
服务器的运行情况:
所有登陆用户数量: %loggedInAll total
当前登陆用户数量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论